Python typed object schema validation
Project description
typedi
Simple typed dependency injection container.
To install from python package index simply type (no dependencies):
pip install typedi
Or, if you don't want to bring a dependency inside a project simply copy and paste typedi.py
inside your project
Usage
Containers
typedi comes with a default shared container, to add or retrieve instances from it import it anywhere you need - usually in some initialization/bootstrapping logic.
from typedi import container
Or you could also create your own DI containers:
from typedi import Container
my_container = Container()
Instance bindings, "user-managed singletons"
from typedi import container
class MyClass:
pass
instance = MyClass()
container.bind_to_instance(MyClass, instance)
# anywhere else
from typedi import container
instance = container.get_instance(MyClass)
Class bindings
from typedi import container
class MyClass:
pass
instance = MyClass()
container.register_class(MyClass)
# anywhere else
from typedi import container
auto_instantiated_instance = container.get_instance(MyClass)
Class bindings with inheritance
from typedi import container
class MyClass:
pass
class ChildOfMyClass(MyClass):
pass
instance = MyClass()
container.bind_to_class(MyClass, ChildOfMyClass)
# anywhere else
from typedi import container
auto_instantiated_instance = container.get_instance(MyClass) # type: ChildOfMyClass
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
typedi-0.1.tar.gz
(2.4 kB
view hashes)
Built Distribution
typedi-0.1-py3-none-any.whl
(3.4 kB
view hashes)