| Vulnerabilities | |||||
|---|---|---|---|---|---|
| Version | Suggest | Low | Medium | High | Critical |
| 5.2.1 | 0 | 0 | 0 | 0 | 0 |
| 5.2.0 | 0 | 0 | 0 | 0 | 0 |
| 5.1.1 | 0 | 0 | 0 | 0 | 0 |
| 5.1.0 | 0 | 0 | 0 | 0 | 0 |
| 5.0.9 | 0 | 0 | 0 | 0 | 0 |
| 5.0.8 | 0 | 0 | 0 | 0 | 0 |
| 5.0.7 | 0 | 0 | 0 | 0 | 0 |
| 5.0.6 | 0 | 0 | 0 | 0 | 0 |
| 5.0.5 | 0 | 0 | 0 | 0 | 0 |
| 5.0.4 | 0 | 0 | 0 | 0 | 0 |
| 5.0.3 | 0 | 0 | 0 | 0 | 0 |
| 4.4.2 | 0 | 0 | 0 | 0 | 0 |
| 4.4.1 | 0 | 0 | 0 | 0 | 0 |
| 4.4.0 | 0 | 0 | 0 | 0 | 0 |
| 4.3.2 | 0 | 0 | 0 | 0 | 0 |
| 4.3.1 | 0 | 0 | 0 | 0 | 0 |
| 4.3.0 | 0 | 0 | 0 | 0 | 0 |
| 4.2.1 | 0 | 0 | 0 | 0 | 0 |
| 4.1.2 | 0 | 0 | 0 | 0 | 0 |
| 4.1.1 | 0 | 0 | 0 | 0 | 0 |
| 4.1.0 | 0 | 0 | 0 | 0 | 0 |
| 4.0.11 | 0 | 0 | 0 | 0 | 0 |
| 4.0.10 | 0 | 0 | 0 | 0 | 0 |
| 4.0.9 | 0 | 0 | 0 | 0 | 0 |
| 4.0.7 | 0 | 0 | 0 | 0 | 0 |
| 4.0.6 | 0 | 0 | 0 | 0 | 0 |
| 4.0.4 | 0 | 0 | 0 | 0 | 0 |
| 4.0.3 | 0 | 0 | 0 | 0 | 0 |
| 4.0.2 | 0 | 0 | 0 | 0 | 0 |
| 4.0.1 | 0 | 0 | 0 | 0 | 0 |
| 4.0.0 | 0 | 0 | 0 | 0 | 0 |
| 3.4.2 | 0 | 0 | 0 | 0 | 0 |
| 3.4.1 | 0 | 0 | 0 | 0 | 0 |
| 3.4.0 | 0 | 0 | 0 | 0 | 0 |
| 3.3.3 | 0 | 0 | 0 | 0 | 0 |
| 3.3.2 | 0 | 0 | 0 | 0 | 0 |
| 3.3.1 | 0 | 0 | 0 | 0 | 0 |
5.2.1 - This version may not be safe as it has not been updated for a long time. Find out if your coding project uses this component and get notified of any reported security vulnerabilities with Meterian-X Open Source Security Platform
Maintain your licence declarations and avoid unwanted licences to protect your IP the way you intended.
BSD - BSD License (Generic)The goal of the decorator module is to make it easy to define signature-preserving function decorators and decorator factories. It also includes an implementation of multiple dispatch and other niceties (please check the docs). It is released under a two-clauses BSD license, i.e. basically you can do whatever you want with it but I am not responsible.
If you are lazy, just perform
$ pip install decorator
which will install just the module on your system.
If you prefer to install the full distribution from source, including
the documentation, clone the GitHub repo_ or download the tarball_, unpack it and run
$ pip install .
in the main directory, possibly as superuser.
.. _tarball: https://pypi.org/project/decorator/#files .. _GitHub repo: https://github.com/micheles/decorator
If you have the source code installation you can run the tests with
$ python tests/test.py -v
or (if you have setuptools installed)
$ python setup.py test
Notice that you may run into trouble if in your system there
is an older version of the decorator module; in such a case remove the
old version. It is safe even to copy the module decorator.py over
an existing one, since we kept backward-compatibility for a long time.
The project is hosted on GitHub. You can look at the source here:
https://github.com/micheles/decorator
The documentation has been moved to https://github.com/micheles/decorator/blob/master/docs/documentation.md
From there you can get a PDF version by simply using the print functionality of your browser.
Here is the documentation for previous versions of the module:
https://github.com/micheles/decorator/blob/4.3.2/docs/tests.documentation.rst https://github.com/micheles/decorator/blob/4.2.1/docs/tests.documentation.rst https://github.com/micheles/decorator/blob/4.1.2/docs/tests.documentation.rst https://github.com/micheles/decorator/blob/4.0.0/documentation.rst https://github.com/micheles/decorator/blob/3.4.2/documentation.rst
Here is an example of how to define a family of decorators tracing slow operations:
.. code-block:: python
from decorator import decorator
@decorator def warn_slow(func, timelimit=60, *args, **kw): t0 = time.time() result = func(*args, **kw) dt = time.time() - t0 if dt > timelimit: logging.warning('%s took %d seconds', func.name, dt) else: logging.info('%s took %d seconds', func.name, dt) return result
@warn_slow # warn if it takes more than 1 minute def preprocess_input_files(inputdir, tempdir): ...
@warn_slow(timelimit=600) # warn if it takes more than 10 minutes def run_calculation(tempdir, outdir): ...
Enjoy!