dependencyinjection


Keywords
python, dependency-injection, ioc
License
MIT
Install
pip install dependencyinjection==0.1.3.0

Documentation

dependency injection

A dependency injection framework for python.

Just like Microsoft.Extensions.DependencyInjection.

Usage

class A:
    pass

class B:
    def __init__(self, a: A):
        assert isinstance(a, A)

import dependencyinjection as di

service = di.Services()
service.scoped(A)
service.singleton(B)
provider = service.build()
assert isinstance(provider.get(A), A)
assert isinstance(provider.get(B), B)

with provider.scope() as scoped_provider:
    assert provider.get(A) is provider.get(A)
    assert scoped_provider.get(B) is scoped_provider.get(B)
    assert provider.get(B) is scoped_provider.get(B)
    assert not (provider.get(A) is scoped_provider.get(A))