Metadata-Version: 2.1
Name: fang
Version: 0.7.6
Summary: A dependency injection system for python
Home-page: https://github.com/ncraike/fang
Author: Nathan Craike
Author-email: me@ncraike.com
License: MIT
Keywords: development dependencies dependencyinjection testing
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Provides-Extra: development
Requires-Dist: pytest ; extra == 'development'
Requires-Dist: pytest-cov ; extra == 'development'
Requires-Dist: pytest-xdist ; extra == 'development'
Provides-Extra: docs
Requires-Dist: docutils ; extra == 'docs'
Requires-Dist: Pygments ; extra == 'docs'
Provides-Extra: test
Requires-Dist: pytest ; extra == 'test'
Requires-Dist: pytest-cov ; extra == 'test'
Requires-Dist: codecov ; extra == 'test'

Fang: Dependency injection for Python
=====================================

Fang is a dependency injection library for Python.

Fang adds dependency injection in Pythonic way, without requiring the elements more usually seen in "big OO" languages. Particularly:

- dependencies are specified by identifier strings, rather than strict interface classes or types.
- the constructs which meet dependencies (resource providers) are *just functions*, not factory classes.
- the dependencies which a piece of code needs and the dependencies it can provide are both declared concisely with decorators.
- the linking of dependents and resource providers is done at run-time *in Python*, not with a custom-built configuration language.

The pieces used are small and easy to understand: the total library is less than 300 lines. But it's clear and simple enough to serve as a foundation for other features (eg dependency graphs, interface verification), which can enabled or added on a per-project basis.


