Dependency Injection library
Project description
AnyDI
[!IMPORTANT] Library renamed to
anydi
frompyxdi
starting from version0.19.0
.
AnyDI
is a lightweight Python Dependency Injection library that supports any synchronous or asynchronous code through type annotations (PEP 484).
Documentation
Requirements
Python 3.8+
and optional dependencies:
- anyio (for supporting synchronous resources with an asynchronous runtime)
Installation
Install using pip
:
pip install anydi
or using poetry
:
poetry add anydi
Quick Example
app.py
from anydi import auto, Container
container = Container()
container.register(str, lambda: "Hello, world!", scope="singleton")
@container.provider(scope="singleton")
def message() -> str:
return "Hello, world!"
@container.inject
def say_hello(message: str = auto()) -> None:
print(message)
if __name__ == "__main__":
say_hello()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
anydi-0.19.0.tar.gz
(16.0 kB
view hashes)
Built Distribution
anydi-0.19.0-py3-none-any.whl
(19.4 kB
view hashes)