diff --git a/docs/wiring.rst b/docs/wiring.rst index 58deeae5..239f1fd5 100644 --- a/docs/wiring.rst +++ b/docs/wiring.rst @@ -95,17 +95,17 @@ Also you can use ``Provide`` marker to inject a container. .. literalinclude:: ../examples/wiring/example_container.py :language: python - :emphasize-lines: 16-19 + :emphasize-lines: 14-17 :lines: 3- -Strings identifiers -------------------- +String identifiers +------------------ You can use wiring with string identifiers. String identifier should match provider name in the container: .. literalinclude:: ../examples/wiring/example_string_id.py :language: python - :emphasize-lines: 17 + :emphasize-lines: 15 :lines: 3- With string identifiers you don't need to use a container to specify an injection. @@ -183,19 +183,19 @@ You can use wiring to make injections into modules and class attributes. .. literalinclude:: ../examples/wiring/example_attribute.py :language: python :lines: 3- - :emphasize-lines: 16,21 + :emphasize-lines: 14,19 You could also use string identifiers to avoid a dependency on a container: .. code-block:: python :emphasize-lines: 1,6 - service: Service = Provide['service'] + service: Service = Provide["service"] class Main: - service: Service = Provide['service'] + service: Service = Provide["service"] Wiring with modules and packages -------------------------------- @@ -233,7 +233,7 @@ When wiring is done functions and methods with the markers are patched to provid container = Container() - container.wire(modules=[sys.modules[__name__]]) + container.wire(modules=[__name__]) foo() # <--- Argument "bar" is injected @@ -267,7 +267,7 @@ You can use that in testing to re-create and re-wire a container before each tes def setUp(self): self.container = Container() - self.container.wire(modules=[module1, module2]) + self.container.wire(modules=["yourapp.module1", "yourapp.module2"]) self.addCleanup(self.container.unwire) .. code-block:: python @@ -278,7 +278,7 @@ You can use that in testing to re-create and re-wire a container before each tes @pytest.fixture def container(): container = Container() - container.wire(modules=[module1, module2]) + container.wire(modules=["yourapp.module1", "yourapp.module2"]) yield container container.unwire() @@ -402,11 +402,11 @@ This is useful when you import modules dynamically. from .containers import Container - if __name__ == '__main__': + if __name__ == "__main__": container = Container() register_loader_containers(container) # <--- installs import hook - module = importlib.import_module('package.module') + module = importlib.import_module("package.module") module.foo() You can register multiple containers in the import hook. For doing this call register function diff --git a/examples/wiring/example.py b/examples/wiring/example.py index c6edd74a..4221ab13 100644 --- a/examples/wiring/example.py +++ b/examples/wiring/example.py @@ -1,7 +1,7 @@ """Wiring example.""" from dependency_injector import containers, providers -from dependency_injector.wiring import inject, Provide +from dependency_injector.wiring import Provide, inject class Service: @@ -18,7 +18,7 @@ def main(service: Service = Provide[Container.service]) -> None: ... -if __name__ == '__main__': +if __name__ == "__main__": container = Container() container.wire(modules=[__name__]) diff --git a/examples/wiring/example_attribute.py b/examples/wiring/example_attribute.py index 9868ae66..3d703da4 100644 --- a/examples/wiring/example_attribute.py +++ b/examples/wiring/example_attribute.py @@ -1,7 +1,5 @@ """Wiring attribute example.""" -import sys - from dependency_injector import containers, providers from dependency_injector.wiring import Provide @@ -23,9 +21,9 @@ class Main: service: Service = Provide[Container.service] -if __name__ == '__main__': +if __name__ == "__main__": container = Container() - container.wire(modules=[sys.modules[__name__]]) + container.wire(modules=[__name__]) assert isinstance(service, Service) assert isinstance(Main.service, Service) diff --git a/examples/wiring/example_container.py b/examples/wiring/example_container.py index 71a56870..06011250 100644 --- a/examples/wiring/example_container.py +++ b/examples/wiring/example_container.py @@ -1,9 +1,7 @@ """Wiring container injection example.""" -import sys - from dependency_injector import containers, providers -from dependency_injector.wiring import inject, Provide +from dependency_injector.wiring import Provide, inject class Service: @@ -21,8 +19,8 @@ def main(container: Container = Provide[Container]): ... -if __name__ == '__main__': +if __name__ == "__main__": container = Container() - container.wire(modules=[sys.modules[__name__]]) + container.wire(modules=[__name__]) main() diff --git a/examples/wiring/example_string_id.py b/examples/wiring/example_string_id.py index c18fb4fb..a66b4666 100644 --- a/examples/wiring/example_string_id.py +++ b/examples/wiring/example_string_id.py @@ -1,9 +1,7 @@ """Wiring string id example.""" -import sys - from dependency_injector import containers, providers -from dependency_injector.wiring import inject, Provide +from dependency_injector.wiring import Provide, inject class Service: @@ -16,12 +14,12 @@ class Container(containers.DeclarativeContainer): @inject -def main(service: Service = Provide['service']) -> None: +def main(service: Service = Provide["service"]) -> None: ... -if __name__ == '__main__': +if __name__ == "__main__": container = Container() - container.wire(modules=[sys.modules[__name__]]) + container.wire(modules=[__name__]) main() diff --git a/examples/wiring/flask_example.py b/examples/wiring/flask_example.py index 033d0ee9..27457e16 100644 --- a/examples/wiring/flask_example.py +++ b/examples/wiring/flask_example.py @@ -1,9 +1,7 @@ """Flask wiring example.""" -import sys - from dependency_injector import containers, providers -from dependency_injector.wiring import inject, Provide +from dependency_injector.wiring import Provide, inject from flask import Flask, json @@ -18,13 +16,13 @@ class Container(containers.DeclarativeContainer): @inject def index_view(service: Service = Provide[Container.service]) -> str: - return json.dumps({'service_id': id(service)}) + return json.dumps({"service_id": id(service)}) -if __name__ == '__main__': +if __name__ == "__main__": container = Container() - container.wire(modules=[sys.modules[__name__]]) + container.wire(modules=[__name__]) app = Flask(__name__) - app.add_url_rule('/', 'index', index_view) + app.add_url_rule("/", "index", index_view) app.run() diff --git a/examples/wiring/flask_resource_closing.py b/examples/wiring/flask_resource_closing.py index 05b62c37..0efc6874 100644 --- a/examples/wiring/flask_resource_closing.py +++ b/examples/wiring/flask_resource_closing.py @@ -1,9 +1,7 @@ """`Resource` - Flask request scope example.""" -import sys - from dependency_injector import containers, providers -from dependency_injector.wiring import inject, Provide, Closing +from dependency_injector.wiring import Closing, Provide, inject from flask import Flask, current_app @@ -12,9 +10,9 @@ class Service: def init_service() -> Service: - print('Init service') + print("Init service") yield Service() - print('Shutdown service') + print("Shutdown service") class Container(containers.DeclarativeContainer): @@ -25,16 +23,16 @@ class Container(containers.DeclarativeContainer): @inject def index_view(service: Service = Closing[Provide[Container.service]]): assert service is current_app.container.service() - return 'Hello World!' + return "Hello World!" container = Container() -container.wire(modules=[sys.modules[__name__]]) +container.wire(modules=[__name__]) app = Flask(__name__) app.container = container -app.add_url_rule('/', 'index', view_func=index_view) +app.add_url_rule("/", "index", view_func=index_view) -if __name__ == '__main__': +if __name__ == "__main__": app.run()