diff --git a/README.rst b/README.rst index af647892..adc590d8 100644 --- a/README.rst +++ b/README.rst @@ -77,40 +77,40 @@ Key features of the ``Dependency Injector``: .. code-block:: python - from dependency_injector import containers, providers - from dependency_injector.wiring import Provide + from dependency_injector import containers, providers + from dependency_injector.wiring import Provide - class Container(containers.DeclarativeContainer): + class Container(containers.DeclarativeContainer): - config = providers.Configuration() + config = providers.Configuration() - api_client = providers.Singleton( - ApiClient, - api_key=config.api_key, - timeout=config.timeout.as_int(), - ) + api_client = providers.Singleton( + ApiClient, + api_key=config.api_key, + timeout=config.timeout.as_int(), + ) - service = providers.Factory( - Service, - api_client=api_client, - ) + service = providers.Factory( + Service, + api_client=api_client, + ) - def main(service: Service = Provide[Container.service]): - ... + def main(service: Service = Provide[Container.service]): + ... - if __name__ == '__main__': - container = Container() - container.config.api_key.from_env('API_KEY') - container.config.timeout.from_env('TIMEOUT') - container.wire(modules=[sys.modules[__name__]]) + if __name__ == '__main__': + container = Container() + container.config.api_key.from_env('API_KEY') + container.config.timeout.from_env('TIMEOUT') + container.wire(modules=[sys.modules[__name__]]) - main() # <-- dependency is injected automatically + main() # <-- dependency is injected automatically - with container.api_client.override(mock.Mock()): - main() # <-- overridden dependency is injected automatically + with container.api_client.override(mock.Mock()): + main() # <-- overridden dependency is injected automatically When you call ``main()`` function the ``Service`` dependency is assembled and injected automatically. diff --git a/docs/index.rst b/docs/index.rst index 1db8c7e8..06b9ebd5 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -85,40 +85,40 @@ Key features of the ``Dependency Injector``: .. code-block:: python - from dependency_injector import containers, providers - from dependency_injector.wiring import Provide + from dependency_injector import containers, providers + from dependency_injector.wiring import Provide - class Container(containers.DeclarativeContainer): + class Container(containers.DeclarativeContainer): - config = providers.Configuration() + config = providers.Configuration() - api_client = providers.Singleton( - ApiClient, - api_key=config.api_key, - timeout=config.timeout.as_int(), - ) + api_client = providers.Singleton( + ApiClient, + api_key=config.api_key, + timeout=config.timeout.as_int(), + ) - service = providers.Factory( - Service, - api_client=api_client, - ) + service = providers.Factory( + Service, + api_client=api_client, + ) - def main(service: Service = Provide[Container.service]): - ... + def main(service: Service = Provide[Container.service]): + ... - if __name__ == '__main__': - container = Container() - container.config.api_key.from_env('API_KEY') - container.config.timeout.from_env('TIMEOUT') - container.wire(modules=[sys.modules[__name__]]) + if __name__ == '__main__': + container = Container() + container.config.api_key.from_env('API_KEY') + container.config.timeout.from_env('TIMEOUT') + container.wire(modules=[sys.modules[__name__]]) - main() # <-- dependency is injected automatically + main() # <-- dependency is injected automatically - with container.api_client.override(mock.Mock()): - main() # <-- overridden dependency is injected automatically + with container.api_client.override(mock.Mock()): + main() # <-- overridden dependency is injected automatically With the ``Dependency Injector`` objects assembling is consolidated in the container. Dependency injections are defined explicitly.