import sys import os sys.path.append(os.getcwd()) # noqa E402 from decorator import timer, debug, repeatN, repeat_partial, count_calls, \ Counter, Slow, slowDown from dataclasses import dataclass class TimeWaster(object): @debug def __init__(self, max_num: int): super(TimeWaster, self).__init__() self.max_num = max_num @timer def waste_time(self, num_times: int): for _ in range(num_times): sum([i ** 2 for i in range(self.max_num)]) @timer @dataclass class PlayingCard(object): rank: str suit: str @repeatN def say_hello(name: str): print(f'Hello, {name}.') @repeatN(num=5) def say_hi(name: str): print(f'Hi, {name}.') @repeat_partial(num=10) def say_yo(name: str): print(f'Yo, {name}!') @count_calls def say_whee(): print('Whee!') @Counter def say_howdy(): print('Howdy!') @slowDown() def count_down(num: int): if not isinstance(num, int): raise TypeError("Must input an integer.") if num >= 1: print(num) count_down(num - 1) else: print('Liftoff!')