A library for deferring decorator actions
Project description
venusian
Venusian is a library which allows framework authors to defer decorator actions. Instead of taking actions when a function (or class) decorator is executed at import time, you can defer the action usually taken by the decorator until a separate “scan” phase.
See the “docs” directory of the package or the online documentation at http://docs.pylonsproject.org/projects/venusian/dev/ .
Change Log
0.7 (2011-03-16)
Use Pylons theme in documentation.
Fix orphaned pyc test on pypy.
Fix GitHub Issue #1: subclasses of decorated classes that do not have any decorations should not inherit the decorations of their parent classes.
Fix GitHub Issue #2: scans should only “find” each object once per scan, regardless of how many modules that object is imported into.
0.6 (2011-01-09)
Some metaclasses (Elixir’s) don’t raise an AttributeError when asked for a nonexistent attribute during a scan. We now catch all exceptions when interrogating an object for __venusian_callbacks__ rather than just AttributeError.
0.5 (2010-12-19)
Make codeinfo attribute available as an attribute of the AttachInfo object. It will be a tuple in the form (filename, lineno, function, sourceline) representing the context of the venusian decorator. Eg. ('/home/chrism/projects/venusian/tests/test_advice.py', 81, 'testCallInfo', 'add_handler(foo, bar)')
0.4 (2010-09-03)
Bug fix: when a venusian decorator used as a class decorator was used against both a class and a subclass of that class, the superclass and subclass would effectively share the same set of callbacks. This was not the intent: each class declaration should have its own local set of callbacks; callbacks added via decorations should not be inherited, and a superclass should not receive its subclass’ decorations.
Arrange test fixtures into a single directory.
0.3 (2010-06-24)
Ignore orphaned modules (.pyc or .pyo files without a corresponding .py file) during a scan.
0.2 (2010-04-18)
Add the concept of scan categories (see the “Scan Categories” section of the documentation) to allow an application to make use of more than one Venusian-using framework simultaneously.
0.1 (2010-02-15)
Initial release.
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.