Skip to content

Instantly share code, notes, and snippets.

View rec's full-sized avatar
🥝
coding

Tom Ritchford rec

🥝
coding
View GitHub Profile
@rec
rec / dc.py
Last active August 17, 2021 09:33
from dataclasses import dataclass
@dataclass
class B:
b: List[object]
@dataclass
class A:
a: B
from dataclasses import dataclass, field
@dataclass(order=True)
class Action:
name: str = 'test'
_name: str = field(default="undefined", init=False, compare=True, repr=False)
@property
def name(self) -> str: # pylint: disable=function-redefined
def turing(function):
if not has_infinite_loop(function, function):
while True:
pass
def loops_forever(function, *arguments):
# Return True if function(*arguments) loops forever
# Let's try it out
def loops_forever():
while True:
print()
def loops_once():
dek = _dek(_dek, defer=True)
import dek
@dek
def print_before(pfunc, label='label'):
print(label, pfunc)
return pfunc()
# Correct decorator for an optional parameter
def print_before4(label='label'):
def decorator(func):
@functools.wraps(func)
def wrapped(*args, **kwargs):
print(label, args, kwargs)
return func(*args, **kwargs)
@print_before3()
def mj1(a, b, c):
pass
@print_before3('OK')
def mj2(one, two, three):
pass
@rec
rec / dek4_1.py
Created July 12, 2020 09:48
dek4_1.py
@print_before3()
def important(lives, money, valuables=None):
pass
@print_before3('BORING:')
def dull(*args, **kwds):
pass
# Almost right
def print_before3(label='DEBUG:'):
def decorator(func):
@functools.wraps(func)
def wrapped(*args, **kwds):
print(label, func.__name__, args, kwds)
return func(*args, **kwds)