Metadata-Version: 2.1
Name: smart-injector
Version: 0.0.5
Summary: An easy to use lightweight dependency injection framework
Home-page: https://github.com/hlevering/python-smart-injector
Author: Hendrik Levering
Author-email: h.levering.git@gmail.com
License: BSD-2-Clause
Project-URL: Documentation, https://python-smart-injector.readthedocs.io/
Project-URL: Changelog, https://python-smart-injector.readthedocs.io/en/latest/changelog.html
Project-URL: Issue Tracker, https://github.com/hlevering/python-smart-injector/issues
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: Unix
Classifier: Operating System :: POSIX
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Utilities
Requires-Python: >=3.5

========
Overview
========
Smart-injector is an lightweight dependency injection framework for Python.
It was designed to be an easy to use tool to implement dependency injection in your application in a pythonic way.

Key features are:
- Ligtweight
- pure python
- leverages type annotations
- scopes
- non invasive


Project Status
==============




Installation
============

::

    pip install smart-injector

You can also install the in-development version with::

    pip install https://github.com/hlevering/python-smart-injector/archive/master.zip


Quickstart
==========

Basic Usage::

    >>> class A:
    ...     pass
    ...
    >>> class B:
    ...     def __init__(self, a: A):
    ...         self.a = a
    ...
    >>> container = create_container(StaticContainer)
    >>> b = container.get(B)
    >>> isinstance(b.a, A)
    True



Documentation
=============

Detailed documentation can be found here:

https://python-smart-injector.readthedocs.io/

Further usage examples can be found here:
https://python-smart-injector.readthedocs.io/en/latest/usage.html


Development
===========

To run the all tests run::

    tox

Note, to combine the coverage data from all the tox environments run:

.. list-table::
    :widths: 10 90
    :stub-columns: 1

    - - Windows
      - ::

            set PYTEST_ADDOPTS=--cov-append
            tox

    - - Other
      - ::

            PYTEST_ADDOPTS=--cov-append tox


Changelog
=========

0.0.0 (2019-11-20)
------------------

* First release on PyPI.


