Expand Python Super Capabilities
Project description
|build| |license| |code style| |coverage|
Supercharge
This package allows you to automatically run code before and after a given class method. Furthermore, this behaviour can be enforced on child classes as well.
Example
.. code-block:: py
from supercharge import Charge
class HelloWorld:
def __init__(self):
self.run_prepared = False
self.run_state = False
@Charge
def run(self):
if self.run_prepared:
print("running ...")
@run.pre
def pre_run(self):
self.run_prepared = True
@run.post
def post_run(self):
self.run_state = True
If this is behaviour is desired in subclassed runs one must use the Base
class.
.. code-block:: py
from supercharge import Charge, Base
class HelloWorld(Base):
def __init__(self):
self.run_prepared = False
self.run_state = False
@Charge
def run(self):
raise NotImplementedError
@run.pre
def pre_run(self):
self.run_prepared = True
@run.post
def post_run(self):
self.run_state = True
class Child(HelloWorld):
def run(self):
if self.run_prepared:
print("running ...")
.. badges
.. |build| image:: https://github.com/zincware/supercharge/actions/workflows/pytest.yaml/badge.svg :alt: Build tests passing :target: https://github.com/zincware/py-test/blob/readme_badges/
.. |license| image:: https://img.shields.io/badge/License-EPL-purple.svg?style=flat :alt: Project license :target: https://www.eclipse.org/legal/epl-2.0/faq.php
.. |code style| image:: https://img.shields.io/badge/code%20style-black-black :alt: Code style: black :target: https://github.com/psf/black/
.. |coverage| image:: https://coveralls.io/repos/github/zincware/supercharge/badge.svg :alt: Code coverage :target: https://coveralls.io/github/zincware/supercharge
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for supercharge-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 019c527078ddda88433fc0573273ae3817705edd06ec15de5d3798550adbfdb5 |
|
MD5 | 083e0fefd8f8fa2ab0e14514881ae474 |
|
BLAKE2b-256 | ddb4c5bf9c4ef7a6d3172e24bafbdd263822092a25d56b621285d7a5812868a6 |