Injecta
Dependency Injection (DI) Container written in Python. Main component of the Pyfony Framework.
Installation
$ pip install injecta
Simple container initialization
(The following steps are covered in the ContainerInitializerTest)
To start using Injecta, create a simple config.yaml file to define your DI services:
parameters:
api:
endpoint: 'https://api.mycompany.com'
services:
mycompany.api.ApiClient:
arguments:
- '@mycompany.api.Authenticator'
mycompany.api.Authenticator:
class: mycompany.authenticator.RestAuthenticator
arguments:
- '%api.endpoint%'
- '%env(API_TOKEN)%'
Then, initialize the container:
from injecta.container.ContainerBuilder import ContainerBuilder
from injecta.config.YamlConfigReader import YamlConfigReader
from injecta.container.ContainerInitializer import ContainerInitializer
config = YamlConfigReader().read('/path/to/config.yaml')
containerBuild = ContainerBuilder().build(config)
container = ContainerInitializer().init(containerBuild)
Use container.get() to finally retrieve your service:
from mycompany.api.ApiClient import ApiClient
apiClient = container.get('mycompany.api.ApiClient') # type: ApiClient
apiClient.get('/foo/bar')
Advanced examples
Metadata
Release files for injecta 0.10.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| injecta-0.10.2-py3-none-any.whl | Python 3 | none | any | Details |
Release files / injecta-0.10.2-py3-none-any.whl
| Download URL | injecta-0.10.2-py3-none-any.whl |
|---|---|
| Size | 59.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
544d237424a9d271eedee4987c9524a6100ed836d94548c05c94d1bc1c8a7c2e
|
|
BLAKE2b-256 checksum How to use checksums |
3faa71458f7c5cc0aec157df4e3dc31a65f6e6ad4a92f5b8bf1ff0a58d61f1cf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.4 CPython/3.7.3 Linux/5.11.0-1028-azure
|