strip-deco
strip-deco easily strip decorator from function or class method
Installation
pip3 install strip-deco
Prototype
def stripdeco(obj: Any, depth: int = None, **kwargs) -> None:
...
- obj: Function or Class method
- depth: If your function is wrapped in multiple decorators, you can set how many decorators to disable through the depth parameter.
- kwargs: Arguments that obj have to receive
Example of normal function
from strip_deco import stripdeco
def deco(func):
def _deco(*args, **kwargs):
result = func(*args, **kwargs)
return result
return _deco
@deco
def test():
pass
stripdeco(obj=test)
@deco
@deco
@deco
def test():
pass
stripdeco(obj=test)
stripdeco(obj=test, depth=1) # Only strip one decorator
Example of class method
from strip_deco import stripdeco
def deco(func):
def _deco(*args, **kwargs):
result = func(*args, **kwargs)
return result
return _deco
class Service:
@deco
@deco
def run(self):
pass
@deco
@deco
def run_with_arguments(self, user_id):
pass
stripdeco(obj=Service().run)
stripdeco(obj=Service().run, depth=1) # Only strip one decorator
stripdeco(obj=Service().run_with_arguments, user_id=1) # Case of other arguments
stripdeco(obj=Service().run_with_arguments, depth=1, user_id=1) # Only strip one decorator
Example of class method with init
from strip_deco import stripdeco
def deco(func):
def _deco(*args, **kwargs):
result = func(*args, **kwargs)
return result
return _deco
class Service:
def __init__(self, repo):
self.repo = repo
@deco
@deco
def run(self):
pass
@deco
@deco
def run_with_arguments(self, user_id):
pass
stripdeco(obj=Service(repo="repo").run)
stripdeco(obj=Service(repo="repo").run, depth=1) # Only strip one decorator
stripdeco(obj=Service(repo="repo").run_with_arguments, user_id=1) # Case of other arguments
stripdeco(obj=Service(repo="repo").run_with_arguments, depth=1, user_id=1) # Only strip one decorator
- strip-deco automatically removes any kind of decorators. (class/function)
- It supports both decorator,
functools wrapsand non functools wraps . - If you specify depth paramater, it will strip order by outside.
- The class argument is required when executing class method.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
strip-deco-0.0.9.tar.gz
(3.5 kB
view details)
File details
Details for the file strip-deco-0.0.9.tar.gz.
File metadata
- Download URL: strip-deco-0.0.9.tar.gz
- Upload date:
- Size: 3.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
828e75fdc88d714b24188e1c96879c25b734e6faaddb938e037b279661ff3075
|
|
| MD5 |
0ce6199f3f106aa998e189f26a9256c3
|
|
| BLAKE2b-256 |
a67f40ee9474a6ea559291f0b7dbba60cd6ab26804d7c74508d7c538fffdafe6
|