API reference

Container API.

The public API is intentionally small: register services, resolve them, create scopes, override dependencies in tests, and validate wiring.

Registration

MethodPurpose
add_singleton(interface, implementation=None, name=None)Reuse one instance for the app lifetime.
add_transient(interface, implementation=None, name=None)Create a new instance on each resolve.
add_scoped(interface, implementation=None, name=None)Reuse one instance inside a scope.
add_instance(interface, instance, name=None)Register an already built object.
add_*_factory(interface, factory, name=None)Use custom construction logic.

Resolving

Overrides

with container.override(PaymentGateway, instance=fake_gateway):
    checkout = container.resolve(Checkout)

Validation

Exceptions

ServiceNotRegisteredException, CyclicDependencyException, MissingTypeAnnotationException, InvalidLifestyleException, and ContainerValidationException inherit from DIException.