dependency_injector.providers¶
Providers module.
- class dependency_injector.providers.AbstractCallable¶
Bases:
CallableAbstract callable provider.
AbstractCallableis aCallableprovider that must be explicitly overridden before calling.Overriding of
AbstractCallableis possible only by anotherCallableprovider.- add_args(*args)¶
Add positional argument injections.
- Returns:
Reference
self
- add_kwargs(**kwargs)¶
Add keyword argument injections.
- Returns:
Reference
self
- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- clear_args()¶
Drop positional argument injections.
- Returns:
Reference
self
- clear_kwargs()¶
Drop keyword argument injections.
- Returns:
Reference
self
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set positional argument injections.
Existing positional argument injections are dropped.
- Returns:
Reference
self
- set_kwargs(**kwargs)¶
Set keyword argument injections.
Existing keyword argument injections are dropped.
- Returns:
Reference
self
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.AbstractCoroutine¶
Bases:
CoroutineAbstract coroutine provider.
AbstractCoroutineis aCoroutineprovider that must be explicitly overridden before calling.Overriding of
AbstractCoroutineis possible only by anotherCoroutineprovider.- add_args(*args)¶
Add positional argument injections.
- Returns:
Reference
self
- add_kwargs(**kwargs)¶
Add keyword argument injections.
- Returns:
Reference
self
- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- clear_args()¶
Drop positional argument injections.
- Returns:
Reference
self
- clear_kwargs()¶
Drop keyword argument injections.
- Returns:
Reference
self
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set positional argument injections.
Existing positional argument injections are dropped.
- Returns:
Reference
self
- set_kwargs(**kwargs)¶
Set keyword argument injections.
Existing keyword argument injections are dropped.
- Returns:
Reference
self
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.AbstractFactory¶
Bases:
FactoryAbstract factory provider.
AbstractFactoryis aFactoryprovider that must be explicitly overridden before calling.Overriding of
AbstractFactoryis possible only by anotherFactoryprovider.- add_args(*args)¶
Add __init__ positional argument injections.
- Returns:
Reference
self
- add_attributes(**kwargs)¶
Add attribute injections.
- Returns:
Reference
self
- add_kwargs(**kwargs)¶
Add __init__ keyword argument injections.
- Returns:
Reference
self
- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- attributes¶
Return attribute injections.
- clear_args()¶
Drop __init__ positional argument injections.
- Returns:
Reference
self
- clear_attributes()¶
Drop attribute injections.
- Returns:
Reference
self
- clear_kwargs()¶
Drop __init__ keyword argument injections.
- Returns:
Reference
self
- cls¶
Return provided type.
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set __init__ positional argument injections.
Existing __init__ positional argument injections are dropped.
- Returns:
Reference
self
- set_attributes(**kwargs)¶
Set attribute injections.
Existing attribute injections are dropped.
- Returns:
Reference
self
- set_kwargs(**kwargs)¶
Set __init__ keyword argument injections.
Existing __init__ keyword argument injections are dropped.
- Returns:
Reference
self
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.AbstractSingleton¶
Bases:
BaseSingletonAbstract singleton provider.
AbstractSingletonis aSingletonprovider that must be explicitly overridden before calling.Overriding of
AbstractSingletonis possible only by anotherBaseSingletonprovider.- add_args(*args)¶
Add __init__ positional argument injections.
- Returns:
Reference
self
- add_attributes(**kwargs)¶
Add attribute injections.
- Returns:
Reference
self
- add_kwargs(**kwargs)¶
Add __init__ keyword argument injections.
- Returns:
Reference
self
- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- attributes¶
Return attribute injections.
- clear_args()¶
Drop __init__ positional argument injections.
- Returns:
Reference
self
- clear_attributes()¶
Drop attribute injections.
- Returns:
Reference
self
- clear_kwargs()¶
Drop __init__ keyword argument injections.
- Returns:
Reference
self
- cls¶
Return provided type.
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- full_reset()¶
Reset cached instance in current and all underlying singletons, if any.
- Return type:
SingletonFullResetContext
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset()¶
Reset cached instance, if any.
- Return type:
None
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set __init__ positional argument injections.
Existing __init__ positional argument injections are dropped.
- Returns:
Reference
self
- set_attributes(**kwargs)¶
Set attribute injections.
Existing attribute injections are dropped.
- Returns:
Reference
self
- set_kwargs(**kwargs)¶
Set __init__ keyword argument injections.
Existing __init__ keyword argument injections are dropped.
- Returns:
Reference
self
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.Aggregate¶
Bases:
ProviderProviders aggregate.
Aggregateis a delegated provider, meaning that it is injected “as is”.All aggregated providers can be retrieved as a read-only dictionary
Aggregate.providersor as an attribute ofAggregate, e.g.aggregate.provider.- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(_)¶
Override provider with another provider.
- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- providers¶
Return dictionary of providers, read-only.
Alias for
.factoriesattribute.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_providers(provider_dict=None, **provider_kwargs)¶
Set providers.
Alias for
.set_factories()method.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.AttributeGetter¶
Bases:
ProviderProvider that returns the attribute of the injected instance.
You should not create this provider directly. See
ProvidedInstanceinstead.- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- name¶
Return name of the attribute.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_name(name)¶
Set name of the attribute.
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.BaseSingleton¶
Bases:
ProviderBase class of singleton providers.
- add_args(*args)¶
Add __init__ positional argument injections.
- Returns:
Reference
self
- add_attributes(**kwargs)¶
Add attribute injections.
- Returns:
Reference
self
- add_kwargs(**kwargs)¶
Add __init__ keyword argument injections.
- Returns:
Reference
self
- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- attributes¶
Return attribute injections.
- clear_args()¶
Drop __init__ positional argument injections.
- Returns:
Reference
self
- clear_attributes()¶
Drop attribute injections.
- Returns:
Reference
self
- clear_kwargs()¶
Drop __init__ keyword argument injections.
- Returns:
Reference
self
- cls¶
Return provided type.
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- full_reset()¶
Reset cached instance in current and all underlying singletons, if any.
- Return type:
SingletonFullResetContext
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset()¶
Reset cached instance, if any.
- Return type:
None
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set __init__ positional argument injections.
Existing __init__ positional argument injections are dropped.
- Returns:
Reference
self
- set_attributes(**kwargs)¶
Set attribute injections.
Existing attribute injections are dropped.
- Returns:
Reference
self
- set_kwargs(**kwargs)¶
Set __init__ keyword argument injections.
Existing __init__ keyword argument injections are dropped.
- Returns:
Reference
self
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.Callable¶
Bases:
ProviderCallable provider calls wrapped callable on every call.
Callable supports positional and keyword argument injections:
some_function = Callable(some_function, "positional_arg1", "positional_arg2", keyword_argument1=3, keyword_argument=4) # or some_function = Callable(some_function) \ .add_args("positional_arg1", "positional_arg2") \ .add_kwargs(keyword_argument1=3, keyword_argument=4) # or some_function = Callable(some_function) some_function.add_args("positional_arg1", "positional_arg2") some_function.add_kwargs(keyword_argument1=3, keyword_argument=4)
- add_args(*args)¶
Add positional argument injections.
- Returns:
Reference
self
- add_kwargs(**kwargs)¶
Add keyword argument injections.
- Returns:
Reference
self
- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- clear_args()¶
Drop positional argument injections.
- Returns:
Reference
self
- clear_kwargs()¶
Drop keyword argument injections.
- Returns:
Reference
self
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set positional argument injections.
Existing positional argument injections are dropped.
- Returns:
Reference
self
- set_kwargs(**kwargs)¶
Set keyword argument injections.
Existing keyword argument injections are dropped.
- Returns:
Reference
self
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.CallableDelegate¶
Bases:
DelegateCallable delegate injects delegating callable “as is”.
- provides¶
Value that have to be provided.
- Type:
object
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.Configuration¶
Bases:
ObjectConfiguration provider provides configuration options to the other providers.
config = Configuration("config") print(config.section1.option1()) # None print(config.section1.option2()) # None config.from_dict( { "section1": { "option1": 1, "option2": 2, }, }, ) print(config.section1.option1()) # 1 print(config.section1.option2()) # 2
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- from_dict(options, required=<object object>)¶
Load configuration from the dictionary.
Loaded configuration is merged recursively over existing configuration.
- Parameters:
options (dict) – Configuration options.
required (bool) – When required is True, raise an exception if dictionary is empty.
- Return type:
None
- from_env(name, default=<object object>, required=<object object>, as_=<object object>)¶
Load configuration value from the environment variable.
- Parameters:
name (str) – Name of the environment variable.
default (object) – Default value that is used if environment variable does not exist.
required (bool) – When required is True, raise an exception if environment variable is undefined.
as (object) – Callable used for type casting (int, float, etc).
- Return type:
None
- from_ini(filepath, required=<object object>, envs_required=<object object>)¶
Load configuration from the ini file.
Loaded configuration is merged recursively over existing configuration.
- Parameters:
filepath (str) – Path to the configuration file.
required (bool) – When required is True, raise an exception if file does not exist.
envs_required (bool) – When True, raises an error on undefined environment variable.
- Return type:
None
- from_json(filepath, required=<object object>, envs_required=<object object>)¶
Load configuration from a json file.
Loaded configuration is merged recursively over the existing configuration.
- Parameters:
filepath (str) – Path to a configuration file.
required (bool) – When required is True, raise an exception if file does not exist.
envs_required (bool) – When True, raises an exception on undefined environment variable.
- Return type:
None
- from_pydantic(settings, required=<object object>, **kwargs)¶
Load configuration from pydantic settings.
Loaded configuration is merged recursively over existing configuration.
- Parameters:
settings (
pydantic.BaseSettings(pydantic v1) orpydantic_settings.BaseSettings(pydantic v2 and onwards)) – Pydantic settings instances.required (bool) – When required is True, raise an exception if settings dict is empty.
kwargs (Dict[Any, Any]) – Keyword arguments forwarded to
pydantic.BaseSettings.dict()call.
- Return type:
None
- from_value(value)¶
Load configuration value.
- Parameters:
value (object) – Configuration value
- Return type:
None
- from_yaml(filepath, required=<object object>, loader=None, envs_required=<object object>)¶
Load configuration from the yaml file.
Loaded configuration is merged recursively over existing configuration.
- Parameters:
filepath (str) – Path to the configuration file.
required (bool) – When required is True, raise an exception if file does not exist.
loader (
yaml.Loader) – YAML loader,YamlLoaderis used if not specified.envs_required (bool) – When True, raises an error on undefined environment variable.
- Return type:
None
- get(selector, required=False)¶
Return configuration option.
- Parameters:
selector (str) – Selector string, e.g. “option1.option2”
required (bool) – Required flag, raise error if required option is missing
- Returns:
Option value.
- Return type:
Any
- get_children()¶
Return children options.
- get_default()¶
Return default.
- get_ini_files()¶
Return list of INI files.
- get_json_files()¶
Return list of JSON files.
- get_name()¶
Return name.
- get_pydantic_settings()¶
Return list of Pydantic settings.
- get_strict()¶
Return strict flag.
- get_yaml_files()¶
Return list of YAML files.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- load(required=<object object>, envs_required=<object object>)¶
Load configuration.
This method loads configuration from configuration files or pydantic settings that were set earlier with set_*() methods or provided to the __init__(), e.g.:
config = providers.Configuration(yaml_files=[file1, file2]) config.load()
- Parameters:
required (bool) – When required is True, raise an exception if file does not exist.
envs_required (bool) – When True, raises an error on undefined environment variable.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_cache()¶
Reset children providers cache.
- Return type:
None
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set(selector, value)¶
Override configuration option.
- Parameters:
selector (str) – Selector string, e.g. “option1.option2”
value (Any) – Overriding value
- Returns:
Overriding context.
- Return type:
- set_children(children)¶
Set children options.
- set_default(default)¶
Set default.
- set_ini_files(files)¶
Set list of INI files.
- set_json_files(files)¶
Set list of JSON files.
- set_name(name)¶
Set name.
- set_provides(provides)¶
Set provider provides.
- set_pydantic_settings(settings)¶
Set list of Pydantic settings.
- set_strict(strict)¶
Set strict flag.
- set_yaml_files(files)¶
Set list of YAML files.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- update(value)¶
Set configuration options.
Deprecated since version 3.11: Use
Configuration.override()instead.- Parameters:
value (object | dict) – Value of configuration option.
- Return type:
None
- class dependency_injector.providers.ConfigurationOption¶
Bases:
ProviderChild configuration option provider.
This provider should not be used directly. It is a part of the
Configurationprovider.- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- from_dict(options, required=<object object>)¶
Load configuration from the dictionary.
Loaded configuration is merged recursively over existing configuration.
- Parameters:
options (dict) – Configuration options.
required (bool) – When required is True, raise an exception if dictionary is empty.
- Return type:
None
- from_env(name, default=<object object>, required=<object object>, as_=<object object>)¶
Load configuration value from the environment variable.
- Parameters:
name (str) – Name of the environment variable.
default (object) – Default value that is used if environment variable does not exist.
required (bool) – When required is True, raise an exception if environment variable is undefined.
as (object) – Callable used for type casting (int, float, etc).
- Return type:
None
- from_ini(filepath, required=<object object>, envs_required=<object object>)¶
Load configuration from the ini file.
Loaded configuration is merged recursively over existing configuration.
- Parameters:
filepath (str) – Path to the configuration file.
required (bool) – When required is True, raise an exception if file does not exist.
envs_required (bool) – When True, raises an error on undefined environment variable.
- Return type:
None
- from_json(filepath, required=<object object>, envs_required=<object object>)¶
Load configuration from a json file.
Loaded configuration is merged recursively over the existing configuration.
- Parameters:
filepath (str) – Path to a configuration file.
required (bool) – When required is True, raise an exception if file does not exist.
envs_required (bool) – When True, raises an exception on undefined environment variable.
- Return type:
None
- from_pydantic(settings, required=<object object>, **kwargs)¶
Load configuration from pydantic settings.
Loaded configuration is merged recursively over existing configuration.
- Parameters:
settings (
pydantic.BaseSettings(pydantic v1) orpydantic_settings.BaseSettings(pydantic v2 and onwards)) – Pydantic settings instances.required (bool) – When required is True, raise an exception if settings dict is empty.
kwargs (Dict[Any, Any]) – Keyword arguments forwarded to
pydantic.BaseSettings.dict()orpydantic_settings.BaseSettings.model_dump()call (based on pydantic version).
- Return type:
None
- from_value(value)¶
Load configuration value.
- Parameters:
value (object) – Configuration value
- Return type:
None
- from_yaml(filepath, required=<object object>, loader=None, envs_required=<object object>)¶
Load configuration from the yaml file.
Loaded configuration is merged recursively over existing configuration.
- Parameters:
filepath (str) – Path to the configuration file.
required (bool) – When required is True, raise an exception if file does not exist.
loader (
yaml.Loader) – YAML loader,YamlLoaderis used if not specified.envs_required (bool) – When True, raises an error on undefined environment variable.
- Return type:
None
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(value)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- update(value)¶
Set configuration options.
Deprecated since version 3.11: Use
Configuration.override()instead.- Parameters:
value (object | dict) – Value of configuration option.
- Return type:
None
- class dependency_injector.providers.Container¶
Bases:
ProviderContainer provider provides an instance of declarative container.
Warning
Provider is experimental. Its interface may change.
- apply_overridings()¶
Apply container overriding.
This method should not be called directly. It is called on declarative container initialization.
- assign_parent(parent)¶
Assign parent.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- overrides¶
Return providers that are overridden by the current provider.
- parent¶
Return parent.
- parent_name¶
Return parent name.
- provided¶
Return
ProvidedInstanceprovider.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- resolve_provider_name(provider)¶
Try to resolve provider name.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.ContextLocalSingleton¶
Bases:
BaseSingletonContext-local singleton provides single objects in scope of a context.
- provided_type¶
If provided type is defined, provider checks that providing class is its subclass.
- Type:
type | None
- cls
Class that provides object. Alias for
provides.- type:
type
- add_args(*args)¶
Add __init__ positional argument injections.
- Returns:
Reference
self
- add_attributes(**kwargs)¶
Add attribute injections.
- Returns:
Reference
self
- add_kwargs(**kwargs)¶
Add __init__ keyword argument injections.
- Returns:
Reference
self
- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- attributes¶
Return attribute injections.
- clear_args()¶
Drop __init__ positional argument injections.
- Returns:
Reference
self
- clear_attributes()¶
Drop attribute injections.
- Returns:
Reference
self
- clear_kwargs()¶
Drop __init__ keyword argument injections.
- Returns:
Reference
self
- cls¶
Return provided type.
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- full_reset()¶
Reset cached instance in current and all underlying singletons, if any.
- Return type:
SingletonFullResetContext
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset()¶
Reset cached instance, if any.
- Return type:
None
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set __init__ positional argument injections.
Existing __init__ positional argument injections are dropped.
- Returns:
Reference
self
- set_attributes(**kwargs)¶
Set attribute injections.
Existing attribute injections are dropped.
- Returns:
Reference
self
- set_kwargs(**kwargs)¶
Set __init__ keyword argument injections.
Existing __init__ keyword argument injections are dropped.
- Returns:
Reference
self
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.Coroutine¶
Bases:
CallableCoroutine provider creates wrapped coroutine on every call.
Coroutine supports positional and keyword argument injections:
some_coroutine = Coroutine(some_coroutine, "positional_arg1", "positional_arg2", keyword_argument1=3, keyword_argument=4) # or some_coroutine = Coroutine(some_coroutine) \ .add_args("positional_arg1", "positional_arg2") \ .add_kwargs(keyword_argument1=3, keyword_argument=4) # or some_coroutine = Coroutine(some_coroutine) some_coroutine.add_args("positional_arg1", "positional_arg2") some_coroutine.add_kwargs(keyword_argument1=3, keyword_argument=4)
- add_args(*args)¶
Add positional argument injections.
- Returns:
Reference
self
- add_kwargs(**kwargs)¶
Add keyword argument injections.
- Returns:
Reference
self
- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- clear_args()¶
Drop positional argument injections.
- Returns:
Reference
self
- clear_kwargs()¶
Drop keyword argument injections.
- Returns:
Reference
self
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set positional argument injections.
Existing positional argument injections are dropped.
- Returns:
Reference
self
- set_kwargs(**kwargs)¶
Set keyword argument injections.
Existing keyword argument injections are dropped.
- Returns:
Reference
self
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.CoroutineDelegate¶
Bases:
DelegateCoroutine delegate injects delegating coroutine “as is”.
- provides¶
Value that have to be provided.
- Type:
object
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.Delegate¶
Bases:
ProviderDelegate provider returns provider “as is”.
- provides¶
Value that have to be provided.
- Type:
object
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.DelegatedCallable¶
Bases:
CallableCallable that is injected “as is”.
DelegatedCallable is a
Callable, that is injected “as is”.- add_args(*args)¶
Add positional argument injections.
- Returns:
Reference
self
- add_kwargs(**kwargs)¶
Add keyword argument injections.
- Returns:
Reference
self
- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- clear_args()¶
Drop positional argument injections.
- Returns:
Reference
self
- clear_kwargs()¶
Drop keyword argument injections.
- Returns:
Reference
self
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set positional argument injections.
Existing positional argument injections are dropped.
- Returns:
Reference
self
- set_kwargs(**kwargs)¶
Set keyword argument injections.
Existing keyword argument injections are dropped.
- Returns:
Reference
self
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.DelegatedCoroutine¶
Bases:
CoroutineCoroutine provider that is injected “as is”.
DelegatedCoroutine is a
Coroutine, that is injected “as is”.- add_args(*args)¶
Add positional argument injections.
- Returns:
Reference
self
- add_kwargs(**kwargs)¶
Add keyword argument injections.
- Returns:
Reference
self
- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- clear_args()¶
Drop positional argument injections.
- Returns:
Reference
self
- clear_kwargs()¶
Drop keyword argument injections.
- Returns:
Reference
self
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set positional argument injections.
Existing positional argument injections are dropped.
- Returns:
Reference
self
- set_kwargs(**kwargs)¶
Set keyword argument injections.
Existing keyword argument injections are dropped.
- Returns:
Reference
self
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.DelegatedFactory¶
Bases:
FactoryFactory that is injected “as is”.
- provided_type¶
If provided type is defined, provider checks that providing class is its subclass.
- Type:
type | None
- cls
Class that provides object. Alias for
provides.- type:
type
- add_args(*args)¶
Add __init__ positional argument injections.
- Returns:
Reference
self
- add_attributes(**kwargs)¶
Add attribute injections.
- Returns:
Reference
self
- add_kwargs(**kwargs)¶
Add __init__ keyword argument injections.
- Returns:
Reference
self
- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- attributes¶
Return attribute injections.
- clear_args()¶
Drop __init__ positional argument injections.
- Returns:
Reference
self
- clear_attributes()¶
Drop attribute injections.
- Returns:
Reference
self
- clear_kwargs()¶
Drop __init__ keyword argument injections.
- Returns:
Reference
self
- cls¶
Return provided type.
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set __init__ positional argument injections.
Existing __init__ positional argument injections are dropped.
- Returns:
Reference
self
- set_attributes(**kwargs)¶
Set attribute injections.
Existing attribute injections are dropped.
- Returns:
Reference
self
- set_kwargs(**kwargs)¶
Set __init__ keyword argument injections.
Existing __init__ keyword argument injections are dropped.
- Returns:
Reference
self
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.DelegatedSingleton¶
Bases:
SingletonDelegated singleton is injected “as is”.
- provided_type¶
If provided type is defined, provider checks that providing class is its subclass.
- Type:
type | None
- cls
Class that provides object. Alias for
provides.- type:
type
- add_args(*args)¶
Add __init__ positional argument injections.
- Returns:
Reference
self
- add_attributes(**kwargs)¶
Add attribute injections.
- Returns:
Reference
self
- add_kwargs(**kwargs)¶
Add __init__ keyword argument injections.
- Returns:
Reference
self
- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- attributes¶
Return attribute injections.
- clear_args()¶
Drop __init__ positional argument injections.
- Returns:
Reference
self
- clear_attributes()¶
Drop attribute injections.
- Returns:
Reference
self
- clear_kwargs()¶
Drop __init__ keyword argument injections.
- Returns:
Reference
self
- cls¶
Return provided type.
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- full_reset()¶
Reset cached instance in current and all underlying singletons, if any.
- Return type:
SingletonFullResetContext
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset()¶
Reset cached instance, if any.
- Return type:
None
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set __init__ positional argument injections.
Existing __init__ positional argument injections are dropped.
- Returns:
Reference
self
- set_attributes(**kwargs)¶
Set attribute injections.
Existing attribute injections are dropped.
- Returns:
Reference
self
- set_kwargs(**kwargs)¶
Set __init__ keyword argument injections.
Existing __init__ keyword argument injections are dropped.
- Returns:
Reference
self
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.DelegatedThreadLocalSingleton¶
Bases:
ThreadLocalSingletonDelegated thread-local singleton is injected “as is”.
- provided_type¶
If provided type is defined, provider checks that providing class is its subclass.
- Type:
type | None
- cls
Class that provides object. Alias for
provides.- type:
type
- add_args(*args)¶
Add __init__ positional argument injections.
- Returns:
Reference
self
- add_attributes(**kwargs)¶
Add attribute injections.
- Returns:
Reference
self
- add_kwargs(**kwargs)¶
Add __init__ keyword argument injections.
- Returns:
Reference
self
- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- attributes¶
Return attribute injections.
- clear_args()¶
Drop __init__ positional argument injections.
- Returns:
Reference
self
- clear_attributes()¶
Drop attribute injections.
- Returns:
Reference
self
- clear_kwargs()¶
Drop __init__ keyword argument injections.
- Returns:
Reference
self
- cls¶
Return provided type.
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- full_reset()¶
Reset cached instance in current and all underlying singletons, if any.
- Return type:
SingletonFullResetContext
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset()¶
Reset cached instance, if any.
- Return type:
None
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set __init__ positional argument injections.
Existing __init__ positional argument injections are dropped.
- Returns:
Reference
self
- set_attributes(**kwargs)¶
Set attribute injections.
Existing attribute injections are dropped.
- Returns:
Reference
self
- set_kwargs(**kwargs)¶
Set __init__ keyword argument injections.
Existing __init__ keyword argument injections are dropped.
- Returns:
Reference
self
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.DelegatedThreadSafeSingleton¶
Bases:
ThreadSafeSingletonDelegated thread-safe singleton is injected “as is”.
- provided_type¶
If provided type is defined, provider checks that providing class is its subclass.
- Type:
type | None
- cls
Class that provides object. Alias for
provides.- type:
type
- add_args(*args)¶
Add __init__ positional argument injections.
- Returns:
Reference
self
- add_attributes(**kwargs)¶
Add attribute injections.
- Returns:
Reference
self
- add_kwargs(**kwargs)¶
Add __init__ keyword argument injections.
- Returns:
Reference
self
- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- attributes¶
Return attribute injections.
- clear_args()¶
Drop __init__ positional argument injections.
- Returns:
Reference
self
- clear_attributes()¶
Drop attribute injections.
- Returns:
Reference
self
- clear_kwargs()¶
Drop __init__ keyword argument injections.
- Returns:
Reference
self
- cls¶
Return provided type.
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- full_reset()¶
Reset cached instance in current and all underlying singletons, if any.
- Return type:
SingletonFullResetContext
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset()¶
Reset cached instance, if any.
- Return type:
None
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set __init__ positional argument injections.
Existing __init__ positional argument injections are dropped.
- Returns:
Reference
self
- set_attributes(**kwargs)¶
Set attribute injections.
Existing attribute injections are dropped.
- Returns:
Reference
self
- set_kwargs(**kwargs)¶
Set __init__ keyword argument injections.
Existing __init__ keyword argument injections are dropped.
- Returns:
Reference
self
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.DependenciesContainer¶
Bases:
ObjectDependenciesContainerprovider provides set of dependencies.Dependencies container provider is used to implement late static binding for a set of providers of a particular container.
Example code:
class Adapters(containers.DeclarativeContainer): email_sender = providers.Singleton(SmtpEmailSender) class TestAdapters(containers.DeclarativeContainer): email_sender = providers.Singleton(EchoEmailSender) class UseCases(containers.DeclarativeContainer): adapters = providers.DependenciesContainer() signup = providers.Factory(SignupUseCase, email_sender=adapters.email_sender) use_cases = UseCases(adapters=Adapters) # or use_cases = UseCases(adapters=TestAdapters) # Another file from .containers import use_cases use_case = use_cases.signup() use_case.execute()
- assign_parent(parent)¶
Assign parent.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- parent¶
Return parent.
- parent_name¶
Return parent name.
- provided¶
Return
ProvidedInstanceprovider.
- providers¶
Read-only dictionary of dependency providers.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- resolve_provider_name(provider)¶
Try to resolve provider name.
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.Dependency¶
Bases:
ProviderDependencyprovider describes dependency interface.This provider is used for description of dependency interface. That might be useful when dependency could be provided in the client”s code only, but its interface is known. Such situations could happen when required dependency has non-deterministic list of dependencies itself.
database_provider = Dependency(sqlite3.dbapi2.Connection) database_provider.override(Factory(sqlite3.connect, ":memory:")) database = database_provider()
- instance_of
Class of required dependency.
- type:
type
- assign_parent(parent)¶
Assign parent.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- default¶
Return default provider.
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- instance_of¶
Return type.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- is_defined¶
Return True if dependency is defined.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- parent¶
Return parent.
- parent_name¶
Return parent name.
- provided¶
Return
ProvidedInstanceprovider.
- provided_by(provider)¶
Set external dependency provider.
- Parameters:
provider (
Provider) – Provider that provides required dependency.- Return type:
None
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_default(default)¶
Set type.
- set_instance_of(instance_of)¶
Set type.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.Dict¶
Bases:
ProviderDict provider provides a dictionary of values.
Dictprovider is needed for injecting a dictionary of dependencies. It handles keyword argument injections the same way asFactoryprovider.Positional argument injections are not supported.
dispatcher_factory = Factory( Dispatcher, modules=Dict( module1=Factory(ModuleA, dependency_a), module2=Factory(ModuleB, dependency_b), ), ) dispatcher = dispatcher_factory() # is equivalent to: dispatcher = Dispatcher( modules={ "module1": ModuleA(dependency_a), "module2": ModuleB(dependency_b), }, )
- add_kwargs(dict_=None, **kwargs)¶
Add keyword argument injections.
- Returns:
Reference
self
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- clear_kwargs()¶
Drop keyword argument injections.
- Returns:
Reference
self
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_kwargs(dict_=None, **kwargs)¶
Set keyword argument injections.
Existing keyword argument injections are dropped.
- Returns:
Reference
self
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.ExternalDependency¶
Bases:
DependencyExternalDependencyprovider describes dependency interface.This provider is used for description of dependency interface. That might be useful when dependency could be provided in the client code only, but its interface is known. Such situations could happen when required dependency has non-deterministic list of dependencies itself.
database_provider = ExternalDependency(sqlite3.dbapi2.Connection) database_provider.override(Factory(sqlite3.connect, ":memory:")) database = database_provider()
Deprecated since version 3.9: Use
Dependencyinstead.- instance_of
Class of required dependency.
- type:
type
- assign_parent(parent)¶
Assign parent.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- default¶
Return default provider.
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- instance_of¶
Return type.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- is_defined¶
Return True if dependency is defined.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- parent¶
Return parent.
- parent_name¶
Return parent name.
- provided¶
Return
ProvidedInstanceprovider.
- provided_by(provider)¶
Set external dependency provider.
- Parameters:
provider (
Provider) – Provider that provides required dependency.- Return type:
None
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_default(default)¶
Set type.
- set_instance_of(instance_of)¶
Set type.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.Factory¶
Bases:
ProviderFactory provider creates new instance on every call.
Factorysupports positional & keyword argument injections, as well as attribute injections.Positional and keyword argument injections could be defined like this:
factory = Factory(SomeClass, "positional_arg1", "positional_arg2", keyword_argument1=3, keyword_argument=4) # or factory = Factory(SomeClass) \ .add_args("positional_arg1", "positional_arg2") \ .add_kwargs(keyword_argument1=3, keyword_argument=4) # or factory = Factory(SomeClass) factory.add_args("positional_arg1", "positional_arg2") factory.add_kwargs(keyword_argument1=3, keyword_argument=4)
Attribute injections are defined by using
Factory.add_attributes():factory = Factory(SomeClass) \ .add_attributes(attribute1=1, attribute2=2)
Retrieving of provided instance can be performed via calling
Factoryobject:factory = Factory(SomeClass) some_object = factory()
- provided_type¶
If provided type is defined, provider checks that providing class is its subclass.
- Type:
type | None
- add_args(*args)¶
Add __init__ positional argument injections.
- Returns:
Reference
self
- add_attributes(**kwargs)¶
Add attribute injections.
- Returns:
Reference
self
- add_kwargs(**kwargs)¶
Add __init__ keyword argument injections.
- Returns:
Reference
self
- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- attributes¶
Return attribute injections.
- clear_args()¶
Drop __init__ positional argument injections.
- Returns:
Reference
self
- clear_attributes()¶
Drop attribute injections.
- Returns:
Reference
self
- clear_kwargs()¶
Drop __init__ keyword argument injections.
- Returns:
Reference
self
- cls¶
Return provided type.
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set __init__ positional argument injections.
Existing __init__ positional argument injections are dropped.
- Returns:
Reference
self
- set_attributes(**kwargs)¶
Set attribute injections.
Existing attribute injections are dropped.
- Returns:
Reference
self
- set_kwargs(**kwargs)¶
Set __init__ keyword argument injections.
Existing __init__ keyword argument injections are dropped.
- Returns:
Reference
self
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.FactoryAggregate¶
Bases:
AggregateFactory providers aggregate.
FactoryAggregateis an aggregate ofFactoryproviders.FactoryAggregateis a delegated provider, meaning that it is injected “as is”.All aggregated providers can be retrieved as a read-only dictionary
FactoryAggregate.providersor as an attribute ofFactoryAggregate.- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- factories¶
Return dictionary of factories, read-only.
Alias for
.providers()attribute.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(_)¶
Override provider with another provider.
- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- providers¶
Return dictionary of providers, read-only.
Alias for
.factoriesattribute.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_factories(factory_dict=None, **factory_kwargs)¶
Set factories.
Alias for
.set_providers()method.
- set_providers(provider_dict=None, **provider_kwargs)¶
Set providers.
Alias for
.set_factories()method.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.FactoryDelegate¶
Bases:
DelegateFactory delegate injects delegating factory “as is”.
- provides¶
Value that have to be provided.
- Type:
object
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.Injection¶
Bases:
objectAbstract injection class.
- class dependency_injector.providers.ItemGetter¶
Bases:
ProviderProvider that returns the item of the injected instance.
You should not create this provider directly. See
ProvidedInstanceinstead.- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- name¶
Return name of the item.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider”s provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_name(name)¶
Set name of the item.
- set_provides(provides)¶
Set provider”s provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.List¶
Bases:
ProviderList provider provides a list of values.
Listprovider is needed for injecting a list of dependencies. It handles positional argument injections the same way asFactoryprovider.Keyword argument injections are not supported.
dispatcher_factory = Factory( Dispatcher, modules=List( Factory(ModuleA, dependency_a), Factory(ModuleB, dependency_b), ), ) dispatcher = dispatcher_factory() # is equivalent to: dispatcher = Dispatcher( modules=[ ModuleA(dependency_a), ModuleB(dependency_b), ], )
- add_args(*args)¶
Add positional argument injections.
- Returns:
Reference
self
- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- clear_args()¶
Drop positional argument injections.
- Returns:
Reference
self
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set positional argument injections.
Existing positional argument injections are dropped.
- Returns:
Reference
self
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.MethodCaller¶
Bases:
ProviderProvider that calls the method of the injected instance.
You should not create this provider directly. See
ProvidedInstanceinstead.- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set positional argument injections.
Existing positional argument injections are dropped.
- Returns:
Reference
self
- set_kwargs(**kwargs)¶
Set keyword argument injections.
Existing keyword argument injections are dropped.
- Returns:
Reference
self
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.NamedInjection¶
Bases:
InjectionKeyword injection class.
- get_name()¶
Return injection name.
- get_original_value()¶
Return original value.
- get_value()¶
Return injection value.
- set(value)¶
Set injection.
- set_name(name)¶
Set injection name.
- class dependency_injector.providers.Object¶
Bases:
ProviderObject provider returns provided instance “as is”.
- provides¶
Value that have to be provided.
- Type:
object
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.OverridingContext¶
Bases:
objectProvider overriding context.
OverridingContextis used byProvider.override()for implementingwithcontexts. WhenOverridingContextis closed, overriding that was created in this context is dropped also.with provider.override(another_provider): assert provider.overridden assert not provider.overridden
- class dependency_injector.providers.PositionalInjection¶
Bases:
InjectionPositional injection class.
- get_original_value()¶
Return original value.
- get_value()¶
Return injection value.
- set(value)¶
Set injection.
- class dependency_injector.providers.ProvidedInstance¶
Bases:
ProviderProvider that helps to inject attributes and items of the injected instance.
You can use it like that:
service = providers.Singleton(Service) client_factory = providers.Factory( Client, value1=service.provided[0], value2=service.provided.value, value3=service.provided.values[0], value4=service.provided.get_value.call(), )
You should not create this provider directly. Get it from the
.providedattribute of the injected provider. This attribute returns theProvidedInstancefor that provider.Providers that have
.providedattribute:- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.Provider¶
Bases:
objectBase provider class.
Provideris callable (implements__call__method). Every call to provider object returns provided result, according to the providing strategy of particular provider. Thiscallablefunctionality is a regular part of providers API and it should be the same for all provider subclasses.Implementation of particular providing strategy should be done in
Provider._provide()ofProvidersubclass. Current method is called every time when not overridden provider is called.Providerimplements provider overriding logic that should be also common for all providers:provider1 = Factory(SomeClass) provider2 = Factory(ChildSomeClass) provider1.override(provider2) some_instance = provider1() assert isinstance(some_instance, ChildSomeClass)
Also
Providerimplements helper function for creating its delegates:provider = Factory(object) delegate = provider.delegate() delegated = delegate() assert provider is delegated
All providers should extend this class.
- overridden
Tuple of overriding providers, if any.
- type:
tuple[
Provider] | None
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.Resource¶
Bases:
ProviderResource provider provides a component with initialization and shutdown.
- add_args(*args)¶
Add positional argument injections.
- Returns:
Reference
self
- add_kwargs(**kwargs)¶
Add keyword argument injections.
- Returns:
Reference
self
- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- clear_args()¶
Drop positional argument injections.
- Returns:
Reference
self
- clear_kwargs()¶
Drop keyword argument injections.
- Returns:
Reference
self
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- init()¶
Initialize resource.
- initialized¶
Check if resource is initialized.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set positional argument injections.
Existing positional argument injections are dropped.
- Returns:
Reference
self
- set_kwargs(**kwargs)¶
Set keyword argument injections.
Existing keyword argument injections are dropped.
- Returns:
Reference
self
- set_provides(provides)¶
Set provider provides.
- shutdown()¶
Shutdown resource.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.Selector¶
Bases:
ProviderSelector provider selects provider based on the configuration value or other callable.
Selectorprovider has a callable calledselectorand a dictionary of providers.The
selectorcallable is provided as a first positional argument. It can beConfigurationprovider or any other callable. It has to return a string value. That value is used as a key for selecting the provider from the dictionary of providers.The providers are provided as keyword arguments. Argument name is used as a key for selecting the provider.
config = Configuration() selector = Selector( config.one_or_another, one=providers.Factory(SomeClass), another=providers.Factory(SomeOtherClass), ) config.override({"one_or_another": "one"}) instance_1 = selector() assert isinstance(instance_1, SomeClass) config.override({"one_or_another": "another"}) instance_2 = selector() assert isinstance(instance_2, SomeOtherClass)
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- providers¶
Return providers.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- selector¶
Return selector.
- set_selector(selector)¶
Set selector.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.Self¶
Bases:
ProviderSelf provider returns own container.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.Singleton¶
Bases:
BaseSingletonSingleton provider returns same instance on every call.
Singletonprovider creates instance once and returns it on every call.SingletonextendsFactory, so, please followFactorydocumentation for getting familiar with injections syntax.Retrieving of provided instance can be performed via calling
Singletonobject:singleton = Singleton(SomeClass) some_object = singleton()
- provided_type¶
If provided type is defined, provider checks that providing class is its subclass.
- Type:
type | None
- cls
Class that provides object. Alias for
provides.- type:
type
- add_args(*args)¶
Add __init__ positional argument injections.
- Returns:
Reference
self
- add_attributes(**kwargs)¶
Add attribute injections.
- Returns:
Reference
self
- add_kwargs(**kwargs)¶
Add __init__ keyword argument injections.
- Returns:
Reference
self
- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- attributes¶
Return attribute injections.
- clear_args()¶
Drop __init__ positional argument injections.
- Returns:
Reference
self
- clear_attributes()¶
Drop attribute injections.
- Returns:
Reference
self
- clear_kwargs()¶
Drop __init__ keyword argument injections.
- Returns:
Reference
self
- cls¶
Return provided type.
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- full_reset()¶
Reset cached instance in current and all underlying singletons, if any.
- Return type:
SingletonFullResetContext
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset()¶
Reset cached instance, if any.
- Return type:
None
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set __init__ positional argument injections.
Existing __init__ positional argument injections are dropped.
- Returns:
Reference
self
- set_attributes(**kwargs)¶
Set attribute injections.
Existing attribute injections are dropped.
- Returns:
Reference
self
- set_kwargs(**kwargs)¶
Set __init__ keyword argument injections.
Existing __init__ keyword argument injections are dropped.
- Returns:
Reference
self
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.SingletonDelegate¶
Bases:
DelegateSingleton delegate injects delegating singleton “as is”.
- provides¶
Value that have to be provided.
- Type:
object
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.ThreadLocalSingleton¶
Bases:
BaseSingletonThread-local singleton provides single objects in scope of thread.
- provided_type¶
If provided type is defined, provider checks that providing class is its subclass.
- Type:
type | None
- cls
Class that provides object. Alias for
provides.- type:
type
- add_args(*args)¶
Add __init__ positional argument injections.
- Returns:
Reference
self
- add_attributes(**kwargs)¶
Add attribute injections.
- Returns:
Reference
self
- add_kwargs(**kwargs)¶
Add __init__ keyword argument injections.
- Returns:
Reference
self
- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- attributes¶
Return attribute injections.
- clear_args()¶
Drop __init__ positional argument injections.
- Returns:
Reference
self
- clear_attributes()¶
Drop attribute injections.
- Returns:
Reference
self
- clear_kwargs()¶
Drop __init__ keyword argument injections.
- Returns:
Reference
self
- cls¶
Return provided type.
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- full_reset()¶
Reset cached instance in current and all underlying singletons, if any.
- Return type:
SingletonFullResetContext
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset()¶
Reset cached instance, if any.
- Return type:
None
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set __init__ positional argument injections.
Existing __init__ positional argument injections are dropped.
- Returns:
Reference
self
- set_attributes(**kwargs)¶
Set attribute injections.
Existing attribute injections are dropped.
- Returns:
Reference
self
- set_kwargs(**kwargs)¶
Set __init__ keyword argument injections.
Existing __init__ keyword argument injections are dropped.
- Returns:
Reference
self
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.ThreadSafeSingleton¶
Bases:
BaseSingletonThread-safe singleton provider.
- add_args(*args)¶
Add __init__ positional argument injections.
- Returns:
Reference
self
- add_attributes(**kwargs)¶
Add attribute injections.
- Returns:
Reference
self
- add_kwargs(**kwargs)¶
Add __init__ keyword argument injections.
- Returns:
Reference
self
- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- attributes¶
Return attribute injections.
- clear_args()¶
Drop __init__ positional argument injections.
- Returns:
Reference
self
- clear_attributes()¶
Drop attribute injections.
- Returns:
Reference
self
- clear_kwargs()¶
Drop __init__ keyword argument injections.
- Returns:
Reference
self
- cls¶
Return provided type.
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- full_reset()¶
Reset cached instance in current and all underlying singletons, if any.
- Return type:
SingletonFullResetContext
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset()¶
Reset cached instance, if any.
- Return type:
None
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set __init__ positional argument injections.
Existing __init__ positional argument injections are dropped.
- Returns:
Reference
self
- set_attributes(**kwargs)¶
Set attribute injections.
Existing attribute injections are dropped.
- Returns:
Reference
self
- set_kwargs(**kwargs)¶
Set __init__ keyword argument injections.
Existing __init__ keyword argument injections are dropped.
- Returns:
Reference
self
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.TypedConfigurationOption¶
Bases:
Callable- add_args(*args)¶
Add positional argument injections.
- Returns:
Reference
self
- add_kwargs(**kwargs)¶
Add keyword argument injections.
- Returns:
Reference
self
- args¶
Return positional argument injections.
- async_(*args, **kwargs)¶
Return provided object asynchronously.
This method is a synonym of __call__(). It provides typing stubs for correct type checking with await expression:
database_provider: Provider[DatabaseConnection] = Resource(init_db_async) async def main(): db: DatabaseConnection = await database_provider.async_() ...
- clear_args()¶
Drop positional argument injections.
- Returns:
Reference
self
- clear_kwargs()¶
Drop keyword argument injections.
- Returns:
Reference
self
- disable_async_mode()¶
Disable async mode.
- enable_async_mode()¶
Enable async mode.
- is_async_mode_disabled()¶
Check if async mode is disabled.
- is_async_mode_enabled()¶
Check if async mode is enabled.
- is_async_mode_undefined()¶
Check if async mode is undefined.
- kwargs¶
Return keyword argument injections.
- last_overriding¶
Return last overriding provider.
If provider is not overridden, then None is returned.
- overridden¶
Return tuple of overriding providers.
- override(provider)¶
Override provider with another provider.
- Parameters:
provider (
Provider) – Overriding provider.- Raise:
- Returns:
Overriding context.
- Return type:
- overrides¶
Return providers that are overridden by the current provider.
- provided¶
Return
ProvidedInstanceprovider.
- provides¶
Return provider provides.
- register_overrides(provider)¶
Register provider that overrides current provider.
Return related providers generator.
- reset_async_mode()¶
Reset async mode.
Provider will automatically set the mode on the next call.
- reset_last_overriding()¶
Reset last overriding provider.
- Raise:
dependency_injector.errors.Errorif provider is not overridden.- Return type:
None
- reset_override()¶
Reset all overriding providers.
- Return type:
None
- set_args(*args)¶
Set positional argument injections.
Existing positional argument injections are dropped.
- Returns:
Reference
self
- set_kwargs(**kwargs)¶
Set keyword argument injections.
Existing keyword argument injections are dropped.
- Returns:
Reference
self
- set_provides(provides)¶
Set provider provides.
- traverse(types=None)¶
Return providers traversal generator.
- unregister_overrides(provider)¶
Unregister provider that overrides current provider.
- class dependency_injector.providers.YamlLoader(stream)¶
Bases:
SafeLoaderYAML loader.
This loader mimics
yaml.SafeLoader.- check_state_key(key)¶
Block special attributes/methods from being set in a newly created object, to prevent user-controlled methods from being called during deserialization
- dependency_injector.providers.deepcopy(instance, memo=None)¶
Return full copy of provider or container with providers.
- dependency_injector.providers.deepcopy_args(provider, args, memo=None)¶
A wrapper for deepcopy for positional arguments.
Used to improve debugability of objects that cannot be deep-copied.
- dependency_injector.providers.deepcopy_kwargs(provider, kwargs, memo=None)¶
A wrapper for deepcopy for keyword arguments.
Used to improve debugability of objects that cannot be deep-copied.
- dependency_injector.providers.ensure_is_provider(instance)¶
Check if instance is provider instance and return it.
- Parameters:
instance (object) – Instance to be checked.
- Raise:
dependency_injector.errors.Errorif provided instance is not provider.- Return type:
- dependency_injector.providers.is_container_class(instance)¶
Check if instance is container class.
- Parameters:
instance (object) – Instance to be checked.
- Return type:
bool
- dependency_injector.providers.is_container_instance(instance)¶
Check if instance is container instance.
- Parameters:
instance (object) – Instance to be checked.
- Return type:
bool
- dependency_injector.providers.is_delegated(instance)¶
Check if instance is delegated provider.
- Parameters:
instance (object) – Instance to be checked.
- Return type:
bool
- dependency_injector.providers.is_provider(instance)¶
Check if instance is provider instance.
- Parameters:
instance (object) – Instance to be checked.
- Return type:
bool
- dependency_injector.providers.isawaitable(obj)¶
Check if object is a coroutine function.
- dependency_injector.providers.iscoroutinefunction(obj)¶
Check if object is a coroutine function.
- dependency_injector.providers.merge_dicts(dict1, dict2)¶
Merge dictionaries recursively.
- Parameters:
dict1 (dict) – Dictionary 1
dict2 (dict) – Dictionary 2
- Returns:
New resulting dictionary
- Return type:
dict
- dependency_injector.providers.parse_named_injections(kwargs)¶
Parse named injections.
- dependency_injector.providers.parse_positional_injections(args)¶
Parse positional injections.
- dependency_injector.providers.represent_provider(provider, provides)¶
Return string representation of provider.
- Parameters:
provider (object) – Provider object
provides – Object that provider provides
- Returns:
String representation of provider
- Return type:
str
- dependency_injector.providers.traverse(*providers, types=None)¶
Return providers traversal generator.