Aglyph is a Dependency Injection framework for Python that...
- supports type 2 (setter) and type 3 (constructor) dependency injection
- can assemble prototype, singleton, borg, and weakref components
- supports templates (i.e. component inheritance) and lifecycle methods
- works with any kind of object creation pattern you'll encounter:
- factory function or method
- object creation hidden behind attribute or property access
- is configured declaratively, either programmatically through a fluent API or using a simple XML syntax (see the Aglyph DTD)
- is non-intrusive:
- only one dependency (Autologging) beyond the Python standard library
- does not require modification of existing source code (i.e. no decorators, specific naming conventions, or any other kind of syntactic "magic" necessary)
- can inject not only 3rd-party dependencies, but also dependents
- runs on Python 2.7 and 3.4+ using the same codebase
- is proactively tested on CPython, Jython, IronPython, PyPy, and Stackless Python
- is fully logged and traced for ease of troubleshooting (note: tracing is disabled by default, and can be activated by setting an environment variable)
The easiest way to install Aglyph is to use pip:
$ pip install Aglyph
To verify that an installation was successful:
>>> import aglyph >>> aglyph.__version__ '3.0.0.post1'
Alternative source and binary installation options are described below.
Clone or fork the repository:
$ git clone https://github.com/mzipay/Aglyph.git
Alternatively, download and extract a source .zip or .tar.gz archive from https://github.com/mzipay/Aglyph/releases, https://pypi.python.org/pypi/Aglyph/ or https://sourceforge.net/projects/aglyph/files/aglyph/.
Run the test suite and install the
$ cd Aglyph $ python setup.py test $ python setup.py install
Download the Python wheel (.whl) or .exe/.msi Windows installer from https://pypi.python.org/pypi/Aglyph/ or https://sourceforge.net/projects/aglyph/files/aglyph/.