1
Fork 0
mirror of https://github.com/Steffo99/async-chain.git synced 2024-12-04 19:04:22 +00:00
async-chain/async_chain/decorators.py

22 lines
489 B
Python
Raw Normal View History

2021-06-13 18:42:02 +00:00
import functools
2021-06-14 02:39:43 +00:00
import typing as t
2021-06-13 18:42:02 +00:00
from .chain import ChainStart
class FunctionWrapper:
def __init__(self, func):
self._func = func
2021-06-14 02:39:43 +00:00
def __repr__(self) -> str:
2021-06-13 18:42:02 +00:00
return self._func.__name__
2021-06-14 02:39:43 +00:00
def __call__(self, *args, **kwargs) -> t.Any:
2021-06-13 18:42:02 +00:00
return self._func(*args, **kwargs)
def method_deco(func):
@functools.wraps(func)
def decorated(*args, **kwargs):
return ChainStart(start=FunctionWrapper(func))(*args, **kwargs)
return decorated