From 07d4f7e74f3b935cb13c166bef572fc2259f87e5 Mon Sep 17 00:00:00 2001 From: Roman Mogylatov Date: Fri, 9 Oct 2020 15:16:27 -0400 Subject: [PATCH] Develop 4.0 (#298) * Add wiring (#294) * Add wiring module * Fix code style * Fix package test * Add version fix * Try spike for 3.6 * Try another fix with metaclass * Downsample required version to 3.6 * Introduce concept with annotations * Fix bugs * Add debug message * Add extra tests * Add extra debugging * Update config resolving * Remove 3.6 generic meta fix * Fix Flake8 * Add spike for 3.6 * Add Python 3.6 spike * Add unwire functionality * Add support of corouting functions * Bump version to 4.0 * Updaet demo example * Add pydocstyle ignore for demo * Add flake8 ignore for demo * Update aiohttp example * Update flask example * Rename aiohttp example directory * Rename views module to handlers in aiohttp example * Add sanic example * Remove not needed images * Update demo * Implement wiring for Provide[foo.provider] * Implement Provide[foo.provided.bar.baz.call()] * Make flake8 happy * Wiring refactoring (#296) * Refactor wiring * Add todos to wiring * Implement wiring of config invariant * Implement sub containers wiring + add tests * Add test for wiring config invariant * Add container.unwire() typing stub * Deprecate ext package modules and remove types module * Deprecate provider.delegate() method * Add __all__ for wiring module * Add protection for wiring only declarative container instances * Bump version to 4.0.0a2 * Add wiring docs * Add wiring of class methods * Remove unused import * Add a note on individuals import to wiring docs * Add minor improvement to wiring doc * Update DI in Python page * Update key features * Update README concep and FAQ * Add files via upload * Update README.rst * Update README.rst * Update README.rst * Update docs index page * Update README * Remove API docs for flask and aiohttp ext * Add wiring API docs * Update docs index * Update README * Update readme and docs index * Change wording in README * Django example (#297) * Add rough django example * Remove sqlite db * Add gitignore * Fix flake8 and pydocstyle errors * Add tests * Refactor settings * Move web app to to the root of the project * Add bootstrap 4 * Add doc blocks for web app * Add coverage * Fix typo in flask * Remove not needed newlines * Add screenshot * Update django app naming * Add django example to the docs * Update changelog * Update Aiohttp example * Add sanic example to the docs * Make a little fix in django example docs page * Add flask example to the docs * Add aiohttp example to the docs * Update installation docs page * Fix .delegate() deprecation * Refactor movie lister to use wiring * Make micro cosmetic changes to flask, aiohttp & sanic examples * Refactor single container example to use wiring * Refactor multiple container example to use wiring * Add return type to main() in application examples * Refactor decoupled packages example to use wiring * Refactor code layout for DI demo example * Update wiring feature message * Add more links to the examples * Change code layout in miniapps * Update sanic example * Update miniapp READMEs * Update wiring docs * Refactor part of cli tutorial * Refactor CLI app tutorial * Update test coverage results in movie lister example and tutorial * Make some minor updates to aiohttp and cli tutorials * Refactor flask tutorial * Make cosmetic fix in flask example * Refactor Flask tutorial: Connect to the GitHub * Refactor Flask tutorial: Search service * Refactor Flask tutorial: Inject search service into view * Refactor Flask tutorial: Make some refactoring * Finish flask tutorial refactoring * Update tutorials * Refactor asyncio monitoring daemon example application * Fix tutorial links * Rename asyncio miniapp * Rename tutorial image dirs * Rename api docs tol-level page * Refactor initial sections of asyncio daemon tutorial * Refactor asyncio tutorial till Example.com monitor section * Refactor asyncio tutorial example.com monitor section * Refactor asyncio tutorial httpbin.org monitor tutorial * Refactor tests section of asyncio daemon tutorial * Update conclusion of asyncio daemon tutorial * Rename tutorial images * Make cosmetic update to flask tutorial * Refactor aiohttp tutorial: Minimal application section * Refactor aiohttp tutorial: Giphy API client secion * Refactor aiohttp tutorial secion: Make the search work * Refactor aiohttp tutorial tests section * Refactor aiohttp tutorial conclusion * Upgrade Cython to 0.29.21 * Update changelog * Update demo example * Update wording on index pages * Update changelog * Update code layout for main demo --- README.rst | 85 +- docs/api/aiohttpext.rst | 9 - docs/api/flaskext.rst | 9 - docs/api/index.rst | 11 +- docs/api/{top_level.rst => top-level.rst} | 0 docs/api/wiring.rst | 7 + docs/examples/aiohttp.rst | 81 + docs/examples/django.rst | 97 + docs/examples/flask.rst | 87 + docs/examples/images/django.png | Bin 0 -> 390749 bytes .../images/flask.png} | Bin docs/examples/index.rst | 4 + docs/examples/sanic.rst | 80 + docs/images/miniapps/engines_cars/diagram.png | Bin 13439 -> 0 bytes docs/index.rst | 49 +- docs/introduction/di_in_python.rst | 95 +- docs/introduction/installation.rst | 45 +- docs/introduction/key_features.rst | 17 +- docs/main/changelog.rst | 38 + docs/tutorials/aiohttp.rst | 360 +- docs/tutorials/asyncio-daemon.rst | 210 +- .../classes-01.png} | Bin .../classes-02.png} | Bin .../diagram.png | Bin .../{classes_01.png => classes-01.png} | Bin .../{classes_02.png => classes-02.png} | Bin docs/tutorials/cli.rst | 260 +- .../screen-01.png} | Bin .../tutorials/flask-images/screen-02.png | Bin docs/tutorials/flask.rst | 383 +- docs/wiring.rst | 201 + examples/demo/after.py | 29 + examples/demo/before.py | 23 + examples/{di_demo/demo.py => demo/with_di.py} | 27 +- examples/di_demo/example_di.py | 18 - examples/di_demo/example_no_di.py | 18 - examples/di_demo/test.py | 11 - .../{giphynav-aiohttp => aiohttp}/README.rst | 21 +- examples/miniapps/aiohttp/config.yml | 5 + .../giphynavigator}/__init__.py | 0 .../aiohttp/giphynavigator/application.py | 20 + .../aiohttp/giphynavigator/containers.py | 21 + .../giphynavigator/giphy.py | 0 .../giphynavigator/handlers.py} | 10 +- .../giphynavigator/services.py | 0 .../giphynavigator/tests.py | 8 +- .../requirements.txt | 0 .../README.rst | 6 +- .../example/__main__.py | 26 +- .../application-single-container/README.rst | 6 +- .../example/__main__.py | 26 +- .../Dockerfile | 0 .../README.rst | 21 +- .../config.yml | 0 .../docker-compose.yml | 0 .../monitoringdaemon}/__init__.py | 0 .../monitoringdaemon/__main__.py | 21 + .../monitoringdaemon/containers.py | 5 +- .../monitoringdaemon/dispatcher.py | 1 + .../monitoringdaemon/http.py | 0 .../monitoringdaemon/monitors.py | 2 +- .../monitoringdaemon/tests.py | 4 +- .../requirements.txt | 0 .../decoupled-packages/example/__main__.py | 30 +- examples/miniapps/django/.gitignore | 1 + examples/miniapps/django/.pydocstylerc | 2 + examples/miniapps/django/README.rst | 113 + .../django/githubnavigator/__init__.py | 8 + .../miniapps/django/githubnavigator/asgi.py | 15 + .../django/githubnavigator/containers.py | 22 + .../githubnavigator/services.py | 0 .../django/githubnavigator/settings.py | 131 + .../miniapps/django/githubnavigator/urls.py | 22 + .../miniapps/django/githubnavigator/wsgi.py | 16 + examples/miniapps/django/manage.py | 21 + examples/miniapps/django/requirements.txt | 5 + examples/miniapps/django/screenshot.png | Bin 0 -> 390749 bytes examples/miniapps/django/web/__init__.py | 1 + examples/miniapps/django/web/apps.py | 13 + .../miniapps/django/web/templates/base.html | 10 + .../miniapps/django/web/templates/index.html | 69 + examples/miniapps/django/web/tests.py | 63 + examples/miniapps/django/web/urls.py | 9 + examples/miniapps/django/web/views.py | 34 + .../{ghnav-flask => flask}/README.rst | 23 +- examples/miniapps/flask/config.yml | 5 + .../githubnavigator}/__init__.py | 0 .../flask/githubnavigator/application.py | 23 + .../flask/githubnavigator/containers.py | 22 + .../flask/githubnavigator/services.py | 44 + .../githubnavigator/templates/base.html | 0 .../githubnavigator/templates/index.html | 0 .../githubnavigator/tests.py | 4 +- .../githubnavigator/views.py | 8 +- .../{ghnav-flask => flask}/requirements.txt | 0 examples/miniapps/flask/screenshot.png | Bin 0 -> 662377 bytes examples/miniapps/ghnav-flask/config.yml | 5 - .../githubnavigator/application.py | 20 - .../ghnav-flask/githubnavigator/containers.py | 37 - examples/miniapps/giphynav-aiohttp/config.yml | 5 - .../giphynavigator/application.py | 21 - .../giphynavigator/containers.py | 33 - .../monitoringdaemon/__main__.py | 18 - examples/miniapps/movie-lister/README.rst | 13 +- .../miniapps/movie-lister/movies/__main__.py | 34 +- .../movie-lister/movies/containers.py | 2 +- .../miniapps/movie-lister/movies/tests.py | 4 +- examples/miniapps/sanic/README.rst | 119 + examples/miniapps/sanic/config.yml | 5 + .../miniapps/sanic/giphynavigator/__init__.py | 1 + .../giphynavigator/__main__.py | 4 +- .../sanic/giphynavigator/application.py | 19 + .../sanic/giphynavigator/containers.py | 21 + .../miniapps/sanic/giphynavigator/giphy.py | 26 + .../miniapps/sanic/giphynavigator/handlers.py | 28 + .../miniapps/sanic/giphynavigator/services.py | 18 + .../miniapps/sanic/giphynavigator/tests.py | 74 + examples/miniapps/sanic/requirements.txt | 6 + examples/wiring/example.py | 26 + examples/wiring/flask_example.py | 29 + requirements-dev.txt | 2 +- setup.cfg | 3 + src/dependency_injector/__init__.py | 2 +- src/dependency_injector/containers.c | 4569 ++++-- src/dependency_injector/containers.pyi | 6 +- src/dependency_injector/containers.pyx | 57 +- src/dependency_injector/ext/aiohttp.py | 8 + src/dependency_injector/ext/flask.py | 8 + src/dependency_injector/providers.c | 12882 +++++++++------- src/dependency_injector/providers.pxd | 10 +- src/dependency_injector/providers.pyi | 24 +- src/dependency_injector/providers.pyx | 109 +- src/dependency_injector/types.py | 17 - src/dependency_injector/wiring.py | 301 + tests/unit/wiring/__init__.py | 1 + tests/unit/wiring/container.py | 17 + tests/unit/wiring/module.py | 52 + tests/unit/wiring/package/__init__.py | 0 .../wiring/package/subpackage/__init__.py | 0 .../wiring/package/subpackage/submodule.py | 8 + tests/unit/wiring/service.py | 2 + tests/unit/wiring/test_wiring_py36.py | 134 + 142 files changed, 13658 insertions(+), 8293 deletions(-) delete mode 100644 docs/api/aiohttpext.rst delete mode 100644 docs/api/flaskext.rst rename docs/api/{top_level.rst => top-level.rst} (100%) create mode 100644 docs/api/wiring.rst create mode 100644 docs/examples/aiohttp.rst create mode 100644 docs/examples/django.rst create mode 100644 docs/examples/flask.rst create mode 100644 docs/examples/images/django.png rename docs/{tutorials/flask_images/screen_02.png => examples/images/flask.png} (100%) create mode 100644 docs/examples/sanic.rst delete mode 100644 docs/images/miniapps/engines_cars/diagram.png rename docs/tutorials/{asyncio_images/class_1.png => asyncio-images/classes-01.png} (100%) rename docs/tutorials/{asyncio_images/class_2.png => asyncio-images/classes-02.png} (100%) rename docs/tutorials/{asyncio_images => asyncio-images}/diagram.png (100%) rename docs/tutorials/cli-images/{classes_01.png => classes-01.png} (100%) rename docs/tutorials/cli-images/{classes_02.png => classes-02.png} (100%) rename docs/tutorials/{flask_images/screen_01.png => flask-images/screen-01.png} (100%) rename examples/miniapps/ghnav-flask/screenshot.png => docs/tutorials/flask-images/screen-02.png (100%) create mode 100644 docs/wiring.rst create mode 100644 examples/demo/after.py create mode 100644 examples/demo/before.py rename examples/{di_demo/demo.py => demo/with_di.py} (56%) delete mode 100644 examples/di_demo/example_di.py delete mode 100644 examples/di_demo/example_no_di.py delete mode 100644 examples/di_demo/test.py rename examples/miniapps/{giphynav-aiohttp => aiohttp}/README.rst (84%) create mode 100644 examples/miniapps/aiohttp/config.yml rename examples/miniapps/{ghnav-flask/githubnavigator => aiohttp/giphynavigator}/__init__.py (100%) create mode 100644 examples/miniapps/aiohttp/giphynavigator/application.py create mode 100644 examples/miniapps/aiohttp/giphynavigator/containers.py rename examples/miniapps/{giphynav-aiohttp => aiohttp}/giphynavigator/giphy.py (100%) rename examples/miniapps/{giphynav-aiohttp/giphynavigator/views.py => aiohttp/giphynavigator/handlers.py} (57%) rename examples/miniapps/{giphynav-aiohttp => aiohttp}/giphynavigator/services.py (100%) rename examples/miniapps/{giphynav-aiohttp => aiohttp}/giphynavigator/tests.py (90%) rename examples/miniapps/{giphynav-aiohttp => aiohttp}/requirements.txt (100%) rename examples/miniapps/{monitoring-daemon-asyncio => asyncio-daemon}/Dockerfile (100%) rename examples/miniapps/{monitoring-daemon-asyncio => asyncio-daemon}/README.rst (82%) rename examples/miniapps/{monitoring-daemon-asyncio => asyncio-daemon}/config.yml (100%) rename examples/miniapps/{monitoring-daemon-asyncio => asyncio-daemon}/docker-compose.yml (100%) rename examples/miniapps/{giphynav-aiohttp/giphynavigator => asyncio-daemon/monitoringdaemon}/__init__.py (100%) create mode 100644 examples/miniapps/asyncio-daemon/monitoringdaemon/__main__.py rename examples/miniapps/{monitoring-daemon-asyncio => asyncio-daemon}/monitoringdaemon/containers.py (86%) rename examples/miniapps/{monitoring-daemon-asyncio => asyncio-daemon}/monitoringdaemon/dispatcher.py (98%) rename examples/miniapps/{monitoring-daemon-asyncio => asyncio-daemon}/monitoringdaemon/http.py (100%) rename examples/miniapps/{monitoring-daemon-asyncio => asyncio-daemon}/monitoringdaemon/monitors.py (96%) rename examples/miniapps/{monitoring-daemon-asyncio => asyncio-daemon}/monitoringdaemon/tests.py (95%) rename examples/miniapps/{monitoring-daemon-asyncio => asyncio-daemon}/requirements.txt (100%) create mode 100644 examples/miniapps/django/.gitignore create mode 100644 examples/miniapps/django/.pydocstylerc create mode 100644 examples/miniapps/django/README.rst create mode 100644 examples/miniapps/django/githubnavigator/__init__.py create mode 100644 examples/miniapps/django/githubnavigator/asgi.py create mode 100644 examples/miniapps/django/githubnavigator/containers.py rename examples/miniapps/{ghnav-flask => django}/githubnavigator/services.py (100%) create mode 100644 examples/miniapps/django/githubnavigator/settings.py create mode 100644 examples/miniapps/django/githubnavigator/urls.py create mode 100644 examples/miniapps/django/githubnavigator/wsgi.py create mode 100755 examples/miniapps/django/manage.py create mode 100644 examples/miniapps/django/requirements.txt create mode 100644 examples/miniapps/django/screenshot.png create mode 100644 examples/miniapps/django/web/__init__.py create mode 100644 examples/miniapps/django/web/apps.py create mode 100644 examples/miniapps/django/web/templates/base.html create mode 100644 examples/miniapps/django/web/templates/index.html create mode 100644 examples/miniapps/django/web/tests.py create mode 100644 examples/miniapps/django/web/urls.py create mode 100644 examples/miniapps/django/web/views.py rename examples/miniapps/{ghnav-flask => flask}/README.rst (78%) create mode 100644 examples/miniapps/flask/config.yml rename examples/miniapps/{monitoring-daemon-asyncio/monitoringdaemon => flask/githubnavigator}/__init__.py (100%) create mode 100644 examples/miniapps/flask/githubnavigator/application.py create mode 100644 examples/miniapps/flask/githubnavigator/containers.py create mode 100644 examples/miniapps/flask/githubnavigator/services.py rename examples/miniapps/{ghnav-flask => flask}/githubnavigator/templates/base.html (100%) rename examples/miniapps/{ghnav-flask => flask}/githubnavigator/templates/index.html (100%) rename examples/miniapps/{ghnav-flask => flask}/githubnavigator/tests.py (96%) rename examples/miniapps/{ghnav-flask => flask}/githubnavigator/views.py (58%) rename examples/miniapps/{ghnav-flask => flask}/requirements.txt (100%) create mode 100644 examples/miniapps/flask/screenshot.png delete mode 100644 examples/miniapps/ghnav-flask/config.yml delete mode 100644 examples/miniapps/ghnav-flask/githubnavigator/application.py delete mode 100644 examples/miniapps/ghnav-flask/githubnavigator/containers.py delete mode 100644 examples/miniapps/giphynav-aiohttp/config.yml delete mode 100644 examples/miniapps/giphynav-aiohttp/giphynavigator/application.py delete mode 100644 examples/miniapps/giphynav-aiohttp/giphynavigator/containers.py delete mode 100644 examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/__main__.py create mode 100644 examples/miniapps/sanic/README.rst create mode 100644 examples/miniapps/sanic/config.yml create mode 100644 examples/miniapps/sanic/giphynavigator/__init__.py rename examples/miniapps/{giphynav-aiohttp => sanic}/giphynavigator/__main__.py (67%) create mode 100644 examples/miniapps/sanic/giphynavigator/application.py create mode 100644 examples/miniapps/sanic/giphynavigator/containers.py create mode 100644 examples/miniapps/sanic/giphynavigator/giphy.py create mode 100644 examples/miniapps/sanic/giphynavigator/handlers.py create mode 100644 examples/miniapps/sanic/giphynavigator/services.py create mode 100644 examples/miniapps/sanic/giphynavigator/tests.py create mode 100644 examples/miniapps/sanic/requirements.txt create mode 100644 examples/wiring/example.py create mode 100644 examples/wiring/flask_example.py delete mode 100644 src/dependency_injector/types.py create mode 100644 src/dependency_injector/wiring.py create mode 100644 tests/unit/wiring/__init__.py create mode 100644 tests/unit/wiring/container.py create mode 100644 tests/unit/wiring/module.py create mode 100644 tests/unit/wiring/package/__init__.py create mode 100644 tests/unit/wiring/package/subpackage/__init__.py create mode 100644 tests/unit/wiring/package/subpackage/submodule.py create mode 100644 tests/unit/wiring/service.py create mode 100644 tests/unit/wiring/test_wiring_py36.py diff --git a/README.rst b/README.rst index 58ae5ed0..adc590d8 100644 --- a/README.rst +++ b/README.rst @@ -67,14 +67,18 @@ Key features of the ``Dependency Injector``: See `Configuration provider `_. - **Containers**. Provides declarative and dynamic containers. See `Containers `_. -- **Performance**. Fast. Written in ``Cython``. +- **Wiring**. Injects dependencies into functions and methods. Helps integrating with + other frameworks: Django, Flask, Aiohttp, etc. + See `Wiring `_. - **Typing**. Provides typing stubs, ``mypy``-friendly. See `Typing and mypy `_. +- **Performance**. Fast. Written in ``Cython``. - **Maturity**. Mature and production-ready. Well-tested, documented and supported. .. code-block:: python from dependency_injector import containers, providers + from dependency_injector.wiring import Provide class Container(containers.DeclarativeContainer): @@ -93,23 +97,38 @@ Key features of the ``Dependency Injector``: ) + 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__]]) - service = container.service() + main() # <-- dependency is injected automatically -With the ``Dependency Injector`` you keep **application structure in one place**. -This place is called **the container**. You use the container to manage all the components of the -application. All the component dependencies are defined explicitly. This provides the control on -the application structure. It is **easy to understand and change** it. + with container.api_client.override(mock.Mock()): + main() # <-- overridden dependency is injected automatically -.. figure:: https://raw.githubusercontent.com/wiki/ets-labs/python-dependency-injector/img/di-map.svg +When you call ``main()`` function the ``Service`` dependency is assembled and injected automatically. + +When doing a testing you call the ``container.api_client.override()`` to replace the real API +client with a mock. When you call ``main()`` the mock is injected. + +You can override any provider with another provider. + +It also helps you in configuring project for the different environments: replace an API client +with a stub on the dev or stage. + +With the ``Dependency Injector`` objects assembling is consolidated in the container. +Dependency injections are defined explicitly. +This makes easier to understand and change how application works. + +.. figure:: https://raw.githubusercontent.com/wiki/ets-labs/python-dependency-injector/img/di-readme.svg :target: https://github.com/ets-labs/python-dependency-injector -*The container is like a map of your application. You always know what depends on what.* - Visit the docs to know more about the `Dependency injection and inversion of control in Python `_. @@ -133,6 +152,10 @@ Choose one of the following: - `Application example (single container) `_ - `Application example (multiple containers) `_ - `Decoupled packages example (multiple containers) `_ +- `Django example `_ +- `Flask example `_ +- `Aiohttp example `_ +- `Sanic example `_ Tutorials --------- @@ -147,22 +170,16 @@ Choose one of the following: Concept ------- -``Dependency Injector`` stands on two principles: +The framework stands on the `PEP20 (The Zen of Python) `_ principle: -- Explicit is better than implicit (PEP20). -- Do no magic to your code. +.. code-block:: plain -How is it different from the other frameworks? + Explicit is better than implicit -- **No autowiring.** The framework does NOT do any autowiring / autoresolving of the dependencies. You need to specify everything explicitly. Because *"Explicit is better than implicit" (PEP20)*. -- **Does not pollute your code.** Your application does NOT know and does NOT depend on the framework. No ``@inject`` decorators, annotations, patching or any other magic tricks. +You need to specify how to assemble and where to inject the dependencies explicitly. -``Dependency Injector`` makes a simple contract with you: - -- You tell the framework how to assemble your objects -- The framework does it for you - -The power of the ``Dependency Injector`` is in its simplicity and straightforwardness. It is a simple tool for the powerful concept. +The power of the framework is in a simplicity. +``Dependency Injector`` is a simple tool for the powerful concept. Frequently asked questions -------------------------- @@ -171,35 +188,17 @@ What is the dependency injection? - dependency injection is a principle that decreases coupling and increases cohesion Why should I do the dependency injection? - - your code becomes more flexible, testable and clear - - you have no problems when you need to understand how it works or change it 😎 + - your code becomes more flexible, testable and clear 😎 How do I start doing the dependency injection? - you start writing the code following the dependency injection principle - you register all of your application components and their dependencies in the container - - when you need a component, you get it from the container - -Why do I need a framework for this? - - you need the framework for this to not create it by your own - - this framework gives you the container and the providers - - the container is like a dictionary with the batteries 🔋 - - the providers manage the lifetime of your components, you will need factories, singletons, smart config object etc + - when you need a component, you specify where to inject it or get it from the container What price do I pay and what do I get? - - you need to explicitly specify the dependencies in the container + - you need to explicitly specify the dependencies - it will be extra work in the beginning - - it will payoff when project grows or in two weeks 😊 (when you forget what project was about) - -What features does the framework have? - - building objects graph - - smart configuration object - - providers: factory, singleton, thread locals registers, etc - - positional and keyword context injections - - overriding of the objects in any part of the graph - -What features the framework does NOT have? - - autowiring / autoresolving of the dependencies - - the annotations and ``@inject``-like decorators + - it will payoff as the project grows Have a question? - Open a `Github Issue `_ diff --git a/docs/api/aiohttpext.rst b/docs/api/aiohttpext.rst deleted file mode 100644 index a2e7c19d..00000000 --- a/docs/api/aiohttpext.rst +++ /dev/null @@ -1,9 +0,0 @@ -dependency_injector.ext.aiohttp -=============================== - -.. automodule:: dependency_injector.ext.aiohttp - :members: - :show-inheritance: - - -.. disqus:: diff --git a/docs/api/flaskext.rst b/docs/api/flaskext.rst deleted file mode 100644 index 696383b0..00000000 --- a/docs/api/flaskext.rst +++ /dev/null @@ -1,9 +0,0 @@ -dependency_injector.ext.flask -============================= - -.. automodule:: dependency_injector.ext.flask - :members: - :show-inheritance: - - -.. disqus:: diff --git a/docs/api/index.rst b/docs/api/index.rst index 8784d94b..c6b4cfa8 100644 --- a/docs/api/index.rst +++ b/docs/api/index.rst @@ -4,9 +4,8 @@ API Documentation .. toctree:: :maxdepth: 2 - top_level - providers - containers - errors - aiohttpext - flaskext + top-level + providers + containers + wiring + errors diff --git a/docs/api/top_level.rst b/docs/api/top-level.rst similarity index 100% rename from docs/api/top_level.rst rename to docs/api/top-level.rst diff --git a/docs/api/wiring.rst b/docs/api/wiring.rst new file mode 100644 index 00000000..e4f321fd --- /dev/null +++ b/docs/api/wiring.rst @@ -0,0 +1,7 @@ +dependency_injector.wiring +============================= + +.. automodule:: dependency_injector.wiring + :members: + +.. disqus:: diff --git a/docs/examples/aiohttp.rst b/docs/examples/aiohttp.rst new file mode 100644 index 00000000..a9446fe8 --- /dev/null +++ b/docs/examples/aiohttp.rst @@ -0,0 +1,81 @@ +.. _aiohttp-example: + +Aiohttp example +=============== + +.. meta:: + :keywords: Python,Dependency Injection,Aiohttp,Example + :description: This example demonstrates a usage of the Aiohttp and Dependency Injector. + + +This example shows how to use ``Dependency Injector`` with `Aiohttp `_. + +The example application is a REST API that searches for funny GIFs on the `Giphy `_. + +The source code is available on the `Github `_. + +:ref:`aiohttp-tutorial` demonstrates how to build this application step-by-step. + +Application structure +--------------------- + +Application has next structure: + +.. code-block:: bash + + ./ + ├── giphynavigator/ + │ ├── __init__.py + │ ├── application.py + │ ├── containers.py + │ ├── giphy.py + │ ├── handlers.py + │ ├── services.py + │ └── tests.py + ├── config.yml + └── requirements.txt + +Container +--------- + +Declarative container is defined in ``giphynavigator/containers.py``: + +.. literalinclude:: ../../examples/miniapps/aiohttp/giphynavigator/containers.py + :language: python + +Handlers +-------- + +Handler has dependencies on search service and some config options. The dependencies are injected +using :ref:`wiring` feature. + +Listing of ``giphynavigator/handlers.py``: + +.. literalinclude:: ../../examples/miniapps/aiohttp/giphynavigator/handlers.py + :language: python + +Application factory +------------------- +Application factory creates container, wires it with the ``handlers`` module, creates +``Aiohttp`` app and setup routes. + +Listing of ``giphynavigator/application.py``: + +.. literalinclude:: ../../examples/miniapps/aiohttp/giphynavigator/application.py + :language: python + +Tests +----- + +Tests use :ref:`provider-overriding` feature to replace giphy client with a mock ``giphynavigator/tests.py``: + +.. literalinclude:: ../../examples/miniapps/aiohttp/giphynavigator/tests.py + :language: python + :emphasize-lines: 32,59,73 + +Sources +------- + +Explore the sources on the `Github `_. + +.. disqus:: diff --git a/docs/examples/django.rst b/docs/examples/django.rst new file mode 100644 index 00000000..15fa0520 --- /dev/null +++ b/docs/examples/django.rst @@ -0,0 +1,97 @@ +.. _django-example: + +Django example +============== + +.. meta:: + :keywords: Python,Dependency Injection,Django,Example + :description: This example demonstrates a usage of the Django and Dependency Injector. + + +This example shows how to use ``Dependency Injector`` with `Django `_. + +The example application helps to search for repositories on the Github. + +.. image:: images/django.png + :width: 100% + :align: center + +The source code is available on the `Github `_. + +Application structure +--------------------- + +Application has standard Django project structure. It consists of ``githubnavigator`` project package and +``web`` application package: + +.. code-block:: bash + + ./ + ├── githubnavigator/ + │ ├── __init__.py + │ ├── asgi.py + │ ├── containers.py + │ ├── services.py + │ ├── settings.py + │ ├── urls.py + │ └── wsgi.py + ├── web/ + │ ├── templates/ + │ │ ├── base.html + │ │ └── index.html + │ ├── __init__.py + │ ├── apps.py + │ ├── tests.py + │ ├── urls.py + │ └── views.py + ├── manage.py + └── requirements.txt + +Container +--------- + +Declarative container is defined in ``githubnavigator/containers.py``: + +.. literalinclude:: ../../examples/miniapps/django/githubnavigator/containers.py + :language: python + +Container instance is created in ``githubnavigator/__init__.py``: + +.. literalinclude:: ../../examples/miniapps/django/githubnavigator/__init__.py + :language: python + +Views +----- + +View has dependencies on search service and some config options. The dependencies are injected +using :ref:`wiring` feature. + +Listing of ``web/views.py``: + +.. literalinclude:: ../../examples/miniapps/django/web/views.py + :language: python + +App config +---------- + +Container is wired to the ``views`` module in the app config ``web/apps.py``: + +.. literalinclude:: ../../examples/miniapps/django/web/apps.py + :language: python + :emphasize-lines: 13 + +Tests +----- + +Tests use :ref:`provider-overriding` feature to replace github client with a mock ``web/tests.py``: + +.. literalinclude:: ../../examples/miniapps/django/web/tests.py + :language: python + :emphasize-lines: 39,60 + +Sources +------- + +Explore the sources on the `Github `_. + +.. disqus:: diff --git a/docs/examples/flask.rst b/docs/examples/flask.rst new file mode 100644 index 00000000..a1a312b2 --- /dev/null +++ b/docs/examples/flask.rst @@ -0,0 +1,87 @@ +.. _flask-example: + +Flask example +============= + +.. meta:: + :keywords: Python,Dependency Injection,Flask,Example + :description: This example demonstrates a usage of the Flask and Dependency Injector. + + +This example shows how to use ``Dependency Injector`` with `Flask `_. + +The example application helps to search for repositories on the Github. + +.. image:: images/flask.png + :width: 100% + :align: center + +The source code is available on the `Github `_. + +:ref:`flask-tutorial` demonstrates how to build this application step-by-step. + +Application structure +--------------------- + +Application has next structure: + +.. code-block:: bash + + ./ + ├── githubnavigator/ + │ ├── templates + │ │ ├── base.html + │ │ └── index.py + │ ├── __init__.py + │ ├── application.py + │ ├── containers.py + │ ├── services.py + │ ├── tests.py + │ └── views.py + ├── config.yml + └── requirements.txt + +Container +--------- + +Declarative container is defined in ``githubnavigator/containers.py``: + +.. literalinclude:: ../../examples/miniapps/flask/githubnavigator/containers.py + :language: python + +Views +----- + +View has dependencies on search service and some config options. The dependencies are injected +using :ref:`wiring` feature. + +Listing of ``githubnavigator/views.py``: + +.. literalinclude:: ../../examples/miniapps/flask/githubnavigator/views.py + :language: python + +Application factory +------------------- +Application factory creates container, wires it with the ``views`` module, creates +``Flask`` app and setup routes. + +Listing of ``githubnavigator/application.py``: + +.. literalinclude:: ../../examples/miniapps/flask/githubnavigator/application.py + :language: python + +Tests +----- + +Tests use :ref:`provider-overriding` feature to replace github client with a mock ``githubnavigator/tests.py``: + +.. literalinclude:: ../../examples/miniapps/flask/githubnavigator/tests.py + :language: python + :emphasize-lines: 44,67 + +Sources +------- + +Explore the sources on the `Github `_. + +.. disqus:: diff --git a/docs/examples/images/django.png b/docs/examples/images/django.png new file mode 100644 index 0000000000000000000000000000000000000000..2d39915650a209b7031ba63470eaf7b77bacfa90 GIT binary patch literal 390749 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�i?bmjg(CgQVuVVYfE<&d;3?(vyR^ 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

K@E z* z`jD>YA=(F{-Y`rHBC9HF0&}aDgZee2B?4gCbdsLWwaTO>CBRa~-|XrbG%UF!zPMPC zgA~mkkh9~v@~U2sXPxwC`Fd>7jKg++nAfWT7WhcrC5Y}OiB>-ILmzoTJgDPO-^yz_xN?(|1MTZj&pGT zB#9&wmkI^tl?IXM{n@~Hh;edX-}FYB z;df;LQMlw&ExM$B#D}K}#p%dTbl;90ao&da!|`Jd>8MgnbULzZU^vrkz~XmcJH7iV z+*42eaa~YmR>SQ0QXVXF6DdzUTZ7B=(;fwX%Hyc}jxt$vlQ3^uMMqdCH)GXDhy@+; zsNDJEu?_f(m?=S$=SK>kl^PbWUWE$*T+^BMd{qj@0GB(bM!s4lg!^FWlD%m<8CrXk zQo2td$KAAUh+CsEupC(ia|>gr^Ek)vLOnyAgT(X>MJ1U^TKU-~_PFHyW$DYgv3_EI zIo_Se~yIN z#75qB!dw@mKu*`Oap`TD(5w~<5uawQs2W*+2gj~h*=4UR{pk7q9d!EFfPfd%m`j2D zU$d|ma0RRV1s08>lSAc?_S=h9>F>H`&K600QzjzKoCQD2PmZ#1eG1tXD9P%a!h~i6 zH!k&W-h6{W!n1=5{BF(O2ok_9<8R?hr#baHaY_usEEioW9u(MrhRxw~{u1^mQw3~$ z!D5|-4St^Ss~(BNlYcizOKvdcv=-SRK8c>8k3XnLM5z4|JfJ!e5r#0) zl#yfD)z#%M9}>MTW=2d4BlM=xXXz$pc-7gmZqmN)p)A4IbSwsQIC=QX2&Es2WrR+euDzp>rUHa4M!ikjjBFS8FnZNt-oh_;n+p*>{(*DFeWatY+kNkNxL?+poH{`@7_kRlY5ujy5u_Ob4O4+ z=13k2H}bBZCuj(x7GaFOYJKxt(D#$5=#u}#)?5EI;lE*{g2d<{0xAs((j79o1nKUU z?ik%6APOoC(hXyDcZ&!^YQPvN-5n#IeZJ>Bzns_k6Be)gy5HA*MV`^1Jb=4waKn!* zuC4nU`|=+^Fw<*B0Ee46c8>Xjxl)OMIgo3W{5kvF(~}bpEEz&UgKkzAN|;aPir0;1 z{?UiPK*sJ9qDdc(kEe??MvvJ?Q_%8lG*ow(oPTt^28}lo$66oUlY^@X)B28fgh??E zn@?<7numl{_fU+CO{3>8!>R1aRxqzv$ZP4PIxtS;J1is%uOGUU5I=l+g1sli85mp{ zWi(N92HlUk3>M4HXZ>Fe{8~a?Cm)DRd}A+EBx7>}T~H$3%l#LK>x>_6){-7OiEQ?r zGDvo&JX3rpv)YB#kew`-T>H?Ws_OT0Qnu~w9ok2B4O5X&exCAjr?{}0qY&`f_g?`T zFav*tB6DK4?%i$sXA9D$sfR*?St`{#ga6Rj-R-gIaw~;=shbyc$NB1Gu;qCCR$W1` zrQf9;C%abln+#9AO2tq)F=>ms4U${4_cx;m^~`;*&tCIj#cx)K&rP6j!ekLD1mH7t zcED|+n*AlgHb45(ESoTUDF+F|i;NWbn%D>%;->#g4bb%&A9oJgr!E;Y|=Q)M1&QCX}^1pm_y|LgV+Cm58Gb}TK%%_zCmKR6$ zJLXmw&oY7f6c7+RfoPg!j~VW(fN z+Pv)FtfH-1il^`~792af|3tc=JP_R+sE-ARUJh8--FW=M0@(NH2YUuzIrXj8p8_x$ zlEp60>&1Eb#w|IXh1`uq;S*rO_9y<5)iNRtFfRVVlVo9;sQ&o>kTxxncuL~9n)MSA5a4c~?(`NWG=1&9CxU!WW^>Kc#Gaz3xrNKyGUp)RQ^2&`;_ ztN$&6IE}KKC=R~wcj*>;n=@P2ia`@E-1(Em{NZ4E zeAlt!NBG)8uZGjF*TMV%Fk%J$Xy9%5~GX4&Lu;H~~?9u2F5I{r9xo*W&Ll`AK>g6YB~3p(%Hh zyA@B@tFnqm1b2lb%))rQ&UK6Tyx

9RluLfWZR`cy|qsp|UR({F6_I9CkSHsm~;a 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

a>>}87*fYlo=yDb*E}vXcZqPKTX4t>Yk8PV` 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 z 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 O-+eJT(E?#zpZ^EvoF&fy literal 0 HcmV?d00001 diff --git a/docs/tutorials/flask_images/screen_02.png b/docs/examples/images/flask.png similarity index 100% rename from docs/tutorials/flask_images/screen_02.png rename to docs/examples/images/flask.png diff --git a/docs/examples/index.rst b/docs/examples/index.rst index 17c62462..16b7fc0a 100644 --- a/docs/examples/index.rst +++ b/docs/examples/index.rst @@ -13,5 +13,9 @@ Explore the examples to see the ``Dependency Injector`` in action. application-single-container application-multiple-containers decoupled-packages + django + flask + aiohttp + sanic .. disqus:: diff --git a/docs/examples/sanic.rst b/docs/examples/sanic.rst new file mode 100644 index 00000000..1727128f --- /dev/null +++ b/docs/examples/sanic.rst @@ -0,0 +1,80 @@ +.. _sanic-example: + +Sanic example +============== + +.. meta:: + :keywords: Python,Dependency Injection,Sanic,Example + :description: This example demonstrates a usage of the Sanic and Dependency Injector. + + +This example shows how to use ``Dependency Injector`` with `Sanic `_. + +The example application is a REST API that searches for funny GIFs on the `Giphy `_. + +The source code is available on the `Github `_. + +Application structure +--------------------- + +Application has next structure: + +.. code-block:: bash + + ./ + ├── giphynavigator/ + │ ├── __init__.py + │ ├── __main__.py + │ ├── application.py + │ ├── containers.py + │ ├── giphy.py + │ ├── handlers.py + │ ├── services.py + │ └── tests.py + ├── config.yml + └── requirements.txt + +Container +--------- + +Declarative container is defined in ``giphynavigator/containers.py``: + +.. literalinclude:: ../../examples/miniapps/sanic/giphynavigator/containers.py + :language: python + +Handlers +-------- + +Handler has dependencies on search service and some config options. The dependencies are injected +using :ref:`wiring` feature. + +Listing of ``giphynavigator/handlers.py``: + +.. literalinclude:: ../../examples/miniapps/sanic/giphynavigator/handlers.py + :language: python + +Application factory +------------------- +Application factory creates container, wires it with the ``handlers`` module, creates +``Sanic`` app and setup routes. + +Listing of ``giphynavigator/application.py``: + +.. literalinclude:: ../../examples/miniapps/sanic/giphynavigator/application.py + :language: python + +Tests +----- + +Tests use :ref:`provider-overriding` feature to replace giphy client with a mock ``giphynavigator/tests.py``: + +.. literalinclude:: ../../examples/miniapps/sanic/giphynavigator/tests.py + :language: python + :emphasize-lines: 27,54,68 + +Sources +------- + +Explore the sources on the `Github `_. + +.. disqus:: diff --git a/docs/images/miniapps/engines_cars/diagram.png b/docs/images/miniapps/engines_cars/diagram.png deleted file mode 100644 index d3b28bb8dcbb14f178aa403a10bc83bd7ebd8f97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13439 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

#9A)bRmQc8Tm^{OLM9NtC+h2i7&u+5EFt9 z9C-4gp+ErbqyqXMDSA_nbBC$sFj0f}KnmPtNv#ZjJswt_4B|^rtZ8U-5xP7~7e~a8GsPu~uC< zkz@7a^uPplPT0R9|6F96P=n{iapMHVk>7-f-9+=6b(%~v*+-SZCe_4qsQ}OSjrbW! zkWQP_*t{-3^&px+j{CoW8&KG&IvAu*_8$T=|1Q#@xsM*jFC5m9((1R5_78M3O+o_+ z@{+CxSSV?s>4&>ebWRQC;KagjM*IG-y^l2r&pwK2lDlkk_7LdjHqm`z*k19;eNS!S zX%g_fJ_LQ5_}@O9LMrf`jm#e1RLj<0$-9cP1B6hd3oGjRpIms75kJ$uo<4mizwu8- zR{1wQDgLZ9ux~~PS6Jz6O~3lKMNbO+`O3u2g=Kh5al=8r8ZI4Xt;Z(_+~pzbh)9qB zM{A{^AV|L*d5mPVzrbHy5h;BBti1p04;N1%Q4>4XPjN*Nlr=pMfzeyq%p7RlN zJtNw8i*CUjs5xh(;L~KTN&{PLEEd9?-;wAELbs4qT*;rUsxmRc#@-q)a3?e7GPBdV z#-$=&yoJmepKHS+v`9Hl?{gT8QK{uHJ-D=M+46q%Jy^Qri`1hK17exdf09HS(Y$et z$j`NuJ&aTdW{Y7fQZ zWfirMIT`G0tORS#dLK>_c-#t&+qF|}0vK&4E?~y*>r4^ET`_XW=NT2Y{yl>s2_`v* zS&DDc<-_|F$%Vfpske}b1s{7mZx);t5nDT~R~;zQ_=_Tl+l|)2*AE=5nx1}^SqqV~iqNw z_D%HQZYNm2R0L_1ce)krY(<>n4=?)7UGhb!SpMvK@P{7hd(Oa?(=^%}+3PiIy)A=w z|0Tc|={$_dNE9Vyz^Sal&mxAK_H4(C_o?2ehd(!fB^9b2kVGhSHe3BHDMkr9T#5tXiE~WZ;hC_JCK9RLoc7e1(qlQm8CvEF{0V0zBy-Z zNh5q1*R9&(IEDz_m?XAex5>bh^iSxr3{+K7<0NIGulh!lB7e$>s`!Pyi{2`h_D7f` zC_}ss7Sr0nYnYA$1D1yH`W3A7y<9yM{yf1b9|f8FbT;0QkqX>0DQzN9d5r9E*J-PM>7US= zO1vg(z+73~V!jMTaYg262&FO;2T}8#t)#9eL)=U{X|T=QB)~2mzL%G$8LkYdnu6@6 z-pQ1wkt@@Sl0{9E&hh%deTPi*r+;Xf9q)1SsTq9G3xV?xU0LOdknM1yxQ4Ax%^!)1 zOoV;LEdJ}#oNbVQ?xs(E>L^zMQKC0H7HsYQNwv9qo_Qk&7&dD1MBf-JsU-U|J?*13 zc+jc8TR1IGTp-^zzU8Ee8Cx&cWs>&tFuLJ->DskJDyl^e5H~NGFzXaQdp1as$*S-A6|(&$2!3{^soK7& zaW--p>HJQ7qq!;=Am!utz%{QRfH0Igz!~WP#0tQkC_>;sMApZFGXZQ8a3c+1@?Sjp zi%2QMgvA8|wP;cQs?xzsM`1M)3dEkfQBlGPR0K0uzle12Lhk{P*0+D~HQeT}6ArYQ%PF;}0+El`ycPY* zyjwt8ZBR!{fmK#2%onUC)Ww7?cL$Z3eZH6ISOP8ob$<~7B)KGB1@x|Ix*2w|JqD6b z++?1+S(>?730b_d0v;e9E*>s+E^c-nel0F8A#QFVUIA9%2N#z;!rSNHRB&{*w6*s7 Wf3845)Yfs=bp;t!=}&Oep#KZ!p@QK6 diff --git a/docs/index.rst b/docs/index.rst index 2c72e9bc..06b9ebd5 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -77,13 +77,16 @@ Key features of the ``Dependency Injector``: - **Configuration**. Read configuration from ``yaml`` & ``ini`` files, environment variables and dictionaries. See :ref:`configuration-provider`. - **Containers**. Provides declarative and dynamic containers. See :ref:`containers`. -- **Performance**. Fast. Written in ``Cython``. +- **Wiring**. Injects dependencies into functions and methods. Helps integrating with + other frameworks: Django, Flask, Aiohttp, etc. See :ref:`wiring`. - **Typing**. Provides typing stubs, ``mypy``-friendly. See :ref:`provider-typing`. +- **Performance**. Fast. Written in ``Cython``. - **Maturity**. Mature and production-ready. Well-tested, documented and supported. .. code-block:: python from dependency_injector import containers, providers + from dependency_injector.wiring import Provide class Container(containers.DeclarativeContainer): @@ -102,23 +105,28 @@ Key features of the ``Dependency Injector``: ) + 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__]]) - service = container.service() + main() # <-- dependency is injected automatically -With the ``Dependency Injector`` you keep **application structure in one place**. -This place is called **the container**. You use the container to manage all the components of the -application. All the component dependencies are defined explicitly. This provides the control on -the application structure. It is **easy to understand and change** it. + with container.api_client.override(mock.Mock()): + main() # <-- overridden dependency is injected automatically -.. figure:: https://raw.githubusercontent.com/wiki/ets-labs/python-dependency-injector/img/di-map.svg +With the ``Dependency Injector`` objects assembling is consolidated in the container. +Dependency injections are defined explicitly. +This makes easier to understand and change how application works. + +.. figure:: https://raw.githubusercontent.com/wiki/ets-labs/python-dependency-injector/img/di-readme.svg :target: https://github.com/ets-labs/python-dependency-injector -*The container is like a map of your application. You always know what depends on what.* - Explore the documentation to know more about the ``Dependency Injector``. .. _contents: @@ -126,15 +134,16 @@ Explore the documentation to know more about the ``Dependency Injector``. Contents -------- -.. toctree:: - :maxdepth: 2 +.. toctree:: + :maxdepth: 2 - introduction/index - examples/index - tutorials/index - providers/index - containers/index - examples-other/index - api/index - main/feedback - main/changelog + introduction/index + examples/index + tutorials/index + providers/index + containers/index + wiring + examples-other/index + api/index + main/feedback + main/changelog diff --git a/docs/introduction/di_in_python.rst b/docs/introduction/di_in_python.rst index dfd3ab91..d3e58a10 100644 --- a/docs/introduction/di_in_python.rst +++ b/docs/introduction/di_in_python.rst @@ -67,19 +67,23 @@ Before: class ApiClient: def __init__(self): - self.api_key = os.getenv('API_KEY') # <-- the dependency - self.timeout = os.getenv('TIMEOUT') # <-- the dependency + self.api_key = os.getenv('API_KEY') # <-- dependency + self.timeout = os.getenv('TIMEOUT') # <-- dependency class Service: def __init__(self): - self.api_client = ApiClient() # <-- the dependency + self.api_client = ApiClient() # <-- dependency + + + def main() -> None: + service = Service() # <-- dependency + ... if __name__ == '__main__': - service = Service() - + main() After: @@ -91,18 +95,29 @@ After: class ApiClient: def __init__(self, api_key: str, timeout: int): - self.api_key = api_key # <-- the dependency is injected - self.timeout = timeout # <-- the dependency is injected + self.api_key = api_key # <-- dependency is injected + self.timeout = timeout # <-- dependency is injected class Service: def __init__(self, api_client: ApiClient): - self.api_client = api_client # <-- the dependency is injected + self.api_client = api_client # <-- dependency is injected + + + def main(service: Service): # <-- dependency is injected + ... if __name__ == '__main__': - service = Service(ApiClient(os.getenv('API_KEY'), os.getenv('TIMEOUT'))) + main( + service=Service( + api_client=ApiClient( + api_key=os.getenv('API_KEY'), + timeout=os.getenv('TIMEOUT'), + ), + ), + ) ``ApiClient`` is decoupled from knowing where the options come from. You can read a key and a timeout from a configuration file or even get them from a database. @@ -110,11 +125,22 @@ timeout from a configuration file or even get them from a database. ``Service`` is decoupled from the ``ApiClient``. It does not create it anymore. You can provide a stub or other compatible object. +Function ``main()`` is decoupled from ``Service``. It receives it as an argument. + Flexibility comes with a price. -Now you need to assemble the objects like this:: +Now you need to assemble and inject the objects like this: - service = Service(ApiClient(os.getenv('API_KEY'), os.getenv('TIMEOUT'))) +.. code-block:: python + + main( + service=Service( + api_client=ApiClient( + api_key=os.getenv('API_KEY'), + timeout=os.getenv('TIMEOUT'), + ), + ), + ) The assembly code might get duplicated and it'll become harder to change the application structure. @@ -123,18 +149,20 @@ Here comes the ``Dependency Injector``. What does the Dependency Injector do? ------------------------------------- -With the dependency injection pattern objects loose the responsibility of assembling the -dependencies. The ``Dependency Injector`` absorbs that responsibility. +With the dependency injection pattern objects loose the responsibility of assembling +the dependencies. The ``Dependency Injector`` absorbs that responsibilities. -``Dependency Injector`` helps to assemble the objects. +``Dependency Injector`` helps to assemble and inject the dependencies. -It provides a container and providers that help you with the objects assembly. When you -need an object you get it from the container. The rest of the assembly work is done by the -framework: +It provides a container and providers that help you with the objects assembly. +When you need an object you place a ``Provide`` marker as a default value of a +function argument. When you call this function framework assembles and injects +the dependency. .. code-block:: python from dependency_injector import containers, providers + from dependency_injector.wiring import Provide class Container(containers.DeclarativeContainer): @@ -153,36 +181,34 @@ framework: ) + 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__]]) - service = container.service() + main() # <-- dependency is injected automatically -Retrieving of the ``Service`` instance now is done like this:: + with container.api_client.override(mock.Mock()): + main() # <-- overridden dependency is injected automatically - service = container.service() - -Objects assembling is consolidated in the container. When you need to make a change you do it in -one place. +When you call ``main()`` function the ``Service`` dependency is assembled and injected automatically. When doing a testing you call the ``container.api_client.override()`` to replace the real API -client with a mock: - -.. code-block:: python - - from unittest import mock - - - with container.api_client.override(mock.Mock()): - service = container.service() +client with a mock. When you call ``main()`` the mock is injected. You can override any provider with another provider. It also helps you in configuring project for the different environments: replace an API client with a stub on the dev or stage. +Objects assembling is consolidated in the container. Dependency injections are defined explicitly. +This makes easier to understand and change how application works. + Testing, Monkey-patching and dependency injection ------------------------------------------------- @@ -254,6 +280,10 @@ Choose one of the following as a next step: - :ref:`application-single-container` - :ref:`application-multiple-containers` - :ref:`decoupled-packages` + - :ref:`django-example` + - :ref:`flask-example` + - :ref:`aiohttp-example` + - :ref:`sanic-example` - Pass the tutorials: - :ref:`flask-tutorial` - :ref:`aiohttp-tutorial` @@ -261,6 +291,7 @@ Choose one of the following as a next step: - :ref:`cli-tutorial` - Know more about the ``Dependency Injector`` :ref:`key-features` - Know more about the :ref:`providers` +- Know more about the :ref:`wiring` - Go to the :ref:`contents` Useful links diff --git a/docs/introduction/installation.rst b/docs/introduction/installation.rst index 74eef3f9..48aadc4d 100644 --- a/docs/introduction/installation.rst +++ b/docs/introduction/installation.rst @@ -1,41 +1,42 @@ Installation ============ -*Dependency Injector* framework is distributed by PyPi_. - -Latest stable version (and all previous versions) of *Dependency Injector* -framework can be installed from PyPi_: +``Dependency Injector`` is available on `PyPI `_. +To install latest version you can use ``pip``: .. code-block:: bash pip install dependency-injector -.. note:: - Some components of *Dependency Injector* are implemented as C extension types. - *Dependency Injector* is distributed as an archive with a source code, so - C compiler and Python header files are required for the installation. +Some modules of the ``Dependency Injector`` are implemented as C extensions. +``Dependency Injector`` is distributed as a pre-compiled wheels. Wheels are +available for all supported Python versions on Linux, Windows and MacOS. +Linux distribution uses `manylinux `_. -Sources can be cloned from GitHub_: +If there is no appropriate wheel for your environment (Python version and OS) +installer will compile the package from sources on your machine. You'll need +a C compiler and Python header files. -.. code-block:: bash - - git clone https://github.com/ets-labs/python-dependency-injector.git - -Also all *Dependency Injector* releases can be downloaded from -`GitHub releases page`_. - -Verification of currently installed version could be done using -:py:obj:`dependency_injector.VERSION` constant: +To verify the installed version: .. code-block:: bash >>> import dependency_injector >>> dependency_injector.__version__ - '3.43.0' + '4.0.0' -.. _PyPi: https://pypi.org/project/dependency-injector/ -.. _GitHub: https://github.com/ets-labs/python-dependency-injector -.. _GitHub releases page: https://github.com/ets-labs/python-dependency-injector/releases +.. note:: + When add ``Dependency Injector`` to the ``requirements.txt`` don't forget to pin version + to the current major: + .. code-block:: bash + + dependency-injector>=4.0,<5.0 + + *Next major version can be incompatible.* + +All releases are available on `PyPI release history page `_. +Each release has appropriate tag. The tags are available on +`GitHub releases page `_. .. disqus:: diff --git a/docs/introduction/key_features.rst b/docs/introduction/key_features.rst index f81e62ca..50323bcc 100644 --- a/docs/introduction/key_features.rst +++ b/docs/introduction/key_features.rst @@ -19,20 +19,21 @@ Key features of the ``Dependency Injector``: - **Configuration**. Read configuration from ``yaml`` & ``ini`` files, environment variables and dictionaries. See :ref:`configuration-provider`. - **Containers**. Provides declarative and dynamic containers. See :ref:`containers`. -- **Performance**. Fast. Written in ``Cython``. +- **Wiring**. Injects dependencies into functions and methods. Helps integrating with + other frameworks: Django, Flask, Aiohttp, etc. See :ref:`wiring`. - **Typing**. Provides typing stubs, ``mypy``-friendly. See :ref:`provider-typing`. +- **Performance**. Fast. Written in ``Cython``. - **Maturity**. Mature and production-ready. Well-tested, documented and supported. -The framework stands on two principles: +The framework stands on the `PEP20 (The Zen of Python) `_ principle: -- **Explicit is better than implicit (PEP20)**. -- **Do not do any magic to your code**. +.. code-block:: plain -How is that different from the other frameworks? + Explicit is better than implicit -- **No autowiring.** The framework does NOT do any autowiring / autoresolving of the dependencies. You need to specify everything explicitly. Because *"Explicit is better than implicit" (PEP20)*. -- **Does not pollute your code.** Your application does NOT know and does NOT depend on the framework. No ``@inject`` decorators, annotations, patching or any other magic tricks. +You need to specify how to assemble and where to inject the dependencies explicitly. -The power of the framework is in a simplicity. ``Dependency Injector`` is a simple tool for the powerful concept. +The power of the framework is in a simplicity. +``Dependency Injector`` is a simple tool for the powerful concept. .. disqus:: diff --git a/docs/main/changelog.rst b/docs/main/changelog.rst index 25211f90..1b5a9cfd 100644 --- a/docs/main/changelog.rst +++ b/docs/main/changelog.rst @@ -7,6 +7,44 @@ that were made in every particular version. From version 0.7.6 *Dependency Injector* framework strictly follows `Semantic versioning`_ +4.0.0 +----- +New features: + +- Add ``wiring`` feature. + +Deprecations: + +- Deprecate ``ext.aiohttp`` module in favor of ``wiring`` feature. +- Deprecate ``ext.flask`` module in favor of ``wiring`` feature. +- Deprecate ``.delegate()`` provider method in favor of ``.provider`` attribute. + +Removals: + +- Remove deprecated ``types`` module. + +Tutorials: + +- Update ``flask`` tutorial. +- Update ``aiohttp`` tutorial. +- Update ``asyncio`` daemon tutorial. +- Update CLI application tutorial. + +Examples: + +- Add ``django`` example. +- Add ``sanic`` example. +- Update ``aiohttp`` example. +- Update ``flask`` example. +- Update ``asyncio`` daemon example. +- Update ``movie-lister`` example. +- Update CLI application example. + +Misc: + +- Regenerate C sources using Cython 0.29.21. +- Improve documentation and README (typos removal, rewording, etc). + 3.44.0 ------ - Add native support of the generics to the providers: ``some_provider = providers.Provider[SomeClass]``. diff --git a/docs/tutorials/aiohttp.rst b/docs/tutorials/aiohttp.rst index 623d417b..f6bd083f 100644 --- a/docs/tutorials/aiohttp.rst +++ b/docs/tutorials/aiohttp.rst @@ -21,7 +21,7 @@ Start from the scratch or jump to the section: :backlinks: none You can find complete project on the -`Github `_. +`Github `_. What are we going to build? --------------------------- @@ -88,18 +88,18 @@ Prepare the environment Let's create the environment for the project. -First we need to create a project folder and the virtual environment: +First we need to create a project folder: .. code-block:: bash mkdir giphynav-aiohttp-tutorial cd giphynav-aiohttp-tutorial - python3 -m venv venv -Now let's activate the virtual environment: +Now let's create and activate virtual environment: .. code-block:: bash + python3 -m venv venv . venv/bin/activate Environment is ready and now we're going to create the layout of the project. @@ -116,7 +116,7 @@ Initial project layout:: │ ├── __init__.py │ ├── application.py │ ├── containers.py - │ └── views.py + │ └── handlers.py ├── venv/ └── requirements.txt @@ -164,14 +164,14 @@ The requirements are setup. Now we will build a minimal application. Minimal application ------------------- -In this section we will build a minimal application. It will have an endpoint that we can call. -The endpoint will answer in the right format and will have no data. +In this section we will build a minimal application. It will have an endpoint that +will answer our requests in json format. There will be no payload for now. -Edit ``views.py``: +Edit ``handlers.py``: .. code-block:: python - """Views module.""" + """Handlers module.""" from aiohttp import web @@ -190,34 +190,25 @@ Edit ``views.py``: }, ) -Now let's create the main part of our application - the container. Container will keep all of the -application components and their dependencies. First two providers we need to add are -the ``aiohttp`` application provider and the view provider. +Now let's create a container. Container will keep all of the application components and their dependencies. -Put next into the ``containers.py``: +Edit ``containers.py``: .. code-block:: python - """Application containers module.""" + """Containers module.""" from dependency_injector import containers - from dependency_injector.ext import aiohttp - from aiohttp import web - - from . import views - class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" + class Container(containers.DeclarativeContainer): + ... - app = aiohttp.Application(web.Application) +Container is empty for now. We will add the providers in the following sections. - index_view = aiohttp.View(views.index) - -At the last we need to create the ``aiohttp`` application factory. It is traditionally called -``create_app()``. It will create the container. Then it will use the container to create -the ``aiohttp`` application. Last step is to configure the routing - we will assign -``index_view`` from the container to handle the requests to the root ``/`` of our REST API server. +Finally we need to create ``aiohttp`` application factory. It will create and configure container +and ``web.Application``. It is traditionally called ``create_app()``. +We will assign ``index`` handler to handle user requests to the root ``/`` of our web application. Put next into the ``application.py``: @@ -227,28 +218,20 @@ Put next into the ``application.py``: from aiohttp import web - from .containers import ApplicationContainer + from .containers import Container + from . import handlers - def create_app(): - """Create and return aiohttp application.""" - container = ApplicationContainer() + def create_app() -> web.Application: + container = Container() - app: web.Application = container.app() + app = web.Application() app.container = container - app.add_routes([ - web.get('/', container.index_view.as_view()), + web.get('/', handlers.index), ]) - return app -.. note:: - - Container is the first object in the application. - - The container is used to create all other objects. - Now we're ready to run our application Do next in the terminal: @@ -264,7 +247,7 @@ The output should be something like: [18:52:59] Starting aux server at http://localhost:8001 ◆ [18:52:59] Starting dev server at http://localhost:8000 ● -Let's use ``httpie`` to check that it works: +Let's check that it works. Open another terminal session and use ``httpie``: .. code-block:: bash @@ -306,7 +289,7 @@ Create ``giphy.py`` module in the ``giphynavigator`` package: │ ├── application.py │ ├── containers.py │ ├── giphy.py - │ └── views.py + │ └── handlers.py ├── venv/ └── requirements.txt @@ -351,21 +334,16 @@ providers from the ``dependency_injector.providers`` module: Edit ``containers.py``: .. code-block:: python - :emphasize-lines: 3,7,15,17-21 + :emphasize-lines: 3-5,10-16 - """Application containers module.""" + """Containers module.""" from dependency_injector import containers, providers - from dependency_injector.ext import aiohttp - from aiohttp import web - from . import giphy, views + from . import giphy - class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" - - app = aiohttp.Application(web.Application) + class Container(containers.DeclarativeContainer): config = providers.Configuration() @@ -375,8 +353,6 @@ Edit ``containers.py``: timeout=config.giphy.request_timeout, ) - index_view = aiohttp.View(views.index) - .. note:: We have used the configuration value before it was defined. That's the principle how the @@ -399,7 +375,7 @@ Create an empty file ``config.yml`` in the root root of the project: │ ├── application.py │ ├── containers.py │ ├── giphy.py - │ └── views.py + │ └── handlers.py ├── venv/ ├── config.yml └── requirements.txt @@ -427,24 +403,23 @@ Edit ``application.py``: from aiohttp import web - from .containers import ApplicationContainer + from .containers import Container + from . import handlers - def create_app(): - """Create and return aiohttp application.""" - container = ApplicationContainer() + def create_app() -> web.Application: + container = Container() container.config.from_yaml('config.yml') container.config.giphy.api_key.from_env('GIPHY_API_KEY') - app: web.Application = container.app() + app = web.Application() app.container = container - app.add_routes([ - web.get('/', container.index_view.as_view()), + web.get('/', handlers.index), ]) - return app + Now we need to create an API key and set it to the environment variable. As for now, don’t worry, just take this one: @@ -473,7 +448,7 @@ Now it's time to add the ``SearchService``. It will: Create ``services.py`` module in the ``giphynavigator`` package: .. code-block:: bash - :emphasize-lines: 7 + :emphasize-lines: 8 ./ ├── giphynavigator/ @@ -481,9 +456,10 @@ Create ``services.py`` module in the ``giphynavigator`` package: │ ├── application.py │ ├── containers.py │ ├── giphy.py - │ ├── services.py - │ └── views.py + │ ├── handlers.py + │ └── services.py ├── venv/ + ├── config.yml └── requirements.txt and put next into it: @@ -509,27 +485,22 @@ and put next into it: return [{'url': gif['url']} for gif in result['data']] -The ``SearchService`` has a dependency on the ``GiphyClient``. This dependency will be injected. -Let's add ``SearchService`` to the container. +The ``SearchService`` has a dependency on the ``GiphyClient``. This dependency will be +injected when we add ``SearchService`` to the container. Edit ``containers.py``: .. code-block:: python - :emphasize-lines: 7,23-26 + :emphasize-lines: 5,18-21 - """Application containers module.""" + """Containers module.""" from dependency_injector import containers, providers - from dependency_injector.ext import aiohttp - from aiohttp import web - from . import giphy, services, views + from . import giphy, services - class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" - - app = aiohttp.Application(web.Application) + class Container(containers.DeclarativeContainer): config = providers.Configuration() @@ -544,31 +515,31 @@ Edit ``containers.py``: giphy_client=giphy_client, ) - index_view = aiohttp.View(views.index) - - -The search service is ready. In the next section we're going to make it work. +The search service is ready. In next section we're going to put it to work. Make the search work -------------------- -Now we are ready to make the search work. Let's use the ``SearchService`` in the ``index`` view. +Now we are ready to put the search into work. Let's inject ``SearchService`` into +the ``index`` handler. We will use :ref:`wiring` feature. -Edit ``views.py``: +Edit ``handlers.py``: .. code-block:: python - :emphasize-lines: 5,8-11,15 + :emphasize-lines: 4-7,10-13,17 - """Views module.""" + """Handlers module.""" from aiohttp import web + from dependency_injector.wiring import Provide from .services import SearchService + from .containers import Container async def index( request: web.Request, - search_service: SearchService, + search_service: SearchService = Provide[Container.search_service], ) -> web.Response: query = request.query.get('query', 'Dependency Injector') limit = int(request.query.get('limit', 10)) @@ -583,44 +554,35 @@ Edit ``views.py``: }, ) -Now let's inject the ``SearchService`` dependency into the ``index`` view. +To make the injection work we need to wire the container instance with the ``handlers`` module. +This needs to be done once. After it's done we can use ``Provide`` markers to specify as many +injections as needed for any handler. -Edit ``containers.py``: +Edit ``application.py``: .. code-block:: python - :emphasize-lines: 28-31 + :emphasize-lines: 13 - """Application containers module.""" + """Application module.""" - from dependency_injector import containers, providers - from dependency_injector.ext import aiohttp from aiohttp import web - from . import giphy, services, views + from .containers import Container + from . import handlers - class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" + def create_app() -> web.Application: + container = Container() + container.config.from_yaml('config.yml') + container.config.giphy.api_key.from_env('GIPHY_API_KEY') + container.wire(modules=[handlers]) - app = aiohttp.Application(web.Application) - - config = providers.Configuration() - - giphy_client = providers.Factory( - giphy.GiphyClient, - api_key=config.giphy.api_key, - timeout=config.giphy.request_timeout, - ) - - search_service = providers.Factory( - services.SearchService, - giphy_client=giphy_client, - ) - - index_view = aiohttp.View( - views.index, - search_service=search_service, - ) + app = web.Application() + app.container = container + app.add_routes([ + web.get('/', handlers.index), + ]) + return app Make sure the app is running or use: @@ -639,30 +601,30 @@ You should see: .. code-block:: json HTTP/1.1 200 OK - Content-Length: 850 + Content-Length: 492 Content-Type: application/json; charset=utf-8 - Date: Wed, 29 Jul 2020 22:22:55 GMT + Date: Fri, 09 Oct 2020 01:35:48 GMT Server: Python/3.8 aiohttp/3.6.2 { "gifs": [ + { + "url": "https://giphy.com/gifs/dollyparton-3xIVVMnZfG3KQ9v4Ye" + }, + { + "url": "https://giphy.com/gifs/tennistv-unbelievable-disbelief-cant-believe-UWWJnhHHbpGvZOapEh" + }, { "url": "https://giphy.com/gifs/discoverychannel-nugget-gold-rush-rick-ness-KGGPIlnC4hr4u2s3pY" }, { - "url": "https://giphy.com/gifs/primevideoin-ll1hyBS2IrUPLE0E71" + "url": "https://giphy.com/gifs/soulpancake-wow-work-xUe4HVXTPi0wQ2OAJC" }, { - "url": "https://giphy.com/gifs/jackman-works-jackmanworks-l4pTgQoCrmXq8Txlu" - }, - { - "url": "https://giphy.com/gifs/cat-massage-at-work-l46CzMaOlJXAFuO3u" - }, - { - "url": "https://giphy.com/gifs/everwhatproductions-fun-christmas-3oxHQCI8tKXoeW4IBq" - }, + "url": "https://giphy.com/gifs/readingrainbow-teamwork-levar-burton-reading-rainbow-3o7qE1EaTWLQGDSabK" + } ], - "limit": 10, + "limit": 5, "query": "wow,it works" } @@ -673,30 +635,32 @@ The search works! Make some refactoring --------------------- -Our ``index`` view has two hardcoded config values: +Our ``index`` handler has two hardcoded config values: - Default search query - Default results limit Let's make some refactoring. We will move these values to the config. -Edit ``views.py``: +Edit ``handlers.py``: .. code-block:: python - :emphasize-lines: 11-12,14-15 + :emphasize-lines: 13-14,16-17 - """Views module.""" + """Handlers module.""" from aiohttp import web + from dependency_injector.wiring import Provide from .services import SearchService + from .containers import Container async def index( request: web.Request, - search_service: SearchService, - default_query: str, - default_limit: int, + search_service: SearchService = Provide[Container.search_service], + default_query: str = Provide[Container.config.default.query], + default_limit: int = Provide[Container.config.default.limit.as_int()], ) -> web.Response: query = request.query.get('query', default_query) limit = int(request.query.get('limit', default_limit)) @@ -711,48 +675,7 @@ Edit ``views.py``: }, ) -Now we need to inject these values. Let's update the container. - -Edit ``containers.py``: - -.. code-block:: python - :emphasize-lines: 31-32 - - """Application containers module.""" - - from dependency_injector import containers, providers - from dependency_injector.ext import aiohttp - from aiohttp import web - - from . import giphy, services, views - - - class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" - - app = aiohttp.Application(web.Application) - - config = providers.Configuration() - - giphy_client = providers.Factory( - giphy.GiphyClient, - api_key=config.giphy.api_key, - timeout=config.giphy.request_timeout, - ) - - search_service = providers.Factory( - services.SearchService, - giphy_client=giphy_client, - ) - - index_view = aiohttp.View( - views.index, - search_service=search_service, - default_query=config.search.default_query, - default_limit=config.search.default_limit, - ) - -Finally let's update the config. +Let's update the config. Edit ``config.yml``: @@ -761,26 +684,21 @@ Edit ``config.yml``: giphy: request_timeout: 10 - search: - default_query: "Dependency Injector" - default_limit: 10 + default: + query: "Dependency Injector" + limit: 10 The refactoring is done. We've made it cleaner - hardcoded values are now moved to the config. -In the next section we will add some tests. - Tests ----- -It would be nice to add some tests. Let's do it. - -We will use `pytest `_ and -`coverage `_. +In this section we will add some tests. Create ``tests.py`` module in the ``giphynavigator`` package: .. code-block:: bash - :emphasize-lines: 8 + :emphasize-lines: 9 ./ ├── giphynavigator/ @@ -788,16 +706,17 @@ Create ``tests.py`` module in the ``giphynavigator`` package: │ ├── application.py │ ├── containers.py │ ├── giphy.py + │ ├── handlers.py │ ├── services.py - │ ├── tests.py - │ └── views.py + │ └── tests.py ├── venv/ + ├── config.yml └── requirements.txt and put next into it: .. code-block:: python - :emphasize-lines: 30,57,71 + :emphasize-lines: 32,59,73 """Tests module.""" @@ -811,7 +730,9 @@ and put next into it: @pytest.fixture def app(): - return create_app() + app = create_app() + yield app + app.container.unwire() @pytest.fixture @@ -874,8 +795,8 @@ and put next into it: assert response.status == 200 data = await response.json() - assert data['query'] == app.container.config.search.default_query() - assert data['limit'] == app.container.config.search.default_limit() + assert data['query'] == app.container.config.default.query() + assert data['limit'] == app.container.config.default.limit() Now let's run it and check the coverage: @@ -885,7 +806,7 @@ Now let's run it and check the coverage: You should see: -.. code-block:: bash +.. code-block:: platform darwin -- Python 3.8.3, pytest-5.4.3, py-1.9.0, pluggy-0.13.1 plugins: cov-2.10.0, aiohttp-0.3.0, asyncio-0.14.0 @@ -897,15 +818,14 @@ You should see: Name Stmts Miss Cover --------------------------------------------------- giphynavigator/__init__.py 0 0 100% - giphynavigator/__main__.py 5 5 0% - giphynavigator/application.py 10 0 100% - giphynavigator/containers.py 10 0 100% + giphynavigator/application.py 12 0 100% + giphynavigator/containers.py 6 0 100% giphynavigator/giphy.py 14 9 36% + giphynavigator/handlers.py 9 0 100% giphynavigator/services.py 9 1 89% - giphynavigator/tests.py 35 0 100% - giphynavigator/views.py 7 0 100% + giphynavigator/tests.py 37 0 100% --------------------------------------------------- - TOTAL 90 15 83% + TOTAL 87 10 89% .. note:: @@ -920,45 +840,19 @@ In this tutorial we've built an ``aiohttp`` REST API application following the d injection principle. We've used the ``Dependency Injector`` as a dependency injection framework. -The benefit you get with the ``Dependency Injector`` is the container. It starts to payoff -when you need to understand or change your application structure. It's easy with the container, -cause you have everything defined explicitly in one place: +:ref:`containers` and :ref:`providers` helped to specify how to assemble search service and +giphy client. -.. code-block:: python +:ref:`configuration-provider` helped to deal with reading YAML file and environment variable. - """Application containers module.""" +We used :ref:`wiring` feature to inject the dependencies into the ``index()`` handler. +:ref:`provider-overriding` feature helped in testing. - from dependency_injector import containers, providers - from dependency_injector.ext import aiohttp - from aiohttp import web +We kept all the dependencies injected explicitly. This will help when you need to add or +change something in future. - from . import giphy, services, views - - - class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" - - app = aiohttp.Application(web.Application) - - config = providers.Configuration() - - giphy_client = providers.Factory( - giphy.GiphyClient, - api_key=config.giphy.api_key, - timeout=config.giphy.request_timeout, - ) - - search_service = providers.Factory( - services.SearchService, - giphy_client=giphy_client, - ) - - index_view = aiohttp.View( - views.index, - search_service=search_service, - default_query=config.search.default_query, - default_limit=config.search.default_limit, - ) +You can find complete project on the +`Github `_. What's next? diff --git a/docs/tutorials/asyncio-daemon.rst b/docs/tutorials/asyncio-daemon.rst index 38e1c460..a279771d 100644 --- a/docs/tutorials/asyncio-daemon.rst +++ b/docs/tutorials/asyncio-daemon.rst @@ -27,7 +27,7 @@ Start from the scratch or jump to the section: :backlinks: none You can find complete project on the -`Github `_. +`Github `_. What are we going to build? --------------------------- @@ -42,7 +42,7 @@ response it will log: - The amount of bytes in the response - The time took to complete the response -.. image:: asyncio_images/diagram.png +.. image:: asyncio-images/diagram.png Prerequisites ------------- @@ -79,8 +79,8 @@ Create the project root folder and set it as a working directory: .. code-block:: bash - mkdir monitoring-daemon-tutorial - cd monitoring-daemon-tutorial + mkdir asyncio-daemon-tutorial + cd asyncio-daemon-tutorial Now we need to create the initial project structure. Create the files and folders following next layout. All files should be empty for now. We will fill them later. @@ -190,10 +190,10 @@ The output should look like: .. code-block:: bash - Creating network "monitoring-daemon-tutorial_default" with the default driver - Creating monitoring-daemon-tutorial_monitor_1 ... done - Attaching to monitoring-daemon-tutorial_monitor_1 - monitoring-daemon-tutorial_monitor_1 exited with code 0 + Creating network "asyncio-daemon-tutorial_default" with the default driver + Creating asyncio-daemon-tutorial_monitor_1 ... done + Attaching to asyncio-daemon-tutorial_monitor_1 + asyncio-daemon-tutorial_monitor_1 exited with code 0 The environment is ready. The application does not do any work and just exits with a code ``0``. @@ -214,7 +214,7 @@ Put next lines into the ``containers.py`` file: .. code-block:: python - """Application containers module.""" + """Containers module.""" import logging import sys @@ -222,8 +222,7 @@ Put next lines into the ``containers.py`` file: from dependency_injector import containers, providers - class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" + class Container(containers.DeclarativeContainer): config = providers.Configuration() @@ -259,29 +258,27 @@ Put next lines into the ``__main__.py`` file: .. code-block:: python - """Main module.""" + """Main module.""" - from .containers import ApplicationContainer + from .containers import Container - def main() -> None: - """Run the application.""" - container = ApplicationContainer() - - container.config.from_yaml('config.yml') - container.configure_logging() + def main() -> None: + ... - if __name__ == '__main__': - main() + if __name__ == '__main__': + container = Container() + container.config.from_yaml('config.yml') + container.configure_logging() + + main() .. note:: Container is the first object in the application. - The container is used to create all other objects. - -Logging and configuration parsing part is done. In the next section we will create the monitoring +Logging and configuration parsing part is done. In next section we will create the monitoring checks dispatcher. Dispatcher @@ -293,7 +290,7 @@ The dispatcher will control a list of the monitoring tasks. It will execute each to the configured schedule. The ``Monitor`` class is the base class for all the monitors. You can create different monitors by subclassing it and implementing the ``check()`` method. -.. image:: asyncio_images/class_1.png +.. image:: asyncio-images/classes-01.png Let's create dispatcher and the monitor base classes. @@ -336,7 +333,7 @@ and next into the ``dispatcher.py``: .. code-block:: python - """"Dispatcher module.""" + """Dispatcher module.""" import asyncio import logging @@ -382,6 +379,7 @@ and next into the ``dispatcher.py``: self._logger.info('Shutting down') for task, monitor in zip(self._monitor_tasks, self._monitors): task.cancel() + self._monitor_tasks.clear() self._logger.info('Shutdown finished successfully') @staticmethod @@ -407,9 +405,9 @@ Now we need to add the dispatcher to the container. Edit ``containers.py``: .. code-block:: python - :emphasize-lines: 8,23-28 + :emphasize-lines: 8,22-27 - """Application containers module.""" + """Containers module.""" import logging import sys @@ -419,8 +417,7 @@ Edit ``containers.py``: from . import dispatcher - class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" + class Container(containers.DeclarativeContainer): config = providers.Configuration() @@ -438,35 +435,35 @@ Edit ``containers.py``: ), ) -.. note:: +At the last we will inject dispatcher into the ``main()`` function +and call the ``run()`` method. We will use :ref:`wiring` feature. - Every component should be added to the container. - -At the last we will add the dispatcher in the ``main()`` function. We will retrieve the -dispatcher instance from the container and call the ``run()`` method. Edit ``__main__.py``: .. code-block:: python - :emphasize-lines: 13-14 + :emphasize-lines: 3-7,11-12,19 """Main module.""" - from .containers import ApplicationContainer + import sys + + from dependency_injector.wiring import Provide + + from .dispatcher import Dispatcher + from .containers import Container - def main() -> None: - """Run the application.""" - container = ApplicationContainer() - - container.config.from_yaml('config.yml') - container.configure_logging() - - dispatcher = container.dispatcher() + def main(dispatcher: Dispatcher = Provide[Container.dispatcher]) -> None: dispatcher.run() if __name__ == '__main__': + container = Container() + container.config.from_yaml('config.yml') + container.configure_logging() + container.wire(modules=[sys.modules[__name__]]) + main() Finally let's start the daemon to check that all works. @@ -481,22 +478,22 @@ The output should look like: .. code-block:: bash - Starting monitoring-daemon-tutorial_monitor_1 ... done - Attaching to monitoring-daemon-tutorial_monitor_1 + Starting asyncio-daemon-tutorial_monitor_1 ... done + Attaching to asyncio-daemon-tutorial_monitor_1 monitor_1 | [2020-08-08 16:12:35,772] [INFO] [Dispatcher]: Starting up monitor_1 | [2020-08-08 16:12:35,774] [INFO] [Dispatcher]: Shutting down monitor_1 | [2020-08-08 16:12:35,774] [INFO] [Dispatcher]: Shutdown finished successfully - monitoring-daemon-tutorial_monitor_1 exited with code 0 + asyncio-daemon-tutorial_monitor_1 exited with code 0 Everything works properly. Dispatcher starts up and exits because there are no monitoring tasks. -By the end of this section we have the application skeleton ready. In the next section will will +By the end of this section we have the application skeleton ready. In next section will will add first monitoring task. Example.com monitor ------------------- -In this section we will add the monitoring task that will check the availability of the +In this section we will add a monitoring task that will check the availability of the `http://example.com `_. We will start from the extending of our class model with a new type of the monitoring check, the @@ -506,9 +503,9 @@ The ``HttpMonitor`` is a subclass of the ``Monitor``. We will implement the ``ch will send the HTTP request to the specified URL. The http request sending will be delegated to the ``HttpClient``. -.. image:: asyncio_images/class_2.png +.. image:: asyncio-images/classes-02.png -First, we need to create the ``HttpClient``. +First we need to create the ``HttpClient``. Create ``http.py`` in the ``monitoringdaemon`` package: @@ -549,9 +546,9 @@ Now we need to add the ``HttpClient`` to the container. Edit ``containers.py``: .. code-block:: python - :emphasize-lines: 8, 23 + :emphasize-lines: 8,22 - """Application containers module.""" + """Containers module.""" import logging import sys @@ -561,8 +558,7 @@ Edit ``containers.py``: from . import http, dispatcher - class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" + class Container(containers.DeclarativeContainer): config = providers.Configuration() @@ -587,7 +583,7 @@ Now we're ready to add the ``HttpMonitor``. We will add it to the ``monitors`` m Edit ``monitors.py``: .. code-block:: python - :emphasize-lines: 4-5,7,20-56 + :emphasize-lines: 4-7,20-56 """Monitors module.""" @@ -638,7 +634,7 @@ Edit ``monitors.py``: ' %s %s\n' ' response code: %s\n' ' content length: %s\n' - ' request took: %s seconds\n', + ' request took: %s seconds', self._method, self._url, response.status, @@ -655,9 +651,9 @@ We make two changes in the container: Edit ``containers.py``: .. code-block:: python - :emphasize-lines: 8,25-29,34 + :emphasize-lines: 8,24-28,33 - """Application containers module.""" + """Containers module.""" import logging import sys @@ -667,8 +663,7 @@ Edit ``containers.py``: from . import http, monitors, dispatcher - class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" + class Container(containers.DeclarativeContainer): config = providers.Configuration() @@ -727,15 +722,14 @@ You should see: .. code-block:: bash - Starting monitoring-daemon-tutorial_monitor_1 ... done - Attaching to monitoring-daemon-tutorial_monitor_1 + Starting asyncio-daemon-tutorial_monitor_1 ... done + Attaching to asyncio-daemon-tutorial_monitor_1 monitor_1 | [2020-08-08 17:06:41,965] [INFO] [Dispatcher]: Starting up monitor_1 | [2020-08-08 17:06:42,033] [INFO] [HttpMonitor]: Check monitor_1 | GET http://example.com monitor_1 | response code: 200 monitor_1 | content length: 648 monitor_1 | request took: 0.067 seconds - monitor_1 | monitor_1 | [2020-08-08 17:06:47,040] [INFO] [HttpMonitor]: Check monitor_1 | GET http://example.com monitor_1 | response code: 200 @@ -744,21 +738,21 @@ You should see: Our daemon can monitor `http://example.com `_ availability. -Let's add the monitor for the `http://httpbin.org `_. +Let's add a monitor for the `http://httpbin.org `_. Httpbin.org monitor ------------------- -Adding of the monitor for the `httpbin.org`_ will be much easier because we have all the +Adding of a monitor for the `httpbin.org`_ will be much easier because we have all the components ready. We just need to create a new provider in the container and update the configuration. Edit ``containers.py``: .. code-block:: python - :emphasize-lines: 31-35,41 + :emphasize-lines: 30-34,40 - """Application containers module.""" + """Containers module.""" import logging import sys @@ -768,8 +762,7 @@ Edit ``containers.py``: from . import http, monitors, dispatcher - class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" + class Container(containers.DeclarativeContainer): config = providers.Configuration() @@ -837,27 +830,24 @@ You should see: .. code-block:: bash - Starting monitoring-daemon-tutorial_monitor_1 ... done - Attaching to monitoring-daemon-tutorial_monitor_1 + Starting asyncio-daemon-tutorial_monitor_1 ... done + Attaching to asyncio-daemon-tutorial_monitor_1 monitor_1 | [2020-08-08 18:09:08,540] [INFO] [Dispatcher]: Starting up monitor_1 | [2020-08-08 18:09:08,618] [INFO] [HttpMonitor]: Check monitor_1 | GET http://example.com monitor_1 | response code: 200 monitor_1 | content length: 648 monitor_1 | request took: 0.077 seconds - monitor_1 | monitor_1 | [2020-08-08 18:09:08,722] [INFO] [HttpMonitor]: Check monitor_1 | GET https://httpbin.org/get monitor_1 | response code: 200 monitor_1 | content length: 310 monitor_1 | request took: 0.18 seconds - monitor_1 | monitor_1 | [2020-08-08 18:09:13,619] [INFO] [HttpMonitor]: Check monitor_1 | GET http://example.com monitor_1 | response code: 200 monitor_1 | content length: 648 monitor_1 | request took: 0.066 seconds - monitor_1 | monitor_1 | [2020-08-08 18:09:13,681] [INFO] [HttpMonitor]: Check monitor_1 | GET https://httpbin.org/get monitor_1 | response code: 200 @@ -867,12 +857,12 @@ You should see: The functional part is done. Daemon monitors `http://example.com `_ and `https://httpbin.org `_. -In the next section we will add some tests. +In next section we will add some tests. Tests ----- -It would be nice to add some tests. Let's do it. +In this section we will add some tests. We will use `pytest `_ and `coverage `_. @@ -909,7 +899,7 @@ and put next into it: import pytest - from .containers import ApplicationContainer + from .containers import Container @dataclasses.dataclass @@ -920,7 +910,7 @@ and put next into it: @pytest.fixture def container(): - container = ApplicationContainer() + container = Container() container.config.from_dict({ 'log': { 'level': 'INFO', @@ -1002,14 +992,14 @@ You should see: Name Stmts Miss Cover ---------------------------------------------------- monitoringdaemon/__init__.py 0 0 100% - monitoringdaemon/__main__.py 9 9 0% + monitoringdaemon/__main__.py 12 12 0% monitoringdaemon/containers.py 11 0 100% - monitoringdaemon/dispatcher.py 43 5 88% + monitoringdaemon/dispatcher.py 44 5 89% monitoringdaemon/http.py 6 3 50% monitoringdaemon/monitors.py 23 1 96% monitoringdaemon/tests.py 37 0 100% ---------------------------------------------------- - TOTAL 129 18 86% + TOTAL 133 21 84% .. note:: @@ -1028,55 +1018,19 @@ In this tutorial we've built an ``asyncio`` monitoring daemon following the dep injection principle. We've used the ``Dependency Injector`` as a dependency injection framework. -The benefit you get with the ``Dependency Injector`` is the container. It starts to payoff -when you need to understand or change your application structure. It's easy with the container, -cause you have everything defined explicitly in one place: +With a help of :ref:`containers` and :ref:`providers` we have defined how to assemble application components. -.. code-block:: python +``List`` provider helped to inject a list of monitors into dispatcher. +:ref:`configuration-provider` helped to deal with reading YAML file. - """Application containers module.""" +We used :ref:`wiring` feature to inject dispatcher into the ``main()`` function. +:ref:`provider-overriding` feature helped in testing. - import logging - import sys +We kept all the dependencies injected explicitly. This will help when you need to add or +change something in future. - from dependency_injector import containers, providers - - from . import http, monitors, dispatcher - - - class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" - - config = providers.Configuration() - - configure_logging = providers.Callable( - logging.basicConfig, - stream=sys.stdout, - level=config.log.level, - format=config.log.format, - ) - - http_client = providers.Factory(http.HttpClient) - - example_monitor = providers.Factory( - monitors.HttpMonitor, - http_client=http_client, - options=config.monitors.example, - ) - - httpbin_monitor = providers.Factory( - monitors.HttpMonitor, - http_client=http_client, - options=config.monitors.httpbin, - ) - - dispatcher = providers.Factory( - dispatcher.Dispatcher, - monitors=providers.List( - example_monitor, - httpbin_monitor, - ), - ) +You can find complete project on the +`Github `_. What's next? diff --git a/docs/tutorials/asyncio_images/class_1.png b/docs/tutorials/asyncio-images/classes-01.png similarity index 100% rename from docs/tutorials/asyncio_images/class_1.png rename to docs/tutorials/asyncio-images/classes-01.png diff --git a/docs/tutorials/asyncio_images/class_2.png b/docs/tutorials/asyncio-images/classes-02.png similarity index 100% rename from docs/tutorials/asyncio_images/class_2.png rename to docs/tutorials/asyncio-images/classes-02.png diff --git a/docs/tutorials/asyncio_images/diagram.png b/docs/tutorials/asyncio-images/diagram.png similarity index 100% rename from docs/tutorials/asyncio_images/diagram.png rename to docs/tutorials/asyncio-images/diagram.png diff --git a/docs/tutorials/cli-images/classes_01.png b/docs/tutorials/cli-images/classes-01.png similarity index 100% rename from docs/tutorials/cli-images/classes_01.png rename to docs/tutorials/cli-images/classes-01.png diff --git a/docs/tutorials/cli-images/classes_02.png b/docs/tutorials/cli-images/classes-02.png similarity index 100% rename from docs/tutorials/cli-images/classes_02.png rename to docs/tutorials/cli-images/classes-02.png diff --git a/docs/tutorials/cli.rst b/docs/tutorials/cli.rst index d852b140..eba7531a 100644 --- a/docs/tutorials/cli.rst +++ b/docs/tutorials/cli.rst @@ -50,7 +50,7 @@ inversion of control: Here is a class diagram of the Movie Lister application: -.. image:: cli-images/classes_01.png +.. image:: cli-images/classes-01.png The responsibilities are split next way: @@ -63,18 +63,18 @@ Prepare the environment Let's create the environment for the project. -First we need to create a project folder and the virtual environment: +First we need to create a project folder: .. code-block:: bash mkdir movie-lister-tutorial cd movie-lister-tutorial - python3 -m venv venv -Now let's activate the virtual environment: +Now let's create and activate virtual environment: .. code-block:: bash + python3 -m venv venv . venv/bin/activate Project layout @@ -245,13 +245,13 @@ Edit ``containers.py``: from dependency_injector import containers - class ApplicationContainer(containers.DeclarativeContainer): + class Container(containers.DeclarativeContainer): ... Container is empty for now. We will add the providers in the following sections. Let's also create the ``main()`` function. Its responsibility is to run our application. For now -it will just create the container. +it will just do nothing. Edit ``__main__.py``: @@ -259,22 +259,18 @@ Edit ``__main__.py``: """Main module.""" - from .containers import ApplicationContainer + from .containers import Container - def main(): - container = ApplicationContainer() + def main() -> None: + ... if __name__ == '__main__': + container = Container() + main() -.. note:: - - Container is the first object in the application. - - The container is used to create all other objects. - Csv finder ---------- @@ -289,7 +285,7 @@ We will add: After each step we will add the provider to the container. -.. image:: cli-images/classes_02.png +.. image:: cli-images/classes-02.png Create the ``entities.py`` in the ``movies`` package: @@ -338,7 +334,7 @@ Now we need to add the ``Movie`` factory to the container. We need to add import Edit ``containers.py``: .. code-block:: python - :emphasize-lines: 3,5,9 + :emphasize-lines: 3,5,10 """Containers module.""" @@ -346,7 +342,8 @@ Edit ``containers.py``: from . import entities - class ApplicationContainer(containers.DeclarativeContainer): + + class Container(containers.DeclarativeContainer): movie = providers.Factory(entities.Movie) @@ -420,7 +417,7 @@ Now let's add the csv finder into the container. Edit ``containers.py``: .. code-block:: python - :emphasize-lines: 5,9,13-18 + :emphasize-lines: 5,10,14-19 """Containers module.""" @@ -428,7 +425,8 @@ Edit ``containers.py``: from . import finders, entities - class ApplicationContainer(containers.DeclarativeContainer): + + class Container(containers.DeclarativeContainer): config = providers.Configuration() @@ -474,20 +472,21 @@ The configuration file is ready. Now let's update the ``main()`` function to sp Edit ``__main__.py``: .. code-block:: python - :emphasize-lines: 9 + :emphasize-lines: 12 """Main module.""" - from .containers import ApplicationContainer + from .containers import Container - def main(): - container = ApplicationContainer() - - container.config.from_yaml('config.yml') + def main() -> None: + ... if __name__ == '__main__': + container = Container() + container.config.from_yaml('config.yml') + main() Move on to the lister. @@ -542,7 +541,7 @@ and put next into it: and edit ``containers.py``: .. code-block:: python - :emphasize-lines: 5,20-23 + :emphasize-lines: 5,21-24 """Containers module.""" @@ -550,7 +549,8 @@ and edit ``containers.py``: from . import finders, listers, entities - class ApplicationContainer(containers.DeclarativeContainer): + + class Container(containers.DeclarativeContainer): config = providers.Configuration() @@ -570,36 +570,69 @@ and edit ``containers.py``: All the components are created and added to the container. -Finally let's update the ``main()`` function. +Let's inject the ``lister`` into the ``main()`` function. Edit ``__main__.py``: .. code-block:: python - :emphasize-lines: 11-20 + :emphasize-lines: 3-7,11,18 """Main module.""" - from .containers import ApplicationContainer + import sys + + from dependency_injector.wiring import Provide + + from .listers import MovieLister + from .containers import Container - def main(): - container = ApplicationContainer() - - container.config.from_yaml('config.yml') - - lister = container.lister() - - print( - 'Francis Lawrence movies:', - lister.movies_directed_by('Francis Lawrence'), - ) - print( - '2016 movies:', - lister.movies_released_in(2016), - ) + def main(lister: MovieLister = Provide[Container.lister]) -> None: + ... if __name__ == '__main__': + container = Container() + container.config.from_yaml('config.yml') + container.wire(modules=[sys.modules[__name__]]) + + main() + +Now when we call ``main()`` the container will assemble and inject the movie lister. + +Let's add some payload to ``main()`` function. It will list movies directed by +Francis Lawrence and movies released in 2016. + +Edit ``__main__.py``: + +.. code-block:: python + :emphasize-lines: 12-18 + + """Main module.""" + + import sys + + from dependency_injector.wiring import Provide + + from .listers import MovieLister + from .containers import Container + + + def main(lister: MovieLister = Provide[Container.lister]) -> None: + print('Francis Lawrence movies:') + for movie in lister.movies_directed_by('Francis Lawrence'): + print('\t-', movie) + + print('2016 movies:') + for movie in lister.movies_released_in(2016): + print('\t-', movie) + + + if __name__ == '__main__': + container = Container() + container.config.from_yaml('config.yml') + container.wire(modules=[sys.modules[__name__]]) + main() All set. Now we run the application. @@ -612,12 +645,15 @@ Run in the terminal: You should see: -.. code-block:: bash +.. code-block:: plain - Francis Lawrence movies: [Movie(title='The Hunger Games: Mockingjay - Part 2', year=2015, director='Francis Lawrence')] - 2016 movies: [Movie(title='Rogue One: A Star Wars Story', year=2016, director='Gareth Edwards'), Movie(title='The Jungle Book', year=2016, director='Jon Favreau')] + Francis Lawrence movies: + - Movie(title='The Hunger Games: Mockingjay - Part 2', year=2015, director='Francis Lawrence') + 2016 movies: + - Movie(title='Rogue One: A Star Wars Story', year=2016, director='Gareth Edwards') + - Movie(title='The Jungle Book', year=2016, director='Jon Favreau') -Our application can work with the movies database in the csv format. We also need to support +Our application can work with the movies database in the csv format. We also want to support the sqlite format. We will deal with it in the next section. Sqlite finder @@ -688,7 +724,7 @@ Now we need to add the sqlite finder to the container and update lister's depend Edit ``containers.py``: .. code-block:: python - :emphasize-lines: 20-24,28 + :emphasize-lines: 21-25,29 """Containers module.""" @@ -696,7 +732,8 @@ Edit ``containers.py``: from . import finders, listers, entities - class ApplicationContainer(containers.DeclarativeContainer): + + class Container(containers.DeclarativeContainer): config = providers.Configuration() @@ -747,10 +784,13 @@ Run in the terminal: You should see: -.. code-block:: bash +.. code-block:: plain - Francis Lawrence movies: [Movie(title='The Hunger Games: Mockingjay - Part 2', year=2015, director='Francis Lawrence')] - 2016 movies: [Movie(title='Rogue One: A Star Wars Story', year=2016, director='Gareth Edwards'), Movie(title='The Jungle Book', year=2016, director='Jon Favreau')] + Francis Lawrence movies: + - Movie(title='The Hunger Games: Mockingjay - Part 2', year=2015, director='Francis Lawrence') + 2016 movies: + - Movie(title='Rogue One: A Star Wars Story', year=2016, director='Gareth Edwards') + - Movie(title='The Jungle Book', year=2016, director='Jon Favreau') Our application now supports both formats: csv files and sqlite databases. Every time when we need to work with the different format we need to make a code change in the container. We will @@ -782,7 +822,7 @@ Edit ``containers.py``: from . import finders, listers, entities - class ApplicationContainer(containers.DeclarativeContainer): + class Container(containers.DeclarativeContainer): config = providers.Configuration() @@ -812,7 +852,7 @@ Edit ``containers.py``: movie_finder=finder, ) -The switch is the ``config.finder.type`` option. When its value is ``csv``, the provider under +The switch is the ``config.finder.type`` option. When its value is ``csv``, the provider with the ``csv`` key is used. The same is for ``sqlite``. Now we need to read the value of the ``config.finder.type`` option from the environment variable @@ -821,32 +861,34 @@ Now we need to read the value of the ``config.finder.type`` option from the envi Edit ``__main__.py``: .. code-block:: python - :emphasize-lines: 10 + :emphasize-lines: 24 """Main module.""" - from .containers import ApplicationContainer + import sys + + from dependency_injector.wiring import Provide + + from .listers import MovieLister + from .containers import Container - def main(): - container = ApplicationContainer() + def main(lister: MovieLister = Provide[Container.lister]) -> None: + print('Francis Lawrence movies:') + for movie in lister.movies_directed_by('Francis Lawrence'): + print('\t-', movie) - container.config.from_yaml('config.yml') - container.config.finder.type.from_env('MOVIE_FINDER_TYPE') - - lister = container.lister() - - print( - 'Francis Lawrence movies:', - lister.movies_directed_by('Francis Lawrence'), - ) - print( - '2016 movies:', - lister.movies_released_in(2016), - ) + print('2016 movies:') + for movie in lister.movies_released_in(2016): + print('\t-', movie) if __name__ == '__main__': + container = Container() + container.config.from_yaml('config.yml') + container.config.finder.type.from_env('MOVIE_FINDER_TYPE') + container.wire(modules=[sys.modules[__name__]]) + main() Done. @@ -858,12 +900,15 @@ Run in the terminal line by line: MOVIE_FINDER_TYPE=csv python -m movies MOVIE_FINDER_TYPE=sqlite python -m movies -The output should be something like this for each command: +The output should be similar for each command: -.. code-block:: bash +.. code-block:: plain - Francis Lawrence movies: [Movie(title='The Hunger Games: Mockingjay - Part 2', year=2015, director='Francis Lawrence')] - 2016 movies: [Movie(title='Rogue One: A Star Wars Story', year=2016, director='Gareth Edwards'), Movie(title='The Jungle Book', year=2016, director='Jon Favreau')] + Francis Lawrence movies: + - Movie(title='The Hunger Games: Mockingjay - Part 2', year=2015, director='Francis Lawrence') + 2016 movies: + - Movie(title='Rogue One: A Star Wars Story', year=2016, director='Gareth Edwards') + - Movie(title='The Jungle Book', year=2016, director='Jon Favreau') In the next section we will add some tests. @@ -908,12 +953,12 @@ and put next into it: import pytest - from .containers import ApplicationContainer + from .containers import Container @pytest.fixture def container(): - container = ApplicationContainer() + container = Container() container.config.from_dict({ 'finder': { 'type': 'csv', @@ -966,7 +1011,7 @@ Run in the terminal: You should see: -.. code-block:: bash +.. code-block:: platform darwin -- Python 3.8.3, pytest-5.4.3, py-1.9.0, pluggy-0.13.1 plugins: cov-2.10.0 @@ -974,18 +1019,18 @@ You should see: movies/tests.py .. [100%] - ---------- coverage: platform darwin, python 3.8.3-final-0 ----------- + ---------- coverage: platform darwin, python 3.8.5-final-0 ----------- Name Stmts Miss Cover ------------------------------------------ movies/__init__.py 0 0 100% - movies/__main__.py 10 10 0% + movies/__main__.py 17 17 0% movies/containers.py 9 0 100% movies/entities.py 7 1 86% movies/finders.py 26 13 50% movies/listers.py 8 0 100% movies/tests.py 24 0 100% ------------------------------------------ - TOTAL 84 24 71% + TOTAL 91 31 66% .. note:: @@ -1002,48 +1047,19 @@ Conclusion In this tutorial we've built a CLI application following the dependency injection principle. We've used the ``Dependency Injector`` as a dependency injection framework. -The benefit you get with the ``Dependency Injector`` is the container. It starts to payoff -when you need to understand or change your application structure. It's easy with the container, -cause you have everything defined explicitly in one place: +With a help of :ref:`containers` and :ref:`providers` we have defined how to assemble application components. -.. code-block:: python +``Selector`` provider served as a switch for selecting the database format based on a configuration. +:ref:`configuration-provider` helped to deal with reading YAML file and environment variable. - """Containers module.""" +We used :ref:`wiring` feature to inject the dependencies into the ``main()`` function. +:ref:`provider-overriding` feature helped in testing. - from dependency_injector import containers, providers +We kept all the dependencies injected explicitly. This will help when you need to add or +change something in future. - from . import finders, listers, entities - - - class ApplicationContainer(containers.DeclarativeContainer): - - config = providers.Configuration() - - movie = providers.Factory(entities.Movie) - - csv_finder = providers.Singleton( - finders.CsvMovieFinder, - movie_factory=movie.provider, - path=config.finder.csv.path, - delimiter=config.finder.csv.delimiter, - ) - - sqlite_finder = providers.Singleton( - finders.SqliteMovieFinder, - movie_factory=movie.provider, - path=config.finder.sqlite.path, - ) - - finder = providers.Selector( - config.finder.type, - csv=csv_finder, - sqlite=sqlite_finder, - ) - - lister = providers.Factory( - listers.MovieLister, - movie_finder=finder, - ) +You can find complete project on the +`Github `_. What's next? diff --git a/docs/tutorials/flask_images/screen_01.png b/docs/tutorials/flask-images/screen-01.png similarity index 100% rename from docs/tutorials/flask_images/screen_01.png rename to docs/tutorials/flask-images/screen-01.png diff --git a/examples/miniapps/ghnav-flask/screenshot.png b/docs/tutorials/flask-images/screen-02.png similarity index 100% rename from examples/miniapps/ghnav-flask/screenshot.png rename to docs/tutorials/flask-images/screen-02.png diff --git a/docs/tutorials/flask.rst b/docs/tutorials/flask.rst index e36b17c9..54ceb73c 100644 --- a/docs/tutorials/flask.rst +++ b/docs/tutorials/flask.rst @@ -21,7 +21,7 @@ Start from the scratch or jump to the section: :backlinks: none You can find complete project on the -`Github `_. +`Github `_. What are we going to build? --------------------------- @@ -43,25 +43,25 @@ How does Github Navigator work? - User can click on the repository, the repository owner or the last commit to open its web page on the Github. -.. image:: flask_images/screen_02.png +.. image:: flask-images/screen-02.png Prepare the environment ----------------------- Let's create the environment for the project. -First we need to create a project folder and the virtual environment: +First we need to create a project folder: .. code-block:: bash mkdir ghnav-flask-tutorial cd ghnav-flask-tutorial - python3 -m venv venv -Now let's activate the virtual environment: +Now let's create and activate virtual environment: .. code-block:: bash + python3 -m venv venv . venv/bin/activate Project layout @@ -110,13 +110,13 @@ You should see something like: .. code-block:: bash (venv) $ python -c "import dependency_injector; print(dependency_injector.__version__)" - 3.22.0 + 4.0.0 (venv) $ python -c "import flask; print(flask.__version__)" 1.1.2 *Versions can be different. That's fine.* -Hello world! +Hello World! ------------ Let's create minimal application. @@ -133,34 +133,25 @@ Put next into the ``views.py``: Ok, we have the view. -Now let's create the main part of our application - the container. Container will keep all of the -application components and their dependencies. First two providers we need to add are -the ``Flask`` application provider and the view provider. +Now let's create a container. Container will keep all of the application components and their dependencies. -Put next into the ``containers.py``: +Edit ``containers.py``: .. code-block:: python - """Application containers module.""" + """Containers module.""" from dependency_injector import containers - from dependency_injector.ext import flask - from flask import Flask - - from . import views - class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" + class Container(containers.DeclarativeContainer): + ... - app = flask.Application(Flask, __name__) +Container is empty for now. We will add the providers in the following sections. - index_view = flask.View(views.index) - -Finally we need to create the Flask application factory. It is traditionally called -``create_app()``. It will create the container. Then it will use the container to create -the Flask application. Last step is to configure the routing - we will assign ``index_view`` from -the container to handle user requests to the root ``/`` of our web application. +Finally we need to create Flask application factory. It will create and configure container +and Flask application. It is traditionally called ``create_app()``. +We will assign ``index`` view to handle user requests to the root ``/`` of our web application. Put next into the ``application.py``: @@ -168,26 +159,21 @@ Put next into the ``application.py``: """Application module.""" - from .containers import ApplicationContainer + from flask import Flask + + from .containers import Container + from . import views - def create_app(): - """Create and return Flask application.""" - container = ApplicationContainer() + def create_app() -> Flask: + container = Container() - app = container.app() + app = Flask(__name__) app.container = container - - app.add_url_rule('/', view_func=container.index_view.as_view()) + app.add_url_rule('/', 'index', views.index) return app -.. note:: - - Container is the first object in the application. - - The container is used to create all other objects. - Ok. Now we're ready to say "Hello, World!". Do next in the terminal: @@ -237,58 +223,34 @@ and run in the terminal: .. code-block:: bash - pip install --upgrade -r requirements.txt - -Now we need to add ``bootstrap-flask`` extension to the container. - -Edit ``containers.py``: - -.. code-block:: python - :emphasize-lines: 6,16 - - """Application containers module.""" - - from dependency_injector import containers - from dependency_injector.ext import flask - from flask import Flask - from flask_bootstrap import Bootstrap - - from . import views - - - class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" - - app = flask.Application(Flask, __name__) - - bootstrap = flask.Extension(Bootstrap) - - index_view = flask.View(views.index) + pip install -r requirements.txt Let's initialize ``bootstrap-flask`` extension. We will need to modify ``create_app()``. Edit ``application.py``: .. code-block:: python - :emphasize-lines: 13-14 + :emphasize-lines: 4,17-18 """Application module.""" - from .containers import ApplicationContainer + from flask import Flask + from flask_bootstrap import Bootstrap + + from .containers import Container + from . import views - def create_app(): - """Create and return Flask application.""" - container = ApplicationContainer() + def create_app() -> Flask: + container = Container() - app = container.app() + app = Flask(__name__) app.container = container + app.add_url_rule('/', 'index', views.index) - bootstrap = container.bootstrap() + bootstrap = Bootstrap() bootstrap.init_app(app) - app.add_url_rule('/', view_func=container.index_view.as_view()) - return app Now we need to add the templates. For doing this we will need to add the folder ``templates/`` to @@ -454,7 +416,7 @@ Make sure the app is running or use ``flask run`` and open ``http://127.0.0.1:50 You should see: -.. image:: flask_images/screen_01.png +.. image:: flask-images/screen-01.png Connect to the GitHub --------------------- @@ -477,7 +439,7 @@ and run in the terminal: .. code-block:: bash - pip install --upgrade -r requirements.txt + pip install -r requirements.txt Now we need to add Github API client the container. We will need to add two more providers from the ``dependency_injector.providers`` module: @@ -486,30 +448,18 @@ the ``dependency_injector.providers`` module: - ``Configuration`` provider that will be used for providing the API token and the request timeout for the ``Github`` client. -Let's do it. - Edit ``containers.py``: .. code-block:: python - :emphasize-lines: 3,7,19,21-25 + :emphasize-lines: 3-4,9,11-15 - """Application containers module.""" + """Containers module.""" from dependency_injector import containers, providers - from dependency_injector.ext import flask - from flask import Flask - from flask_bootstrap import Bootstrap from github import Github - from . import views - - class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" - - app = flask.Application(Flask, __name__) - - bootstrap = flask.Extension(Bootstrap) + class Container(containers.DeclarativeContainer): config = providers.Configuration() @@ -519,8 +469,6 @@ Edit ``containers.py``: timeout=config.github.request_timeout, ) - index_view = flask.View(views.index) - .. note:: We have used the configuration value before it was defined. That's the principle how @@ -528,11 +476,16 @@ Edit ``containers.py``: Use first, define later. +.. note:: + + Don't forget to remove the Ellipsis ``...`` from the container. We don't need it anymore + since we container is not empty. + Now let's add the configuration file. We will use YAML. -Create an empty file ``config.yml`` in the root root of the project: +Create an empty file ``config.yml`` in the root of the project: .. code-block:: bash :emphasize-lines: 11 @@ -575,7 +528,7 @@ and install it: .. code-block:: bash - pip install --upgrade -r requirements.txt + pip install -r requirements.txt We will use environment variable ``GITHUB_TOKEN`` to provide the API token. @@ -587,27 +540,29 @@ Now we need to edit ``create_app()`` to make two things when application starts: Edit ``application.py``: .. code-block:: python - :emphasize-lines: 9-10 + :emphasize-lines: 12-13 """Application module.""" - from .containers import ApplicationContainer + from flask import Flask + from flask_bootstrap import Bootstrap + + from .containers import Container + from . import views - def create_app(): - """Create and return Flask application.""" - container = ApplicationContainer() + def create_app() -> Flask: + container = Container() container.config.from_yaml('config.yml') container.config.github.auth_token.from_env('GITHUB_TOKEN') - app = container.app() + app = Flask(__name__) app.container = container + app.add_url_rule('/', 'index', views.index) - bootstrap = container.bootstrap() + bootstrap = Bootstrap() bootstrap.init_app(app) - app.add_url_rule('/', view_func=container.index_view.as_view()) - return app Now we need create an API token. @@ -636,7 +591,7 @@ Github API client setup is done. Search service -------------- -Now it's time to add the ``SearchService``. It will: +Now it's time to add ``SearchService``. It will: - Perform the search. - Fetch commit extra data for each result. @@ -717,25 +672,17 @@ Now let's add ``SearchService`` to the container. Edit ``containers.py``: .. code-block:: python - :emphasize-lines: 9,27-30 + :emphasize-lines: 6,19-22 - """Application containers module.""" + """Containers module.""" from dependency_injector import containers, providers - from dependency_injector.ext import flask - from flask import Flask - from flask_bootstrap import Bootstrap from github import Github - from . import services, views + from . import services - class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" - - app = flask.Application(Flask, __name__) - - bootstrap = flask.Extension(Bootstrap) + class Container(containers.DeclarativeContainer): config = providers.Configuration() @@ -750,26 +697,28 @@ Edit ``containers.py``: github_client=github_client, ) - index_view = flask.View(views.index) +Inject search service into view +------------------------------- -Make the search work --------------------- +Now we are ready to make the search work. -Now we are ready to make the search work. Let's use the ``SearchService`` in the ``index`` view. +Let's inject ``SearchService`` into the ``index`` view. We will use :ref:`Wiring` feature. Edit ``views.py``: .. code-block:: python - :emphasize-lines: 5,8,12 + :emphasize-lines: 4,6-7,10,14 """Views module.""" from flask import request, render_template + from dependency_injector.wiring import Provide from .services import SearchService + from .containers import Container - def index(search_service: SearchService): + def index(search_service: SearchService = Provide[Container.search_service]): query = request.args.get('query', 'Dependency Injector') limit = request.args.get('limit', 10, int) @@ -782,54 +731,44 @@ Edit ``views.py``: repositories=repositories, ) -Now let's inject the ``SearchService`` dependency into the ``index`` view. +To make the injection work we need to wire the container instance with the ``views`` module. +This needs to be done once. After it's done we can use ``Provide`` markers to specify as many +injections as needed for any view. -Edit ``containers.py``: +Edit ``application.py``: .. code-block:: python - :emphasize-lines: 32-35 + :emphasize-lines: 14 - """Application containers module.""" + """Application module.""" - from dependency_injector import containers, providers - from dependency_injector.ext import flask from flask import Flask from flask_bootstrap import Bootstrap - from github import Github - from . import services, views + from .containers import Container + from . import views - class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" + def create_app() -> Flask: + container = Container() + container.config.from_yaml('config.yml') + container.config.github.auth_token.from_env('GITHUB_TOKEN') + container.wire(modules=[views]) - app = flask.Application(Flask, __name__) + app = Flask(__name__) + app.container = container + app.add_url_rule('/', 'index', views.index) - bootstrap = flask.Extension(Bootstrap) + bootstrap = Bootstrap() + bootstrap.init_app(app) - config = providers.Configuration() - - github_client = providers.Factory( - Github, - login_or_token=config.github.auth_token, - timeout=config.github.request_timeout, - ) - - search_service = providers.Factory( - services.SearchService, - github_client=github_client, - ) - - index_view = flask.View( - views.index, - search_service=search_service, - ) + return app Make sure the app is running or use ``flask run`` and open ``http://127.0.0.1:5000/``. You should see: -.. image:: flask_images/screen_02.png +.. image:: flask-images/screen-02.png Make some refactoring --------------------- @@ -844,19 +783,21 @@ Let's make some refactoring. We will move these values to the config. Edit ``views.py``: .. code-block:: python - :emphasize-lines: 8-14 + :emphasize-lines: 10-16 """Views module.""" from flask import request, render_template + from dependency_injector.wiring import Provide from .services import SearchService + from .containers import Container def index( - search_service: SearchService, - default_query: str, - default_limit: int, + search_service: SearchService = Provide[Container.search_service], + default_query: str = Provide[Container.config.default.query], + default_limit: int = Provide[Container.config.default.limit.as_int()], ): query = request.args.get('query', default_query) limit = request.args.get('limit', default_limit, int) @@ -870,53 +811,6 @@ Edit ``views.py``: repositories=repositories, ) -Now we need to inject these values. Let's update the container. - -Edit ``containers.py``: - -.. code-block:: python - :emphasize-lines: 35-36 - - """Application containers module.""" - - from dependency_injector import containers, providers - from dependency_injector.ext import flask - from flask import Flask - from flask_bootstrap import Bootstrap - from github import Github - - from . import services, views - - - class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" - - app = flask.Application(Flask, __name__) - - bootstrap = flask.Extension(Bootstrap) - - config = providers.Configuration() - - github_client = providers.Factory( - Github, - login_or_token=config.github.auth_token, - timeout=config.github.request_timeout, - ) - - search_service = providers.Factory( - services.SearchService, - github_client=github_client, - ) - - index_view = flask.View( - views.index, - search_service=search_service, - default_query=config.search.default_query, - default_limit=config.search.default_limit, - ) - -Finally let's update the config. - Edit ``config.yml``: .. code-block:: yaml @@ -924,20 +818,18 @@ Edit ``config.yml``: github: request_timeout: 10 - search: - default_query: "Dependency Injector" - default_limit: 10 + default: + query: "Dependency Injector" + limit: 10 -That's it. - -The refactoring is done. We've made it cleaner. +That's it. The refactoring is done. We've made it cleaner. Tests ----- -It would be nice to add some tests. Let's do this. +In this section we will add some tests. -We will use `pytest `_ and +We will use `pytest `_ with its Flask extension and `coverage `_. Edit ``requirements.txt``: @@ -953,7 +845,7 @@ Edit ``requirements.txt``: pytest-flask pytest-cov -And let's install it: +And install added packages: .. code-block:: bash @@ -982,7 +874,7 @@ Create empty file ``tests.py`` in the ``githubnavigator`` package: and put next into it: .. code-block:: python - :emphasize-lines: 42,65 + :emphasize-lines: 44,67 """Tests module.""" @@ -997,7 +889,9 @@ and put next into it: @pytest.fixture def app(): - return create_app() + app = create_app() + yield app + app.container.unwire() def test_index(client, app): @@ -1074,13 +968,13 @@ You should see: Name Stmts Miss Cover ---------------------------------------------------- githubnavigator/__init__.py 0 0 100% - githubnavigator/application.py 11 0 100% - githubnavigator/containers.py 13 0 100% + githubnavigator/application.py 15 0 100% + githubnavigator/containers.py 7 0 100% githubnavigator/services.py 14 0 100% - githubnavigator/tests.py 32 0 100% - githubnavigator/views.py 7 0 100% + githubnavigator/tests.py 34 0 100% + githubnavigator/views.py 9 0 100% ---------------------------------------------------- - TOTAL 77 0 100% + TOTAL 79 0 100% .. note:: @@ -1091,53 +985,22 @@ You should see: Conclusion ---------- -We are done. - In this tutorial we've built a ``Flask`` application following the dependency injection principle. We've used the ``Dependency Injector`` as a dependency injection framework. -The main part of this application is the container. It keeps all the application components and -their dependencies defined explicitly in one place: +:ref:`containers` and :ref:`providers` helped to specify how to assemble search service and +integrate it with a 3rd-party library. -.. code-block:: python +:ref:`configuration-provider` helped to deal with reading YAML file and environment variable. - """Application containers module.""" +We used :ref:`wiring` feature to inject the dependencies into the ``index()`` view. +:ref:`provider-overriding` feature helped in testing. - from dependency_injector import containers, providers - from dependency_injector.ext import flask - from flask import Flask - from flask_bootstrap import Bootstrap - from github import Github +We kept all the dependencies injected explicitly. This will help when you need to add or +change something in future. - from . import services, views - - - class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" - - app = flask.Application(Flask, __name__) - - bootstrap = flask.Extension(Bootstrap) - - config = providers.Configuration() - - github_client = providers.Factory( - Github, - login_or_token=config.github.auth_token, - timeout=config.github.request_timeout, - ) - - search_service = providers.Factory( - services.SearchService, - github_client=github_client, - ) - - index_view = flask.View( - views.index, - search_service=search_service, - default_query=config.search.default_query, - default_limit=config.search.default_limit, - ) +You can find complete project on the +`Github `_. What's next? diff --git a/docs/wiring.rst b/docs/wiring.rst new file mode 100644 index 00000000..eeaed305 --- /dev/null +++ b/docs/wiring.rst @@ -0,0 +1,201 @@ +.. _wiring: + +Wiring +====== + +Wiring feature provides a way to inject container providers into the functions and methods. + +To use wiring you need: + +- **Place markers in the code**. Wiring marker specifies what provider to inject, + e.g. ``Provide[Container.bar]``. This helps container to find the injections. +- **Wire the container with the markers in the code**. Call ``container.wire()`` + specifying modules and packages you would like to wire it with. +- **Use functions and classes as you normally do**. Framework will provide specified injections. + +.. literalinclude:: ../examples/wiring/example.py + :language: python + :lines: 3- + +Markers +------- + +Wiring feature uses markers to make injections. Injection marker is specified as a default value of +a function or method argument: + +.. code-block:: python + + from dependency_injector.wiring import Provide + + + def foo(bar: Bar = Provide[Container.bar]): + ... + +Specifying an annotation is optional. + +There are two types of markers: + +- ``Provide[foo]`` - call the provider ``foo`` and injects the result +- ``Provider[foo]`` - injects the provider ``foo`` itself + +.. code-block:: python + + from dependency_injector.wiring import Provider + + + def foo(bar_provider: Callable[..., Bar] = Provider[Container.bar]): + bar = bar_provider() + ... + +You can use configuration, provided instance and sub-container providers as you normally do. + +.. code-block:: python + + def foo(token: str = Provide[Container.config.api_token]): + ... + + + def foo(timeout: int = Provide[Container.config.timeout.as_(int)]): + ... + + + def foo(baz: Baz = Provide[Container.bar.provided.baz]): + ... + + + def foo(bar: Bar = Provide[Container.subcontainer.bar]): + ... + +Wiring with modules and packages +-------------------------------- + +To wire a container with a module you need to call ``container.wire(modules=[...])`` method. Argument +``modules`` is an iterable of the module objects. + +.. code-block:: python + + from yourapp import module1, module2 + + + container = Container() + container.wire(modules=[module1, module2]) + +You can wire container with a package. Container walks recursively over package modules. + +.. code-block:: python + + from yourapp import package1, package2 + + + container = Container() + container.wire(packages=[package1, package2]) + +Arguments ``modules`` and ``packages`` can be used together. + +When wiring is done functions and methods with the markers are patched to provide injections when called. + +.. code-block:: python + + def foo(bar: Bar = Provide[Container.bar]): + ... + + + container = Container() + container.wire(modules=[sys.modules[__name__]]) + + foo() # <--- Argument "bar" is injected + +Injections are done as keyword arguments. + +.. code-block:: python + + foo() # Equivalent to: + foo(bar=container.bar()) + +Context keyword arguments have a priority over injections. + +.. code-block:: python + + foo(bar=Bar()) # Bar() is injected + +To unpatch previously patched functions and methods call ``container.unwire()`` method. + +.. code-block:: python + + container.unwire() + +You can use that in testing to re-create and re-wire a container before each test. + +.. code-block:: python + + import unittest + + + class SomeTest(unittest.TestCase): + + def setUp(self): + self.container = Container() + self.container.wire(modules=[module1, module2]) + self.addCleanup(self.container.unwire) + +.. code-block:: python + + import pytest + + + @pytest.fixture + def container(): + container = Container() + container.wire(modules=[module1, module2]) + yield container + container.unwire() + +.. note:: + Wiring can take time if you have a large codebase. Consider to persist a container instance and + avoid re-wiring between tests. + +.. note:: + Python has a limitation on patching already imported individual members. To protect from errors + prefer an import of modules instead of individual members or make sure that imports happen + after the wiring: + + .. code-block:: python + + from . import module + + module.fn() + + # instead of + + from .module import fn + + fn() + +Integration with other frameworks +--------------------------------- + +Wiring feature helps to integrate with other frameworks like Django, Flask, etc. + +With wiring you do not need to change the traditional application structure of your framework. + +1. Create a container and put framework-independent components as providers. +2. Place wiring markers in the functions and methods where you want the providers + to be injected (Flask or Django views, Aiohttp or Sanic handlers, etc). +3. Wire the container with the application modules. +4. Run the application. + +.. literalinclude:: ../examples/wiring/flask_example.py + :language: python + :lines: 3- + +Take a look at other application examples: + +- :ref:`application-single-container` +- :ref:`application-multiple-containers` +- :ref:`decoupled-packages` +- :ref:`django-example` +- :ref:`flask-example` +- :ref:`aiohttp-example` +- :ref:`sanic-example` + +.. disqus:: diff --git a/examples/demo/after.py b/examples/demo/after.py new file mode 100644 index 00000000..1e8570c6 --- /dev/null +++ b/examples/demo/after.py @@ -0,0 +1,29 @@ +import os + + +class ApiClient: + + def __init__(self, api_key: str, timeout: int): + self.api_key = api_key # <-- dependency is injected + self.timeout = timeout # <-- dependency is injected + + +class Service: + + def __init__(self, api_client: ApiClient): + self.api_client = api_client # <-- dependency is injected + + +def main(service: Service): # <-- dependency is injected + ... + + +if __name__ == '__main__': + main( + service=Service( + api_client=ApiClient( + api_key=os.getenv('API_KEY'), + timeout=os.getenv('TIMEOUT'), + ), + ), + ) diff --git a/examples/demo/before.py b/examples/demo/before.py new file mode 100644 index 00000000..832d4863 --- /dev/null +++ b/examples/demo/before.py @@ -0,0 +1,23 @@ +import os + + +class ApiClient: + + def __init__(self): + self.api_key = os.getenv('API_KEY') # <-- dependency + self.timeout = os.getenv('TIMEOUT') # <-- dependency + + +class Service: + + def __init__(self): + self.api_client = ApiClient() # <-- dependency + + +def main() -> None: + service = Service() # <-- dependency + ... + + +if __name__ == '__main__': + main() diff --git a/examples/di_demo/demo.py b/examples/demo/with_di.py similarity index 56% rename from examples/di_demo/demo.py rename to examples/demo/with_di.py index c62c1804..9fb5218f 100644 --- a/examples/di_demo/demo.py +++ b/examples/demo/with_di.py @@ -1,17 +1,10 @@ +import sys +from unittest import mock + from dependency_injector import containers, providers +from dependency_injector.wiring import Provide - -class ApiClient: - - def __init__(self, api_key: str, timeout: int): - self.api_key = api_key - self.timeout = timeout - - -class Service: - - def __init__(self, api_client: ApiClient): - self.api_client = api_client +from after import ApiClient, Service class Container(containers.DeclarativeContainer): @@ -30,9 +23,17 @@ class Container(containers.DeclarativeContainer): ) +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__]]) - service = container.service() + main() # <-- dependency is injected automatically + + with container.api_client.override(mock.Mock()): + main() # <-- overridden dependency is injected automatically diff --git a/examples/di_demo/example_di.py b/examples/di_demo/example_di.py deleted file mode 100644 index db85c237..00000000 --- a/examples/di_demo/example_di.py +++ /dev/null @@ -1,18 +0,0 @@ -import os - - -class ApiClient: - - def __init__(self, api_key: str, timeout: int): - self.api_key = api_key - self.timeout = timeout - - -class Service: - - def __init__(self, api_client: ApiClient): - self.api_client = api_client - - -if __name__ == '__main__': - service = Service(ApiClient(os.getenv('API_KEY'), os.getenv('TIMEOUT'))) diff --git a/examples/di_demo/example_no_di.py b/examples/di_demo/example_no_di.py deleted file mode 100644 index c567ebd6..00000000 --- a/examples/di_demo/example_no_di.py +++ /dev/null @@ -1,18 +0,0 @@ -import os - - -class ApiClient: - - def __init__(self): - self.api_key = os.getenv('API_KEY') - self.timeout = os.getenv('TIMEOUT') - - -class Service: - - def __init__(self): - self.api_client = ApiClient() - - -if __name__ == '__main__': - service = Service() diff --git a/examples/di_demo/test.py b/examples/di_demo/test.py deleted file mode 100644 index 56310989..00000000 --- a/examples/di_demo/test.py +++ /dev/null @@ -1,11 +0,0 @@ -from unittest import mock - -from demo import Container - - -if __name__ == '__main__': - container = Container() - - with container.api_client.override(mock.Mock()): - service = container.service() - assert isinstance(service.api_client, mock.Mock) diff --git a/examples/miniapps/giphynav-aiohttp/README.rst b/examples/miniapps/aiohttp/README.rst similarity index 84% rename from examples/miniapps/giphynav-aiohttp/README.rst rename to examples/miniapps/aiohttp/README.rst index 9ac19d22..bb56fe2b 100644 --- a/examples/miniapps/giphynav-aiohttp/README.rst +++ b/examples/miniapps/aiohttp/README.rst @@ -1,8 +1,10 @@ -Aiohttp Dependency Injection Example -==================================== +Aiohttp + Dependency Injector Example +===================================== -Application ``giphynavigator`` is an `Aiohttp `_ + -`Dependency Injector `_ application. +This is an `Aiohttp `_ + +`Dependency Injector `_ example application. + +The example application is a REST API that searches for funny GIFs on the `Giphy `_. Run --- @@ -106,12 +108,11 @@ The output should be something like: Name Stmts Miss Cover --------------------------------------------------- giphynavigator/__init__.py 0 0 100% - giphynavigator/__main__.py 5 5 0% - giphynavigator/application.py 10 0 100% - giphynavigator/containers.py 10 0 100% + giphynavigator/application.py 12 0 100% + giphynavigator/containers.py 6 0 100% giphynavigator/giphy.py 14 9 36% + giphynavigator/handlers.py 9 0 100% giphynavigator/services.py 9 1 89% - giphynavigator/tests.py 35 0 100% - giphynavigator/views.py 7 0 100% + giphynavigator/tests.py 37 0 100% --------------------------------------------------- - TOTAL 90 15 83% + TOTAL 87 10 89% diff --git a/examples/miniapps/aiohttp/config.yml b/examples/miniapps/aiohttp/config.yml new file mode 100644 index 00000000..d1276f8c --- /dev/null +++ b/examples/miniapps/aiohttp/config.yml @@ -0,0 +1,5 @@ +giphy: + request_timeout: 10 +default: + query: "Dependency Injector" + limit: 10 diff --git a/examples/miniapps/ghnav-flask/githubnavigator/__init__.py b/examples/miniapps/aiohttp/giphynavigator/__init__.py similarity index 100% rename from examples/miniapps/ghnav-flask/githubnavigator/__init__.py rename to examples/miniapps/aiohttp/giphynavigator/__init__.py diff --git a/examples/miniapps/aiohttp/giphynavigator/application.py b/examples/miniapps/aiohttp/giphynavigator/application.py new file mode 100644 index 00000000..848435fb --- /dev/null +++ b/examples/miniapps/aiohttp/giphynavigator/application.py @@ -0,0 +1,20 @@ +"""Application module.""" + +from aiohttp import web + +from .containers import Container +from . import handlers + + +def create_app() -> web.Application: + container = Container() + container.config.from_yaml('config.yml') + container.config.giphy.api_key.from_env('GIPHY_API_KEY') + container.wire(modules=[handlers]) + + app = web.Application() + app.container = container + app.add_routes([ + web.get('/', handlers.index), + ]) + return app diff --git a/examples/miniapps/aiohttp/giphynavigator/containers.py b/examples/miniapps/aiohttp/giphynavigator/containers.py new file mode 100644 index 00000000..730c162e --- /dev/null +++ b/examples/miniapps/aiohttp/giphynavigator/containers.py @@ -0,0 +1,21 @@ +"""Containers module.""" + +from dependency_injector import containers, providers + +from . import giphy, services + + +class Container(containers.DeclarativeContainer): + + config = providers.Configuration() + + giphy_client = providers.Factory( + giphy.GiphyClient, + api_key=config.giphy.api_key, + timeout=config.giphy.request_timeout, + ) + + search_service = providers.Factory( + services.SearchService, + giphy_client=giphy_client, + ) diff --git a/examples/miniapps/giphynav-aiohttp/giphynavigator/giphy.py b/examples/miniapps/aiohttp/giphynavigator/giphy.py similarity index 100% rename from examples/miniapps/giphynav-aiohttp/giphynavigator/giphy.py rename to examples/miniapps/aiohttp/giphynavigator/giphy.py diff --git a/examples/miniapps/giphynav-aiohttp/giphynavigator/views.py b/examples/miniapps/aiohttp/giphynavigator/handlers.py similarity index 57% rename from examples/miniapps/giphynav-aiohttp/giphynavigator/views.py rename to examples/miniapps/aiohttp/giphynavigator/handlers.py index 7af5a0f5..ff720d17 100644 --- a/examples/miniapps/giphynav-aiohttp/giphynavigator/views.py +++ b/examples/miniapps/aiohttp/giphynavigator/handlers.py @@ -1,15 +1,17 @@ -"""Views module.""" +"""Handlers module.""" from aiohttp import web +from dependency_injector.wiring import Provide from .services import SearchService +from .containers import Container async def index( request: web.Request, - search_service: SearchService, - default_query: str, - default_limit: int, + search_service: SearchService = Provide[Container.search_service], + default_query: str = Provide[Container.config.default.query], + default_limit: int = Provide[Container.config.default.limit.as_int()], ) -> web.Response: query = request.query.get('query', default_query) limit = int(request.query.get('limit', default_limit)) diff --git a/examples/miniapps/giphynav-aiohttp/giphynavigator/services.py b/examples/miniapps/aiohttp/giphynavigator/services.py similarity index 100% rename from examples/miniapps/giphynav-aiohttp/giphynavigator/services.py rename to examples/miniapps/aiohttp/giphynavigator/services.py diff --git a/examples/miniapps/giphynav-aiohttp/giphynavigator/tests.py b/examples/miniapps/aiohttp/giphynavigator/tests.py similarity index 90% rename from examples/miniapps/giphynav-aiohttp/giphynavigator/tests.py rename to examples/miniapps/aiohttp/giphynavigator/tests.py index cdd68d54..7f9046e6 100644 --- a/examples/miniapps/giphynav-aiohttp/giphynavigator/tests.py +++ b/examples/miniapps/aiohttp/giphynavigator/tests.py @@ -10,7 +10,9 @@ from giphynavigator.giphy import GiphyClient @pytest.fixture def app(): - return create_app() + app = create_app() + yield app + app.container.unwire() @pytest.fixture @@ -73,5 +75,5 @@ async def test_index_default_params(client, app): assert response.status == 200 data = await response.json() - assert data['query'] == app.container.config.search.default_query() - assert data['limit'] == app.container.config.search.default_limit() + assert data['query'] == app.container.config.default.query() + assert data['limit'] == app.container.config.default.limit() diff --git a/examples/miniapps/giphynav-aiohttp/requirements.txt b/examples/miniapps/aiohttp/requirements.txt similarity index 100% rename from examples/miniapps/giphynav-aiohttp/requirements.txt rename to examples/miniapps/aiohttp/requirements.txt diff --git a/examples/miniapps/application-multiple-containers/README.rst b/examples/miniapps/application-multiple-containers/README.rst index fe9840de..69534c52 100644 --- a/examples/miniapps/application-multiple-containers/README.rst +++ b/examples/miniapps/application-multiple-containers/README.rst @@ -24,6 +24,6 @@ You should see: .. code-block:: bash - [2020-09-04 16:06:00,750] [DEBUG] [example.services.UserService]: User user@example.com has been found in database - [2020-09-04 16:06:00,750] [DEBUG] [example.services.AuthService]: User user@example.com has been successfully authenticated - [2020-09-04 16:06:00,750] [DEBUG] [example.services.PhotoService]: Photo photo.jpg has been successfully uploaded by user user@example.com + [2020-10-06 15:36:55,961] [DEBUG] [example.services.UserService]: User user@example.com has been found in database + [2020-10-06 15:36:55,961] [DEBUG] [example.services.AuthService]: User user@example.com has been successfully authenticated + [2020-10-06 15:36:55,961] [DEBUG] [example.services.PhotoService]: Photo photo.jpg has been successfully uploaded by user user@example.com diff --git a/examples/miniapps/application-multiple-containers/example/__main__.py b/examples/miniapps/application-multiple-containers/example/__main__.py index 1d8eefc4..926d175b 100644 --- a/examples/miniapps/application-multiple-containers/example/__main__.py +++ b/examples/miniapps/application-multiple-containers/example/__main__.py @@ -2,23 +2,29 @@ import sys +from dependency_injector.wiring import Provide + +from .services import UserService, AuthService, PhotoService from .containers import Application -def main(email: str, password: str, photo: str) -> None: - application = Application() - - application.config.from_yaml('config.yml') - application.core.configure_logging() - - user_service = application.services.user() - auth_service = application.services.auth() - photo_service = application.services.photo() - +def main( + email: str, + password: str, + photo: str, + user_service: UserService = Provide[Application.services.user], + auth_service: AuthService = Provide[Application.services.auth], + photo_service: PhotoService = Provide[Application.services.photo], +) -> None: user = user_service.get_user(email) auth_service.authenticate(user, password) photo_service.upload_photo(user, photo) if __name__ == '__main__': + application = Application() + application.config.from_yaml('config.yml') + application.core.configure_logging() + application.wire(modules=[sys.modules[__name__]]) + main(*sys.argv[1:]) diff --git a/examples/miniapps/application-single-container/README.rst b/examples/miniapps/application-single-container/README.rst index 100693b9..bd11e235 100644 --- a/examples/miniapps/application-single-container/README.rst +++ b/examples/miniapps/application-single-container/README.rst @@ -24,6 +24,6 @@ You should see: .. code-block:: bash - [2020-09-04 15:27:27,727] [DEBUG] [example.services.UserService]: User user@example.com has been found in database - [2020-09-04 15:27:27,727] [DEBUG] [example.services.AuthService]: User user@example.com has been successfully authenticated - [2020-09-04 15:27:27,727] [DEBUG] [example.services.PhotoService]: Photo photo.jpg has been successfully uploaded by user user@example.com + [2020-10-06 15:32:33,195] [DEBUG] [example.services.UserService]: User user@example.com has been found in database + [2020-10-06 15:32:33,195] [DEBUG] [example.services.AuthService]: User user@example.com has been successfully authenticated + [2020-10-06 15:32:33,195] [DEBUG] [example.services.PhotoService]: Photo photo.jpg has been successfully uploaded by user user@example.com diff --git a/examples/miniapps/application-single-container/example/__main__.py b/examples/miniapps/application-single-container/example/__main__.py index a14d92c9..9600fe66 100644 --- a/examples/miniapps/application-single-container/example/__main__.py +++ b/examples/miniapps/application-single-container/example/__main__.py @@ -2,23 +2,29 @@ import sys +from dependency_injector.wiring import Provide + +from .services import UserService, AuthService, PhotoService from .containers import Container -def main(email: str, password: str, photo: str) -> None: - container = Container() - - container.configure_logging() - container.config.from_ini('config.ini') - - user_service = container.user_service() - auth_service = container.auth_service() - photo_service = container.photo_service() - +def main( + email: str, + password: str, + photo: str, + user_service: UserService = Provide[Container.user_service], + auth_service: AuthService = Provide[Container.auth_service], + photo_service: PhotoService = Provide[Container.photo_service], +) -> None: user = user_service.get_user(email) auth_service.authenticate(user, password) photo_service.upload_photo(user, photo) if __name__ == '__main__': + container = Container() + container.configure_logging() + container.config.from_ini('config.ini') + container.wire(modules=[sys.modules[__name__]]) + main(*sys.argv[1:]) diff --git a/examples/miniapps/monitoring-daemon-asyncio/Dockerfile b/examples/miniapps/asyncio-daemon/Dockerfile similarity index 100% rename from examples/miniapps/monitoring-daemon-asyncio/Dockerfile rename to examples/miniapps/asyncio-daemon/Dockerfile diff --git a/examples/miniapps/monitoring-daemon-asyncio/README.rst b/examples/miniapps/asyncio-daemon/README.rst similarity index 82% rename from examples/miniapps/monitoring-daemon-asyncio/README.rst rename to examples/miniapps/asyncio-daemon/README.rst index c9432dab..0056db48 100644 --- a/examples/miniapps/monitoring-daemon-asyncio/README.rst +++ b/examples/miniapps/asyncio-daemon/README.rst @@ -1,8 +1,10 @@ -Asyncio Daemon Dependency Injection Example -=========================================== +Asyncio Daemon + Dependency Injector Example +============================================ -Application ``monitoringdaemon`` is an `asyncio `_ -+ `Dependency Injector `_ application. +This is an `asyncio `_ + +`Dependency Injector `_ example application. + +The example application is a daemon that monitors availability of web services. Run --- @@ -31,19 +33,16 @@ The output should be something like: monitor_1 | response code: 200 monitor_1 | content length: 648 monitor_1 | request took: 0.074 seconds - monitor_1 | monitor_1 | [2020-08-08 17:04:36,811] [INFO] [HttpMonitor]: Check monitor_1 | GET https://httpbin.org/get monitor_1 | response code: 200 monitor_1 | content length: 310 monitor_1 | request took: 0.153 seconds - monitor_1 | monitor_1 | [2020-08-08 17:04:41,731] [INFO] [HttpMonitor]: Check monitor_1 | GET http://example.com monitor_1 | response code: 200 monitor_1 | content length: 648 monitor_1 | request took: 0.067 seconds - monitor_1 | monitor_1 | [2020-08-08 17:04:41,787] [INFO] [HttpMonitor]: Check monitor_1 | GET https://httpbin.org/get monitor_1 | response code: 200 @@ -71,17 +70,17 @@ The output should be something like: plugins: asyncio-0.14.0, cov-2.10.0 collected 2 items - monitoringdaemon/tests.py .. [100%] + monitoringdaemon/tests.py .. [100%] ----------- coverage: platform linux, python 3.8.3-final-0 ----------- Name Stmts Miss Cover ---------------------------------------------------- monitoringdaemon/__init__.py 0 0 100% - monitoringdaemon/__main__.py 9 9 0% + monitoringdaemon/__main__.py 12 12 0% monitoringdaemon/containers.py 11 0 100% - monitoringdaemon/dispatcher.py 43 5 88% + monitoringdaemon/dispatcher.py 44 5 89% monitoringdaemon/http.py 6 3 50% monitoringdaemon/monitors.py 23 1 96% monitoringdaemon/tests.py 37 0 100% ---------------------------------------------------- - TOTAL 129 18 86% + TOTAL 133 21 84% diff --git a/examples/miniapps/monitoring-daemon-asyncio/config.yml b/examples/miniapps/asyncio-daemon/config.yml similarity index 100% rename from examples/miniapps/monitoring-daemon-asyncio/config.yml rename to examples/miniapps/asyncio-daemon/config.yml diff --git a/examples/miniapps/monitoring-daemon-asyncio/docker-compose.yml b/examples/miniapps/asyncio-daemon/docker-compose.yml similarity index 100% rename from examples/miniapps/monitoring-daemon-asyncio/docker-compose.yml rename to examples/miniapps/asyncio-daemon/docker-compose.yml diff --git a/examples/miniapps/giphynav-aiohttp/giphynavigator/__init__.py b/examples/miniapps/asyncio-daemon/monitoringdaemon/__init__.py similarity index 100% rename from examples/miniapps/giphynav-aiohttp/giphynavigator/__init__.py rename to examples/miniapps/asyncio-daemon/monitoringdaemon/__init__.py diff --git a/examples/miniapps/asyncio-daemon/monitoringdaemon/__main__.py b/examples/miniapps/asyncio-daemon/monitoringdaemon/__main__.py new file mode 100644 index 00000000..c0341357 --- /dev/null +++ b/examples/miniapps/asyncio-daemon/monitoringdaemon/__main__.py @@ -0,0 +1,21 @@ +"""Main module.""" + +import sys + +from dependency_injector.wiring import Provide + +from .dispatcher import Dispatcher +from .containers import Container + + +def main(dispatcher: Dispatcher = Provide[Container.dispatcher]) -> None: + dispatcher.run() + + +if __name__ == '__main__': + container = Container() + container.config.from_yaml('config.yml') + container.configure_logging() + container.wire(modules=[sys.modules[__name__]]) + + main() diff --git a/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/containers.py b/examples/miniapps/asyncio-daemon/monitoringdaemon/containers.py similarity index 86% rename from examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/containers.py rename to examples/miniapps/asyncio-daemon/monitoringdaemon/containers.py index c66ec327..cc134f7b 100644 --- a/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/containers.py +++ b/examples/miniapps/asyncio-daemon/monitoringdaemon/containers.py @@ -1,4 +1,4 @@ -"""Application containers module.""" +"""Containers module.""" import logging import sys @@ -8,8 +8,7 @@ from dependency_injector import containers, providers from . import http, monitors, dispatcher -class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" +class Container(containers.DeclarativeContainer): config = providers.Configuration() diff --git a/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/dispatcher.py b/examples/miniapps/asyncio-daemon/monitoringdaemon/dispatcher.py similarity index 98% rename from examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/dispatcher.py rename to examples/miniapps/asyncio-daemon/monitoringdaemon/dispatcher.py index a71f850c..e3d00118 100644 --- a/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/dispatcher.py +++ b/examples/miniapps/asyncio-daemon/monitoringdaemon/dispatcher.py @@ -44,6 +44,7 @@ class Dispatcher: self._logger.info('Shutting down') for task, monitor in zip(self._monitor_tasks, self._monitors): task.cancel() + self._monitor_tasks.clear() self._logger.info('Shutdown finished successfully') @staticmethod diff --git a/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/http.py b/examples/miniapps/asyncio-daemon/monitoringdaemon/http.py similarity index 100% rename from examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/http.py rename to examples/miniapps/asyncio-daemon/monitoringdaemon/http.py diff --git a/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/monitors.py b/examples/miniapps/asyncio-daemon/monitoringdaemon/monitors.py similarity index 96% rename from examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/monitors.py rename to examples/miniapps/asyncio-daemon/monitoringdaemon/monitors.py index ebcc8d0a..d814ac1c 100644 --- a/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/monitors.py +++ b/examples/miniapps/asyncio-daemon/monitoringdaemon/monitors.py @@ -47,7 +47,7 @@ class HttpMonitor(Monitor): ' %s %s\n' ' response code: %s\n' ' content length: %s\n' - ' request took: %s seconds\n', + ' request took: %s seconds', self._method, self._url, response.status, diff --git a/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/tests.py b/examples/miniapps/asyncio-daemon/monitoringdaemon/tests.py similarity index 95% rename from examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/tests.py rename to examples/miniapps/asyncio-daemon/monitoringdaemon/tests.py index df16e6fa..6d118e97 100644 --- a/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/tests.py +++ b/examples/miniapps/asyncio-daemon/monitoringdaemon/tests.py @@ -6,7 +6,7 @@ from unittest import mock import pytest -from .containers import ApplicationContainer +from .containers import Container @dataclasses.dataclass @@ -17,7 +17,7 @@ class RequestStub: @pytest.fixture def container(): - container = ApplicationContainer() + container = Container() container.config.from_dict({ 'log': { 'level': 'INFO', diff --git a/examples/miniapps/monitoring-daemon-asyncio/requirements.txt b/examples/miniapps/asyncio-daemon/requirements.txt similarity index 100% rename from examples/miniapps/monitoring-daemon-asyncio/requirements.txt rename to examples/miniapps/asyncio-daemon/requirements.txt diff --git a/examples/miniapps/decoupled-packages/example/__main__.py b/examples/miniapps/decoupled-packages/example/__main__.py index d57cc194..3ee153e3 100644 --- a/examples/miniapps/decoupled-packages/example/__main__.py +++ b/examples/miniapps/decoupled-packages/example/__main__.py @@ -1,15 +1,26 @@ """Main module.""" +import sys + +from dependency_injector.wiring import Provide + +from .user.repositories import UserRepository +from .photo.repositories import PhotoRepository +from .analytics.services import AggregationService from .containers import ApplicationContainer -def main() -> None: - application = ApplicationContainer() - application.config.from_ini('config.ini') - - user_repository = application.user_package.user_repository() - photo_repository = application.photo_package.photo_repository() - +def main( + user_repository: UserRepository = Provide[ + ApplicationContainer.user_package.user_repository + ], + photo_repository: PhotoRepository = Provide[ + ApplicationContainer.photo_package.photo_repository + ], + aggregation_service: AggregationService = Provide[ + ApplicationContainer.analytics_package.aggregation_service + ], +) -> None: user1 = user_repository.get(id=1) user1_photos = photo_repository.get_photos(user1.id) print(f'Retrieve user id={user1.id}, photos count={len(user1_photos)}') @@ -18,11 +29,14 @@ def main() -> None: user2_photos = photo_repository.get_photos(user2.id) print(f'Retrieve user id={user2.id}, photos count={len(user2_photos)}') - aggregation_service = application.analytics_package.aggregation_service() assert aggregation_service.user_repository is user_repository assert aggregation_service.photo_repository is photo_repository print('Aggregate analytics from user and photo packages') if __name__ == '__main__': + application = ApplicationContainer() + application.config.from_ini('config.ini') + application.wire(modules=[sys.modules[__name__]]) + main() diff --git a/examples/miniapps/django/.gitignore b/examples/miniapps/django/.gitignore new file mode 100644 index 00000000..60615839 --- /dev/null +++ b/examples/miniapps/django/.gitignore @@ -0,0 +1 @@ +*.sqlite3 diff --git a/examples/miniapps/django/.pydocstylerc b/examples/miniapps/django/.pydocstylerc new file mode 100644 index 00000000..287c7066 --- /dev/null +++ b/examples/miniapps/django/.pydocstylerc @@ -0,0 +1,2 @@ +[pydocstyle] +ignore = D100,D101,D102,D103,D105,D107,D203,D212,D213,D400,D406,D407,D411,D413,D415 diff --git a/examples/miniapps/django/README.rst b/examples/miniapps/django/README.rst new file mode 100644 index 00000000..eeac0b97 --- /dev/null +++ b/examples/miniapps/django/README.rst @@ -0,0 +1,113 @@ +Django + Dependency Injector Example +==================================== + +This is a `Django `_ + +`Dependency Injector `_ example application. + +The example application helps to search for repositories on the Github. + +.. image:: screenshot.png + +Run +--- + +Create virtual environment: + +.. code-block:: bash + + virtualenv venv + . venv/bin/activate + +Install requirements: + +.. code-block:: bash + + pip install -r requirements.txt + +Run migrations: + +.. code-block:: bash + + python manage.py migrate + +To run the application do: + +.. code-block:: bash + + python manage.py runserver + +The output should be something like: + +.. code-block:: + + Watching for file changes with StatReloader + Performing system checks... + + System check identified no issues (0 silenced). + October 05, 2020 - 03:17:05 + Django version 3.1.2, using settings 'githubnavigator.settings' + Starting development server at http://127.0.0.1:8000/ + Quit the server with CONTROL-C. + +After that visit http://127.0.0.1:8000/ in your browser. + +.. note:: + + Github has a rate limit. When the rate limit is exceed you will see an exception + ``github.GithubException.RateLimitExceededException``. For unauthenticated requests, the rate + limit allows for up to 60 requests per hour. To extend the limit to 5000 requests per hour you + need to set personal access token. + + It's easy: + + - Follow this `guide `_ to create a token. + - Set a token to the environment variable: + + .. code-block:: bash + + export GITHUB_TOKEN= + + - Restart the app with ``python manage.py runserver`` + + `Read more on Github rate limit `_ + +Test +---- + +This application comes with the unit tests. + +To run the tests do: + +.. code-block:: bash + + coverage run --source='.' manage.py test && coverage report + +The output should be something like: + +.. code-block:: + + Creating test database for alias 'default'... + System check identified no issues (0 silenced). + .. + ---------------------------------------------------------------------- + Ran 2 tests in 0.037s + + OK + Destroying test database for alias 'default'... + Name Stmts Miss Cover + --------------------------------------------------- + githubnavigator/__init__.py 4 0 100% + githubnavigator/asgi.py 4 4 0% + githubnavigator/containers.py 7 0 100% + githubnavigator/services.py 14 0 100% + githubnavigator/settings.py 23 0 100% + githubnavigator/urls.py 3 0 100% + githubnavigator/wsgi.py 4 4 0% + manage.py 12 2 83% + web/__init__.py 0 0 100% + web/apps.py 7 0 100% + web/tests.py 28 0 100% + web/urls.py 3 0 100% + web/views.py 11 0 100% + --------------------------------------------------- + TOTAL 120 10 92% diff --git a/examples/miniapps/django/githubnavigator/__init__.py b/examples/miniapps/django/githubnavigator/__init__.py new file mode 100644 index 00000000..9b80cdbd --- /dev/null +++ b/examples/miniapps/django/githubnavigator/__init__.py @@ -0,0 +1,8 @@ +"""Project package.""" + +from .containers import Container +from . import settings + + +container = Container() +container.config.from_dict(settings.__dict__) diff --git a/examples/miniapps/django/githubnavigator/asgi.py b/examples/miniapps/django/githubnavigator/asgi.py new file mode 100644 index 00000000..b1f6edc7 --- /dev/null +++ b/examples/miniapps/django/githubnavigator/asgi.py @@ -0,0 +1,15 @@ +"""ASGI config for githubnavigator project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/3.0/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'githubnavigator.settings') + +application = get_asgi_application() diff --git a/examples/miniapps/django/githubnavigator/containers.py b/examples/miniapps/django/githubnavigator/containers.py new file mode 100644 index 00000000..99b7eafc --- /dev/null +++ b/examples/miniapps/django/githubnavigator/containers.py @@ -0,0 +1,22 @@ +"""Containers module.""" + +from dependency_injector import containers, providers +from github import Github + +from . import services + + +class Container(containers.DeclarativeContainer): + + config = providers.Configuration() + + github_client = providers.Factory( + Github, + login_or_token=config.GITHUB_TOKEN, + timeout=config.GITHUB_REQUEST_TIMEOUT, + ) + + search_service = providers.Factory( + services.SearchService, + github_client=github_client, + ) diff --git a/examples/miniapps/ghnav-flask/githubnavigator/services.py b/examples/miniapps/django/githubnavigator/services.py similarity index 100% rename from examples/miniapps/ghnav-flask/githubnavigator/services.py rename to examples/miniapps/django/githubnavigator/services.py diff --git a/examples/miniapps/django/githubnavigator/settings.py b/examples/miniapps/django/githubnavigator/settings.py new file mode 100644 index 00000000..7c004048 --- /dev/null +++ b/examples/miniapps/django/githubnavigator/settings.py @@ -0,0 +1,131 @@ +""" +Django settings for githubnavigator project. + +Generated by 'django-admin startproject' using Django 3.0.8. + +For more information on this file, see +https://docs.djangoproject.com/en/3.0/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/3.0/ref/settings/ +""" + +import os + +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = ')6*iyg26c9l!fvyvwd&3+vyf-dcw)e=5x2t(j)(*c29z@ykhi0' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'web.apps.WebConfig', + 'bootstrap4', + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'githubnavigator.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'githubnavigator.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/3.0/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + } +} + + +# Password validation +# https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/3.0/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_L10N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/3.0/howto/static-files/ + +STATIC_URL = '/static/' + +# Github client settings +GITHUB_TOKEN = os.getenv('GITHUB_TOKEN') +GITHUB_REQUEST_TIMEOUT = 10 + +# Search settings +DEFAULT_LIMIT = 5 +DEFAULT_QUERY = 'Dependency Injector' +LIMIT_OPTIONS = [5, 10, 20] diff --git a/examples/miniapps/django/githubnavigator/urls.py b/examples/miniapps/django/githubnavigator/urls.py new file mode 100644 index 00000000..5e88d78f --- /dev/null +++ b/examples/miniapps/django/githubnavigator/urls.py @@ -0,0 +1,22 @@ +"""githubnavigator URL Configuration + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/3.0/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import path, include + +urlpatterns = [ + path('', include('web.urls')), + path('admin/', admin.site.urls), +] diff --git a/examples/miniapps/django/githubnavigator/wsgi.py b/examples/miniapps/django/githubnavigator/wsgi.py new file mode 100644 index 00000000..a13cd5f9 --- /dev/null +++ b/examples/miniapps/django/githubnavigator/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for githubnavigator project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/3.0/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'githubnavigator.settings') + +application = get_wsgi_application() diff --git a/examples/miniapps/django/manage.py b/examples/miniapps/django/manage.py new file mode 100755 index 00000000..d3bb8330 --- /dev/null +++ b/examples/miniapps/django/manage.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'githubnavigator.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/examples/miniapps/django/requirements.txt b/examples/miniapps/django/requirements.txt new file mode 100644 index 00000000..71ef3239 --- /dev/null +++ b/examples/miniapps/django/requirements.txt @@ -0,0 +1,5 @@ +dependency-injector +django +django-bootstrap4 +pygithub +coverage diff --git a/examples/miniapps/django/screenshot.png b/examples/miniapps/django/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..2d39915650a209b7031ba63470eaf7b77bacfa90 GIT binary patch literal 390749 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�i?bmjg(CgQVuVVYfE<&d;3?(vyR^ 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

K@E z* z`jD>YA=(F{-Y`rHBC9HF0&}aDgZee2B?4gCbdsLWwaTO>CBRa~-|XrbG%UF!zPMPC zgA~mkkh9~v@~U2sXPxwC`Fd>7jKg++nAfWT7WhcrC5Y}OiB>-ILmzoTJgDPO-^yz_xN?(|1MTZj&pGT zB#9&wmkI^tl?IXM{n@~Hh;edX-}FYB z;df;LQMlw&ExM$B#D}K}#p%dTbl;90ao&da!|`Jd>8MgnbULzZU^vrkz~XmcJH7iV z+*42eaa~YmR>SQ0QXVXF6DdzUTZ7B=(;fwX%Hyc}jxt$vlQ3^uMMqdCH)GXDhy@+; zsNDJEu?_f(m?=S$=SK>kl^PbWUWE$*T+^BMd{qj@0GB(bM!s4lg!^FWlD%m<8CrXk zQo2td$KAAUh+CsEupC(ia|>gr^Ek)vLOnyAgT(X>MJ1U^TKU-~_PFHyW$DYgv3_EI zIo_Se~yIN z#75qB!dw@mKu*`Oap`TD(5w~<5uawQs2W*+2gj~h*=4UR{pk7q9d!EFfPfd%m`j2D zU$d|ma0RRV1s08>lSAc?_S=h9>F>H`&K600QzjzKoCQD2PmZ#1eG1tXD9P%a!h~i6 zH!k&W-h6{W!n1=5{BF(O2ok_9<8R?hr#baHaY_usEEioW9u(MrhRxw~{u1^mQw3~$ z!D5|-4St^Ss~(BNlYcizOKvdcv=-SRK8c>8k3XnLM5z4|JfJ!e5r#0) zl#yfD)z#%M9}>MTW=2d4BlM=xXXz$pc-7gmZqmN)p)A4IbSwsQIC=QX2&Es2WrR+euDzp>rUHa4M!ikjjBFS8FnZNt-oh_;n+p*>{(*DFeWatY+kNkNxL?+poH{`@7_kRlY5ujy5u_Ob4O4+ z=13k2H}bBZCuj(x7GaFOYJKxt(D#$5=#u}#)?5EI;lE*{g2d<{0xAs((j79o1nKUU z?ik%6APOoC(hXyDcZ&!^YQPvN-5n#IeZJ>Bzns_k6Be)gy5HA*MV`^1Jb=4waKn!* zuC4nU`|=+^Fw<*B0Ee46c8>Xjxl)OMIgo3W{5kvF(~}bpEEz&UgKkzAN|;aPir0;1 z{?UiPK*sJ9qDdc(kEe??MvvJ?Q_%8lG*ow(oPTt^28}lo$66oUlY^@X)B28fgh??E zn@?<7numl{_fU+CO{3>8!>R1aRxqzv$ZP4PIxtS;J1is%uOGUU5I=l+g1sli85mp{ zWi(N92HlUk3>M4HXZ>Fe{8~a?Cm)DRd}A+EBx7>}T~H$3%l#LK>x>_6){-7OiEQ?r zGDvo&JX3rpv)YB#kew`-T>H?Ws_OT0Qnu~w9ok2B4O5X&exCAjr?{}0qY&`f_g?`T zFav*tB6DK4?%i$sXA9D$sfR*?St`{#ga6Rj-R-gIaw~;=shbyc$NB1Gu;qCCR$W1` zrQf9;C%abln+#9AO2tq)F=>ms4U${4_cx;m^~`;*&tCIj#cx)K&rP6j!ekLD1mH7t zcED|+n*AlgHb45(ESoTUDF+F|i;NWbn%D>%;->#g4bb%&A9oJgr!E;Y|=Q)M1&QCX}^1pm_y|LgV+Cm58Gb}TK%%_zCmKR6$ zJLXmw&oY7f6c7+RfoPg!j~VW(fN z+Pv)FtfH-1il^`~792af|3tc=JP_R+sE-ARUJh8--FW=M0@(NH2YUuzIrXj8p8_x$ zlEp60>&1Eb#w|IXh1`uq;S*rO_9y<5)iNRtFfRVVlVo9;sQ&o>kTxxncuL~9n)MSA5a4c~?(`NWG=1&9CxU!WW^>Kc#Gaz3xrNKyGUp)RQ^2&`;_ ztN$&6IE}KKC=R~wcj*>;n=@P2ia`@E-1(Em{NZ4E zeAlt!NBG)8uZGjF*TMV%Fk%J$Xy9%5~GX4&Lu;H~~?9u2F5I{r9xo*W&Ll`AK>g6YB~3p(%Hh zyA@B@tFnqm1b2lb%))rQ&UK6Tyx

9RluLfWZR`cy|qsp|UR({F6_I9CkSHsm~;a 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

a>>}87*fYlo=yDb*E}vXcZqPKTX4t>Yk8PV` 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 z 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 O-+eJT(E?#zpZ^EvoF&fy literal 0 HcmV?d00001 diff --git a/examples/miniapps/django/web/__init__.py b/examples/miniapps/django/web/__init__.py new file mode 100644 index 00000000..8a1fbcfa --- /dev/null +++ b/examples/miniapps/django/web/__init__.py @@ -0,0 +1 @@ +"""Web application package.""" diff --git a/examples/miniapps/django/web/apps.py b/examples/miniapps/django/web/apps.py new file mode 100644 index 00000000..c52fbbe2 --- /dev/null +++ b/examples/miniapps/django/web/apps.py @@ -0,0 +1,13 @@ +"""Application config module.""" + +from django.apps import AppConfig + +from githubnavigator import container +from . import views + + +class WebConfig(AppConfig): + name = 'web' + + def ready(self): + container.wire(modules=[views]) diff --git a/examples/miniapps/django/web/templates/base.html b/examples/miniapps/django/web/templates/base.html new file mode 100644 index 00000000..8edd5984 --- /dev/null +++ b/examples/miniapps/django/web/templates/base.html @@ -0,0 +1,10 @@ +{% extends 'bootstrap4/bootstrap4.html' %} + +{% load bootstrap4 %} + +{% block bootstrap4_title %}{% block title %}{% endblock %}{% endblock %} + +{% block bootstrap4_content %} + {% autoescape off %}{% bootstrap_messages %}{% endautoescape %} + {% block content %}(no content){% endblock %} +{% endblock %} diff --git a/examples/miniapps/django/web/templates/index.html b/examples/miniapps/django/web/templates/index.html new file mode 100644 index 00000000..0d38985f --- /dev/null +++ b/examples/miniapps/django/web/templates/index.html @@ -0,0 +1,69 @@ +{% extends "base.html" %} + +{% block title %}Github Navigator{% endblock %} + +{% block content %} +

+

Github Navigator

+ +
+
+
+ + +
+
+ + +
+
+
+ +

Results found: {{ repositories|length }}

+ + + + + + + + + + + + {% for repository in repositories %} {{n}} + + + + + + + {% endfor %} + +
#RepositoryRepository ownerLast commit
{{ loop.index }} + {{ repository.name }} + + avatar + + {{ repository.owner.login }} + + {{ repository.latest_commit.sha }} + {{ repository.latest_commit.message }} + {{ repository.latest_commit.author_name }} +
+
+{% endblock %} \ No newline at end of file diff --git a/examples/miniapps/django/web/tests.py b/examples/miniapps/django/web/tests.py new file mode 100644 index 00000000..eddc5d22 --- /dev/null +++ b/examples/miniapps/django/web/tests.py @@ -0,0 +1,63 @@ +"""Tests module.""" + +from unittest import mock + +from django.urls import reverse +from django.test import TestCase +from github import Github + +from githubnavigator import container + + +class IndexTests(TestCase): + + def test_index(self): + github_client_mock = mock.Mock(spec=Github) + github_client_mock.search_repositories.return_value = [ + mock.Mock( + html_url='repo1-url', + name='repo1-name', + owner=mock.Mock( + login='owner1-login', + html_url='owner1-url', + avatar_url='owner1-avatar-url', + ), + get_commits=mock.Mock(return_value=[mock.Mock()]), + ), + mock.Mock( + html_url='repo2-url', + name='repo2-name', + owner=mock.Mock( + login='owner2-login', + html_url='owner2-url', + avatar_url='owner2-avatar-url', + ), + get_commits=mock.Mock(return_value=[mock.Mock()]), + ), + ] + + with container.github_client.override(github_client_mock): + response = self.client.get(reverse('index')) + + self.assertContains(response, 'Results found: 2') + + self.assertContains(response, 'repo1-url') + self.assertContains(response, 'repo1-name') + self.assertContains(response, 'owner1-login') + self.assertContains(response, 'owner1-url') + self.assertContains(response, 'owner1-avatar-url') + + self.assertContains(response, 'repo2-url') + self.assertContains(response, 'repo2-name') + self.assertContains(response, 'owner2-login') + self.assertContains(response, 'owner2-url') + self.assertContains(response, 'owner2-avatar-url') + + def test_index_no_results(self): + github_client_mock = mock.Mock(spec=Github) + github_client_mock.search_repositories.return_value = [] + + with container.github_client.override(github_client_mock): + response = self.client.get(reverse('index')) + + self.assertContains(response, 'Results found: 0') diff --git a/examples/miniapps/django/web/urls.py b/examples/miniapps/django/web/urls.py new file mode 100644 index 00000000..de1d2f9f --- /dev/null +++ b/examples/miniapps/django/web/urls.py @@ -0,0 +1,9 @@ +"""URLs module.""" + +from django.urls import path + +from . import views + +urlpatterns = [ + path('', views.index, name='index'), +] diff --git a/examples/miniapps/django/web/views.py b/examples/miniapps/django/web/views.py new file mode 100644 index 00000000..6a48217d --- /dev/null +++ b/examples/miniapps/django/web/views.py @@ -0,0 +1,34 @@ +"""Views module.""" + +from typing import List + +from django.http import HttpRequest, HttpResponse +from django.shortcuts import render +from dependency_injector.wiring import Provide + +from githubnavigator.containers import Container +from githubnavigator.services import SearchService + + +def index( + request: HttpRequest, + search_service: SearchService = Provide[Container.search_service], + default_query: str = Provide[Container.config.DEFAULT_QUERY], + default_limit: int = Provide[Container.config.DEFAULT_LIMIT.as_int()], + limit_options: List[int] = Provide[Container.config.LIMIT_OPTIONS], +) -> HttpResponse: + query = request.GET.get('query', default_query) + limit = int(request.GET.get('limit', default_limit)) + + repositories = search_service.search_repositories(query, limit) + + return render( + request, + template_name='index.html', + context={ + 'query': query, + 'limit': limit, + 'limit_options': limit_options, + 'repositories': repositories, + } + ) diff --git a/examples/miniapps/ghnav-flask/README.rst b/examples/miniapps/flask/README.rst similarity index 78% rename from examples/miniapps/ghnav-flask/README.rst rename to examples/miniapps/flask/README.rst index 70d75185..7bbd5d99 100644 --- a/examples/miniapps/ghnav-flask/README.rst +++ b/examples/miniapps/flask/README.rst @@ -1,8 +1,10 @@ -Flask Dependency Injection Example -================================== +Flask + Dependency Injector Example +=================================== -Application ``githubnavigator`` is a `Flask `_ + -`Dependency Injector `_ application. +This is a `Flask `_ + +`Dependency Injector `_ example application. + +The example application helps to search for repositories on the Github. .. image:: screenshot.png @@ -46,8 +48,7 @@ After that visit http://127.0.0.1:5000/ in your browser. .. note:: - - Github has a rate limit. When thre rate limit is exceed you will see an exception + Github has a rate limit. When the rate limit is exceed you will see an exception ``github.GithubException.RateLimitExceededException``. For unauthenticated requests, the rate limit allows for up to 60 requests per hour. To extend the limit to 5000 requests per hour you need to set personal access token. @@ -90,10 +91,10 @@ The output should be something like: Name Stmts Miss Cover ---------------------------------------------------- githubnavigator/__init__.py 0 0 100% - githubnavigator/application.py 11 0 100% - githubnavigator/containers.py 13 0 100% + githubnavigator/application.py 15 0 100% + githubnavigator/containers.py 7 0 100% githubnavigator/services.py 14 0 100% - githubnavigator/tests.py 32 0 100% - githubnavigator/views.py 7 0 100% + githubnavigator/tests.py 34 0 100% + githubnavigator/views.py 9 0 100% ---------------------------------------------------- - TOTAL 77 0 100% + TOTAL 79 0 100% diff --git a/examples/miniapps/flask/config.yml b/examples/miniapps/flask/config.yml new file mode 100644 index 00000000..938c609a --- /dev/null +++ b/examples/miniapps/flask/config.yml @@ -0,0 +1,5 @@ +github: + request_timeout: 10 +default: + query: "Dependency Injector" + limit: 10 diff --git a/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/__init__.py b/examples/miniapps/flask/githubnavigator/__init__.py similarity index 100% rename from examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/__init__.py rename to examples/miniapps/flask/githubnavigator/__init__.py diff --git a/examples/miniapps/flask/githubnavigator/application.py b/examples/miniapps/flask/githubnavigator/application.py new file mode 100644 index 00000000..39e62f98 --- /dev/null +++ b/examples/miniapps/flask/githubnavigator/application.py @@ -0,0 +1,23 @@ +"""Application module.""" + +from flask import Flask +from flask_bootstrap import Bootstrap + +from .containers import Container +from . import views + + +def create_app() -> Flask: + container = Container() + container.config.from_yaml('config.yml') + container.config.github.auth_token.from_env('GITHUB_TOKEN') + container.wire(modules=[views]) + + app = Flask(__name__) + app.container = container + app.add_url_rule('/', 'index', views.index) + + bootstrap = Bootstrap() + bootstrap.init_app(app) + + return app diff --git a/examples/miniapps/flask/githubnavigator/containers.py b/examples/miniapps/flask/githubnavigator/containers.py new file mode 100644 index 00000000..d2a0e7ca --- /dev/null +++ b/examples/miniapps/flask/githubnavigator/containers.py @@ -0,0 +1,22 @@ +"""Containers module.""" + +from dependency_injector import containers, providers +from github import Github + +from . import services + + +class Container(containers.DeclarativeContainer): + + config = providers.Configuration() + + github_client = providers.Factory( + Github, + login_or_token=config.github.auth_token, + timeout=config.github.request_timeout, + ) + + search_service = providers.Factory( + services.SearchService, + github_client=github_client, + ) diff --git a/examples/miniapps/flask/githubnavigator/services.py b/examples/miniapps/flask/githubnavigator/services.py new file mode 100644 index 00000000..9c6ff839 --- /dev/null +++ b/examples/miniapps/flask/githubnavigator/services.py @@ -0,0 +1,44 @@ +"""Services module.""" + +from github import Github +from github.Repository import Repository +from github.Commit import Commit + + +class SearchService: + """Search service performs search on Github.""" + + def __init__(self, github_client: Github): + self._github_client = github_client + + def search_repositories(self, query, limit): + """Search for repositories and return formatted data.""" + repositories = self._github_client.search_repositories( + query=query, + **{'in': 'name'}, + ) + return [ + self._format_repo(repository) + for repository in repositories[:limit] + ] + + def _format_repo(self, repository: Repository): + commits = repository.get_commits() + return { + 'url': repository.html_url, + 'name': repository.name, + 'owner': { + 'login': repository.owner.login, + 'url': repository.owner.html_url, + 'avatar_url': repository.owner.avatar_url, + }, + 'latest_commit': self._format_commit(commits[0]) if commits else {}, + } + + def _format_commit(self, commit: Commit): + return { + 'sha': commit.sha, + 'url': commit.html_url, + 'message': commit.commit.message, + 'author_name': commit.commit.author.name, + } diff --git a/examples/miniapps/ghnav-flask/githubnavigator/templates/base.html b/examples/miniapps/flask/githubnavigator/templates/base.html similarity index 100% rename from examples/miniapps/ghnav-flask/githubnavigator/templates/base.html rename to examples/miniapps/flask/githubnavigator/templates/base.html diff --git a/examples/miniapps/ghnav-flask/githubnavigator/templates/index.html b/examples/miniapps/flask/githubnavigator/templates/index.html similarity index 100% rename from examples/miniapps/ghnav-flask/githubnavigator/templates/index.html rename to examples/miniapps/flask/githubnavigator/templates/index.html diff --git a/examples/miniapps/ghnav-flask/githubnavigator/tests.py b/examples/miniapps/flask/githubnavigator/tests.py similarity index 96% rename from examples/miniapps/ghnav-flask/githubnavigator/tests.py rename to examples/miniapps/flask/githubnavigator/tests.py index f8ea3d87..a8618467 100644 --- a/examples/miniapps/ghnav-flask/githubnavigator/tests.py +++ b/examples/miniapps/flask/githubnavigator/tests.py @@ -11,7 +11,9 @@ from .application import create_app @pytest.fixture def app(): - return create_app() + app = create_app() + yield app + app.container.unwire() def test_index(client, app): diff --git a/examples/miniapps/ghnav-flask/githubnavigator/views.py b/examples/miniapps/flask/githubnavigator/views.py similarity index 58% rename from examples/miniapps/ghnav-flask/githubnavigator/views.py rename to examples/miniapps/flask/githubnavigator/views.py index 9d97001c..22a3d35d 100644 --- a/examples/miniapps/ghnav-flask/githubnavigator/views.py +++ b/examples/miniapps/flask/githubnavigator/views.py @@ -1,14 +1,16 @@ """Views module.""" from flask import request, render_template +from dependency_injector.wiring import Provide from .services import SearchService +from .containers import Container def index( - search_service: SearchService, - default_query: str, - default_limit: int, + search_service: SearchService = Provide[Container.search_service], + default_query: str = Provide[Container.config.default.query], + default_limit: int = Provide[Container.config.default.limit.as_int()], ): query = request.args.get('query', default_query) limit = request.args.get('limit', default_limit, int) diff --git a/examples/miniapps/ghnav-flask/requirements.txt b/examples/miniapps/flask/requirements.txt similarity index 100% rename from examples/miniapps/ghnav-flask/requirements.txt rename to examples/miniapps/flask/requirements.txt diff --git a/examples/miniapps/flask/screenshot.png b/examples/miniapps/flask/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..350aaa67439f8993d56fe5b6ec6babd8834db121 GIT binary patch literal 662377 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�K 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⁣mGNDpyPABBSX%3D2m6xE?ew~|7=mp=hyi*b|1}x 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ੜW#LF@fEVAU^@x2R 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�s%gHWBDKB4aqoHCv4rWp3A3xb~ae;bkz{(6-j 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

%6jSqpY^5><}f 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%0A)H@JD(59ehebY}oCQLeh+> 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 KB`U<;zWYD$|HQfg literal 0 HcmV?d00001 diff --git a/examples/miniapps/ghnav-flask/config.yml b/examples/miniapps/ghnav-flask/config.yml deleted file mode 100644 index 193fc06e..00000000 --- a/examples/miniapps/ghnav-flask/config.yml +++ /dev/null @@ -1,5 +0,0 @@ -github: - request_timeout: 10 -search: - default_query: "Dependency Injector" - default_limit: 10 diff --git a/examples/miniapps/ghnav-flask/githubnavigator/application.py b/examples/miniapps/ghnav-flask/githubnavigator/application.py deleted file mode 100644 index 297c5812..00000000 --- a/examples/miniapps/ghnav-flask/githubnavigator/application.py +++ /dev/null @@ -1,20 +0,0 @@ -"""Application module.""" - -from .containers import ApplicationContainer - - -def create_app(): - """Create and return Flask application.""" - container = ApplicationContainer() - container.config.from_yaml('config.yml') - container.config.github.auth_token.from_env('GITHUB_TOKEN') - - app = container.app() - app.container = container - - bootstrap = container.bootstrap() - bootstrap.init_app(app) - - app.add_url_rule('/', view_func=container.index_view.as_view()) - - return app diff --git a/examples/miniapps/ghnav-flask/githubnavigator/containers.py b/examples/miniapps/ghnav-flask/githubnavigator/containers.py deleted file mode 100644 index 1bd47748..00000000 --- a/examples/miniapps/ghnav-flask/githubnavigator/containers.py +++ /dev/null @@ -1,37 +0,0 @@ -"""Application containers module.""" - -from dependency_injector import containers, providers -from dependency_injector.ext import flask -from flask import Flask -from flask_bootstrap import Bootstrap -from github import Github - -from . import views, services - - -class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" - - app = flask.Application(Flask, __name__) - - bootstrap = flask.Extension(Bootstrap) - - config = providers.Configuration() - - github_client = providers.Factory( - Github, - login_or_token=config.github.auth_token, - timeout=config.github.request_timeout, - ) - - search_service = providers.Factory( - services.SearchService, - github_client=github_client, - ) - - index_view = flask.View( - views.index, - search_service=search_service, - default_query=config.search.default_query, - default_limit=config.search.default_limit, - ) diff --git a/examples/miniapps/giphynav-aiohttp/config.yml b/examples/miniapps/giphynav-aiohttp/config.yml deleted file mode 100644 index e1a0a14b..00000000 --- a/examples/miniapps/giphynav-aiohttp/config.yml +++ /dev/null @@ -1,5 +0,0 @@ -giphy: - request_timeout: 10 -search: - default_query: "Dependency Injector" - default_limit: 10 diff --git a/examples/miniapps/giphynav-aiohttp/giphynavigator/application.py b/examples/miniapps/giphynav-aiohttp/giphynavigator/application.py deleted file mode 100644 index 0e446ab4..00000000 --- a/examples/miniapps/giphynav-aiohttp/giphynavigator/application.py +++ /dev/null @@ -1,21 +0,0 @@ -"""Application module.""" - -from aiohttp import web - -from .containers import ApplicationContainer - - -def create_app(): - """Create and return aiohttp application.""" - container = ApplicationContainer() - container.config.from_yaml('config.yml') - container.config.giphy.api_key.from_env('GIPHY_API_KEY') - - app: web.Application = container.app() - app.container = container - - app.add_routes([ - web.get('/', container.index_view.as_view()), - ]) - - return app diff --git a/examples/miniapps/giphynav-aiohttp/giphynavigator/containers.py b/examples/miniapps/giphynav-aiohttp/giphynavigator/containers.py deleted file mode 100644 index 5e56919f..00000000 --- a/examples/miniapps/giphynav-aiohttp/giphynavigator/containers.py +++ /dev/null @@ -1,33 +0,0 @@ -"""Application containers module.""" - -from dependency_injector import containers, providers -from dependency_injector.ext import aiohttp -from aiohttp import web - -from . import giphy, services, views - - -class ApplicationContainer(containers.DeclarativeContainer): - """Application container.""" - - app = aiohttp.Application(web.Application) - - config = providers.Configuration() - - giphy_client = providers.Factory( - giphy.GiphyClient, - api_key=config.giphy.api_key, - timeout=config.giphy.request_timeout, - ) - - search_service = providers.Factory( - services.SearchService, - giphy_client=giphy_client, - ) - - index_view = aiohttp.View( - views.index, - search_service=search_service, - default_query=config.search.default_query, - default_limit=config.search.default_limit, - ) diff --git a/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/__main__.py b/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/__main__.py deleted file mode 100644 index 69b66dd7..00000000 --- a/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/__main__.py +++ /dev/null @@ -1,18 +0,0 @@ -"""Main module.""" - -from .containers import ApplicationContainer - - -def main() -> None: - """Run the application.""" - container = ApplicationContainer() - - container.config.from_yaml('config.yml') - container.configure_logging() - - dispatcher = container.dispatcher() - dispatcher.run() - - -if __name__ == '__main__': - main() diff --git a/examples/miniapps/movie-lister/README.rst b/examples/miniapps/movie-lister/README.rst index 54a8e3a1..15fe2d7e 100644 --- a/examples/miniapps/movie-lister/README.rst +++ b/examples/miniapps/movie-lister/README.rst @@ -39,8 +39,11 @@ The output should be something like this for each command: .. code-block:: bash - Francis Lawrence movies: [Movie(title='The Hunger Games: Mockingjay - Part 2', year=2015, director='Francis Lawrence')] - 2016 movies: [Movie(title='Rogue One: A Star Wars Story', year=2016, director='Gareth Edwards'), Movie(title='The Jungle Book', year=2016, director='Jon Favreau')] + Francis Lawrence movies: + - Movie(title='The Hunger Games: Mockingjay - Part 2', year=2015, director='Francis Lawrence') + 2016 movies: + - Movie(title='Rogue One: A Star Wars Story', year=2016, director='Gareth Edwards') + - Movie(title='The Jungle Book', year=2016, director='Jon Favreau') Test ---- @@ -61,15 +64,15 @@ The output should be something like: movies/tests.py .. [100%] - ---------- coverage: platform darwin, python 3.8.3-final-0 ----------- + ---------- coverage: platform darwin, python 3.8.5-final-0 ----------- Name Stmts Miss Cover ------------------------------------------ movies/__init__.py 0 0 100% - movies/__main__.py 10 10 0% + movies/__main__.py 17 17 0% movies/containers.py 9 0 100% movies/entities.py 7 1 86% movies/finders.py 26 13 50% movies/listers.py 8 0 100% movies/tests.py 24 0 100% ------------------------------------------ - TOTAL 84 24 71% + TOTAL 91 31 66% diff --git a/examples/miniapps/movie-lister/movies/__main__.py b/examples/miniapps/movie-lister/movies/__main__.py index b51c4010..df39fdc5 100644 --- a/examples/miniapps/movie-lister/movies/__main__.py +++ b/examples/miniapps/movie-lister/movies/__main__.py @@ -1,25 +1,27 @@ """Main module.""" -from .containers import ApplicationContainer +import sys + +from dependency_injector.wiring import Provide + +from .listers import MovieLister +from .containers import Container -def main(): - container = ApplicationContainer() +def main(lister: MovieLister = Provide[Container.lister]) -> None: + print('Francis Lawrence movies:') + for movie in lister.movies_directed_by('Francis Lawrence'): + print('\t-', movie) - container.config.from_yaml('config.yml') - container.config.finder.type.from_env('MOVIE_FINDER_TYPE') - - lister = container.lister() - - print( - 'Francis Lawrence movies:', - lister.movies_directed_by('Francis Lawrence'), - ) - print( - '2016 movies:', - lister.movies_released_in(2016), - ) + print('2016 movies:') + for movie in lister.movies_released_in(2016): + print('\t-', movie) if __name__ == '__main__': + container = Container() + container.config.from_yaml('config.yml') + container.config.finder.type.from_env('MOVIE_FINDER_TYPE') + container.wire(modules=[sys.modules[__name__]]) + main() diff --git a/examples/miniapps/movie-lister/movies/containers.py b/examples/miniapps/movie-lister/movies/containers.py index 0ffd7f16..9d30fbfb 100644 --- a/examples/miniapps/movie-lister/movies/containers.py +++ b/examples/miniapps/movie-lister/movies/containers.py @@ -5,7 +5,7 @@ from dependency_injector import containers, providers from . import finders, listers, entities -class ApplicationContainer(containers.DeclarativeContainer): +class Container(containers.DeclarativeContainer): config = providers.Configuration() diff --git a/examples/miniapps/movie-lister/movies/tests.py b/examples/miniapps/movie-lister/movies/tests.py index f6bfe81f..eea04c81 100644 --- a/examples/miniapps/movie-lister/movies/tests.py +++ b/examples/miniapps/movie-lister/movies/tests.py @@ -4,12 +4,12 @@ from unittest import mock import pytest -from .containers import ApplicationContainer +from .containers import Container @pytest.fixture def container(): - container = ApplicationContainer() + container = Container() container.config.from_dict({ 'finder': { 'type': 'csv', diff --git a/examples/miniapps/sanic/README.rst b/examples/miniapps/sanic/README.rst new file mode 100644 index 00000000..4e95e59b --- /dev/null +++ b/examples/miniapps/sanic/README.rst @@ -0,0 +1,119 @@ +Sanic + Dependency Injector Example +=================================== + +This is a `Sanic `_ + +`Dependency Injector `_ example application. + +The example application is a REST API that searches for funny GIFs on the `Giphy `_. + +Run +--- + +Create virtual environment: + +.. code-block:: bash + + virtualenv venv + . venv/bin/activate + +Install requirements: + +.. code-block:: bash + + pip install -r requirements.txt + +To run the application do: + +.. code-block:: bash + + export GIPHY_API_KEY=wBJ2wZG7SRqfrU9nPgPiWvORmloDyuL0 + python -m giphynavigator + +The output should be something like: + +.. code-block:: + + [2020-09-23 18:16:31 -0400] [48258] [INFO] Goin' Fast @ http://0.0.0.0:8000 + [2020-09-23 18:16:31 -0400] [48258] [INFO] Starting worker [48258] + +After that visit http://127.0.0.1:8000/ in your browser or use CLI command (``curl``, ``httpie``, +etc). You should see something like: + +.. code-block:: json + + { + "query": "Dependency Injector", + "limit": 10, + "gifs": [ + { + "url": "https://giphy.com/gifs/boxes-dependent-swbf2-6Eo7KzABxgJMY" + }, + { + "url": "https://giphy.com/gifs/depends-J56qCcOhk6hKE" + }, + { + "url": "https://giphy.com/gifs/web-series-ccstudios-bro-dependent-1lhU8KAVwmVVu" + }, + { + "url": "https://giphy.com/gifs/TheBoysTV-friends-friend-weneedeachother-XxR9qcIwcf5Jq404Sx" + }, + { + "url": "https://giphy.com/gifs/netflix-a-series-of-unfortunate-events-asoue-9rgeQXbwoK53pcxn7f" + }, + { + "url": "https://giphy.com/gifs/black-and-white-sad-skins-Hs4YzLs2zJuLu" + }, + { + "url": "https://giphy.com/gifs/always-there-for-you-i-am-here-PlayjhCco9jHBYrd9w" + }, + { + "url": "https://giphy.com/gifs/stream-famous-dollar-YT2dvOByEwXCdoYiA1" + }, + { + "url": "https://giphy.com/gifs/i-love-you-there-for-am-1BhGzgpZXYWwWMAGB1" + }, + { + "url": "https://giphy.com/gifs/life-like-twerk-9hlnWxjHqmH28" + } + ] + } + +.. note:: + + To create your own Giphy API key follow this + `guide `_. + +Test +---- + +This application comes with the unit tests. + +To run the tests do: + +.. code-block:: bash + + py.test giphynavigator/tests.py --cov=giphynavigator + +The output should be something like: + +.. code-block:: + + platform darwin -- Python 3.8.3, pytest-5.4.3, py-1.9.0, pluggy-0.13.1 + plugins: cov-2.10.0, sanic-1.6.1 + collected 3 items + + giphynavigator/tests.py ... [100%] + + ---------- coverage: platform darwin, python 3.8.3-final-0 ----------- + Name Stmts Miss Cover + --------------------------------------------------- + giphynavigator/__init__.py 0 0 100% + giphynavigator/__main__.py 4 4 0% + giphynavigator/application.py 12 0 100% + giphynavigator/containers.py 6 0 100% + giphynavigator/giphy.py 14 9 36% + giphynavigator/handlers.py 10 0 100% + giphynavigator/services.py 9 1 89% + giphynavigator/tests.py 34 0 100% + --------------------------------------------------- + TOTAL 89 14 84% diff --git a/examples/miniapps/sanic/config.yml b/examples/miniapps/sanic/config.yml new file mode 100644 index 00000000..d1276f8c --- /dev/null +++ b/examples/miniapps/sanic/config.yml @@ -0,0 +1,5 @@ +giphy: + request_timeout: 10 +default: + query: "Dependency Injector" + limit: 10 diff --git a/examples/miniapps/sanic/giphynavigator/__init__.py b/examples/miniapps/sanic/giphynavigator/__init__.py new file mode 100644 index 00000000..1c744ca5 --- /dev/null +++ b/examples/miniapps/sanic/giphynavigator/__init__.py @@ -0,0 +1 @@ +"""Top-level package.""" diff --git a/examples/miniapps/giphynav-aiohttp/giphynavigator/__main__.py b/examples/miniapps/sanic/giphynavigator/__main__.py similarity index 67% rename from examples/miniapps/giphynav-aiohttp/giphynavigator/__main__.py rename to examples/miniapps/sanic/giphynavigator/__main__.py index 3ef0e377..5c7f8360 100644 --- a/examples/miniapps/giphynav-aiohttp/giphynavigator/__main__.py +++ b/examples/miniapps/sanic/giphynavigator/__main__.py @@ -1,10 +1,8 @@ """Main module.""" -from aiohttp import web - from .application import create_app if __name__ == '__main__': app = create_app() - web.run_app(app) + app.run(host='0.0.0.0', port=8000, debug=True) diff --git a/examples/miniapps/sanic/giphynavigator/application.py b/examples/miniapps/sanic/giphynavigator/application.py new file mode 100644 index 00000000..1fb9655f --- /dev/null +++ b/examples/miniapps/sanic/giphynavigator/application.py @@ -0,0 +1,19 @@ +"""Application module.""" + +from sanic import Sanic + +from .containers import Container +from . import handlers + + +def create_app() -> Sanic: + """Create and return Sanic application.""" + container = Container() + container.config.from_yaml('config.yml') + container.config.giphy.api_key.from_env('GIPHY_API_KEY') + container.wire(modules=[handlers]) + + app = Sanic('Giphy Navigator') + app.container = container + app.add_route(handlers.index, '/') + return app diff --git a/examples/miniapps/sanic/giphynavigator/containers.py b/examples/miniapps/sanic/giphynavigator/containers.py new file mode 100644 index 00000000..730c162e --- /dev/null +++ b/examples/miniapps/sanic/giphynavigator/containers.py @@ -0,0 +1,21 @@ +"""Containers module.""" + +from dependency_injector import containers, providers + +from . import giphy, services + + +class Container(containers.DeclarativeContainer): + + config = providers.Configuration() + + giphy_client = providers.Factory( + giphy.GiphyClient, + api_key=config.giphy.api_key, + timeout=config.giphy.request_timeout, + ) + + search_service = providers.Factory( + services.SearchService, + giphy_client=giphy_client, + ) diff --git a/examples/miniapps/sanic/giphynavigator/giphy.py b/examples/miniapps/sanic/giphynavigator/giphy.py new file mode 100644 index 00000000..18d0f6b9 --- /dev/null +++ b/examples/miniapps/sanic/giphynavigator/giphy.py @@ -0,0 +1,26 @@ +"""Giphy client module.""" + +from aiohttp import ClientSession, ClientTimeout + + +class GiphyClient: + + API_URL = 'http://api.giphy.com/v1' + + def __init__(self, api_key, timeout): + self._api_key = api_key + self._timeout = ClientTimeout(timeout) + + async def search(self, query, limit): + """Make search API call and return result.""" + url = f'{self.API_URL}/gifs/search' + params = { + 'q': query, + 'api_key': self._api_key, + 'limit': limit, + } + async with ClientSession(timeout=self._timeout) as session: + async with session.get(url, params=params) as response: + if response.status != 200: + response.raise_for_status() + return await response.json() diff --git a/examples/miniapps/sanic/giphynavigator/handlers.py b/examples/miniapps/sanic/giphynavigator/handlers.py new file mode 100644 index 00000000..6b319a25 --- /dev/null +++ b/examples/miniapps/sanic/giphynavigator/handlers.py @@ -0,0 +1,28 @@ +"""Handlers module.""" + +from sanic.request import Request +from sanic.response import HTTPResponse, json +from dependency_injector.wiring import Provide + +from .services import SearchService +from .containers import Container + + +async def index( + request: Request, + search_service: SearchService = Provide[Container.search_service], + default_query: str = Provide[Container.config.default.query], + default_limit: int = Provide[Container.config.default.limit.as_int()], +) -> HTTPResponse: + query = request.args.get('query', default_query) + limit = int(request.args.get('limit', default_limit)) + + gifs = await search_service.search(query, limit) + + return json( + { + 'query': query, + 'limit': limit, + 'gifs': gifs, + }, + ) diff --git a/examples/miniapps/sanic/giphynavigator/services.py b/examples/miniapps/sanic/giphynavigator/services.py new file mode 100644 index 00000000..1c86e0d7 --- /dev/null +++ b/examples/miniapps/sanic/giphynavigator/services.py @@ -0,0 +1,18 @@ +"""Services module.""" + +from .giphy import GiphyClient + + +class SearchService: + + def __init__(self, giphy_client: GiphyClient): + self._giphy_client = giphy_client + + async def search(self, query, limit): + """Search for gifs and return formatted data.""" + if not query: + return [] + + result = await self._giphy_client.search(query, limit) + + return [{'url': gif['url']} for gif in result['data']] diff --git a/examples/miniapps/sanic/giphynavigator/tests.py b/examples/miniapps/sanic/giphynavigator/tests.py new file mode 100644 index 00000000..c4a14256 --- /dev/null +++ b/examples/miniapps/sanic/giphynavigator/tests.py @@ -0,0 +1,74 @@ +"""Tests module.""" + +from unittest import mock + +import pytest + +from giphynavigator.application import create_app +from giphynavigator.giphy import GiphyClient + + +@pytest.fixture +def app(): + app = create_app() + yield app + app.container.unwire() + + +async def test_index(app): + giphy_client_mock = mock.AsyncMock(spec=GiphyClient) + giphy_client_mock.search.return_value = { + 'data': [ + {'url': 'https://giphy.com/gif1.gif'}, + {'url': 'https://giphy.com/gif2.gif'}, + ], + } + + with app.container.giphy_client.override(giphy_client_mock): + _, response = await app.asgi_client.get( + '/', + params={ + 'query': 'test', + 'limit': 10, + }, + ) + + assert response.status == 200 + data = response.json() + assert data == { + 'query': 'test', + 'limit': 10, + 'gifs': [ + {'url': 'https://giphy.com/gif1.gif'}, + {'url': 'https://giphy.com/gif2.gif'}, + ], + } + + +async def test_index_no_data(app): + giphy_client_mock = mock.AsyncMock(spec=GiphyClient) + giphy_client_mock.search.return_value = { + 'data': [], + } + + with app.container.giphy_client.override(giphy_client_mock): + _, response = await app.asgi_client.get('/') + + assert response.status == 200 + data = response.json() + assert data['gifs'] == [] + + +async def test_index_default_params(app): + giphy_client_mock = mock.AsyncMock(spec=GiphyClient) + giphy_client_mock.search.return_value = { + 'data': [], + } + + with app.container.giphy_client.override(giphy_client_mock): + _, response = await app.asgi_client.get('/') + + assert response.status == 200 + data = response.json() + assert data['query'] == app.container.config.default.query() + assert data['limit'] == app.container.config.default.limit() diff --git a/examples/miniapps/sanic/requirements.txt b/examples/miniapps/sanic/requirements.txt new file mode 100644 index 00000000..5e90f0d3 --- /dev/null +++ b/examples/miniapps/sanic/requirements.txt @@ -0,0 +1,6 @@ +dependency-injector +sanic +aiohttp +pyyaml +pytest-sanic +pytest-cov diff --git a/examples/wiring/example.py b/examples/wiring/example.py new file mode 100644 index 00000000..fe8f27ee --- /dev/null +++ b/examples/wiring/example.py @@ -0,0 +1,26 @@ +"""Wiring example.""" + +import sys + +from dependency_injector import containers, providers +from dependency_injector.wiring import Provide + + +class Service: + ... + + +class Container(containers.DeclarativeContainer): + + service = providers.Factory(Service) + + +def main(service: Service = Provide[Container.service]) -> None: + ... + + +if __name__ == '__main__': + container = Container() + container.wire(modules=[sys.modules[__name__]]) + + main() diff --git a/examples/wiring/flask_example.py b/examples/wiring/flask_example.py new file mode 100644 index 00000000..3ec0963f --- /dev/null +++ b/examples/wiring/flask_example.py @@ -0,0 +1,29 @@ +"""Flask wiring example.""" + +import sys + +from dependency_injector import containers, providers +from dependency_injector.wiring import Provide +from flask import Flask, json + + +class Service: + ... + + +class Container(containers.DeclarativeContainer): + + service = providers.Factory(Service) + + +def index_view(service: Service = Provide[Container.service]) -> str: + return json.dumps({'service_id': id(service)}) + + +if __name__ == '__main__': + container = Container() + container.wire(modules=[sys.modules[__name__]]) + + app = Flask(__name__) + app.add_url_rule('/', 'index', index_view) + app.run() diff --git a/requirements-dev.txt b/requirements-dev.txt index 6947cf47..404c5095 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,4 +1,4 @@ -cython==0.29.20 +cython==0.29.21 tox unittest2 coverage diff --git a/setup.cfg b/setup.cfg index b8044ea4..da9fdf7b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -2,6 +2,9 @@ max_line_length = 100 max_complexity = 10 exclude = types.py +per-file-ignores = + examples/demo/*: F841 + examples/wiring/*: F841 [pydocstyle] ignore = D100,D101,D102,D105,D106,D107,D203,D213 diff --git a/src/dependency_injector/__init__.py b/src/dependency_injector/__init__.py index 5a76afaa..cfc06647 100644 --- a/src/dependency_injector/__init__.py +++ b/src/dependency_injector/__init__.py @@ -1,6 +1,6 @@ """Top-level package.""" -__version__ = '3.44.0' +__version__ = '4.0.0a2' """Version number. :type: str diff --git a/src/dependency_injector/containers.c b/src/dependency_injector/containers.c index b810e3fb..50237876 100644 --- a/src/dependency_injector/containers.c +++ b/src/dependency_injector/containers.c @@ -834,6 +834,7 @@ struct __pyx_obj_19dependency_injector_9providers_DelegatedCoroutine; struct __pyx_obj_19dependency_injector_9providers_AbstractCoroutine; struct __pyx_obj_19dependency_injector_9providers_CoroutineDelegate; struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption; +struct __pyx_obj_19dependency_injector_9providers_TypedConfigurationOption; struct __pyx_obj_19dependency_injector_9providers_Configuration; struct __pyx_obj_19dependency_injector_9providers_Factory; struct __pyx_obj_19dependency_injector_9providers_DelegatedFactory; @@ -867,7 +868,7 @@ struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_4_overrid struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_5_copy; struct __pyx_opt_args_19dependency_injector_9providers_deepcopy; -/* "providers.pxd":267 +/* "providers.pxd":271 * * * cpdef object deepcopy(object instance, dict memo=*) # <<<<<<<<<<<<<< @@ -1090,6 +1091,18 @@ struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption { /* "providers.pxd":96 + * + * + * cdef class TypedConfigurationOption(Callable): # <<<<<<<<<<<<<< + * pass + * + */ +struct __pyx_obj_19dependency_injector_9providers_TypedConfigurationOption { + struct __pyx_obj_19dependency_injector_9providers_Callable __pyx_base; +}; + + +/* "providers.pxd":100 * * * cdef class Configuration(Object): # <<<<<<<<<<<<<< @@ -1104,7 +1117,7 @@ struct __pyx_obj_19dependency_injector_9providers_Configuration { }; -/* "providers.pxd":103 +/* "providers.pxd":107 * * # Factory providers * cdef class Factory(Provider): # <<<<<<<<<<<<<< @@ -1119,7 +1132,7 @@ struct __pyx_obj_19dependency_injector_9providers_Factory { }; -/* "providers.pxd":112 +/* "providers.pxd":116 * * * cdef class DelegatedFactory(Factory): # <<<<<<<<<<<<<< @@ -1131,7 +1144,7 @@ struct __pyx_obj_19dependency_injector_9providers_DelegatedFactory { }; -/* "providers.pxd":116 +/* "providers.pxd":120 * * * cdef class AbstractFactory(Factory): # <<<<<<<<<<<<<< @@ -1143,7 +1156,7 @@ struct __pyx_obj_19dependency_injector_9providers_AbstractFactory { }; -/* "providers.pxd":120 +/* "providers.pxd":124 * * * cdef class FactoryDelegate(Delegate): # <<<<<<<<<<<<<< @@ -1155,7 +1168,7 @@ struct __pyx_obj_19dependency_injector_9providers_FactoryDelegate { }; -/* "providers.pxd":124 +/* "providers.pxd":128 * * * cdef class FactoryAggregate(Provider): # <<<<<<<<<<<<<< @@ -1168,7 +1181,7 @@ struct __pyx_obj_19dependency_injector_9providers_FactoryAggregate { }; -/* "providers.pxd":131 +/* "providers.pxd":135 * * # Singleton providers * cdef class BaseSingleton(Provider): # <<<<<<<<<<<<<< @@ -1181,7 +1194,7 @@ struct __pyx_obj_19dependency_injector_9providers_BaseSingleton { }; -/* "providers.pxd":135 +/* "providers.pxd":139 * * * cdef class Singleton(BaseSingleton): # <<<<<<<<<<<<<< @@ -1194,7 +1207,7 @@ struct __pyx_obj_19dependency_injector_9providers_Singleton { }; -/* "providers.pxd":141 +/* "providers.pxd":145 * * * cdef class DelegatedSingleton(Singleton): # <<<<<<<<<<<<<< @@ -1206,7 +1219,7 @@ struct __pyx_obj_19dependency_injector_9providers_DelegatedSingleton { }; -/* "providers.pxd":145 +/* "providers.pxd":149 * * * cdef class ThreadSafeSingleton(BaseSingleton): # <<<<<<<<<<<<<< @@ -1220,7 +1233,7 @@ struct __pyx_obj_19dependency_injector_9providers_ThreadSafeSingleton { }; -/* "providers.pxd":152 +/* "providers.pxd":156 * * * cdef class DelegatedThreadSafeSingleton(ThreadSafeSingleton): # <<<<<<<<<<<<<< @@ -1232,7 +1245,7 @@ struct __pyx_obj_19dependency_injector_9providers_DelegatedThreadSafeSingleton { }; -/* "providers.pxd":156 +/* "providers.pxd":160 * * * cdef class ThreadLocalSingleton(BaseSingleton): # <<<<<<<<<<<<<< @@ -1245,7 +1258,7 @@ struct __pyx_obj_19dependency_injector_9providers_ThreadLocalSingleton { }; -/* "providers.pxd":162 +/* "providers.pxd":166 * * * cdef class DelegatedThreadLocalSingleton(ThreadLocalSingleton): # <<<<<<<<<<<<<< @@ -1257,7 +1270,7 @@ struct __pyx_obj_19dependency_injector_9providers_DelegatedThreadLocalSingleton }; -/* "providers.pxd":166 +/* "providers.pxd":170 * * * cdef class AbstractSingleton(BaseSingleton): # <<<<<<<<<<<<<< @@ -1269,7 +1282,7 @@ struct __pyx_obj_19dependency_injector_9providers_AbstractSingleton { }; -/* "providers.pxd":170 +/* "providers.pxd":174 * * * cdef class SingletonDelegate(Delegate): # <<<<<<<<<<<<<< @@ -1281,7 +1294,7 @@ struct __pyx_obj_19dependency_injector_9providers_SingletonDelegate { }; -/* "providers.pxd":176 +/* "providers.pxd":180 * # Miscellaneous providers * * cdef class List(Provider): # <<<<<<<<<<<<<< @@ -1295,22 +1308,22 @@ struct __pyx_obj_19dependency_injector_9providers_List { }; -/* "providers.pxd":183 +/* "providers.pxd":187 * * * cdef class Container(Provider): # <<<<<<<<<<<<<< - * cdef object container_cls - * cdef dict overriding_providers + * cdef object __container_cls + * cdef dict __overriding_providers */ struct __pyx_obj_19dependency_injector_9providers_Container { struct __pyx_obj_19dependency_injector_9providers_Provider __pyx_base; - PyObject *container_cls; - PyObject *overriding_providers; - PyObject *container; + PyObject *__pyx___container_cls; + PyObject *__pyx___overriding_providers; + PyObject *__pyx___container; }; -/* "providers.pxd":191 +/* "providers.pxd":195 * * * cdef class Selector(Provider): # <<<<<<<<<<<<<< @@ -1324,7 +1337,7 @@ struct __pyx_obj_19dependency_injector_9providers_Selector { }; -/* "providers.pxd":199 +/* "providers.pxd":203 * # Provided instance * * cdef class ProvidedInstance(Provider): # <<<<<<<<<<<<<< @@ -1337,7 +1350,7 @@ struct __pyx_obj_19dependency_injector_9providers_ProvidedInstance { }; -/* "providers.pxd":205 +/* "providers.pxd":209 * * * cdef class AttributeGetter(Provider): # <<<<<<<<<<<<<< @@ -1351,7 +1364,7 @@ struct __pyx_obj_19dependency_injector_9providers_AttributeGetter { }; -/* "providers.pxd":212 +/* "providers.pxd":216 * * * cdef class ItemGetter(Provider): # <<<<<<<<<<<<<< @@ -1365,7 +1378,7 @@ struct __pyx_obj_19dependency_injector_9providers_ItemGetter { }; -/* "providers.pxd":219 +/* "providers.pxd":223 * * * cdef class MethodCaller(Provider): # <<<<<<<<<<<<<< @@ -1382,7 +1395,7 @@ struct __pyx_obj_19dependency_injector_9providers_MethodCaller { }; -/* "providers.pxd":230 +/* "providers.pxd":234 * * # Injections * cdef class Injection(object): # <<<<<<<<<<<<<< @@ -1398,7 +1411,7 @@ struct __pyx_obj_19dependency_injector_9providers_Injection { }; -/* "providers.pxd":237 +/* "providers.pxd":241 * * * cdef class PositionalInjection(Injection): # <<<<<<<<<<<<<< @@ -1410,7 +1423,7 @@ struct __pyx_obj_19dependency_injector_9providers_PositionalInjection { }; -/* "providers.pxd":241 +/* "providers.pxd":245 * * * cdef class NamedInjection(Injection): # <<<<<<<<<<<<<< @@ -1423,7 +1436,7 @@ struct __pyx_obj_19dependency_injector_9providers_NamedInjection { }; -/* "dependency_injector/containers.pyx":178 +/* "dependency_injector/containers.pyx":221 * """Declarative inversion of control container meta class.""" * * def __new__(type mcs, str class_name, tuple bases, dict attributes): # <<<<<<<<<<<<<< @@ -1437,7 +1450,7 @@ struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct____new__ }; -/* "dependency_injector/containers.pyx":184 +/* "dependency_injector/containers.pyx":227 * cdef type cls * * containers = tuple((name, container) # <<<<<<<<<<<<<< @@ -1455,7 +1468,7 @@ struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_genexpr }; -/* "dependency_injector/containers.pyx":190 +/* "dependency_injector/containers.pyx":233 * attributes['containers'] = dict(containers) * * cls_providers = tuple((name, provider) # <<<<<<<<<<<<<< @@ -1473,7 +1486,7 @@ struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_2_genexpr }; -/* "dependency_injector/containers.pyx":194 +/* "dependency_injector/containers.pyx":237 * if isinstance(provider, Provider)) * * inherited_providers = tuple((name, provider) # <<<<<<<<<<<<<< @@ -1494,7 +1507,7 @@ struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_3_genexpr }; -/* "dependency_injector/containers.pyx":367 +/* "dependency_injector/containers.pyx":420 * * * def override(object container): # <<<<<<<<<<<<<< @@ -1507,7 +1520,7 @@ struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_4_overrid }; -/* "dependency_injector/containers.pyx":384 +/* "dependency_injector/containers.pyx":437 * * * def copy(object container): # <<<<<<<<<<<<<< @@ -1734,6 +1747,20 @@ static struct __pyx_vtabstruct_19dependency_injector_9providers_ConfigurationOpt /* "providers.pxd":96 + * + * + * cdef class TypedConfigurationOption(Callable): # <<<<<<<<<<<<<< + * pass + * + */ + +struct __pyx_vtabstruct_19dependency_injector_9providers_TypedConfigurationOption { + struct __pyx_vtabstruct_19dependency_injector_9providers_Callable __pyx_base; +}; +static struct __pyx_vtabstruct_19dependency_injector_9providers_TypedConfigurationOption *__pyx_vtabptr_19dependency_injector_9providers_TypedConfigurationOption; + + +/* "providers.pxd":100 * * * cdef class Configuration(Object): # <<<<<<<<<<<<<< @@ -1747,7 +1774,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_Configuration { static struct __pyx_vtabstruct_19dependency_injector_9providers_Configuration *__pyx_vtabptr_19dependency_injector_9providers_Configuration; -/* "providers.pxd":103 +/* "providers.pxd":107 * * # Factory providers * cdef class Factory(Provider): # <<<<<<<<<<<<<< @@ -1761,7 +1788,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_Factory { static struct __pyx_vtabstruct_19dependency_injector_9providers_Factory *__pyx_vtabptr_19dependency_injector_9providers_Factory; -/* "providers.pxd":112 +/* "providers.pxd":116 * * * cdef class DelegatedFactory(Factory): # <<<<<<<<<<<<<< @@ -1775,7 +1802,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedFactory { static struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedFactory *__pyx_vtabptr_19dependency_injector_9providers_DelegatedFactory; -/* "providers.pxd":116 +/* "providers.pxd":120 * * * cdef class AbstractFactory(Factory): # <<<<<<<<<<<<<< @@ -1789,7 +1816,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_AbstractFactory { static struct __pyx_vtabstruct_19dependency_injector_9providers_AbstractFactory *__pyx_vtabptr_19dependency_injector_9providers_AbstractFactory; -/* "providers.pxd":120 +/* "providers.pxd":124 * * * cdef class FactoryDelegate(Delegate): # <<<<<<<<<<<<<< @@ -1803,7 +1830,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_FactoryDelegate { static struct __pyx_vtabstruct_19dependency_injector_9providers_FactoryDelegate *__pyx_vtabptr_19dependency_injector_9providers_FactoryDelegate; -/* "providers.pxd":124 +/* "providers.pxd":128 * * * cdef class FactoryAggregate(Provider): # <<<<<<<<<<<<<< @@ -1818,7 +1845,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_FactoryAggregate { static struct __pyx_vtabstruct_19dependency_injector_9providers_FactoryAggregate *__pyx_vtabptr_19dependency_injector_9providers_FactoryAggregate; -/* "providers.pxd":131 +/* "providers.pxd":135 * * # Singleton providers * cdef class BaseSingleton(Provider): # <<<<<<<<<<<<<< @@ -1832,7 +1859,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_BaseSingleton { static struct __pyx_vtabstruct_19dependency_injector_9providers_BaseSingleton *__pyx_vtabptr_19dependency_injector_9providers_BaseSingleton; -/* "providers.pxd":135 +/* "providers.pxd":139 * * * cdef class Singleton(BaseSingleton): # <<<<<<<<<<<<<< @@ -1846,7 +1873,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_Singleton { static struct __pyx_vtabstruct_19dependency_injector_9providers_Singleton *__pyx_vtabptr_19dependency_injector_9providers_Singleton; -/* "providers.pxd":141 +/* "providers.pxd":145 * * * cdef class DelegatedSingleton(Singleton): # <<<<<<<<<<<<<< @@ -1860,7 +1887,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedSingleton { static struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedSingleton *__pyx_vtabptr_19dependency_injector_9providers_DelegatedSingleton; -/* "providers.pxd":145 +/* "providers.pxd":149 * * * cdef class ThreadSafeSingleton(BaseSingleton): # <<<<<<<<<<<<<< @@ -1874,7 +1901,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_ThreadSafeSingleton { static struct __pyx_vtabstruct_19dependency_injector_9providers_ThreadSafeSingleton *__pyx_vtabptr_19dependency_injector_9providers_ThreadSafeSingleton; -/* "providers.pxd":152 +/* "providers.pxd":156 * * * cdef class DelegatedThreadSafeSingleton(ThreadSafeSingleton): # <<<<<<<<<<<<<< @@ -1888,7 +1915,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedThreadSafeSing static struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedThreadSafeSingleton *__pyx_vtabptr_19dependency_injector_9providers_DelegatedThreadSafeSingleton; -/* "providers.pxd":156 +/* "providers.pxd":160 * * * cdef class ThreadLocalSingleton(BaseSingleton): # <<<<<<<<<<<<<< @@ -1902,7 +1929,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_ThreadLocalSingleton { static struct __pyx_vtabstruct_19dependency_injector_9providers_ThreadLocalSingleton *__pyx_vtabptr_19dependency_injector_9providers_ThreadLocalSingleton; -/* "providers.pxd":162 +/* "providers.pxd":166 * * * cdef class DelegatedThreadLocalSingleton(ThreadLocalSingleton): # <<<<<<<<<<<<<< @@ -1916,7 +1943,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedThreadLocalSin static struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedThreadLocalSingleton *__pyx_vtabptr_19dependency_injector_9providers_DelegatedThreadLocalSingleton; -/* "providers.pxd":166 +/* "providers.pxd":170 * * * cdef class AbstractSingleton(BaseSingleton): # <<<<<<<<<<<<<< @@ -1930,7 +1957,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_AbstractSingleton { static struct __pyx_vtabstruct_19dependency_injector_9providers_AbstractSingleton *__pyx_vtabptr_19dependency_injector_9providers_AbstractSingleton; -/* "providers.pxd":170 +/* "providers.pxd":174 * * * cdef class SingletonDelegate(Delegate): # <<<<<<<<<<<<<< @@ -1944,7 +1971,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_SingletonDelegate { static struct __pyx_vtabstruct_19dependency_injector_9providers_SingletonDelegate *__pyx_vtabptr_19dependency_injector_9providers_SingletonDelegate; -/* "providers.pxd":176 +/* "providers.pxd":180 * # Miscellaneous providers * * cdef class List(Provider): # <<<<<<<<<<<<<< @@ -1958,12 +1985,12 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_List { static struct __pyx_vtabstruct_19dependency_injector_9providers_List *__pyx_vtabptr_19dependency_injector_9providers_List; -/* "providers.pxd":183 +/* "providers.pxd":187 * * * cdef class Container(Provider): # <<<<<<<<<<<<<< - * cdef object container_cls - * cdef dict overriding_providers + * cdef object __container_cls + * cdef dict __overriding_providers */ struct __pyx_vtabstruct_19dependency_injector_9providers_Container { @@ -1972,7 +1999,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_Container { static struct __pyx_vtabstruct_19dependency_injector_9providers_Container *__pyx_vtabptr_19dependency_injector_9providers_Container; -/* "providers.pxd":191 +/* "providers.pxd":195 * * * cdef class Selector(Provider): # <<<<<<<<<<<<<< @@ -1986,7 +2013,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_Selector { static struct __pyx_vtabstruct_19dependency_injector_9providers_Selector *__pyx_vtabptr_19dependency_injector_9providers_Selector; -/* "providers.pxd":199 +/* "providers.pxd":203 * # Provided instance * * cdef class ProvidedInstance(Provider): # <<<<<<<<<<<<<< @@ -2000,7 +2027,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_ProvidedInstance { static struct __pyx_vtabstruct_19dependency_injector_9providers_ProvidedInstance *__pyx_vtabptr_19dependency_injector_9providers_ProvidedInstance; -/* "providers.pxd":205 +/* "providers.pxd":209 * * * cdef class AttributeGetter(Provider): # <<<<<<<<<<<<<< @@ -2014,7 +2041,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_AttributeGetter { static struct __pyx_vtabstruct_19dependency_injector_9providers_AttributeGetter *__pyx_vtabptr_19dependency_injector_9providers_AttributeGetter; -/* "providers.pxd":212 +/* "providers.pxd":216 * * * cdef class ItemGetter(Provider): # <<<<<<<<<<<<<< @@ -2028,7 +2055,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_ItemGetter { static struct __pyx_vtabstruct_19dependency_injector_9providers_ItemGetter *__pyx_vtabptr_19dependency_injector_9providers_ItemGetter; -/* "providers.pxd":219 +/* "providers.pxd":223 * * * cdef class MethodCaller(Provider): # <<<<<<<<<<<<<< @@ -2115,6 +2142,55 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject /* GetBuiltinName.proto */ static PyObject *__Pyx_GetBuiltinName(PyObject *name); +/* KeywordStringCheck.proto */ +static int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); + +/* PyObjectCall.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); +#else +#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) +#endif + +/* PyThreadStateGet.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; +#define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; +#define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type +#else +#define __Pyx_PyThreadState_declare +#define __Pyx_PyThreadState_assign +#define __Pyx_PyErr_Occurred() PyErr_Occurred() +#endif + +/* PyErrFetchRestore.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) +#define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) +#define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) +#define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) +#define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); +static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); +#if CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) +#else +#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) +#endif +#else +#define __Pyx_PyErr_Clear() PyErr_Clear() +#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) +#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) +#define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) +#define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) +#endif + +/* RaiseException.proto */ +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); + /* PyObjectSetAttrStr.proto */ #if CYTHON_USE_TYPE_SLOTS #define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL) @@ -2147,13 +2223,6 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) #endif -/* PyObjectCall.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); -#else -#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) -#endif - /* PyObjectCallMethO.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); @@ -2262,45 +2331,6 @@ static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* s return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); } -/* PyThreadStateGet.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; -#define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; -#define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type -#else -#define __Pyx_PyThreadState_declare -#define __Pyx_PyThreadState_assign -#define __Pyx_PyErr_Occurred() PyErr_Occurred() -#endif - -/* PyErrFetchRestore.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) -#define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) -#define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) -#define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) -#define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) -static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); -static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); -#if CYTHON_COMPILING_IN_CPYTHON -#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) -#else -#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) -#endif -#else -#define __Pyx_PyErr_Clear() PyErr_Clear() -#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) -#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) -#define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) -#define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) -#endif - -/* RaiseException.proto */ -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - /* GetAttr.proto */ static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); @@ -2727,6 +2757,7 @@ static PyTypeObject *__pyx_ptype_19dependency_injector_9providers_DelegatedCorou static PyTypeObject *__pyx_ptype_19dependency_injector_9providers_AbstractCoroutine = 0; static PyTypeObject *__pyx_ptype_19dependency_injector_9providers_CoroutineDelegate = 0; static PyTypeObject *__pyx_ptype_19dependency_injector_9providers_ConfigurationOption = 0; +static PyTypeObject *__pyx_ptype_19dependency_injector_9providers_TypedConfigurationOption = 0; static PyTypeObject *__pyx_ptype_19dependency_injector_9providers_Configuration = 0; static PyTypeObject *__pyx_ptype_19dependency_injector_9providers_Factory = 0; static PyTypeObject *__pyx_ptype_19dependency_injector_9providers_DelegatedFactory = 0; @@ -2780,11 +2811,12 @@ int __pyx_module_is_main_dependency_injector__containers = 0; /* Implementation of 'dependency_injector.containers' */ static PyObject *__pyx_builtin_object; +static PyObject *__pyx_builtin_NotImplementedError; static PyObject *__pyx_builtin_super; static PyObject *__pyx_builtin_id; static PyObject *__pyx_builtin_AttributeError; static PyObject *__pyx_builtin_range; -static const char __pyx_k__6[] = "__"; +static const char __pyx_k__7[] = "__"; static const char __pyx_k_id[] = "id"; static const char __pyx_k_cls[] = "cls"; static const char __pyx_k_doc[] = "__doc__"; @@ -2792,6 +2824,7 @@ static const char __pyx_k_get[] = "get"; static const char __pyx_k_mcs[] = "mcs"; static const char __pyx_k_new[] = "__new__"; static const char __pyx_k_six[] = "six"; +static const char __pyx_k_sys[] = "sys"; static const char __pyx_k_args[] = "args"; static const char __pyx_k_copy[] = "copy"; static const char __pyx_k_init[] = "__init__"; @@ -2801,9 +2834,11 @@ static const char __pyx_k_name[] = "name"; static const char __pyx_k_self[] = "self"; static const char __pyx_k_send[] = "send"; static const char __pyx_k_test[] = "__test__"; +static const char __pyx_k_wire[] = "wire"; static const char __pyx_k_Error[] = "Error"; static const char __pyx_k_bases[] = "bases"; static const char __pyx_k_class[] = "__class__"; +static const char __pyx_k_clear[] = "clear"; static const char __pyx_k_close[] = "close"; static const char __pyx_k_index[] = "index"; static const char __pyx_k_items[] = "items"; @@ -2813,17 +2848,23 @@ static const char __pyx_k_throw[] = "throw"; static const char __pyx_k_value[] = "value"; static const char __pyx_k_copied[] = "copied"; static const char __pyx_k_errors[] = "errors"; +static const char __pyx_k_extend[] = "extend"; static const char __pyx_k_format[] = "format"; static const char __pyx_k_import[] = "__import__"; +static const char __pyx_k_kwargs[] = "kwargs"; static const char __pyx_k_module[] = "__module__"; static const char __pyx_k_name_2[] = "__name__"; static const char __pyx_k_object[] = "object"; +static const char __pyx_k_unwire[] = "unwire"; +static const char __pyx_k_wiring[] = "wiring"; static const char __pyx_k_delattr[] = "__delattr__"; static const char __pyx_k_genexpr[] = "genexpr"; +static const char __pyx_k_modules[] = "modules"; static const char __pyx_k_prepare[] = "__prepare__"; static const char __pyx_k_setattr[] = "__setattr__"; static const char __pyx_k_deepcopy[] = "__deepcopy__"; static const char __pyx_k_override[] = "override"; +static const char __pyx_k_packages[] = "packages"; static const char __pyx_k_provider[] = "provider"; static const char __pyx_k_qualname[] = "__qualname__"; static const char __pyx_k_container[] = "container"; @@ -2839,9 +2880,11 @@ static const char __pyx_k_overridden[] = "overridden"; static const char __pyx_k_overriding[] = "overriding"; static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; static const char __pyx_k_IS_CONTAINER[] = "__IS_CONTAINER__"; +static const char __pyx_k_version_info[] = "version_info"; static const char __pyx_k_add_metaclass[] = "add_metaclass"; static const char __pyx_k_cls_providers[] = "cls_providers"; static const char __pyx_k_instance_type[] = "instance_type"; +static const char __pyx_k_provider_name[] = "provider_name"; static const char __pyx_k_provider_type[] = "provider_type"; static const char __pyx_k_set_providers[] = "set_providers"; static const char __pyx_k_AttributeError[] = "AttributeError"; @@ -2850,18 +2893,26 @@ static const char __pyx_k_reset_override[] = "reset_override"; static const char __pyx_k_source_provider[] = "source_provider"; static const char __pyx_k_DynamicContainer[] = "DynamicContainer"; static const char __pyx_k_copied_container[] = "copied_container"; +static const char __pyx_k_wired_to_modules[] = "wired_to_modules"; static const char __pyx_k_Containers_module[] = "Containers module."; +static const char __pyx_k_wired_to_packages[] = "wired_to_packages"; static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; static const char __pyx_k_container_provider[] = "container_provider"; +static const char __pyx_k_declarative_parent[] = "declarative_parent"; static const char __pyx_k_override_providers[] = "override_providers"; +static const char __pyx_k_NotImplementedError[] = "NotImplementedError"; static const char __pyx_k_inherited_providers[] = "inherited_providers"; static const char __pyx_k_overriding_provider[] = "overriding_provider"; +static const char __pyx_k_provider_to_resolve[] = "provider_to_resolve"; static const char __pyx_k_DeclarativeContainer[] = "DeclarativeContainer"; static const char __pyx_k_overriding_container[] = "overriding_container"; static const char __pyx_k_overriding_providers[] = "overriding_providers"; +static const char __pyx_k_DynamicContainer_wire[] = "DynamicContainer.wire"; static const char __pyx_k_reset_last_overriding[] = "reset_last_overriding"; +static const char __pyx_k_resolve_provider_name[] = "resolve_provider_name"; static const char __pyx_k_copy_locals__decorator[] = "copy.._decorator"; static const char __pyx_k_DynamicContainer___init[] = "DynamicContainer.__init__"; +static const char __pyx_k_DynamicContainer_unwire[] = "DynamicContainer.unwire"; static const char __pyx_k_DynamicContainer_override[] = "DynamicContainer.override"; static const char __pyx_k_DeclarativeContainer___new[] = "DeclarativeContainer.__new__"; static const char __pyx_k_DynamicContainer___delattr[] = "DynamicContainer.__delattr__"; @@ -2882,10 +2933,12 @@ static const char __pyx_k_DeclarativeContainer_reset_last[] = "DeclarativeContai static const char __pyx_k_DynamicContainer_reset_override[] = "DynamicContainer.reset_override"; static const char __pyx_k_Container_0_could_not_be_overrid[] = "Container {0} could not be overridden with itself"; static const char __pyx_k_DeclarativeContainer_reset_overr[] = "DeclarativeContainer.reset_override"; +static const char __pyx_k_DeclarativeContainer_resolve_pro[] = "DeclarativeContainer.resolve_provider_name"; static const char __pyx_k_Declarative_inversion_of_control[] = "Declarative inversion of control container meta class."; static const char __pyx_k_DynamicContainer_override_provid[] = "DynamicContainer.override_providers"; static const char __pyx_k_DynamicContainer_reset_last_over[] = "DynamicContainer.reset_last_overriding"; static const char __pyx_k_Dynamic_inversion_of_control_con[] = "Dynamic inversion of control container.\n\n .. code-block:: python\n\n services = DynamicContainer()\n services.auth = providers.Factory(AuthService)\n services.users = providers.Factory(UsersService,\n auth_service=services.auth)\n\n .. py:attribute:: providers\n\n Read-only dictionary of all providers.\n\n :type: dict[str, :py:class:`dependency_injector.providers.Provider`]\n\n .. py:attribute:: overridden\n\n Tuple of overriding containers.\n\n :type: tuple[:py:class:`DynamicContainer`]\n\n .. py:attribute:: provider_type\n\n Type of providers that could be placed in container.\n\n :type: type\n "; +static const char __pyx_k_Wiring_requires_Python_3_6_or_ab[] = "Wiring requires Python 3.6 or above"; static const char __pyx_k_src_dependency_injector_containe[] = "src/dependency_injector/containers.pyx"; static const char __pyx_k_Container_0_could_not_be_overrid_2[] = "Container {0} could not be overridden with itself or its subclasses"; static const char __pyx_k_Declarative_inversion_of_control_2[] = "Declarative inversion of control container.\n\n .. code-block:: python\n\n class Services(DeclarativeContainer):\n auth = providers.Factory(AuthService)\n users = providers.Factory(UsersService,\n auth_service=auth)\n "; @@ -2904,6 +2957,7 @@ static PyObject *__pyx_n_s_DeclarativeContainer___new; static PyObject *__pyx_n_s_DeclarativeContainer_override; static PyObject *__pyx_n_s_DeclarativeContainer_reset_last; static PyObject *__pyx_n_s_DeclarativeContainer_reset_overr; +static PyObject *__pyx_n_s_DeclarativeContainer_resolve_pro; static PyObject *__pyx_kp_s_Declarative_inversion_of_control; static PyObject *__pyx_kp_s_Declarative_inversion_of_control_2; static PyObject *__pyx_n_s_DynamicContainer; @@ -2916,16 +2970,21 @@ static PyObject *__pyx_n_s_DynamicContainer_override_provid; static PyObject *__pyx_n_s_DynamicContainer_reset_last_over; static PyObject *__pyx_n_s_DynamicContainer_reset_override; static PyObject *__pyx_n_s_DynamicContainer_set_providers; +static PyObject *__pyx_n_s_DynamicContainer_unwire; +static PyObject *__pyx_n_s_DynamicContainer_wire; static PyObject *__pyx_kp_s_Dynamic_inversion_of_control_con; static PyObject *__pyx_n_s_Error; static PyObject *__pyx_n_s_IS_CONTAINER; -static PyObject *__pyx_n_s__6; +static PyObject *__pyx_n_s_NotImplementedError; +static PyObject *__pyx_kp_s_Wiring_requires_Python_3_6_or_ab; +static PyObject *__pyx_n_s__7; static PyObject *__pyx_n_s_add_metaclass; static PyObject *__pyx_n_s_args; static PyObject *__pyx_n_s_attributes; static PyObject *__pyx_n_s_bases; static PyObject *__pyx_n_s_class; static PyObject *__pyx_n_s_class_name; +static PyObject *__pyx_n_s_clear; static PyObject *__pyx_n_s_cline_in_traceback; static PyObject *__pyx_n_s_close; static PyObject *__pyx_n_s_cls; @@ -2937,12 +2996,14 @@ static PyObject *__pyx_n_s_copied; static PyObject *__pyx_n_s_copied_container; static PyObject *__pyx_n_s_copy; static PyObject *__pyx_n_s_copy_locals__decorator; +static PyObject *__pyx_n_s_declarative_parent; static PyObject *__pyx_n_s_decorator; static PyObject *__pyx_n_s_deepcopy; static PyObject *__pyx_n_s_delattr; static PyObject *__pyx_n_s_dependency_injector_containers; static PyObject *__pyx_n_s_doc; static PyObject *__pyx_n_s_errors; +static PyObject *__pyx_n_s_extend; static PyObject *__pyx_n_s_format; static PyObject *__pyx_n_s_genexpr; static PyObject *__pyx_n_s_get; @@ -2955,11 +3016,13 @@ static PyObject *__pyx_n_s_instance_type; static PyObject *__pyx_n_s_items; static PyObject *__pyx_n_s_iteritems; static PyObject *__pyx_n_s_itervalues; +static PyObject *__pyx_n_s_kwargs; static PyObject *__pyx_n_s_main; static PyObject *__pyx_n_s_mcs; static PyObject *__pyx_n_s_memo; static PyObject *__pyx_n_s_metaclass; static PyObject *__pyx_n_s_module; +static PyObject *__pyx_n_s_modules; static PyObject *__pyx_n_s_name; static PyObject *__pyx_n_s_name_2; static PyObject *__pyx_n_s_new; @@ -2972,8 +3035,11 @@ static PyObject *__pyx_n_s_overriding; static PyObject *__pyx_n_s_overriding_container; static PyObject *__pyx_n_s_overriding_provider; static PyObject *__pyx_n_s_overriding_providers; +static PyObject *__pyx_n_s_packages; static PyObject *__pyx_n_s_prepare; static PyObject *__pyx_n_s_provider; +static PyObject *__pyx_n_s_provider_name; +static PyObject *__pyx_n_s_provider_to_resolve; static PyObject *__pyx_n_s_provider_type; static PyObject *__pyx_n_s_providers; static PyObject *__pyx_n_s_providers_copy; @@ -2982,6 +3048,7 @@ static PyObject *__pyx_n_s_qualname; static PyObject *__pyx_n_s_range; static PyObject *__pyx_n_s_reset_last_overriding; static PyObject *__pyx_n_s_reset_override; +static PyObject *__pyx_n_s_resolve_provider_name; static PyObject *__pyx_n_s_self; static PyObject *__pyx_n_s_send; static PyObject *__pyx_n_s_set_providers; @@ -2990,9 +3057,18 @@ static PyObject *__pyx_n_s_six; static PyObject *__pyx_n_s_source_provider; static PyObject *__pyx_kp_s_src_dependency_injector_containe; static PyObject *__pyx_n_s_super; +static PyObject *__pyx_n_s_sys; static PyObject *__pyx_n_s_test; static PyObject *__pyx_n_s_throw; +static PyObject *__pyx_n_s_unwire; static PyObject *__pyx_n_s_value; +static PyObject *__pyx_n_s_version_info; +static PyObject *__pyx_n_s_wire; +static PyObject *__pyx_n_s_wired_to_modules; +static PyObject *__pyx_n_s_wired_to_packages; +static PyObject *__pyx_n_s_wiring; +static PyObject *__pyx_pf_19dependency_injector_10containers_wire(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_10containers_2unwire(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_2__deepcopy__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_memo); /* proto */ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_4__setattr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_value); /* proto */ @@ -3002,6 +3078,8 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_12override_providers(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_overriding_providers); /* proto */ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_14reset_last_overriding(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_16reset_override(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_18wire(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_modules, PyObject *__pyx_v_packages); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_20unwire(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContainerMetaClass_7__new___genexpr(PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContainerMetaClass_7__new___3genexpr(PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContainerMetaClass_7__new___6genexpr(PyObject *__pyx_self); /* proto */ @@ -3012,12 +3090,13 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContainer_2override(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_overriding); /* proto */ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContainer_4reset_last_overriding(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls); /* proto */ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContainer_6reset_override(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContainer_8resolve_provider_name(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_provider_to_resolve); /* proto */ static PyObject *__pyx_pf_19dependency_injector_10containers_8override__decorator(PyObject *__pyx_self, PyObject *__pyx_v_overriding_container); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_10containers_override(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_container); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_10containers_4override(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_container); /* proto */ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(PyObject *__pyx_self, PyObject *__pyx_v_copied_container); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_10containers_2copy(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_container); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_10containers_4is_container(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_instance); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_10containers_6_check_provider_type(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_container, PyObject *__pyx_v_provider); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_10containers_6copy(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_container); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_10containers_8is_container(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_instance); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_10containers_10_check_provider_type(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_container, PyObject *__pyx_v_provider); /* proto */ static PyObject *__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct____new__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct_1_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct_2_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ @@ -3026,53 +3105,207 @@ static PyObject *__pyx_tp_new_19dependency_injector_10containers___pyx_scope_str static PyObject *__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct_5_copy(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_items = {0, &__pyx_n_s_items, 0, 0, 0}; static PyObject *__pyx_int_2; +static PyObject *__pyx_int_3; +static PyObject *__pyx_int_6; static PyObject *__pyx_int_neg_1; -static PyObject *__pyx_slice_; -static PyObject *__pyx_tuple__2; -static PyObject *__pyx_tuple__4; -static PyObject *__pyx_tuple__7; -static PyObject *__pyx_tuple__8; +static PyObject *__pyx_tuple_; +static PyObject *__pyx_slice__2; +static PyObject *__pyx_slice__8; +static PyObject *__pyx_tuple__3; +static PyObject *__pyx_tuple__5; +static PyObject *__pyx_tuple__9; static PyObject *__pyx_tuple__10; static PyObject *__pyx_tuple__12; static PyObject *__pyx_tuple__14; -static PyObject *__pyx_tuple__16; -static PyObject *__pyx_tuple__18; -static PyObject *__pyx_tuple__20; -static PyObject *__pyx_tuple__22; -static PyObject *__pyx_tuple__24; -static PyObject *__pyx_tuple__26; -static PyObject *__pyx_tuple__28; -static PyObject *__pyx_tuple__30; -static PyObject *__pyx_tuple__32; +static PyObject *__pyx_tuple__15; +static PyObject *__pyx_tuple__17; +static PyObject *__pyx_tuple__19; +static PyObject *__pyx_tuple__21; +static PyObject *__pyx_tuple__23; +static PyObject *__pyx_tuple__25; +static PyObject *__pyx_tuple__27; +static PyObject *__pyx_tuple__29; +static PyObject *__pyx_tuple__31; static PyObject *__pyx_tuple__33; static PyObject *__pyx_tuple__35; -static PyObject *__pyx_tuple__37; -static PyObject *__pyx_tuple__39; -static PyObject *__pyx_tuple__41; -static PyObject *__pyx_tuple__43; -static PyObject *__pyx_codeobj__3; -static PyObject *__pyx_codeobj__5; -static PyObject *__pyx_codeobj__9; +static PyObject *__pyx_tuple__36; +static PyObject *__pyx_tuple__38; +static PyObject *__pyx_tuple__40; +static PyObject *__pyx_tuple__42; +static PyObject *__pyx_tuple__44; +static PyObject *__pyx_tuple__45; +static PyObject *__pyx_tuple__47; +static PyObject *__pyx_tuple__49; +static PyObject *__pyx_tuple__51; +static PyObject *__pyx_tuple__53; +static PyObject *__pyx_tuple__55; +static PyObject *__pyx_tuple__57; +static PyObject *__pyx_codeobj__4; +static PyObject *__pyx_codeobj__6; static PyObject *__pyx_codeobj__11; static PyObject *__pyx_codeobj__13; -static PyObject *__pyx_codeobj__15; -static PyObject *__pyx_codeobj__17; -static PyObject *__pyx_codeobj__19; -static PyObject *__pyx_codeobj__21; -static PyObject *__pyx_codeobj__23; -static PyObject *__pyx_codeobj__25; -static PyObject *__pyx_codeobj__27; -static PyObject *__pyx_codeobj__29; -static PyObject *__pyx_codeobj__31; +static PyObject *__pyx_codeobj__16; +static PyObject *__pyx_codeobj__18; +static PyObject *__pyx_codeobj__20; +static PyObject *__pyx_codeobj__22; +static PyObject *__pyx_codeobj__24; +static PyObject *__pyx_codeobj__26; +static PyObject *__pyx_codeobj__28; +static PyObject *__pyx_codeobj__30; +static PyObject *__pyx_codeobj__32; static PyObject *__pyx_codeobj__34; -static PyObject *__pyx_codeobj__36; -static PyObject *__pyx_codeobj__38; -static PyObject *__pyx_codeobj__40; -static PyObject *__pyx_codeobj__42; -static PyObject *__pyx_codeobj__44; +static PyObject *__pyx_codeobj__37; +static PyObject *__pyx_codeobj__39; +static PyObject *__pyx_codeobj__41; +static PyObject *__pyx_codeobj__43; +static PyObject *__pyx_codeobj__46; +static PyObject *__pyx_codeobj__48; +static PyObject *__pyx_codeobj__50; +static PyObject *__pyx_codeobj__52; +static PyObject *__pyx_codeobj__54; +static PyObject *__pyx_codeobj__56; +static PyObject *__pyx_codeobj__58; /* Late includes */ -/* "dependency_injector/containers.pyx":44 +/* "dependency_injector/containers.pyx":17 + * from .wiring import wire, unwire + * else: + * def wire(*args, **kwargs): # <<<<<<<<<<<<<< + * raise NotImplementedError('Wiring requires Python 3.6 or above') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_10containers_1wire(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_10containers_1wire = {"wire", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_10containers_1wire, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_10containers_1wire(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + CYTHON_UNUSED PyObject *__pyx_v_args = 0; + CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("wire (wrapper)", 0); + if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "wire", 1))) return NULL; + __Pyx_INCREF(__pyx_args); + __pyx_v_args = __pyx_args; + __pyx_r = __pyx_pf_19dependency_injector_10containers_wire(__pyx_self, __pyx_v_args, __pyx_v_kwargs); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kwargs); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_10containers_wire(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("wire", 0); + + /* "dependency_injector/containers.pyx":18 + * else: + * def wire(*args, **kwargs): + * raise NotImplementedError('Wiring requires Python 3.6 or above') # <<<<<<<<<<<<<< + * + * def unwire(*args, **kwargs): + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_NotImplementedError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(0, 18, __pyx_L1_error) + + /* "dependency_injector/containers.pyx":17 + * from .wiring import wire, unwire + * else: + * def wire(*args, **kwargs): # <<<<<<<<<<<<<< + * raise NotImplementedError('Wiring requires Python 3.6 or above') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("dependency_injector.containers.wire", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "dependency_injector/containers.pyx":20 + * raise NotImplementedError('Wiring requires Python 3.6 or above') + * + * def unwire(*args, **kwargs): # <<<<<<<<<<<<<< + * raise NotImplementedError('Wiring requires Python 3.6 or above') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_10containers_3unwire(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_10containers_3unwire = {"unwire", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_10containers_3unwire, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_10containers_3unwire(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + CYTHON_UNUSED PyObject *__pyx_v_args = 0; + CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("unwire (wrapper)", 0); + if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "unwire", 1))) return NULL; + __Pyx_INCREF(__pyx_args); + __pyx_v_args = __pyx_args; + __pyx_r = __pyx_pf_19dependency_injector_10containers_2unwire(__pyx_self, __pyx_v_args, __pyx_v_kwargs); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kwargs); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_10containers_2unwire(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("unwire", 0); + + /* "dependency_injector/containers.pyx":21 + * + * def unwire(*args, **kwargs): + * raise NotImplementedError('Wiring requires Python 3.6 or above') # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_NotImplementedError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(0, 21, __pyx_L1_error) + + /* "dependency_injector/containers.pyx":20 + * raise NotImplementedError('Wiring requires Python 3.6 or above') + * + * def unwire(*args, **kwargs): # <<<<<<<<<<<<<< + * raise NotImplementedError('Wiring requires Python 3.6 or above') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("dependency_injector.containers.unwire", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "dependency_injector/containers.pyx":55 * __IS_CONTAINER__ = True * * def __init__(self): # <<<<<<<<<<<<<< @@ -3106,49 +3339,82 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/containers.pyx":49 + /* "dependency_injector/containers.pyx":60 * :rtype: None * """ * self.provider_type = Provider # <<<<<<<<<<<<<< - * self.providers = dict() + * self.providers = {} * self.overridden = tuple() */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_provider_type, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Provider)) < 0) __PYX_ERR(0, 49, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_provider_type, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Provider)) < 0) __PYX_ERR(0, 60, __pyx_L1_error) - /* "dependency_injector/containers.pyx":50 + /* "dependency_injector/containers.pyx":61 * """ * self.provider_type = Provider - * self.providers = dict() # <<<<<<<<<<<<<< + * self.providers = {} # <<<<<<<<<<<<<< * self.overridden = tuple() - * super(DynamicContainer, self).__init__() + * self.declarative_parent = None */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 50, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_providers, __pyx_t_1) < 0) __PYX_ERR(0, 50, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_providers, __pyx_t_1) < 0) __PYX_ERR(0, 61, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":51 + /* "dependency_injector/containers.pyx":62 * self.provider_type = Provider - * self.providers = dict() + * self.providers = {} * self.overridden = tuple() # <<<<<<<<<<<<<< + * self.declarative_parent = None + * self.wired_to_modules = [] + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_overridden, __pyx_t_1) < 0) __PYX_ERR(0, 62, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "dependency_injector/containers.pyx":63 + * self.providers = {} + * self.overridden = tuple() + * self.declarative_parent = None # <<<<<<<<<<<<<< + * self.wired_to_modules = [] + * self.wired_to_packages = [] + */ + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_declarative_parent, Py_None) < 0) __PYX_ERR(0, 63, __pyx_L1_error) + + /* "dependency_injector/containers.pyx":64 + * self.overridden = tuple() + * self.declarative_parent = None + * self.wired_to_modules = [] # <<<<<<<<<<<<<< + * self.wired_to_packages = [] + * super(DynamicContainer, self).__init__() + */ + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_wired_to_modules, __pyx_t_1) < 0) __PYX_ERR(0, 64, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "dependency_injector/containers.pyx":65 + * self.declarative_parent = None + * self.wired_to_modules = [] + * self.wired_to_packages = [] # <<<<<<<<<<<<<< * super(DynamicContainer, self).__init__() * */ - __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 51, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 65, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_overridden, __pyx_t_1) < 0) __PYX_ERR(0, 51, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_wired_to_packages, __pyx_t_1) < 0) __PYX_ERR(0, 65, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":52 - * self.providers = dict() - * self.overridden = tuple() + /* "dependency_injector/containers.pyx":66 + * self.wired_to_modules = [] + * self.wired_to_packages = [] * super(DynamicContainer, self).__init__() # <<<<<<<<<<<<<< * * def __deepcopy__(self, memo): */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_DynamicContainer); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_DynamicContainer); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 66, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 52, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 66, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); @@ -3156,10 +3422,10 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 66, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 52, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 66, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; @@ -3174,12 +3440,12 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 66, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":44 + /* "dependency_injector/containers.pyx":55 * __IS_CONTAINER__ = True * * def __init__(self): # <<<<<<<<<<<<<< @@ -3202,7 +3468,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ return __pyx_r; } -/* "dependency_injector/containers.pyx":54 +/* "dependency_injector/containers.pyx":68 * super(DynamicContainer, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -3246,11 +3512,11 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_ case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_memo)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__deepcopy__", 1, 2, 2, 1); __PYX_ERR(0, 54, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__deepcopy__", 1, 2, 2, 1); __PYX_ERR(0, 68, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__deepcopy__") < 0)) __PYX_ERR(0, 54, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__deepcopy__") < 0)) __PYX_ERR(0, 68, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -3263,7 +3529,7 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__deepcopy__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 54, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__deepcopy__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 68, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.containers.DynamicContainer.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -3299,16 +3565,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__deepcopy__", 0); - /* "dependency_injector/containers.pyx":56 + /* "dependency_injector/containers.pyx":70 * def __deepcopy__(self, memo): * """Create and return full copy of container.""" * copied = memo.get(id(self)) # <<<<<<<<<<<<<< * if copied is not None: * return copied */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 56, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 56, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -3323,13 +3589,13 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 56, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_copied = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":57 + /* "dependency_injector/containers.pyx":71 * """Create and return full copy of container.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -3340,7 +3606,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/containers.pyx":58 + /* "dependency_injector/containers.pyx":72 * copied = memo.get(id(self)) * if copied is not None: * return copied # <<<<<<<<<<<<<< @@ -3352,7 +3618,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/containers.pyx":57 + /* "dependency_injector/containers.pyx":71 * """Create and return full copy of container.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -3361,14 +3627,14 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ */ } - /* "dependency_injector/containers.pyx":60 + /* "dependency_injector/containers.pyx":74 * return copied * * copied = self.__class__() # <<<<<<<<<<<<<< * copied.provider_type = Provider * copied.overridden = deepcopy(self.overridden, memo) */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 60, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -3382,55 +3648,67 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_copied, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":61 + /* "dependency_injector/containers.pyx":75 * * copied = self.__class__() * copied.provider_type = Provider # <<<<<<<<<<<<<< * copied.overridden = deepcopy(self.overridden, memo) - * + * copied.declarative_parent = self.declarative_parent */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_copied, __pyx_n_s_provider_type, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Provider)) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_copied, __pyx_n_s_provider_type, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Provider)) < 0) __PYX_ERR(0, 75, __pyx_L1_error) - /* "dependency_injector/containers.pyx":62 + /* "dependency_injector/containers.pyx":76 * copied = self.__class__() * copied.provider_type = Provider * copied.overridden = deepcopy(self.overridden, memo) # <<<<<<<<<<<<<< + * copied.declarative_parent = self.declarative_parent + * + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_overridden); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 76, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(0, 76, __pyx_L1_error) + __pyx_t_7.__pyx_n = 1; + __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); + __pyx_t_2 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_1, 0, &__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__Pyx_PyObject_SetAttrStr(__pyx_v_copied, __pyx_n_s_overridden, __pyx_t_2) < 0) __PYX_ERR(0, 76, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "dependency_injector/containers.pyx":77 + * copied.provider_type = Provider + * copied.overridden = deepcopy(self.overridden, memo) + * copied.declarative_parent = self.declarative_parent # <<<<<<<<<<<<<< * * for name, provider in deepcopy(self.providers, memo).items(): */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_overridden); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(0, 62, __pyx_L1_error) - __pyx_t_7.__pyx_n = 1; - __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_2 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_1, 0, &__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 62, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_declarative_parent); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__Pyx_PyObject_SetAttrStr(__pyx_v_copied, __pyx_n_s_overridden, __pyx_t_2) < 0) __PYX_ERR(0, 62, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_copied, __pyx_n_s_declarative_parent, __pyx_t_2) < 0) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/containers.pyx":64 - * copied.overridden = deepcopy(self.overridden, memo) + /* "dependency_injector/containers.pyx":79 + * copied.declarative_parent = self.declarative_parent * * for name, provider in deepcopy(self.providers, memo).items(): # <<<<<<<<<<<<<< * setattr(copied, name, provider) * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(0, 64, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(0, 79, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_3 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_1, 0, &__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 64, __pyx_L1_error) + __pyx_t_3 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_1, 0, &__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_items); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_items); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -3445,16 +3723,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 64, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = 0; __pyx_t_9 = NULL; } else { - __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L1_error) + __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 64, __pyx_L1_error) + __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 79, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { @@ -3462,17 +3740,17 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 64, __pyx_L1_error) + __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 79, __pyx_L1_error) #else - __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 64, __pyx_L1_error) + __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 64, __pyx_L1_error) + __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 79, __pyx_L1_error) #else - __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 64, __pyx_L1_error) + __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } @@ -3482,7 +3760,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 64, __pyx_L1_error) + else __PYX_ERR(0, 79, __pyx_L1_error) } break; } @@ -3494,7 +3772,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 64, __pyx_L1_error) + __PYX_ERR(0, 79, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -3507,15 +3785,15 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); #else - __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 64, __pyx_L1_error) + __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 64, __pyx_L1_error) + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; - __pyx_t_10 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 64, __pyx_L1_error) + __pyx_t_10 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext; @@ -3523,7 +3801,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_4 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) __PYX_ERR(0, 64, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) __PYX_ERR(0, 79, __pyx_L1_error) __pyx_t_11 = NULL; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L7_unpacking_done; @@ -3531,7 +3809,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 64, __pyx_L1_error) + __PYX_ERR(0, 79, __pyx_L1_error) __pyx_L7_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_3); @@ -3539,17 +3817,17 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_XDECREF_SET(__pyx_v_provider, __pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":65 + /* "dependency_injector/containers.pyx":80 * * for name, provider in deepcopy(self.providers, memo).items(): * setattr(copied, name, provider) # <<<<<<<<<<<<<< * * return copied */ - __pyx_t_12 = PyObject_SetAttr(__pyx_v_copied, __pyx_v_name, __pyx_v_provider); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 65, __pyx_L1_error) + __pyx_t_12 = PyObject_SetAttr(__pyx_v_copied, __pyx_v_name, __pyx_v_provider); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 80, __pyx_L1_error) - /* "dependency_injector/containers.pyx":64 - * copied.overridden = deepcopy(self.overridden, memo) + /* "dependency_injector/containers.pyx":79 + * copied.declarative_parent = self.declarative_parent * * for name, provider in deepcopy(self.providers, memo).items(): # <<<<<<<<<<<<<< * setattr(copied, name, provider) @@ -3558,7 +3836,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":67 + /* "dependency_injector/containers.pyx":82 * setattr(copied, name, provider) * * return copied # <<<<<<<<<<<<<< @@ -3570,7 +3848,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/containers.pyx":54 + /* "dependency_injector/containers.pyx":68 * super(DynamicContainer, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -3596,7 +3874,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ return __pyx_r; } -/* "dependency_injector/containers.pyx":69 +/* "dependency_injector/containers.pyx":84 * return copied * * def __setattr__(self, str name, object value): # <<<<<<<<<<<<<< @@ -3643,17 +3921,17 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_ case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__setattr__", 1, 3, 3, 1); __PYX_ERR(0, 69, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__setattr__", 1, 3, 3, 1); __PYX_ERR(0, 84, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__setattr__", 1, 3, 3, 2); __PYX_ERR(0, 69, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__setattr__", 1, 3, 3, 2); __PYX_ERR(0, 84, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__setattr__") < 0)) __PYX_ERR(0, 69, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__setattr__") < 0)) __PYX_ERR(0, 84, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -3668,13 +3946,13 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__setattr__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 69, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__setattr__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 84, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.containers.DynamicContainer.__setattr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_name), (&PyString_Type), 1, "name", 1))) __PYX_ERR(0, 69, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_name), (&PyString_Type), 1, "name", 1))) __PYX_ERR(0, 84, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_10containers_16DynamicContainer_4__setattr__(__pyx_self, __pyx_v_self, __pyx_v_name, __pyx_v_value); /* function exit code */ @@ -3701,7 +3979,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setattr__", 0); - /* "dependency_injector/containers.pyx":83 + /* "dependency_injector/containers.pyx":98 * :rtype: None * """ * if isinstance(value, Provider): # <<<<<<<<<<<<<< @@ -3712,30 +3990,30 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "dependency_injector/containers.pyx":84 + /* "dependency_injector/containers.pyx":99 * """ * if isinstance(value, Provider): * _check_provider_type(self, value) # <<<<<<<<<<<<<< * self.providers[name] = value * super(DynamicContainer, self).__setattr__(name, value) */ - __pyx_t_3 = __pyx_f_19dependency_injector_10containers__check_provider_type(__pyx_v_self, __pyx_v_value, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 84, __pyx_L1_error) + __pyx_t_3 = __pyx_f_19dependency_injector_10containers__check_provider_type(__pyx_v_self, __pyx_v_value, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 99, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/containers.pyx":85 + /* "dependency_injector/containers.pyx":100 * if isinstance(value, Provider): * _check_provider_type(self, value) * self.providers[name] = value # <<<<<<<<<<<<<< * super(DynamicContainer, self).__setattr__(name, value) * */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_providers); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 85, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_providers); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_name, __pyx_v_value) < 0)) __PYX_ERR(0, 85, __pyx_L1_error) + if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_name, __pyx_v_value) < 0)) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/containers.pyx":83 + /* "dependency_injector/containers.pyx":98 * :rtype: None * """ * if isinstance(value, Provider): # <<<<<<<<<<<<<< @@ -3744,16 +4022,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ */ } - /* "dependency_injector/containers.pyx":86 + /* "dependency_injector/containers.pyx":101 * _check_provider_type(self, value) * self.providers[name] = value * super(DynamicContainer, self).__setattr__(name, value) # <<<<<<<<<<<<<< * * def __delattr__(self, str name): */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_DynamicContainer); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 86, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_DynamicContainer); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 86, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); @@ -3761,10 +4039,10 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_self); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 86, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_setattr); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 86, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_setattr); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; @@ -3782,7 +4060,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_name, __pyx_v_value}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 86, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); } else @@ -3790,13 +4068,13 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_name, __pyx_v_value}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 86, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif { - __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 86, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -3807,14 +4085,14 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_value); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 86, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/containers.pyx":69 + /* "dependency_injector/containers.pyx":84 * return copied * * def __setattr__(self, str name, object value): # <<<<<<<<<<<<<< @@ -3838,7 +4116,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ return __pyx_r; } -/* "dependency_injector/containers.pyx":88 +/* "dependency_injector/containers.pyx":103 * super(DynamicContainer, self).__setattr__(name, value) * * def __delattr__(self, str name): # <<<<<<<<<<<<<< @@ -3882,11 +4160,11 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_ case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__delattr__", 1, 2, 2, 1); __PYX_ERR(0, 88, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__delattr__", 1, 2, 2, 1); __PYX_ERR(0, 103, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__delattr__") < 0)) __PYX_ERR(0, 88, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__delattr__") < 0)) __PYX_ERR(0, 103, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -3899,13 +4177,13 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__delattr__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 88, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__delattr__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 103, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.containers.DynamicContainer.__delattr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_name), (&PyString_Type), 1, "name", 1))) __PYX_ERR(0, 88, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_name), (&PyString_Type), 1, "name", 1))) __PYX_ERR(0, 103, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_10containers_16DynamicContainer_6__delattr__(__pyx_self, __pyx_v_self, __pyx_v_name); /* function exit code */ @@ -3930,33 +4208,33 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__delattr__", 0); - /* "dependency_injector/containers.pyx":99 + /* "dependency_injector/containers.pyx":114 * :rtype: None * """ * if name in self.providers: # <<<<<<<<<<<<<< * del self.providers[name] * super(DynamicContainer, self).__delattr__(name) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 99, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_1, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 99, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_1, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 114, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { - /* "dependency_injector/containers.pyx":100 + /* "dependency_injector/containers.pyx":115 * """ * if name in self.providers: * del self.providers[name] # <<<<<<<<<<<<<< * super(DynamicContainer, self).__delattr__(name) * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 100, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely(PyObject_DelItem(__pyx_t_1, __pyx_v_name) < 0)) __PYX_ERR(0, 100, __pyx_L1_error) + if (unlikely(PyObject_DelItem(__pyx_t_1, __pyx_v_name) < 0)) __PYX_ERR(0, 115, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":99 + /* "dependency_injector/containers.pyx":114 * :rtype: None * """ * if name in self.providers: # <<<<<<<<<<<<<< @@ -3965,16 +4243,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ */ } - /* "dependency_injector/containers.pyx":101 + /* "dependency_injector/containers.pyx":116 * if name in self.providers: * del self.providers[name] * super(DynamicContainer, self).__delattr__(name) # <<<<<<<<<<<<<< * * def set_providers(self, **providers): */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_DynamicContainer); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 101, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_DynamicContainer); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 101, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); @@ -3982,10 +4260,10 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_self); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 101, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_delattr); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 101, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_delattr); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; @@ -4000,12 +4278,12 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_name); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 101, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":88 + /* "dependency_injector/containers.pyx":103 * super(DynamicContainer, self).__setattr__(name, value) * * def __delattr__(self, str name): # <<<<<<<<<<<<<< @@ -4028,7 +4306,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ return __pyx_r; } -/* "dependency_injector/containers.pyx":103 +/* "dependency_injector/containers.pyx":118 * super(DynamicContainer, self).__delattr__(name) * * def set_providers(self, **providers): # <<<<<<<<<<<<<< @@ -4070,7 +4348,7 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_ else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_providers, values, pos_args, "set_providers") < 0)) __PYX_ERR(0, 103, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_providers, values, pos_args, "set_providers") < 0)) __PYX_ERR(0, 118, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; @@ -4081,7 +4359,7 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("set_providers", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 103, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("set_providers", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 118, __pyx_L3_error) __pyx_L3_error:; __Pyx_DECREF(__pyx_v_providers); __pyx_v_providers = 0; __Pyx_AddTraceback("dependency_injector.containers.DynamicContainer.set_providers", __pyx_clineno, __pyx_lineno, __pyx_filename); @@ -4115,16 +4393,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_providers", 0); - /* "dependency_injector/containers.pyx":112 + /* "dependency_injector/containers.pyx":127 * :rtype: None * """ * for name, provider in six.iteritems(providers): # <<<<<<<<<<<<<< * setattr(self, name, provider) * */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_six); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 112, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_six); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_iteritems); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 112, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_iteritems); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; @@ -4139,16 +4417,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_providers) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_providers); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 112, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { - __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 112, __pyx_L1_error) + __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 112, __pyx_L1_error) + __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 127, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -4156,17 +4434,17 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 112, __pyx_L1_error) + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 127, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 112, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 112, __pyx_L1_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 127, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 112, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } @@ -4176,7 +4454,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 112, __pyx_L1_error) + else __PYX_ERR(0, 127, __pyx_L1_error) } break; } @@ -4188,7 +4466,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 112, __pyx_L1_error) + __PYX_ERR(0, 127, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -4201,15 +4479,15 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_6); #else - __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 112, __pyx_L1_error) + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 112, __pyx_L1_error) + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 112, __pyx_L1_error) + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; @@ -4217,7 +4495,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_GOTREF(__pyx_t_2); index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 112, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 127, __pyx_L1_error) __pyx_t_8 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L6_unpacking_done; @@ -4225,7 +4503,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 112, __pyx_L1_error) + __PYX_ERR(0, 127, __pyx_L1_error) __pyx_L6_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_2); @@ -4233,16 +4511,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_XDECREF_SET(__pyx_v_provider, __pyx_t_6); __pyx_t_6 = 0; - /* "dependency_injector/containers.pyx":113 + /* "dependency_injector/containers.pyx":128 * """ * for name, provider in six.iteritems(providers): * setattr(self, name, provider) # <<<<<<<<<<<<<< * * def override(self, object overriding): */ - __pyx_t_9 = PyObject_SetAttr(__pyx_v_self, __pyx_v_name, __pyx_v_provider); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 113, __pyx_L1_error) + __pyx_t_9 = PyObject_SetAttr(__pyx_v_self, __pyx_v_name, __pyx_v_provider); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 128, __pyx_L1_error) - /* "dependency_injector/containers.pyx":112 + /* "dependency_injector/containers.pyx":127 * :rtype: None * """ * for name, provider in six.iteritems(providers): # <<<<<<<<<<<<<< @@ -4252,7 +4530,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/containers.pyx":103 + /* "dependency_injector/containers.pyx":118 * super(DynamicContainer, self).__delattr__(name) * * def set_providers(self, **providers): # <<<<<<<<<<<<<< @@ -4279,7 +4557,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ return __pyx_r; } -/* "dependency_injector/containers.pyx":115 +/* "dependency_injector/containers.pyx":130 * setattr(self, name, provider) * * def override(self, object overriding): # <<<<<<<<<<<<<< @@ -4323,11 +4601,11 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_ case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_overriding)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("override", 1, 2, 2, 1); __PYX_ERR(0, 115, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("override", 1, 2, 2, 1); __PYX_ERR(0, 130, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "override") < 0)) __PYX_ERR(0, 115, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "override") < 0)) __PYX_ERR(0, 130, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -4340,7 +4618,7 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("override", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 115, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("override", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 130, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.containers.DynamicContainer.override", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -4377,7 +4655,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("override", 0); - /* "dependency_injector/containers.pyx":126 + /* "dependency_injector/containers.pyx":141 * :rtype: None * """ * if overriding is self: # <<<<<<<<<<<<<< @@ -4388,24 +4666,24 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __pyx_t_2 = (__pyx_t_1 != 0); if (unlikely(__pyx_t_2)) { - /* "dependency_injector/containers.pyx":127 + /* "dependency_injector/containers.pyx":142 * """ * if overriding is self: * raise Error('Container {0} could not be overridden ' # <<<<<<<<<<<<<< * 'with itself'.format(self)) * */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 127, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - /* "dependency_injector/containers.pyx":128 + /* "dependency_injector/containers.pyx":143 * if overriding is self: * raise Error('Container {0} could not be overridden ' * 'with itself'.format(self)) # <<<<<<<<<<<<<< * * self.overridden += (overriding,) */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Container_0_could_not_be_overrid, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 128, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Container_0_could_not_be_overrid, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { @@ -4419,7 +4697,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ } __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_self); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 128, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -4435,14 +4713,14 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 127, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 127, __pyx_L1_error) + __PYX_ERR(0, 142, __pyx_L1_error) - /* "dependency_injector/containers.pyx":126 + /* "dependency_injector/containers.pyx":141 * :rtype: None * """ * if overriding is self: # <<<<<<<<<<<<<< @@ -4451,40 +4729,40 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ */ } - /* "dependency_injector/containers.pyx":130 + /* "dependency_injector/containers.pyx":145 * 'with itself'.format(self)) * * self.overridden += (overriding,) # <<<<<<<<<<<<<< * * for name, provider in six.iteritems(overriding.providers): */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_overridden); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 130, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_overridden); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 145, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 130, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 145, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_overriding); __Pyx_GIVEREF(__pyx_v_overriding); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_overriding); - __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 130, __pyx_L1_error) + __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 145, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_overridden, __pyx_t_5) < 0) __PYX_ERR(0, 130, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_overridden, __pyx_t_5) < 0) __PYX_ERR(0, 145, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/containers.pyx":132 + /* "dependency_injector/containers.pyx":147 * self.overridden += (overriding,) * * for name, provider in six.iteritems(overriding.providers): # <<<<<<<<<<<<<< * try: * getattr(self, name).override(provider) */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_six); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 132, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_six); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_iteritems); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_iteritems); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_overriding, __pyx_n_s_providers); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_overriding, __pyx_n_s_providers); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { @@ -4499,16 +4777,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 132, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) { __pyx_t_3 = __pyx_t_5; __Pyx_INCREF(__pyx_t_3); __pyx_t_8 = 0; __pyx_t_9 = NULL; } else { - __pyx_t_8 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_8 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_9 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 147, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; for (;;) { @@ -4516,17 +4794,17 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 147, __pyx_L1_error) #else - __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 147, __pyx_L1_error) #else - __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } @@ -4536,7 +4814,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 132, __pyx_L1_error) + else __PYX_ERR(0, 147, __pyx_L1_error) } break; } @@ -4548,7 +4826,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 132, __pyx_L1_error) + __PYX_ERR(0, 147, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -4561,15 +4839,15 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_6); #else - __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_7 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_10 = Py_TYPE(__pyx_t_7)->tp_iternext; @@ -4577,7 +4855,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_GOTREF(__pyx_t_4); index = 1; __pyx_t_6 = __pyx_t_10(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_7), 2) < 0) __PYX_ERR(0, 132, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_7), 2) < 0) __PYX_ERR(0, 147, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L7_unpacking_done; @@ -4585,7 +4863,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 132, __pyx_L1_error) + __PYX_ERR(0, 147, __pyx_L1_error) __pyx_L7_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_4); @@ -4593,7 +4871,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_XDECREF_SET(__pyx_v_provider, __pyx_t_6); __pyx_t_6 = 0; - /* "dependency_injector/containers.pyx":133 + /* "dependency_injector/containers.pyx":148 * * for name, provider in six.iteritems(overriding.providers): * try: # <<<<<<<<<<<<<< @@ -4609,16 +4887,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_XGOTREF(__pyx_t_13); /*try:*/ { - /* "dependency_injector/containers.pyx":134 + /* "dependency_injector/containers.pyx":149 * for name, provider in six.iteritems(overriding.providers): * try: * getattr(self, name).override(provider) # <<<<<<<<<<<<<< * except AttributeError: * pass */ - __pyx_t_6 = __Pyx_GetAttr(__pyx_v_self, __pyx_v_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 134, __pyx_L8_error) + __pyx_t_6 = __Pyx_GetAttr(__pyx_v_self, __pyx_v_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 149, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_override); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 134, __pyx_L8_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_override); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 149, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -4633,12 +4911,12 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ } __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_v_provider) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_provider); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 134, __pyx_L8_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 149, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/containers.pyx":133 + /* "dependency_injector/containers.pyx":148 * * for name, provider in six.iteritems(overriding.providers): * try: # <<<<<<<<<<<<<< @@ -4656,7 +4934,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "dependency_injector/containers.pyx":135 + /* "dependency_injector/containers.pyx":150 * try: * getattr(self, name).override(provider) * except AttributeError: # <<<<<<<<<<<<<< @@ -4671,7 +4949,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ goto __pyx_L10_except_error; __pyx_L10_except_error:; - /* "dependency_injector/containers.pyx":133 + /* "dependency_injector/containers.pyx":148 * * for name, provider in six.iteritems(overriding.providers): * try: # <<<<<<<<<<<<<< @@ -4691,7 +4969,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __pyx_L15_try_end:; } - /* "dependency_injector/containers.pyx":132 + /* "dependency_injector/containers.pyx":147 * self.overridden += (overriding,) * * for name, provider in six.iteritems(overriding.providers): # <<<<<<<<<<<<<< @@ -4701,7 +4979,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/containers.pyx":115 + /* "dependency_injector/containers.pyx":130 * setattr(self, name, provider) * * def override(self, object overriding): # <<<<<<<<<<<<<< @@ -4728,7 +5006,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ return __pyx_r; } -/* "dependency_injector/containers.pyx":138 +/* "dependency_injector/containers.pyx":153 * pass * * def override_providers(self, **overriding_providers): # <<<<<<<<<<<<<< @@ -4770,7 +5048,7 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_ else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_overriding_providers, values, pos_args, "override_providers") < 0)) __PYX_ERR(0, 138, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_overriding_providers, values, pos_args, "override_providers") < 0)) __PYX_ERR(0, 153, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; @@ -4781,7 +5059,7 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("override_providers", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 138, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("override_providers", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 153, __pyx_L3_error) __pyx_L3_error:; __Pyx_DECREF(__pyx_v_overriding_providers); __pyx_v_overriding_providers = 0; __Pyx_AddTraceback("dependency_injector.containers.DynamicContainer.override_providers", __pyx_clineno, __pyx_lineno, __pyx_filename); @@ -4815,16 +5093,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("override_providers", 0); - /* "dependency_injector/containers.pyx":147 + /* "dependency_injector/containers.pyx":162 * :rtype: None * """ * for name, overriding_provider in six.iteritems(overriding_providers): # <<<<<<<<<<<<<< * container_provider = getattr(self, name) * container_provider.override(overriding_provider) */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_six); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 147, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_six); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_iteritems); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 147, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_iteritems); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; @@ -4839,16 +5117,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_overriding_providers) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_overriding_providers); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 147, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { - __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 147, __pyx_L1_error) + __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 147, __pyx_L1_error) + __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 162, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -4856,17 +5134,17 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 147, __pyx_L1_error) + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 162, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 147, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 147, __pyx_L1_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 162, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 147, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } @@ -4876,7 +5154,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 147, __pyx_L1_error) + else __PYX_ERR(0, 162, __pyx_L1_error) } break; } @@ -4888,7 +5166,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 147, __pyx_L1_error) + __PYX_ERR(0, 162, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -4901,15 +5179,15 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_6); #else - __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 147, __pyx_L1_error) + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 147, __pyx_L1_error) + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 147, __pyx_L1_error) + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; @@ -4917,7 +5195,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_GOTREF(__pyx_t_2); index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 147, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 162, __pyx_L1_error) __pyx_t_8 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L6_unpacking_done; @@ -4925,7 +5203,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 147, __pyx_L1_error) + __PYX_ERR(0, 162, __pyx_L1_error) __pyx_L6_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_2); @@ -4933,26 +5211,26 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_XDECREF_SET(__pyx_v_overriding_provider, __pyx_t_6); __pyx_t_6 = 0; - /* "dependency_injector/containers.pyx":148 + /* "dependency_injector/containers.pyx":163 * """ * for name, overriding_provider in six.iteritems(overriding_providers): * container_provider = getattr(self, name) # <<<<<<<<<<<<<< * container_provider.override(overriding_provider) * */ - __pyx_t_1 = __Pyx_GetAttr(__pyx_v_self, __pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 148, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetAttr(__pyx_v_self, __pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_container_provider, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":149 + /* "dependency_injector/containers.pyx":164 * for name, overriding_provider in six.iteritems(overriding_providers): * container_provider = getattr(self, name) * container_provider.override(overriding_provider) # <<<<<<<<<<<<<< * * def reset_last_overriding(self): */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_container_provider, __pyx_n_s_override); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 149, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_container_provider, __pyx_n_s_override); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { @@ -4966,12 +5244,12 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_2, __pyx_v_overriding_provider) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_overriding_provider); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 149, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":147 + /* "dependency_injector/containers.pyx":162 * :rtype: None * """ * for name, overriding_provider in six.iteritems(overriding_providers): # <<<<<<<<<<<<<< @@ -4981,7 +5259,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/containers.pyx":138 + /* "dependency_injector/containers.pyx":153 * pass * * def override_providers(self, **overriding_providers): # <<<<<<<<<<<<<< @@ -5009,7 +5287,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ return __pyx_r; } -/* "dependency_injector/containers.pyx":151 +/* "dependency_injector/containers.pyx":166 * container_provider.override(overriding_provider) * * def reset_last_overriding(self): # <<<<<<<<<<<<<< @@ -5050,30 +5328,30 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("reset_last_overriding", 0); - /* "dependency_injector/containers.pyx":156 + /* "dependency_injector/containers.pyx":171 * :rtype: None * """ * if not self.overridden: # <<<<<<<<<<<<<< * raise Error('Container {0} is not overridden'.format(self)) * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_overridden); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 156, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_overridden); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 156, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 171, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = ((!__pyx_t_2) != 0); if (unlikely(__pyx_t_3)) { - /* "dependency_injector/containers.pyx":157 + /* "dependency_injector/containers.pyx":172 * """ * if not self.overridden: * raise Error('Container {0} is not overridden'.format(self)) # <<<<<<<<<<<<<< * * self.overridden = self.overridden[:-1] */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 157, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Container_0_is_not_overridden, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 157, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Container_0_is_not_overridden, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { @@ -5087,7 +5365,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ } __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_self); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 157, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -5103,14 +5381,14 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 157, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 157, __pyx_L1_error) + __PYX_ERR(0, 172, __pyx_L1_error) - /* "dependency_injector/containers.pyx":156 + /* "dependency_injector/containers.pyx":171 * :rtype: None * """ * if not self.overridden: # <<<<<<<<<<<<<< @@ -5119,34 +5397,34 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ */ } - /* "dependency_injector/containers.pyx":159 + /* "dependency_injector/containers.pyx":174 * raise Error('Container {0} is not overridden'.format(self)) * * self.overridden = self.overridden[:-1] # <<<<<<<<<<<<<< * * for provider in six.itervalues(self.providers): */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_overridden); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 159, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_overridden); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_t_1, 0, -1L, NULL, NULL, &__pyx_slice_, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 159, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_t_1, 0, -1L, NULL, NULL, &__pyx_slice__2, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_overridden, __pyx_t_4) < 0) __PYX_ERR(0, 159, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_overridden, __pyx_t_4) < 0) __PYX_ERR(0, 174, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":161 + /* "dependency_injector/containers.pyx":176 * self.overridden = self.overridden[:-1] * * for provider in six.itervalues(self.providers): # <<<<<<<<<<<<<< * provider.reset_last_overriding() * */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_six); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 161, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_six); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_itervalues); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 161, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_itervalues); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 161, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { @@ -5161,16 +5439,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 161, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { __pyx_t_5 = __pyx_t_4; __Pyx_INCREF(__pyx_t_5); __pyx_t_8 = 0; __pyx_t_9 = NULL; } else { - __pyx_t_8 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 161, __pyx_L1_error) + __pyx_t_8 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_9 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 161, __pyx_L1_error) + __pyx_t_9 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 176, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; for (;;) { @@ -5178,17 +5456,17 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 161, __pyx_L1_error) + __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 176, __pyx_L1_error) #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 161, __pyx_L1_error) + __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 161, __pyx_L1_error) + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 176, __pyx_L1_error) #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 161, __pyx_L1_error) + __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } @@ -5198,7 +5476,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 161, __pyx_L1_error) + else __PYX_ERR(0, 176, __pyx_L1_error) } break; } @@ -5207,14 +5485,14 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_XDECREF_SET(__pyx_v_provider, __pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":162 + /* "dependency_injector/containers.pyx":177 * * for provider in six.itervalues(self.providers): * provider.reset_last_overriding() # <<<<<<<<<<<<<< * * def reset_override(self): */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_provider, __pyx_n_s_reset_last_overriding); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 162, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_provider, __pyx_n_s_reset_last_overriding); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { @@ -5228,12 +5506,12 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ } __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 162, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":161 + /* "dependency_injector/containers.pyx":176 * self.overridden = self.overridden[:-1] * * for provider in six.itervalues(self.providers): # <<<<<<<<<<<<<< @@ -5243,7 +5521,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/containers.pyx":151 + /* "dependency_injector/containers.pyx":166 * container_provider.override(overriding_provider) * * def reset_last_overriding(self): # <<<<<<<<<<<<<< @@ -5269,7 +5547,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ return __pyx_r; } -/* "dependency_injector/containers.pyx":164 +/* "dependency_injector/containers.pyx":179 * provider.reset_last_overriding() * * def reset_override(self): # <<<<<<<<<<<<<< @@ -5307,31 +5585,31 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("reset_override", 0); - /* "dependency_injector/containers.pyx":169 + /* "dependency_injector/containers.pyx":184 * :rtype: None * """ * self.overridden = tuple() # <<<<<<<<<<<<<< * * for provider in six.itervalues(self.providers): */ - __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 169, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_overridden, __pyx_t_1) < 0) __PYX_ERR(0, 169, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_overridden, __pyx_t_1) < 0) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":171 + /* "dependency_injector/containers.pyx":186 * self.overridden = tuple() * * for provider in six.itervalues(self.providers): # <<<<<<<<<<<<<< * provider.reset_override() * */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_six); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 171, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_six); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_itervalues); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 171, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_itervalues); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 171, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { @@ -5346,16 +5624,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 171, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { - __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 171, __pyx_L1_error) + __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 171, __pyx_L1_error) + __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 186, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -5363,17 +5641,17 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 171, __pyx_L1_error) + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 186, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 171, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 171, __pyx_L1_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 186, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 171, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } @@ -5383,7 +5661,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 171, __pyx_L1_error) + else __PYX_ERR(0, 186, __pyx_L1_error) } break; } @@ -5392,14 +5670,14 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ __Pyx_XDECREF_SET(__pyx_v_provider, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":172 + /* "dependency_injector/containers.pyx":187 * * for provider in six.itervalues(self.providers): * provider.reset_override() # <<<<<<<<<<<<<< * - * + * def wire(self, modules=None, packages=None): */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_provider, __pyx_n_s_reset_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 172, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_provider, __pyx_n_s_reset_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -5413,12 +5691,12 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 172, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":171 + /* "dependency_injector/containers.pyx":186 * self.overridden = tuple() * * for provider in six.itervalues(self.providers): # <<<<<<<<<<<<<< @@ -5428,7 +5706,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/containers.pyx":164 + /* "dependency_injector/containers.pyx":179 * provider.reset_last_overriding() * * def reset_override(self): # <<<<<<<<<<<<<< @@ -5453,7 +5731,445 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_ return __pyx_r; } -/* "dependency_injector/containers.pyx":178 +/* "dependency_injector/containers.pyx":189 + * provider.reset_override() + * + * def wire(self, modules=None, packages=None): # <<<<<<<<<<<<<< + * """Wire container providers with provided packages and modules. + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_19wire(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_19dependency_injector_10containers_16DynamicContainer_18wire[] = "Wire container providers with provided packages and modules.\n\n :rtype: None\n "; +static PyMethodDef __pyx_mdef_19dependency_injector_10containers_16DynamicContainer_19wire = {"wire", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_10containers_16DynamicContainer_19wire, METH_VARARGS|METH_KEYWORDS, __pyx_doc_19dependency_injector_10containers_16DynamicContainer_18wire}; +static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_19wire(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_modules = 0; + PyObject *__pyx_v_packages = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("wire (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_modules,&__pyx_n_s_packages,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)((PyObject *)Py_None)); + values[2] = ((PyObject *)((PyObject *)Py_None)); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_modules); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_packages); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "wire") < 0)) __PYX_ERR(0, 189, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_self = values[0]; + __pyx_v_modules = values[1]; + __pyx_v_packages = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("wire", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 189, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("dependency_injector.containers.DynamicContainer.wire", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_19dependency_injector_10containers_16DynamicContainer_18wire(__pyx_self, __pyx_v_self, __pyx_v_modules, __pyx_v_packages); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_18wire(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_modules, PyObject *__pyx_v_packages) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("wire", 0); + + /* "dependency_injector/containers.pyx":194 + * :rtype: None + * """ + * wire( # <<<<<<<<<<<<<< + * container=self, + * modules=modules, + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_wire); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "dependency_injector/containers.pyx":195 + * """ + * wire( + * container=self, # <<<<<<<<<<<<<< + * modules=modules, + * packages=packages, + */ + __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 195, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_container, __pyx_v_self) < 0) __PYX_ERR(0, 195, __pyx_L1_error) + + /* "dependency_injector/containers.pyx":196 + * wire( + * container=self, + * modules=modules, # <<<<<<<<<<<<<< + * packages=packages, + * ) + */ + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_modules, __pyx_v_modules) < 0) __PYX_ERR(0, 195, __pyx_L1_error) + + /* "dependency_injector/containers.pyx":197 + * container=self, + * modules=modules, + * packages=packages, # <<<<<<<<<<<<<< + * ) + * + */ + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_packages, __pyx_v_packages) < 0) __PYX_ERR(0, 195, __pyx_L1_error) + + /* "dependency_injector/containers.pyx":194 + * :rtype: None + * """ + * wire( # <<<<<<<<<<<<<< + * container=self, + * modules=modules, + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "dependency_injector/containers.pyx":200 + * ) + * + * if modules: # <<<<<<<<<<<<<< + * self.wired_to_modules.extend(modules) + * + */ + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_modules); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 200, __pyx_L1_error) + if (__pyx_t_4) { + + /* "dependency_injector/containers.pyx":201 + * + * if modules: + * self.wired_to_modules.extend(modules) # <<<<<<<<<<<<<< + * + * if packages: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_wired_to_modules); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_extend); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + } + } + __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_v_modules) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_modules); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "dependency_injector/containers.pyx":200 + * ) + * + * if modules: # <<<<<<<<<<<<<< + * self.wired_to_modules.extend(modules) + * + */ + } + + /* "dependency_injector/containers.pyx":203 + * self.wired_to_modules.extend(modules) + * + * if packages: # <<<<<<<<<<<<<< + * self.wired_to_packages.extend(packages) + * + */ + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_packages); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 203, __pyx_L1_error) + if (__pyx_t_4) { + + /* "dependency_injector/containers.pyx":204 + * + * if packages: + * self.wired_to_packages.extend(packages) # <<<<<<<<<<<<<< + * + * def unwire(self): + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_wired_to_packages); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_extend); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_v_packages) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_packages); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "dependency_injector/containers.pyx":203 + * self.wired_to_modules.extend(modules) + * + * if packages: # <<<<<<<<<<<<<< + * self.wired_to_packages.extend(packages) + * + */ + } + + /* "dependency_injector/containers.pyx":189 + * provider.reset_override() + * + * def wire(self, modules=None, packages=None): # <<<<<<<<<<<<<< + * """Wire container providers with provided packages and modules. + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("dependency_injector.containers.DynamicContainer.wire", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "dependency_injector/containers.pyx":206 + * self.wired_to_packages.extend(packages) + * + * def unwire(self): # <<<<<<<<<<<<<< + * """Unwire container providers from previously wired packages and modules.""" + * unwire( + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_21unwire(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/ +static char __pyx_doc_19dependency_injector_10containers_16DynamicContainer_20unwire[] = "Unwire container providers from previously wired packages and modules."; +static PyMethodDef __pyx_mdef_19dependency_injector_10containers_16DynamicContainer_21unwire = {"unwire", (PyCFunction)__pyx_pw_19dependency_injector_10containers_16DynamicContainer_21unwire, METH_O, __pyx_doc_19dependency_injector_10containers_16DynamicContainer_20unwire}; +static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_21unwire(PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("unwire (wrapper)", 0); + __pyx_r = __pyx_pf_19dependency_injector_10containers_16DynamicContainer_20unwire(__pyx_self, ((PyObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_20unwire(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("unwire", 0); + + /* "dependency_injector/containers.pyx":208 + * def unwire(self): + * """Unwire container providers from previously wired packages and modules.""" + * unwire( # <<<<<<<<<<<<<< + * modules=self.wired_to_modules, + * packages=self.wired_to_packages, + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_unwire); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "dependency_injector/containers.pyx":209 + * """Unwire container providers from previously wired packages and modules.""" + * unwire( + * modules=self.wired_to_modules, # <<<<<<<<<<<<<< + * packages=self.wired_to_packages, + * ) + */ + __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_wired_to_modules); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_modules, __pyx_t_3) < 0) __PYX_ERR(0, 209, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "dependency_injector/containers.pyx":210 + * unwire( + * modules=self.wired_to_modules, + * packages=self.wired_to_packages, # <<<<<<<<<<<<<< + * ) + * + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_wired_to_packages); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_packages, __pyx_t_3) < 0) __PYX_ERR(0, 209, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "dependency_injector/containers.pyx":208 + * def unwire(self): + * """Unwire container providers from previously wired packages and modules.""" + * unwire( # <<<<<<<<<<<<<< + * modules=self.wired_to_modules, + * packages=self.wired_to_packages, + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "dependency_injector/containers.pyx":213 + * ) + * + * self.wired_to_modules.clear() # <<<<<<<<<<<<<< + * self.wired_to_packages.clear() + * + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_wired_to_modules); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_clear); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + } + } + __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "dependency_injector/containers.pyx":214 + * + * self.wired_to_modules.clear() + * self.wired_to_packages.clear() # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_wired_to_packages); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_clear); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "dependency_injector/containers.pyx":206 + * self.wired_to_packages.extend(packages) + * + * def unwire(self): # <<<<<<<<<<<<<< + * """Unwire container providers from previously wired packages and modules.""" + * unwire( + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("dependency_injector.containers.DynamicContainer.unwire", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "dependency_injector/containers.pyx":221 * """Declarative inversion of control container meta class.""" * * def __new__(type mcs, str class_name, tuple bases, dict attributes): # <<<<<<<<<<<<<< @@ -5503,23 +6219,23 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_29DeclarativeContai case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_class_name)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__new__", 1, 4, 4, 1); __PYX_ERR(0, 178, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__new__", 1, 4, 4, 1); __PYX_ERR(0, 221, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bases)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__new__", 1, 4, 4, 2); __PYX_ERR(0, 178, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__new__", 1, 4, 4, 2); __PYX_ERR(0, 221, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attributes)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__new__", 1, 4, 4, 3); __PYX_ERR(0, 178, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__new__", 1, 4, 4, 3); __PYX_ERR(0, 221, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__new__") < 0)) __PYX_ERR(0, 178, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__new__") < 0)) __PYX_ERR(0, 221, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; @@ -5536,16 +6252,16 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_29DeclarativeContai } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__new__", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 178, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__new__", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 221, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.containers.DeclarativeContainerMetaClass.__new__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mcs), (&PyType_Type), 1, "mcs", 1))) __PYX_ERR(0, 178, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_class_name), (&PyString_Type), 1, "class_name", 1))) __PYX_ERR(0, 178, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bases), (&PyTuple_Type), 1, "bases", 1))) __PYX_ERR(0, 178, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_attributes), (&PyDict_Type), 1, "attributes", 1))) __PYX_ERR(0, 178, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mcs), (&PyType_Type), 1, "mcs", 1))) __PYX_ERR(0, 221, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_class_name), (&PyString_Type), 1, "class_name", 1))) __PYX_ERR(0, 221, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bases), (&PyTuple_Type), 1, "bases", 1))) __PYX_ERR(0, 221, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_attributes), (&PyDict_Type), 1, "attributes", 1))) __PYX_ERR(0, 221, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_10containers_29DeclarativeContainerMetaClass___new__(__pyx_self, __pyx_v_mcs, __pyx_v_class_name, __pyx_v_bases, __pyx_v_attributes); /* function exit code */ @@ -5558,7 +6274,7 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_29DeclarativeContai } static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContainerMetaClass_7__new___2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ -/* "dependency_injector/containers.pyx":184 +/* "dependency_injector/containers.pyx":227 * cdef type cls * * containers = tuple((name, container) # <<<<<<<<<<<<<< @@ -5578,7 +6294,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_genexpr *)Py_None); __Pyx_INCREF(Py_None); - __PYX_ERR(0, 184, __pyx_L1_error) + __PYX_ERR(0, 227, __pyx_L1_error) } else { __Pyx_GOTREF(__pyx_cur_scope); } @@ -5586,7 +6302,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope)); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope); { - __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_19dependency_injector_10containers_29DeclarativeContainerMetaClass_7__new___2generator, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_DeclarativeContainerMetaClass, __pyx_n_s_dependency_injector_containers); if (unlikely(!gen)) __PYX_ERR(0, 184, __pyx_L1_error) + __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_19dependency_injector_10containers_29DeclarativeContainerMetaClass_7__new___2generator, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_DeclarativeContainerMetaClass, __pyx_n_s_dependency_injector_containers); if (unlikely(!gen)) __PYX_ERR(0, 227, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; @@ -5628,21 +6344,21 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai return NULL; } __pyx_L3_first_run:; - if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 184, __pyx_L1_error) + if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 227, __pyx_L1_error) - /* "dependency_injector/containers.pyx":185 + /* "dependency_injector/containers.pyx":228 * * containers = tuple((name, container) * for name, container in six.iteritems(attributes) # <<<<<<<<<<<<<< * if is_container(container)) * */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_six); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 185, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_six); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_iteritems); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 185, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_iteritems); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_attributes)) { __Pyx_RaiseClosureNameError("attributes"); __PYX_ERR(0, 185, __pyx_L1_error) } + if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_attributes)) { __Pyx_RaiseClosureNameError("attributes"); __PYX_ERR(0, 228, __pyx_L1_error) } __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); @@ -5655,16 +6371,16 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_attributes) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_attributes); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 185, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { - __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 185, __pyx_L1_error) + __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 185, __pyx_L1_error) + __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 228, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -5672,17 +6388,17 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 185, __pyx_L1_error) + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 228, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 185, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 185, __pyx_L1_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 228, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 185, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } @@ -5692,7 +6408,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 185, __pyx_L1_error) + else __PYX_ERR(0, 228, __pyx_L1_error) } break; } @@ -5704,7 +6420,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 185, __pyx_L1_error) + __PYX_ERR(0, 228, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -5717,15 +6433,15 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_6); #else - __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 185, __pyx_L1_error) + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 185, __pyx_L1_error) + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 185, __pyx_L1_error) + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; @@ -5733,7 +6449,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __Pyx_GOTREF(__pyx_t_2); index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 185, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 228, __pyx_L1_error) __pyx_t_8 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L7_unpacking_done; @@ -5741,7 +6457,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 185, __pyx_L1_error) + __PYX_ERR(0, 228, __pyx_L1_error) __pyx_L7_unpacking_done:; } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_name); @@ -5753,7 +6469,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0; - /* "dependency_injector/containers.pyx":186 + /* "dependency_injector/containers.pyx":229 * containers = tuple((name, container) * for name, container in six.iteritems(attributes) * if is_container(container)) # <<<<<<<<<<<<<< @@ -5763,14 +6479,14 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __pyx_t_9 = (__pyx_f_19dependency_injector_10containers_is_container(__pyx_cur_scope->__pyx_v_container, 0) != 0); if (__pyx_t_9) { - /* "dependency_injector/containers.pyx":184 + /* "dependency_injector/containers.pyx":227 * cdef type cls * * containers = tuple((name, container) # <<<<<<<<<<<<<< * for name, container in six.iteritems(attributes) * if is_container(container)) */ - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 184, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); @@ -5796,9 +6512,9 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_1; __pyx_t_5 = __pyx_cur_scope->__pyx_t_2; - if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 184, __pyx_L1_error) + if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 227, __pyx_L1_error) - /* "dependency_injector/containers.pyx":186 + /* "dependency_injector/containers.pyx":229 * containers = tuple((name, container) * for name, container in six.iteritems(attributes) * if is_container(container)) # <<<<<<<<<<<<<< @@ -5807,7 +6523,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai */ } - /* "dependency_injector/containers.pyx":185 + /* "dependency_injector/containers.pyx":228 * * containers = tuple((name, container) * for name, container in six.iteritems(attributes) # <<<<<<<<<<<<<< @@ -5818,7 +6534,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); - /* "dependency_injector/containers.pyx":184 + /* "dependency_injector/containers.pyx":227 * cdef type cls * * containers = tuple((name, container) # <<<<<<<<<<<<<< @@ -5848,7 +6564,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai } static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContainerMetaClass_7__new___5generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ -/* "dependency_injector/containers.pyx":190 +/* "dependency_injector/containers.pyx":233 * attributes['containers'] = dict(containers) * * cls_providers = tuple((name, provider) # <<<<<<<<<<<<<< @@ -5868,7 +6584,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_2_genexpr *)Py_None); __Pyx_INCREF(Py_None); - __PYX_ERR(0, 190, __pyx_L1_error) + __PYX_ERR(0, 233, __pyx_L1_error) } else { __Pyx_GOTREF(__pyx_cur_scope); } @@ -5876,7 +6592,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope)); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope); { - __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_19dependency_injector_10containers_29DeclarativeContainerMetaClass_7__new___5generator1, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_DeclarativeContainerMetaClass, __pyx_n_s_dependency_injector_containers); if (unlikely(!gen)) __PYX_ERR(0, 190, __pyx_L1_error) + __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_19dependency_injector_10containers_29DeclarativeContainerMetaClass_7__new___5generator1, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_DeclarativeContainerMetaClass, __pyx_n_s_dependency_injector_containers); if (unlikely(!gen)) __PYX_ERR(0, 233, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; @@ -5919,21 +6635,21 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai return NULL; } __pyx_L3_first_run:; - if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 190, __pyx_L1_error) + if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 233, __pyx_L1_error) - /* "dependency_injector/containers.pyx":191 + /* "dependency_injector/containers.pyx":234 * * cls_providers = tuple((name, provider) * for name, provider in six.iteritems(attributes) # <<<<<<<<<<<<<< * if isinstance(provider, Provider)) * */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_six); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 191, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_six); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_iteritems); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_iteritems); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_attributes)) { __Pyx_RaiseClosureNameError("attributes"); __PYX_ERR(0, 191, __pyx_L1_error) } + if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_attributes)) { __Pyx_RaiseClosureNameError("attributes"); __PYX_ERR(0, 234, __pyx_L1_error) } __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); @@ -5946,16 +6662,16 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_attributes) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_attributes); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 191, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { - __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 234, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -5963,17 +6679,17 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 234, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 234, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } @@ -5983,7 +6699,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 191, __pyx_L1_error) + else __PYX_ERR(0, 234, __pyx_L1_error) } break; } @@ -5995,7 +6711,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 191, __pyx_L1_error) + __PYX_ERR(0, 234, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -6008,15 +6724,15 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_6); #else - __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; @@ -6024,7 +6740,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __Pyx_GOTREF(__pyx_t_2); index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 191, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 234, __pyx_L1_error) __pyx_t_8 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L7_unpacking_done; @@ -6032,7 +6748,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 191, __pyx_L1_error) + __PYX_ERR(0, 234, __pyx_L1_error) __pyx_L7_unpacking_done:; } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_name); @@ -6044,7 +6760,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0; - /* "dependency_injector/containers.pyx":192 + /* "dependency_injector/containers.pyx":235 * cls_providers = tuple((name, provider) * for name, provider in six.iteritems(attributes) * if isinstance(provider, Provider)) # <<<<<<<<<<<<<< @@ -6055,14 +6771,14 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __pyx_t_10 = (__pyx_t_9 != 0); if (__pyx_t_10) { - /* "dependency_injector/containers.pyx":190 + /* "dependency_injector/containers.pyx":233 * attributes['containers'] = dict(containers) * * cls_providers = tuple((name, provider) # <<<<<<<<<<<<<< * for name, provider in six.iteritems(attributes) * if isinstance(provider, Provider)) */ - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 190, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); @@ -6088,9 +6804,9 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_1; __pyx_t_5 = __pyx_cur_scope->__pyx_t_2; - if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 190, __pyx_L1_error) + if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 233, __pyx_L1_error) - /* "dependency_injector/containers.pyx":192 + /* "dependency_injector/containers.pyx":235 * cls_providers = tuple((name, provider) * for name, provider in six.iteritems(attributes) * if isinstance(provider, Provider)) # <<<<<<<<<<<<<< @@ -6099,7 +6815,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai */ } - /* "dependency_injector/containers.pyx":191 + /* "dependency_injector/containers.pyx":234 * * cls_providers = tuple((name, provider) * for name, provider in six.iteritems(attributes) # <<<<<<<<<<<<<< @@ -6110,7 +6826,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); - /* "dependency_injector/containers.pyx":190 + /* "dependency_injector/containers.pyx":233 * attributes['containers'] = dict(containers) * * cls_providers = tuple((name, provider) # <<<<<<<<<<<<<< @@ -6140,7 +6856,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai } static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContainerMetaClass_7__new___8generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ -/* "dependency_injector/containers.pyx":194 +/* "dependency_injector/containers.pyx":237 * if isinstance(provider, Provider)) * * inherited_providers = tuple((name, provider) # <<<<<<<<<<<<<< @@ -6160,7 +6876,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_3_genexpr *)Py_None); __Pyx_INCREF(Py_None); - __PYX_ERR(0, 194, __pyx_L1_error) + __PYX_ERR(0, 237, __pyx_L1_error) } else { __Pyx_GOTREF(__pyx_cur_scope); } @@ -6168,7 +6884,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope)); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope); { - __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_19dependency_injector_10containers_29DeclarativeContainerMetaClass_7__new___8generator2, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_DeclarativeContainerMetaClass, __pyx_n_s_dependency_injector_containers); if (unlikely(!gen)) __PYX_ERR(0, 194, __pyx_L1_error) + __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_19dependency_injector_10containers_29DeclarativeContainerMetaClass_7__new___8generator2, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_DeclarativeContainerMetaClass, __pyx_n_s_dependency_injector_containers); if (unlikely(!gen)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; @@ -6214,27 +6930,27 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai return NULL; } __pyx_L3_first_run:; - if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 194, __pyx_L1_error) + if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 237, __pyx_L1_error) - /* "dependency_injector/containers.pyx":195 + /* "dependency_injector/containers.pyx":238 * * inherited_providers = tuple((name, provider) * for base in bases if is_container( # <<<<<<<<<<<<<< * base) and base is not DynamicContainer * for name, provider in six.iteritems( */ - if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_bases)) { __Pyx_RaiseClosureNameError("bases"); __PYX_ERR(0, 195, __pyx_L1_error) } + if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_bases)) { __Pyx_RaiseClosureNameError("bases"); __PYX_ERR(0, 238, __pyx_L1_error) } if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_bases == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 195, __pyx_L1_error) + __PYX_ERR(0, 238, __pyx_L1_error) } __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_bases; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 195, __pyx_L1_error) + __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 238, __pyx_L1_error) #else - __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 195, __pyx_L1_error) + __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_base); @@ -6242,7 +6958,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/containers.pyx":196 + /* "dependency_injector/containers.pyx":239 * inherited_providers = tuple((name, provider) * for base in bases if is_container( * base) and base is not DynamicContainer # <<<<<<<<<<<<<< @@ -6255,7 +6971,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __pyx_t_4 = __pyx_t_5; goto __pyx_L7_bool_binop_done; } - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_DynamicContainer); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 196, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_DynamicContainer); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = (__pyx_cur_scope->__pyx_v_base != __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -6263,7 +6979,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __pyx_t_4 = __pyx_t_6; __pyx_L7_bool_binop_done:; - /* "dependency_injector/containers.pyx":195 + /* "dependency_injector/containers.pyx":238 * * inherited_providers = tuple((name, provider) * for base in bases if is_container( # <<<<<<<<<<<<<< @@ -6272,27 +6988,27 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai */ if (__pyx_t_4) { - /* "dependency_injector/containers.pyx":197 + /* "dependency_injector/containers.pyx":240 * for base in bases if is_container( * base) and base is not DynamicContainer * for name, provider in six.iteritems( # <<<<<<<<<<<<<< * base.cls_providers)) * */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_six); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 197, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_six); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_iteritems); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_iteritems); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "dependency_injector/containers.pyx":198 + /* "dependency_injector/containers.pyx":241 * base) and base is not DynamicContainer * for name, provider in six.iteritems( * base.cls_providers)) # <<<<<<<<<<<<<< * * attributes['cls_providers'] = dict(cls_providers) */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_base, __pyx_n_s_cls_providers); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 198, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_base, __pyx_n_s_cls_providers); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { @@ -6307,11 +7023,11 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __pyx_t_3 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 197, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "dependency_injector/containers.pyx":197 + /* "dependency_injector/containers.pyx":240 * for base in bases if is_container( * base) and base is not DynamicContainer * for name, provider in six.iteritems( # <<<<<<<<<<<<<< @@ -6322,9 +7038,9 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __pyx_t_8 = __pyx_t_3; __Pyx_INCREF(__pyx_t_8); __pyx_t_10 = 0; __pyx_t_11 = NULL; } else { - __pyx_t_10 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_10 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_11 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_11 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 240, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { @@ -6332,17 +7048,17 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai if (likely(PyList_CheckExact(__pyx_t_8))) { if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_3 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 240, __pyx_L1_error) #else - __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 240, __pyx_L1_error) #else - __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } @@ -6352,7 +7068,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 197, __pyx_L1_error) + else __PYX_ERR(0, 240, __pyx_L1_error) } break; } @@ -6364,7 +7080,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 197, __pyx_L1_error) + __PYX_ERR(0, 240, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -6377,15 +7093,15 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_9); #else - __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; - __pyx_t_12 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_12 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_12)->tp_iternext; @@ -6393,7 +7109,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __Pyx_GOTREF(__pyx_t_7); index = 1; __pyx_t_9 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_9)) goto __pyx_L11_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_12), 2) < 0) __PYX_ERR(0, 197, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_12), 2) < 0) __PYX_ERR(0, 240, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; goto __pyx_L12_unpacking_done; @@ -6401,7 +7117,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 197, __pyx_L1_error) + __PYX_ERR(0, 240, __pyx_L1_error) __pyx_L12_unpacking_done:; } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_name); @@ -6413,14 +7129,14 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __Pyx_GIVEREF(__pyx_t_9); __pyx_t_9 = 0; - /* "dependency_injector/containers.pyx":194 + /* "dependency_injector/containers.pyx":237 * if isinstance(provider, Provider)) * * inherited_providers = tuple((name, provider) # <<<<<<<<<<<<<< * for base in bases if is_container( * base) and base is not DynamicContainer */ - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 194, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); @@ -6453,9 +7169,9 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __Pyx_XGOTREF(__pyx_t_8); __pyx_t_10 = __pyx_cur_scope->__pyx_t_3; __pyx_t_11 = __pyx_cur_scope->__pyx_t_4; - if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 194, __pyx_L1_error) + if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 237, __pyx_L1_error) - /* "dependency_injector/containers.pyx":197 + /* "dependency_injector/containers.pyx":240 * for base in bases if is_container( * base) and base is not DynamicContainer * for name, provider in six.iteritems( # <<<<<<<<<<<<<< @@ -6465,7 +7181,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "dependency_injector/containers.pyx":195 + /* "dependency_injector/containers.pyx":238 * * inherited_providers = tuple((name, provider) * for base in bases if is_container( # <<<<<<<<<<<<<< @@ -6477,7 +7193,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); - /* "dependency_injector/containers.pyx":194 + /* "dependency_injector/containers.pyx":237 * if isinstance(provider, Provider)) * * inherited_providers = tuple((name, provider) # <<<<<<<<<<<<<< @@ -6507,7 +7223,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai return __pyx_r; } -/* "dependency_injector/containers.pyx":178 +/* "dependency_injector/containers.pyx":221 * """Declarative inversion of control container meta class.""" * * def __new__(type mcs, str class_name, tuple bases, dict attributes): # <<<<<<<<<<<<<< @@ -6539,7 +7255,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct____new__ *)Py_None); __Pyx_INCREF(Py_None); - __PYX_ERR(0, 178, __pyx_L1_error) + __PYX_ERR(0, 221, __pyx_L1_error) } else { __Pyx_GOTREF(__pyx_cur_scope); } @@ -6550,126 +7266,126 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai __Pyx_INCREF(__pyx_cur_scope->__pyx_v_attributes); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_attributes); - /* "dependency_injector/containers.pyx":184 + /* "dependency_injector/containers.pyx":227 * cdef type cls * * containers = tuple((name, container) # <<<<<<<<<<<<<< * for name, container in six.iteritems(attributes) * if is_container(container)) */ - __pyx_t_1 = __pyx_pf_19dependency_injector_10containers_29DeclarativeContainerMetaClass_7__new___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 184, __pyx_L1_error) + __pyx_t_1 = __pyx_pf_19dependency_injector_10containers_29DeclarativeContainerMetaClass_7__new___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error) + __pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_containers = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/containers.pyx":188 + /* "dependency_injector/containers.pyx":231 * if is_container(container)) * * attributes['containers'] = dict(containers) # <<<<<<<<<<<<<< * * cls_providers = tuple((name, provider) */ - __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_v_containers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 188, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_v_containers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_cur_scope->__pyx_v_attributes == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 188, __pyx_L1_error) + __PYX_ERR(0, 231, __pyx_L1_error) } - if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_attributes, __pyx_n_s_containers, __pyx_t_2) < 0)) __PYX_ERR(0, 188, __pyx_L1_error) + if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_attributes, __pyx_n_s_containers, __pyx_t_2) < 0)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/containers.pyx":190 + /* "dependency_injector/containers.pyx":233 * attributes['containers'] = dict(containers) * * cls_providers = tuple((name, provider) # <<<<<<<<<<<<<< * for name, provider in six.iteritems(attributes) * if isinstance(provider, Provider)) */ - __pyx_t_2 = __pyx_pf_19dependency_injector_10containers_29DeclarativeContainerMetaClass_7__new___3genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 190, __pyx_L1_error) + __pyx_t_2 = __pyx_pf_19dependency_injector_10containers_29DeclarativeContainerMetaClass_7__new___3genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 190, __pyx_L1_error) + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_cls_providers = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":194 + /* "dependency_injector/containers.pyx":237 * if isinstance(provider, Provider)) * * inherited_providers = tuple((name, provider) # <<<<<<<<<<<<<< * for base in bases if is_container( * base) and base is not DynamicContainer */ - __pyx_t_1 = __pyx_pf_19dependency_injector_10containers_29DeclarativeContainerMetaClass_7__new___6genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 194, __pyx_L1_error) + __pyx_t_1 = __pyx_pf_19dependency_injector_10containers_29DeclarativeContainerMetaClass_7__new___6genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 194, __pyx_L1_error) + __pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_inherited_providers = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/containers.pyx":200 + /* "dependency_injector/containers.pyx":243 * base.cls_providers)) * * attributes['cls_providers'] = dict(cls_providers) # <<<<<<<<<<<<<< * attributes['inherited_providers'] = dict(inherited_providers) * attributes['providers'] = dict(cls_providers + inherited_providers) */ - __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_v_cls_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 200, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_v_cls_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_cur_scope->__pyx_v_attributes == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 200, __pyx_L1_error) + __PYX_ERR(0, 243, __pyx_L1_error) } - if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_attributes, __pyx_n_s_cls_providers, __pyx_t_2) < 0)) __PYX_ERR(0, 200, __pyx_L1_error) + if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_attributes, __pyx_n_s_cls_providers, __pyx_t_2) < 0)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/containers.pyx":201 + /* "dependency_injector/containers.pyx":244 * * attributes['cls_providers'] = dict(cls_providers) * attributes['inherited_providers'] = dict(inherited_providers) # <<<<<<<<<<<<<< * attributes['providers'] = dict(cls_providers + inherited_providers) * */ - __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_v_inherited_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_v_inherited_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_cur_scope->__pyx_v_attributes == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 201, __pyx_L1_error) + __PYX_ERR(0, 244, __pyx_L1_error) } - if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_attributes, __pyx_n_s_inherited_providers, __pyx_t_2) < 0)) __PYX_ERR(0, 201, __pyx_L1_error) + if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_attributes, __pyx_n_s_inherited_providers, __pyx_t_2) < 0)) __PYX_ERR(0, 244, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/containers.pyx":202 + /* "dependency_injector/containers.pyx":245 * attributes['cls_providers'] = dict(cls_providers) * attributes['inherited_providers'] = dict(inherited_providers) * attributes['providers'] = dict(cls_providers + inherited_providers) # <<<<<<<<<<<<<< * * cls = type.__new__(mcs, class_name, bases, attributes) */ - __pyx_t_2 = PyNumber_Add(__pyx_v_cls_providers, __pyx_v_inherited_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 202, __pyx_L1_error) + __pyx_t_2 = PyNumber_Add(__pyx_v_cls_providers, __pyx_v_inherited_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 202, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(__pyx_cur_scope->__pyx_v_attributes == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 202, __pyx_L1_error) + __PYX_ERR(0, 245, __pyx_L1_error) } - if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_attributes, __pyx_n_s_providers, __pyx_t_1) < 0)) __PYX_ERR(0, 202, __pyx_L1_error) + if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_attributes, __pyx_n_s_providers, __pyx_t_1) < 0)) __PYX_ERR(0, 245, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":204 + /* "dependency_injector/containers.pyx":247 * attributes['providers'] = dict(cls_providers + inherited_providers) * * cls = type.__new__(mcs, class_name, bases, attributes) # <<<<<<<<<<<<<< * * for provider in six.itervalues(cls.providers): */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)(&PyType_Type)), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 204, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)(&PyType_Type)), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; @@ -6686,7 +7402,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[5] = {__pyx_t_3, ((PyObject *)__pyx_v_mcs), __pyx_v_class_name, __pyx_cur_scope->__pyx_v_bases, __pyx_cur_scope->__pyx_v_attributes}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 204, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 247, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -6694,13 +7410,13 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[5] = {__pyx_t_3, ((PyObject *)__pyx_v_mcs), __pyx_v_class_name, __pyx_cur_scope->__pyx_v_bases, __pyx_cur_scope->__pyx_v_attributes}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 204, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 247, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_5 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 204, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; @@ -6717,7 +7433,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai __Pyx_INCREF(__pyx_cur_scope->__pyx_v_attributes); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_attributes); PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_4, __pyx_cur_scope->__pyx_v_attributes); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 204, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } @@ -6728,19 +7444,19 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai __pyx_v_cls = ((PyTypeObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/containers.pyx":206 + /* "dependency_injector/containers.pyx":249 * cls = type.__new__(mcs, class_name, bases, attributes) * * for provider in six.itervalues(cls.providers): # <<<<<<<<<<<<<< * _check_provider_type(cls, provider) * */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_six); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 206, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_six); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_itervalues); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 206, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_itervalues); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cls), __pyx_n_s_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 206, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cls), __pyx_n_s_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { @@ -6755,16 +7471,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 206, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { - __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 206, __pyx_L1_error) + __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 206, __pyx_L1_error) + __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 249, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { @@ -6772,17 +7488,17 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 206, __pyx_L1_error) + __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 249, __pyx_L1_error) #else - __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 206, __pyx_L1_error) + __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 206, __pyx_L1_error) + __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 249, __pyx_L1_error) #else - __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 206, __pyx_L1_error) + __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } @@ -6792,7 +7508,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 206, __pyx_L1_error) + else __PYX_ERR(0, 249, __pyx_L1_error) } break; } @@ -6801,18 +7517,18 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai __Pyx_XDECREF_SET(__pyx_v_provider, __pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/containers.pyx":207 + /* "dependency_injector/containers.pyx":250 * * for provider in six.itervalues(cls.providers): * _check_provider_type(cls, provider) # <<<<<<<<<<<<<< * * return cls */ - __pyx_t_2 = __pyx_f_19dependency_injector_10containers__check_provider_type(((PyObject *)__pyx_v_cls), __pyx_v_provider, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 207, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_10containers__check_provider_type(((PyObject *)__pyx_v_cls), __pyx_v_provider, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/containers.pyx":206 + /* "dependency_injector/containers.pyx":249 * cls = type.__new__(mcs, class_name, bases, attributes) * * for provider in six.itervalues(cls.providers): # <<<<<<<<<<<<<< @@ -6822,7 +7538,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/containers.pyx":209 + /* "dependency_injector/containers.pyx":252 * _check_provider_type(cls, provider) * * return cls # <<<<<<<<<<<<<< @@ -6834,7 +7550,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai __pyx_r = ((PyObject *)__pyx_v_cls); goto __pyx_L0; - /* "dependency_injector/containers.pyx":178 + /* "dependency_injector/containers.pyx":221 * """Declarative inversion of control container meta class.""" * * def __new__(type mcs, str class_name, tuple bases, dict attributes): # <<<<<<<<<<<<<< @@ -6862,7 +7578,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai return __pyx_r; } -/* "dependency_injector/containers.pyx":211 +/* "dependency_injector/containers.pyx":254 * return cls * * def __setattr__(cls, str name, object value): # <<<<<<<<<<<<<< @@ -6909,17 +7625,17 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_29DeclarativeContai case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__setattr__", 1, 3, 3, 1); __PYX_ERR(0, 211, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__setattr__", 1, 3, 3, 1); __PYX_ERR(0, 254, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__setattr__", 1, 3, 3, 2); __PYX_ERR(0, 211, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__setattr__", 1, 3, 3, 2); __PYX_ERR(0, 254, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__setattr__") < 0)) __PYX_ERR(0, 211, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__setattr__") < 0)) __PYX_ERR(0, 254, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -6934,13 +7650,13 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_29DeclarativeContai } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__setattr__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 211, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__setattr__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 254, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.containers.DeclarativeContainerMetaClass.__setattr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_name), (&PyString_Type), 1, "name", 1))) __PYX_ERR(0, 211, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_name), (&PyString_Type), 1, "name", 1))) __PYX_ERR(0, 254, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_10containers_29DeclarativeContainerMetaClass_2__setattr__(__pyx_self, __pyx_v_cls, __pyx_v_name, __pyx_v_value); /* function exit code */ @@ -6967,7 +7683,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setattr__", 0); - /* "dependency_injector/containers.pyx":225 + /* "dependency_injector/containers.pyx":268 * :rtype: None * """ * if isinstance(value, Provider): # <<<<<<<<<<<<<< @@ -6978,42 +7694,42 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "dependency_injector/containers.pyx":226 + /* "dependency_injector/containers.pyx":269 * """ * if isinstance(value, Provider): * _check_provider_type(cls, value) # <<<<<<<<<<<<<< * cls.providers[name] = value * cls.cls_providers[name] = value */ - __pyx_t_3 = __pyx_f_19dependency_injector_10containers__check_provider_type(__pyx_v_cls, __pyx_v_value, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 226, __pyx_L1_error) + __pyx_t_3 = __pyx_f_19dependency_injector_10containers__check_provider_type(__pyx_v_cls, __pyx_v_value, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/containers.pyx":227 + /* "dependency_injector/containers.pyx":270 * if isinstance(value, Provider): * _check_provider_type(cls, value) * cls.providers[name] = value # <<<<<<<<<<<<<< * cls.cls_providers[name] = value * super(DeclarativeContainerMetaClass, cls).__setattr__(name, value) */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_providers); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 227, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_providers); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_name, __pyx_v_value) < 0)) __PYX_ERR(0, 227, __pyx_L1_error) + if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_name, __pyx_v_value) < 0)) __PYX_ERR(0, 270, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/containers.pyx":228 + /* "dependency_injector/containers.pyx":271 * _check_provider_type(cls, value) * cls.providers[name] = value * cls.cls_providers[name] = value # <<<<<<<<<<<<<< * super(DeclarativeContainerMetaClass, cls).__setattr__(name, value) * */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_cls_providers); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 228, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_cls_providers); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_name, __pyx_v_value) < 0)) __PYX_ERR(0, 228, __pyx_L1_error) + if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_name, __pyx_v_value) < 0)) __PYX_ERR(0, 271, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/containers.pyx":225 + /* "dependency_injector/containers.pyx":268 * :rtype: None * """ * if isinstance(value, Provider): # <<<<<<<<<<<<<< @@ -7022,16 +7738,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai */ } - /* "dependency_injector/containers.pyx":229 + /* "dependency_injector/containers.pyx":272 * cls.providers[name] = value * cls.cls_providers[name] = value * super(DeclarativeContainerMetaClass, cls).__setattr__(name, value) # <<<<<<<<<<<<<< * * def __delattr__(cls, str name): */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_DeclarativeContainerMetaClass_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 229, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_DeclarativeContainerMetaClass_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 229, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); @@ -7039,10 +7755,10 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai __Pyx_GIVEREF(__pyx_v_cls); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_cls); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 229, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_setattr); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 229, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_setattr); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; @@ -7060,7 +7776,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_name, __pyx_v_value}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 229, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); } else @@ -7068,13 +7784,13 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_name, __pyx_v_value}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 229, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif { - __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 229, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -7085,14 +7801,14 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_value); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 229, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/containers.pyx":211 + /* "dependency_injector/containers.pyx":254 * return cls * * def __setattr__(cls, str name, object value): # <<<<<<<<<<<<<< @@ -7116,7 +7832,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai return __pyx_r; } -/* "dependency_injector/containers.pyx":231 +/* "dependency_injector/containers.pyx":274 * super(DeclarativeContainerMetaClass, cls).__setattr__(name, value) * * def __delattr__(cls, str name): # <<<<<<<<<<<<<< @@ -7160,11 +7876,11 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_29DeclarativeContai case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__delattr__", 1, 2, 2, 1); __PYX_ERR(0, 231, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__delattr__", 1, 2, 2, 1); __PYX_ERR(0, 274, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__delattr__") < 0)) __PYX_ERR(0, 231, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__delattr__") < 0)) __PYX_ERR(0, 274, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -7177,13 +7893,13 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_29DeclarativeContai } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__delattr__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 231, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__delattr__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 274, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.containers.DeclarativeContainerMetaClass.__delattr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_name), (&PyString_Type), 1, "name", 1))) __PYX_ERR(0, 231, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_name), (&PyString_Type), 1, "name", 1))) __PYX_ERR(0, 274, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_10containers_29DeclarativeContainerMetaClass_4__delattr__(__pyx_self, __pyx_v_cls, __pyx_v_name); /* function exit code */ @@ -7209,16 +7925,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__delattr__", 0); - /* "dependency_injector/containers.pyx":242 + /* "dependency_injector/containers.pyx":285 * :rtype: None * """ * if name in cls.providers and name in cls.cls_providers: # <<<<<<<<<<<<<< * del cls.providers[name] * del cls.cls_providers[name] */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 242, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_2, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 242, __pyx_L1_error) + __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_2, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 285, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = (__pyx_t_3 != 0); if (__pyx_t_4) { @@ -7226,40 +7942,40 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai __pyx_t_1 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_cls_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 242, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_cls_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_2, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 242, __pyx_L1_error) + __pyx_t_4 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_2, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 285, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = (__pyx_t_4 != 0); __pyx_t_1 = __pyx_t_3; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { - /* "dependency_injector/containers.pyx":243 + /* "dependency_injector/containers.pyx":286 * """ * if name in cls.providers and name in cls.cls_providers: * del cls.providers[name] # <<<<<<<<<<<<<< * del cls.cls_providers[name] * super(DeclarativeContainerMetaClass, cls).__delattr__(name) */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (unlikely(PyObject_DelItem(__pyx_t_2, __pyx_v_name) < 0)) __PYX_ERR(0, 243, __pyx_L1_error) + if (unlikely(PyObject_DelItem(__pyx_t_2, __pyx_v_name) < 0)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/containers.pyx":244 + /* "dependency_injector/containers.pyx":287 * if name in cls.providers and name in cls.cls_providers: * del cls.providers[name] * del cls.cls_providers[name] # <<<<<<<<<<<<<< * super(DeclarativeContainerMetaClass, cls).__delattr__(name) * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_cls_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 244, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_cls_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (unlikely(PyObject_DelItem(__pyx_t_2, __pyx_v_name) < 0)) __PYX_ERR(0, 244, __pyx_L1_error) + if (unlikely(PyObject_DelItem(__pyx_t_2, __pyx_v_name) < 0)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/containers.pyx":242 + /* "dependency_injector/containers.pyx":285 * :rtype: None * """ * if name in cls.providers and name in cls.cls_providers: # <<<<<<<<<<<<<< @@ -7268,16 +7984,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai */ } - /* "dependency_injector/containers.pyx":245 + /* "dependency_injector/containers.pyx":288 * del cls.providers[name] * del cls.cls_providers[name] * super(DeclarativeContainerMetaClass, cls).__delattr__(name) # <<<<<<<<<<<<<< * * */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_DeclarativeContainerMetaClass_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 245, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_DeclarativeContainerMetaClass_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 245, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); @@ -7285,10 +8001,10 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai __Pyx_GIVEREF(__pyx_v_cls); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_cls); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 245, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_delattr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 245, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_delattr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; @@ -7303,12 +8019,12 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_name); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 245, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/containers.pyx":231 + /* "dependency_injector/containers.pyx":274 * super(DeclarativeContainerMetaClass, cls).__setattr__(name, value) * * def __delattr__(cls, str name): # <<<<<<<<<<<<<< @@ -7331,7 +8047,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai return __pyx_r; } -/* "dependency_injector/containers.pyx":305 +/* "dependency_injector/containers.pyx":348 * """ * * def __new__(cls, **overriding_providers): # <<<<<<<<<<<<<< @@ -7373,7 +8089,7 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_20DeclarativeContai else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_overriding_providers, values, pos_args, "__new__") < 0)) __PYX_ERR(0, 305, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_overriding_providers, values, pos_args, "__new__") < 0)) __PYX_ERR(0, 348, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; @@ -7384,7 +8100,7 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_20DeclarativeContai } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__new__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 305, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__new__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 348, __pyx_L3_error) __pyx_L3_error:; __Pyx_DECREF(__pyx_v_overriding_providers); __pyx_v_overriding_providers = 0; __Pyx_AddTraceback("dependency_injector.containers.DeclarativeContainer.__new__", __pyx_clineno, __pyx_lineno, __pyx_filename); @@ -7412,14 +8128,14 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__new__", 0); - /* "dependency_injector/containers.pyx":311 + /* "dependency_injector/containers.pyx":354 * :rtype: :py:class:`DynamicContainer` * """ * container = cls.instance_type() # <<<<<<<<<<<<<< * container.provider_type = cls.provider_type - * container.set_providers(**deepcopy(cls.providers)) + * container.declarative_parent = cls */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_instance_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 311, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_instance_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -7433,72 +8149,81 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 311, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_container = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":312 + /* "dependency_injector/containers.pyx":355 * """ * container = cls.instance_type() * container.provider_type = cls.provider_type # <<<<<<<<<<<<<< + * container.declarative_parent = cls + * container.set_providers(**deepcopy(cls.providers)) + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_provider_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_PyObject_SetAttrStr(__pyx_v_container, __pyx_n_s_provider_type, __pyx_t_1) < 0) __PYX_ERR(0, 355, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "dependency_injector/containers.pyx":356 + * container = cls.instance_type() + * container.provider_type = cls.provider_type + * container.declarative_parent = cls # <<<<<<<<<<<<<< * container.set_providers(**deepcopy(cls.providers)) * container.override_providers(**overriding_providers) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_provider_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 312, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_container, __pyx_n_s_provider_type, __pyx_t_1) < 0) __PYX_ERR(0, 312, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__Pyx_PyObject_SetAttrStr(__pyx_v_container, __pyx_n_s_declarative_parent, __pyx_v_cls) < 0) __PYX_ERR(0, 356, __pyx_L1_error) - /* "dependency_injector/containers.pyx":313 - * container = cls.instance_type() + /* "dependency_injector/containers.pyx":357 * container.provider_type = cls.provider_type + * container.declarative_parent = cls * container.set_providers(**deepcopy(cls.providers)) # <<<<<<<<<<<<<< * container.override_providers(**overriding_providers) * return container */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_container, __pyx_n_s_set_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_container, __pyx_n_s_set_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_providers); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 313, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_providers); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 313, __pyx_L1_error) + __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_t_4 == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); - __PYX_ERR(0, 313, __pyx_L1_error) + __PYX_ERR(0, 357, __pyx_L1_error) } if (likely(PyDict_CheckExact(__pyx_t_4))) { - __pyx_t_2 = PyDict_Copy(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 313, __pyx_L1_error) + __pyx_t_2 = PyDict_Copy(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else { - __pyx_t_2 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 313, __pyx_L1_error) + __pyx_t_2 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 313, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":314 - * container.provider_type = cls.provider_type + /* "dependency_injector/containers.pyx":358 + * container.declarative_parent = cls * container.set_providers(**deepcopy(cls.providers)) * container.override_providers(**overriding_providers) # <<<<<<<<<<<<<< * return container * */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_container, __pyx_n_s_override_providers); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 314, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_container, __pyx_n_s_override_providers); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_empty_tuple, __pyx_v_overriding_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 314, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_empty_tuple, __pyx_v_overriding_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/containers.pyx":315 + /* "dependency_injector/containers.pyx":359 * container.set_providers(**deepcopy(cls.providers)) * container.override_providers(**overriding_providers) * return container # <<<<<<<<<<<<<< @@ -7510,7 +8235,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai __pyx_r = __pyx_v_container; goto __pyx_L0; - /* "dependency_injector/containers.pyx":305 + /* "dependency_injector/containers.pyx":348 * """ * * def __new__(cls, **overriding_providers): # <<<<<<<<<<<<<< @@ -7533,7 +8258,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai return __pyx_r; } -/* "dependency_injector/containers.pyx":318 +/* "dependency_injector/containers.pyx":362 * * @classmethod * def override(cls, object overriding): # <<<<<<<<<<<<<< @@ -7577,11 +8302,11 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_20DeclarativeContai case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_overriding)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("override", 1, 2, 2, 1); __PYX_ERR(0, 318, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("override", 1, 2, 2, 1); __PYX_ERR(0, 362, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "override") < 0)) __PYX_ERR(0, 318, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "override") < 0)) __PYX_ERR(0, 362, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -7594,7 +8319,7 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_20DeclarativeContai } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("override", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 318, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("override", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 362, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.containers.DeclarativeContainer.override", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -7631,35 +8356,35 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai int __pyx_clineno = 0; __Pyx_RefNannySetupContext("override", 0); - /* "dependency_injector/containers.pyx":329 + /* "dependency_injector/containers.pyx":373 * :rtype: None * """ * if issubclass(cls, overriding): # <<<<<<<<<<<<<< * raise Error('Container {0} could not be overridden ' * 'with itself or its subclasses'.format(cls)) */ - __pyx_t_1 = PyObject_IsSubclass(__pyx_v_cls, __pyx_v_overriding); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 329, __pyx_L1_error) + __pyx_t_1 = PyObject_IsSubclass(__pyx_v_cls, __pyx_v_overriding); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 373, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (unlikely(__pyx_t_2)) { - /* "dependency_injector/containers.pyx":330 + /* "dependency_injector/containers.pyx":374 * """ * if issubclass(cls, overriding): * raise Error('Container {0} could not be overridden ' # <<<<<<<<<<<<<< * 'with itself or its subclasses'.format(cls)) * */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 330, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - /* "dependency_injector/containers.pyx":331 + /* "dependency_injector/containers.pyx":375 * if issubclass(cls, overriding): * raise Error('Container {0} could not be overridden ' * 'with itself or its subclasses'.format(cls)) # <<<<<<<<<<<<<< * * cls.overridden += (overriding,) */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Container_0_could_not_be_overrid_2, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 331, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Container_0_could_not_be_overrid_2, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { @@ -7673,7 +8398,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai } __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_v_cls) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_cls); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 331, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -7689,14 +8414,14 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 330, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 330, __pyx_L1_error) + __PYX_ERR(0, 374, __pyx_L1_error) - /* "dependency_injector/containers.pyx":329 + /* "dependency_injector/containers.pyx":373 * :rtype: None * """ * if issubclass(cls, overriding): # <<<<<<<<<<<<<< @@ -7705,40 +8430,40 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai */ } - /* "dependency_injector/containers.pyx":333 + /* "dependency_injector/containers.pyx":377 * 'with itself or its subclasses'.format(cls)) * * cls.overridden += (overriding,) # <<<<<<<<<<<<<< * * for name, provider in six.iteritems(overriding.cls_providers): */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_overridden); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 333, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_overridden); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 333, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_overriding); __Pyx_GIVEREF(__pyx_v_overriding); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_overriding); - __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 333, __pyx_L1_error) + __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__Pyx_PyObject_SetAttrStr(__pyx_v_cls, __pyx_n_s_overridden, __pyx_t_5) < 0) __PYX_ERR(0, 333, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_cls, __pyx_n_s_overridden, __pyx_t_5) < 0) __PYX_ERR(0, 377, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/containers.pyx":335 + /* "dependency_injector/containers.pyx":379 * cls.overridden += (overriding,) * * for name, provider in six.iteritems(overriding.cls_providers): # <<<<<<<<<<<<<< * try: * getattr(cls, name).override(provider) */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_six); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 335, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_six); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_iteritems); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 335, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_iteritems); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_overriding, __pyx_n_s_cls_providers); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 335, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_overriding, __pyx_n_s_cls_providers); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { @@ -7753,16 +8478,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 335, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) { __pyx_t_3 = __pyx_t_5; __Pyx_INCREF(__pyx_t_3); __pyx_t_8 = 0; __pyx_t_9 = NULL; } else { - __pyx_t_8 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 335, __pyx_L1_error) + __pyx_t_8 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 335, __pyx_L1_error) + __pyx_t_9 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 379, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; for (;;) { @@ -7770,17 +8495,17 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 335, __pyx_L1_error) + __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 379, __pyx_L1_error) #else - __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 335, __pyx_L1_error) + __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 335, __pyx_L1_error) + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 379, __pyx_L1_error) #else - __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 335, __pyx_L1_error) + __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } @@ -7790,7 +8515,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 335, __pyx_L1_error) + else __PYX_ERR(0, 379, __pyx_L1_error) } break; } @@ -7802,7 +8527,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 335, __pyx_L1_error) + __PYX_ERR(0, 379, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -7815,15 +8540,15 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_6); #else - __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 335, __pyx_L1_error) + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 335, __pyx_L1_error) + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 335, __pyx_L1_error) + __pyx_t_7 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_10 = Py_TYPE(__pyx_t_7)->tp_iternext; @@ -7831,7 +8556,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai __Pyx_GOTREF(__pyx_t_4); index = 1; __pyx_t_6 = __pyx_t_10(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_7), 2) < 0) __PYX_ERR(0, 335, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_7), 2) < 0) __PYX_ERR(0, 379, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L7_unpacking_done; @@ -7839,7 +8564,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 335, __pyx_L1_error) + __PYX_ERR(0, 379, __pyx_L1_error) __pyx_L7_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_4); @@ -7847,7 +8572,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai __Pyx_XDECREF_SET(__pyx_v_provider, __pyx_t_6); __pyx_t_6 = 0; - /* "dependency_injector/containers.pyx":336 + /* "dependency_injector/containers.pyx":380 * * for name, provider in six.iteritems(overriding.cls_providers): * try: # <<<<<<<<<<<<<< @@ -7863,16 +8588,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai __Pyx_XGOTREF(__pyx_t_13); /*try:*/ { - /* "dependency_injector/containers.pyx":337 + /* "dependency_injector/containers.pyx":381 * for name, provider in six.iteritems(overriding.cls_providers): * try: * getattr(cls, name).override(provider) # <<<<<<<<<<<<<< * except AttributeError: * pass */ - __pyx_t_6 = __Pyx_GetAttr(__pyx_v_cls, __pyx_v_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 337, __pyx_L8_error) + __pyx_t_6 = __Pyx_GetAttr(__pyx_v_cls, __pyx_v_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 381, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_override); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 337, __pyx_L8_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_override); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 381, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -7887,12 +8612,12 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai } __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_v_provider) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_provider); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 337, __pyx_L8_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 381, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/containers.pyx":336 + /* "dependency_injector/containers.pyx":380 * * for name, provider in six.iteritems(overriding.cls_providers): * try: # <<<<<<<<<<<<<< @@ -7910,7 +8635,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "dependency_injector/containers.pyx":338 + /* "dependency_injector/containers.pyx":382 * try: * getattr(cls, name).override(provider) * except AttributeError: # <<<<<<<<<<<<<< @@ -7925,7 +8650,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai goto __pyx_L10_except_error; __pyx_L10_except_error:; - /* "dependency_injector/containers.pyx":336 + /* "dependency_injector/containers.pyx":380 * * for name, provider in six.iteritems(overriding.cls_providers): * try: # <<<<<<<<<<<<<< @@ -7945,7 +8670,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai __pyx_L15_try_end:; } - /* "dependency_injector/containers.pyx":335 + /* "dependency_injector/containers.pyx":379 * cls.overridden += (overriding,) * * for name, provider in six.iteritems(overriding.cls_providers): # <<<<<<<<<<<<<< @@ -7955,7 +8680,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/containers.pyx":318 + /* "dependency_injector/containers.pyx":362 * * @classmethod * def override(cls, object overriding): # <<<<<<<<<<<<<< @@ -7982,7 +8707,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai return __pyx_r; } -/* "dependency_injector/containers.pyx":342 +/* "dependency_injector/containers.pyx":386 * * @classmethod * def reset_last_overriding(cls): # <<<<<<<<<<<<<< @@ -8023,30 +8748,30 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai int __pyx_clineno = 0; __Pyx_RefNannySetupContext("reset_last_overriding", 0); - /* "dependency_injector/containers.pyx":347 + /* "dependency_injector/containers.pyx":391 * :rtype: None * """ * if not cls.overridden: # <<<<<<<<<<<<<< * raise Error('Container {0} is not overridden'.format(cls)) * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_overridden); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 347, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_overridden); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 347, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 391, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = ((!__pyx_t_2) != 0); if (unlikely(__pyx_t_3)) { - /* "dependency_injector/containers.pyx":348 + /* "dependency_injector/containers.pyx":392 * """ * if not cls.overridden: * raise Error('Container {0} is not overridden'.format(cls)) # <<<<<<<<<<<<<< * * cls.overridden = cls.overridden[:-1] */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 348, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Container_0_is_not_overridden, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 348, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Container_0_is_not_overridden, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { @@ -8060,7 +8785,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai } __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_v_cls) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_cls); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 348, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -8076,14 +8801,14 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 348, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 348, __pyx_L1_error) + __PYX_ERR(0, 392, __pyx_L1_error) - /* "dependency_injector/containers.pyx":347 + /* "dependency_injector/containers.pyx":391 * :rtype: None * """ * if not cls.overridden: # <<<<<<<<<<<<<< @@ -8092,34 +8817,34 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai */ } - /* "dependency_injector/containers.pyx":350 + /* "dependency_injector/containers.pyx":394 * raise Error('Container {0} is not overridden'.format(cls)) * * cls.overridden = cls.overridden[:-1] # <<<<<<<<<<<<<< * * for provider in six.itervalues(cls.providers): */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_overridden); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 350, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_overridden); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_t_1, 0, -1L, NULL, NULL, &__pyx_slice_, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 350, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_t_1, 0, -1L, NULL, NULL, &__pyx_slice__2, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__Pyx_PyObject_SetAttrStr(__pyx_v_cls, __pyx_n_s_overridden, __pyx_t_4) < 0) __PYX_ERR(0, 350, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_cls, __pyx_n_s_overridden, __pyx_t_4) < 0) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":352 + /* "dependency_injector/containers.pyx":396 * cls.overridden = cls.overridden[:-1] * * for provider in six.itervalues(cls.providers): # <<<<<<<<<<<<<< * provider.reset_last_overriding() * */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_six); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 352, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_six); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_itervalues); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 352, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_itervalues); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 352, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { @@ -8134,16 +8859,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 352, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { __pyx_t_5 = __pyx_t_4; __Pyx_INCREF(__pyx_t_5); __pyx_t_8 = 0; __pyx_t_9 = NULL; } else { - __pyx_t_8 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 352, __pyx_L1_error) + __pyx_t_8 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_9 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 352, __pyx_L1_error) + __pyx_t_9 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 396, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; for (;;) { @@ -8151,17 +8876,17 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 352, __pyx_L1_error) + __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 396, __pyx_L1_error) #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 352, __pyx_L1_error) + __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 352, __pyx_L1_error) + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 396, __pyx_L1_error) #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 352, __pyx_L1_error) + __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } @@ -8171,7 +8896,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 352, __pyx_L1_error) + else __PYX_ERR(0, 396, __pyx_L1_error) } break; } @@ -8180,14 +8905,14 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai __Pyx_XDECREF_SET(__pyx_v_provider, __pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":353 + /* "dependency_injector/containers.pyx":397 * * for provider in six.itervalues(cls.providers): * provider.reset_last_overriding() # <<<<<<<<<<<<<< * * @classmethod */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_provider, __pyx_n_s_reset_last_overriding); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 353, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_provider, __pyx_n_s_reset_last_overriding); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { @@ -8201,12 +8926,12 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai } __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 353, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":352 + /* "dependency_injector/containers.pyx":396 * cls.overridden = cls.overridden[:-1] * * for provider in six.itervalues(cls.providers): # <<<<<<<<<<<<<< @@ -8216,7 +8941,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/containers.pyx":342 + /* "dependency_injector/containers.pyx":386 * * @classmethod * def reset_last_overriding(cls): # <<<<<<<<<<<<<< @@ -8242,7 +8967,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai return __pyx_r; } -/* "dependency_injector/containers.pyx":356 +/* "dependency_injector/containers.pyx":400 * * @classmethod * def reset_override(cls): # <<<<<<<<<<<<<< @@ -8280,31 +9005,31 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai int __pyx_clineno = 0; __Pyx_RefNannySetupContext("reset_override", 0); - /* "dependency_injector/containers.pyx":361 + /* "dependency_injector/containers.pyx":405 * :rtype: None * """ * cls.overridden = tuple() # <<<<<<<<<<<<<< * * for provider in six.itervalues(cls.providers): */ - __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 361, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_cls, __pyx_n_s_overridden, __pyx_t_1) < 0) __PYX_ERR(0, 361, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_cls, __pyx_n_s_overridden, __pyx_t_1) < 0) __PYX_ERR(0, 405, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":363 + /* "dependency_injector/containers.pyx":407 * cls.overridden = tuple() * * for provider in six.itervalues(cls.providers): # <<<<<<<<<<<<<< * provider.reset_override() * */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_six); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 363, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_six); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_itervalues); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 363, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_itervalues); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 363, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { @@ -8319,16 +9044,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 363, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { - __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 363, __pyx_L1_error) + __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 363, __pyx_L1_error) + __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 407, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -8336,17 +9061,17 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 363, __pyx_L1_error) + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 407, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 363, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 363, __pyx_L1_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 407, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 363, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } @@ -8356,7 +9081,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 363, __pyx_L1_error) + else __PYX_ERR(0, 407, __pyx_L1_error) } break; } @@ -8365,14 +9090,14 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai __Pyx_XDECREF_SET(__pyx_v_provider, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":364 + /* "dependency_injector/containers.pyx":408 * * for provider in six.itervalues(cls.providers): * provider.reset_override() # <<<<<<<<<<<<<< * - * + * @classmethod */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_provider, __pyx_n_s_reset_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 364, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_provider, __pyx_n_s_reset_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -8386,12 +9111,12 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 364, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":363 + /* "dependency_injector/containers.pyx":407 * cls.overridden = tuple() * * for provider in six.itervalues(cls.providers): # <<<<<<<<<<<<<< @@ -8401,7 +9126,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/containers.pyx":356 + /* "dependency_injector/containers.pyx":400 * * @classmethod * def reset_override(cls): # <<<<<<<<<<<<<< @@ -8426,7 +9151,309 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai return __pyx_r; } -/* "dependency_injector/containers.pyx":367 +/* "dependency_injector/containers.pyx":411 + * + * @classmethod + * def resolve_provider_name(cls, provider_to_resolve): # <<<<<<<<<<<<<< + * """Try to resolve provider name by its instance.""" + * for provider_name, container_provider in cls.providers.items(): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_10containers_20DeclarativeContainer_9resolve_provider_name(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_19dependency_injector_10containers_20DeclarativeContainer_8resolve_provider_name[] = "Try to resolve provider name by its instance."; +static PyMethodDef __pyx_mdef_19dependency_injector_10containers_20DeclarativeContainer_9resolve_provider_name = {"resolve_provider_name", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_10containers_20DeclarativeContainer_9resolve_provider_name, METH_VARARGS|METH_KEYWORDS, __pyx_doc_19dependency_injector_10containers_20DeclarativeContainer_8resolve_provider_name}; +static PyObject *__pyx_pw_19dependency_injector_10containers_20DeclarativeContainer_9resolve_provider_name(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_cls = 0; + PyObject *__pyx_v_provider_to_resolve = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("resolve_provider_name (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cls,&__pyx_n_s_provider_to_resolve,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cls)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_provider_to_resolve)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("resolve_provider_name", 1, 2, 2, 1); __PYX_ERR(0, 411, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "resolve_provider_name") < 0)) __PYX_ERR(0, 411, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_cls = values[0]; + __pyx_v_provider_to_resolve = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("resolve_provider_name", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 411, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("dependency_injector.containers.DeclarativeContainer.resolve_provider_name", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_19dependency_injector_10containers_20DeclarativeContainer_8resolve_provider_name(__pyx_self, __pyx_v_cls, __pyx_v_provider_to_resolve); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContainer_8resolve_provider_name(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_provider_to_resolve) { + PyObject *__pyx_v_provider_name = NULL; + PyObject *__pyx_v_container_provider = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + Py_ssize_t __pyx_t_4; + PyObject *(*__pyx_t_5)(PyObject *); + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_t_9; + int __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("resolve_provider_name", 0); + + /* "dependency_injector/containers.pyx":413 + * def resolve_provider_name(cls, provider_to_resolve): + * """Try to resolve provider name by its instance.""" + * for provider_name, container_provider in cls.providers.items(): # <<<<<<<<<<<<<< + * if container_provider is provider_to_resolve: + * return provider_name + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_items); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 413, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 413, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + } else { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 413, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + } + } else { + __pyx_t_1 = __pyx_t_5(__pyx_t_3); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(0, 413, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_1); + } + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 413, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_6 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 413, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(0, 413, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_provider_name, __pyx_t_2); + __pyx_t_2 = 0; + __Pyx_XDECREF_SET(__pyx_v_container_provider, __pyx_t_6); + __pyx_t_6 = 0; + + /* "dependency_injector/containers.pyx":414 + * """Try to resolve provider name by its instance.""" + * for provider_name, container_provider in cls.providers.items(): + * if container_provider is provider_to_resolve: # <<<<<<<<<<<<<< + * return provider_name + * else: + */ + __pyx_t_9 = (__pyx_v_container_provider == __pyx_v_provider_to_resolve); + __pyx_t_10 = (__pyx_t_9 != 0); + if (__pyx_t_10) { + + /* "dependency_injector/containers.pyx":415 + * for provider_name, container_provider in cls.providers.items(): + * if container_provider is provider_to_resolve: + * return provider_name # <<<<<<<<<<<<<< + * else: + * return None + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_provider_name); + __pyx_r = __pyx_v_provider_name; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L0; + + /* "dependency_injector/containers.pyx":414 + * """Try to resolve provider name by its instance.""" + * for provider_name, container_provider in cls.providers.items(): + * if container_provider is provider_to_resolve: # <<<<<<<<<<<<<< + * return provider_name + * else: + */ + } + + /* "dependency_injector/containers.pyx":413 + * def resolve_provider_name(cls, provider_to_resolve): + * """Try to resolve provider name by its instance.""" + * for provider_name, container_provider in cls.providers.items(): # <<<<<<<<<<<<<< + * if container_provider is provider_to_resolve: + * return provider_name + */ + } + /*else*/ { + + /* "dependency_injector/containers.pyx":417 + * return provider_name + * else: + * return None # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "dependency_injector/containers.pyx":413 + * def resolve_provider_name(cls, provider_to_resolve): + * """Try to resolve provider name by its instance.""" + * for provider_name, container_provider in cls.providers.items(): # <<<<<<<<<<<<<< + * if container_provider is provider_to_resolve: + * return provider_name + */ + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "dependency_injector/containers.pyx":411 + * + * @classmethod + * def resolve_provider_name(cls, provider_to_resolve): # <<<<<<<<<<<<<< + * """Try to resolve provider name by its instance.""" + * for provider_name, container_provider in cls.providers.items(): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("dependency_injector.containers.DeclarativeContainer.resolve_provider_name", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_provider_name); + __Pyx_XDECREF(__pyx_v_container_provider); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "dependency_injector/containers.pyx":420 * * * def override(object container): # <<<<<<<<<<<<<< @@ -8435,21 +9462,21 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContai */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_10containers_1override(PyObject *__pyx_self, PyObject *__pyx_v_container); /*proto*/ -static char __pyx_doc_19dependency_injector_10containers_override[] = ":py:class:`DeclarativeContainer` overriding decorator.\n\n :param container: Container that should be overridden by decorated\n container.\n :type container: :py:class:`DeclarativeContainer`\n\n :return: Declarative container's overriding decorator.\n :rtype: callable(:py:class:`DeclarativeContainer`)\n "; -static PyMethodDef __pyx_mdef_19dependency_injector_10containers_1override = {"override", (PyCFunction)__pyx_pw_19dependency_injector_10containers_1override, METH_O, __pyx_doc_19dependency_injector_10containers_override}; -static PyObject *__pyx_pw_19dependency_injector_10containers_1override(PyObject *__pyx_self, PyObject *__pyx_v_container) { +static PyObject *__pyx_pw_19dependency_injector_10containers_5override(PyObject *__pyx_self, PyObject *__pyx_v_container); /*proto*/ +static char __pyx_doc_19dependency_injector_10containers_4override[] = ":py:class:`DeclarativeContainer` overriding decorator.\n\n :param container: Container that should be overridden by decorated\n container.\n :type container: :py:class:`DeclarativeContainer`\n\n :return: Declarative container's overriding decorator.\n :rtype: callable(:py:class:`DeclarativeContainer`)\n "; +static PyMethodDef __pyx_mdef_19dependency_injector_10containers_5override = {"override", (PyCFunction)__pyx_pw_19dependency_injector_10containers_5override, METH_O, __pyx_doc_19dependency_injector_10containers_4override}; +static PyObject *__pyx_pw_19dependency_injector_10containers_5override(PyObject *__pyx_self, PyObject *__pyx_v_container) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("override (wrapper)", 0); - __pyx_r = __pyx_pf_19dependency_injector_10containers_override(__pyx_self, ((PyObject *)__pyx_v_container)); + __pyx_r = __pyx_pf_19dependency_injector_10containers_4override(__pyx_self, ((PyObject *)__pyx_v_container)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -/* "dependency_injector/containers.pyx":377 +/* "dependency_injector/containers.pyx":430 * :rtype: callable(:py:class:`DeclarativeContainer`) * """ * def _decorator(object overriding_container): # <<<<<<<<<<<<<< @@ -8487,15 +9514,15 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_8override__decorato __pyx_outer_scope = (struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_4_override *) __Pyx_CyFunction_GetClosure(__pyx_self); __pyx_cur_scope = __pyx_outer_scope; - /* "dependency_injector/containers.pyx":379 + /* "dependency_injector/containers.pyx":432 * def _decorator(object overriding_container): * """Overriding decorator.""" * container.override(overriding_container) # <<<<<<<<<<<<<< * return overriding_container * return _decorator */ - if (unlikely(!__pyx_cur_scope->__pyx_v_container)) { __Pyx_RaiseClosureNameError("container"); __PYX_ERR(0, 379, __pyx_L1_error) } - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_container, __pyx_n_s_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 379, __pyx_L1_error) + if (unlikely(!__pyx_cur_scope->__pyx_v_container)) { __Pyx_RaiseClosureNameError("container"); __PYX_ERR(0, 432, __pyx_L1_error) } + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_container, __pyx_n_s_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 432, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -8509,12 +9536,12 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_8override__decorato } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_overriding_container) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_overriding_container); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 379, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 432, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":380 + /* "dependency_injector/containers.pyx":433 * """Overriding decorator.""" * container.override(overriding_container) * return overriding_container # <<<<<<<<<<<<<< @@ -8526,7 +9553,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_8override__decorato __pyx_r = __pyx_v_overriding_container; goto __pyx_L0; - /* "dependency_injector/containers.pyx":377 + /* "dependency_injector/containers.pyx":430 * :rtype: callable(:py:class:`DeclarativeContainer`) * """ * def _decorator(object overriding_container): # <<<<<<<<<<<<<< @@ -8547,7 +9574,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_8override__decorato return __pyx_r; } -/* "dependency_injector/containers.pyx":367 +/* "dependency_injector/containers.pyx":420 * * * def override(object container): # <<<<<<<<<<<<<< @@ -8555,7 +9582,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_8override__decorato * */ -static PyObject *__pyx_pf_19dependency_injector_10containers_override(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_container) { +static PyObject *__pyx_pf_19dependency_injector_10containers_4override(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_container) { struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_4_override *__pyx_cur_scope; PyObject *__pyx_v__decorator = 0; PyObject *__pyx_r = NULL; @@ -8569,7 +9596,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_override(CYTHON_UNU if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_4_override *)Py_None); __Pyx_INCREF(Py_None); - __PYX_ERR(0, 367, __pyx_L1_error) + __PYX_ERR(0, 420, __pyx_L1_error) } else { __Pyx_GOTREF(__pyx_cur_scope); } @@ -8577,19 +9604,19 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_override(CYTHON_UNU __Pyx_INCREF(__pyx_cur_scope->__pyx_v_container); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_container); - /* "dependency_injector/containers.pyx":377 + /* "dependency_injector/containers.pyx":430 * :rtype: callable(:py:class:`DeclarativeContainer`) * """ * def _decorator(object overriding_container): # <<<<<<<<<<<<<< * """Overriding decorator.""" * container.override(overriding_container) */ - __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_8override_1_decorator, 0, __pyx_n_s_override_locals__decorator, ((PyObject*)__pyx_cur_scope), __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 377, __pyx_L1_error) + __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_8override_1_decorator, 0, __pyx_n_s_override_locals__decorator, ((PyObject*)__pyx_cur_scope), __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v__decorator = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":381 + /* "dependency_injector/containers.pyx":434 * container.override(overriding_container) * return overriding_container * return _decorator # <<<<<<<<<<<<<< @@ -8601,7 +9628,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_override(CYTHON_UNU __pyx_r = __pyx_v__decorator; goto __pyx_L0; - /* "dependency_injector/containers.pyx":367 + /* "dependency_injector/containers.pyx":420 * * * def override(object container): # <<<<<<<<<<<<<< @@ -8622,7 +9649,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_override(CYTHON_UNU return __pyx_r; } -/* "dependency_injector/containers.pyx":384 +/* "dependency_injector/containers.pyx":437 * * * def copy(object container): # <<<<<<<<<<<<<< @@ -8631,21 +9658,21 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_override(CYTHON_UNU */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_10containers_3copy(PyObject *__pyx_self, PyObject *__pyx_v_container); /*proto*/ -static char __pyx_doc_19dependency_injector_10containers_2copy[] = ":py:class:`DeclarativeContainer` copying decorator.\n\n This decorator copy all providers from provided container to decorated one.\n If one of the decorated container providers matches to source container\n providers by name, it would be replaced by reference.\n\n :param container: Container that should be copied by decorated container.\n :type container: :py:class:`DeclarativeContainer`\n\n :return: Declarative container's copying decorator.\n :rtype: callable(:py:class:`DeclarativeContainer`)\n "; -static PyMethodDef __pyx_mdef_19dependency_injector_10containers_3copy = {"copy", (PyCFunction)__pyx_pw_19dependency_injector_10containers_3copy, METH_O, __pyx_doc_19dependency_injector_10containers_2copy}; -static PyObject *__pyx_pw_19dependency_injector_10containers_3copy(PyObject *__pyx_self, PyObject *__pyx_v_container) { +static PyObject *__pyx_pw_19dependency_injector_10containers_7copy(PyObject *__pyx_self, PyObject *__pyx_v_container); /*proto*/ +static char __pyx_doc_19dependency_injector_10containers_6copy[] = ":py:class:`DeclarativeContainer` copying decorator.\n\n This decorator copy all providers from provided container to decorated one.\n If one of the decorated container providers matches to source container\n providers by name, it would be replaced by reference.\n\n :param container: Container that should be copied by decorated container.\n :type container: :py:class:`DeclarativeContainer`\n\n :return: Declarative container's copying decorator.\n :rtype: callable(:py:class:`DeclarativeContainer`)\n "; +static PyMethodDef __pyx_mdef_19dependency_injector_10containers_7copy = {"copy", (PyCFunction)__pyx_pw_19dependency_injector_10containers_7copy, METH_O, __pyx_doc_19dependency_injector_10containers_6copy}; +static PyObject *__pyx_pw_19dependency_injector_10containers_7copy(PyObject *__pyx_self, PyObject *__pyx_v_container) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("copy (wrapper)", 0); - __pyx_r = __pyx_pf_19dependency_injector_10containers_2copy(__pyx_self, ((PyObject *)__pyx_v_container)); + __pyx_r = __pyx_pf_19dependency_injector_10containers_6copy(__pyx_self, ((PyObject *)__pyx_v_container)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -/* "dependency_injector/containers.pyx":397 +/* "dependency_injector/containers.pyx":450 * :rtype: callable(:py:class:`DeclarativeContainer`) * """ * def _decorator(copied_container): # <<<<<<<<<<<<<< @@ -8698,31 +9725,31 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py __pyx_outer_scope = (struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_5_copy *) __Pyx_CyFunction_GetClosure(__pyx_self); __pyx_cur_scope = __pyx_outer_scope; - /* "dependency_injector/containers.pyx":398 + /* "dependency_injector/containers.pyx":451 * """ * def _decorator(copied_container): * cdef dict memo = dict() # <<<<<<<<<<<<<< * for name, provider in six.iteritems(copied_container.cls_providers): * try: */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 398, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_memo = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":399 + /* "dependency_injector/containers.pyx":452 * def _decorator(copied_container): * cdef dict memo = dict() * for name, provider in six.iteritems(copied_container.cls_providers): # <<<<<<<<<<<<<< * try: * source_provider = getattr(container, name) */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_six); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 399, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_six); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_iteritems); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 399, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_iteritems); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_copied_container, __pyx_n_s_cls_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 399, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_copied_container, __pyx_n_s_cls_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { @@ -8737,16 +9764,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 399, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { - __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 399, __pyx_L1_error) + __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 399, __pyx_L1_error) + __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 452, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -8754,17 +9781,17 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 399, __pyx_L1_error) + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 452, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 399, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 399, __pyx_L1_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 452, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 399, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } @@ -8774,7 +9801,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 399, __pyx_L1_error) + else __PYX_ERR(0, 452, __pyx_L1_error) } break; } @@ -8786,7 +9813,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 399, __pyx_L1_error) + __PYX_ERR(0, 452, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -8799,15 +9826,15 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); #else - __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 399, __pyx_L1_error) + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 399, __pyx_L1_error) + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 399, __pyx_L1_error) + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; @@ -8815,7 +9842,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py __Pyx_GOTREF(__pyx_t_2); index = 1; __pyx_t_4 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 399, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 452, __pyx_L1_error) __pyx_t_8 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L6_unpacking_done; @@ -8823,7 +9850,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 399, __pyx_L1_error) + __PYX_ERR(0, 452, __pyx_L1_error) __pyx_L6_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_2); @@ -8831,7 +9858,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py __Pyx_XDECREF_SET(__pyx_v_provider, __pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":400 + /* "dependency_injector/containers.pyx":453 * cdef dict memo = dict() * for name, provider in six.iteritems(copied_container.cls_providers): * try: # <<<<<<<<<<<<<< @@ -8847,23 +9874,23 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py __Pyx_XGOTREF(__pyx_t_11); /*try:*/ { - /* "dependency_injector/containers.pyx":401 + /* "dependency_injector/containers.pyx":454 * for name, provider in six.iteritems(copied_container.cls_providers): * try: * source_provider = getattr(container, name) # <<<<<<<<<<<<<< * except AttributeError: * pass */ - if (unlikely(!__pyx_cur_scope->__pyx_v_container)) { __Pyx_RaiseClosureNameError("container"); __PYX_ERR(0, 401, __pyx_L7_error) } + if (unlikely(!__pyx_cur_scope->__pyx_v_container)) { __Pyx_RaiseClosureNameError("container"); __PYX_ERR(0, 454, __pyx_L7_error) } __pyx_t_1 = __pyx_cur_scope->__pyx_v_container; __Pyx_INCREF(__pyx_t_1); - __pyx_t_4 = __Pyx_GetAttr(__pyx_t_1, __pyx_v_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 401, __pyx_L7_error) + __pyx_t_4 = __Pyx_GetAttr(__pyx_t_1, __pyx_v_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 454, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_source_provider, __pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":400 + /* "dependency_injector/containers.pyx":453 * cdef dict memo = dict() * for name, provider in six.iteritems(copied_container.cls_providers): * try: # <<<<<<<<<<<<<< @@ -8872,7 +9899,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py */ } - /* "dependency_injector/containers.pyx":405 + /* "dependency_injector/containers.pyx":458 * pass * else: * memo[id(source_provider)] = provider # <<<<<<<<<<<<<< @@ -8880,9 +9907,9 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py * providers_copy = deepcopy(container.providers, memo) */ /*else:*/ { - __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_v_source_provider); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 405, __pyx_L9_except_error) + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_v_source_provider); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 458, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_4); - if (unlikely(PyDict_SetItem(__pyx_v_memo, __pyx_t_4, __pyx_v_provider) < 0)) __PYX_ERR(0, 405, __pyx_L9_except_error) + if (unlikely(PyDict_SetItem(__pyx_v_memo, __pyx_t_4, __pyx_v_provider) < 0)) __PYX_ERR(0, 458, __pyx_L9_except_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; @@ -8895,7 +9922,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "dependency_injector/containers.pyx":402 + /* "dependency_injector/containers.pyx":455 * try: * source_provider = getattr(container, name) * except AttributeError: # <<<<<<<<<<<<<< @@ -8910,7 +9937,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py goto __pyx_L9_except_error; __pyx_L9_except_error:; - /* "dependency_injector/containers.pyx":400 + /* "dependency_injector/containers.pyx":453 * cdef dict memo = dict() * for name, provider in six.iteritems(copied_container.cls_providers): * try: # <<<<<<<<<<<<<< @@ -8930,7 +9957,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py __pyx_L14_try_end:; } - /* "dependency_injector/containers.pyx":399 + /* "dependency_injector/containers.pyx":452 * def _decorator(copied_container): * cdef dict memo = dict() * for name, provider in six.iteritems(copied_container.cls_providers): # <<<<<<<<<<<<<< @@ -8940,34 +9967,34 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/containers.pyx":407 + /* "dependency_injector/containers.pyx":460 * memo[id(source_provider)] = provider * * providers_copy = deepcopy(container.providers, memo) # <<<<<<<<<<<<<< * for name, provider in six.iteritems(providers_copy): * setattr(copied_container, name, provider) */ - if (unlikely(!__pyx_cur_scope->__pyx_v_container)) { __Pyx_RaiseClosureNameError("container"); __PYX_ERR(0, 407, __pyx_L1_error) } - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_container, __pyx_n_s_providers); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 407, __pyx_L1_error) + if (unlikely(!__pyx_cur_scope->__pyx_v_container)) { __Pyx_RaiseClosureNameError("container"); __PYX_ERR(0, 460, __pyx_L1_error) } + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_container, __pyx_n_s_providers); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_13.__pyx_n = 1; __pyx_t_13.memo = __pyx_v_memo; - __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 407, __pyx_L1_error) + __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_providers_copy = __pyx_t_4; __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":408 + /* "dependency_injector/containers.pyx":461 * * providers_copy = deepcopy(container.providers, memo) * for name, provider in six.iteritems(providers_copy): # <<<<<<<<<<<<<< * setattr(copied_container, name, provider) * */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_six); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 408, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_six); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_iteritems); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 408, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_iteritems); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -8982,16 +10009,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py } __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_v_providers_copy) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_providers_copy); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 408, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { __pyx_t_1 = __pyx_t_4; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { - __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 408, __pyx_L1_error) + __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 408, __pyx_L1_error) + __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 461, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; for (;;) { @@ -8999,17 +10026,17 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 408, __pyx_L1_error) + __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 461, __pyx_L1_error) #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 408, __pyx_L1_error) + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 408, __pyx_L1_error) + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 461, __pyx_L1_error) #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 408, __pyx_L1_error) + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } @@ -9019,7 +10046,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 408, __pyx_L1_error) + else __PYX_ERR(0, 461, __pyx_L1_error) } break; } @@ -9031,7 +10058,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 408, __pyx_L1_error) + __PYX_ERR(0, 461, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -9044,15 +10071,15 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); #else - __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 408, __pyx_L1_error) + __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 408, __pyx_L1_error) + __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else { Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 408, __pyx_L1_error) + __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; @@ -9060,7 +10087,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L17_unpacking_failed; __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 408, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 461, __pyx_L1_error) __pyx_t_8 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L18_unpacking_done; @@ -9068,7 +10095,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 408, __pyx_L1_error) + __PYX_ERR(0, 461, __pyx_L1_error) __pyx_L18_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_3); @@ -9076,16 +10103,16 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py __Pyx_XDECREF_SET(__pyx_v_provider, __pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/containers.pyx":409 + /* "dependency_injector/containers.pyx":462 * providers_copy = deepcopy(container.providers, memo) * for name, provider in six.iteritems(providers_copy): * setattr(copied_container, name, provider) # <<<<<<<<<<<<<< * * return copied_container */ - __pyx_t_14 = PyObject_SetAttr(__pyx_v_copied_container, __pyx_v_name, __pyx_v_provider); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 409, __pyx_L1_error) + __pyx_t_14 = PyObject_SetAttr(__pyx_v_copied_container, __pyx_v_name, __pyx_v_provider); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 462, __pyx_L1_error) - /* "dependency_injector/containers.pyx":408 + /* "dependency_injector/containers.pyx":461 * * providers_copy = deepcopy(container.providers, memo) * for name, provider in six.iteritems(providers_copy): # <<<<<<<<<<<<<< @@ -9095,7 +10122,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":411 + /* "dependency_injector/containers.pyx":464 * setattr(copied_container, name, provider) * * return copied_container # <<<<<<<<<<<<<< @@ -9107,7 +10134,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py __pyx_r = __pyx_v_copied_container; goto __pyx_L0; - /* "dependency_injector/containers.pyx":397 + /* "dependency_injector/containers.pyx":450 * :rtype: callable(:py:class:`DeclarativeContainer`) * """ * def _decorator(copied_container): # <<<<<<<<<<<<<< @@ -9135,7 +10162,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py return __pyx_r; } -/* "dependency_injector/containers.pyx":384 +/* "dependency_injector/containers.pyx":437 * * * def copy(object container): # <<<<<<<<<<<<<< @@ -9143,7 +10170,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4copy__decorator(Py * */ -static PyObject *__pyx_pf_19dependency_injector_10containers_2copy(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_container) { +static PyObject *__pyx_pf_19dependency_injector_10containers_6copy(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_container) { struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_5_copy *__pyx_cur_scope; PyObject *__pyx_v__decorator = 0; PyObject *__pyx_r = NULL; @@ -9157,7 +10184,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_2copy(CYTHON_UNUSED if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_5_copy *)Py_None); __Pyx_INCREF(Py_None); - __PYX_ERR(0, 384, __pyx_L1_error) + __PYX_ERR(0, 437, __pyx_L1_error) } else { __Pyx_GOTREF(__pyx_cur_scope); } @@ -9165,19 +10192,19 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_2copy(CYTHON_UNUSED __Pyx_INCREF(__pyx_cur_scope->__pyx_v_container); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_container); - /* "dependency_injector/containers.pyx":397 + /* "dependency_injector/containers.pyx":450 * :rtype: callable(:py:class:`DeclarativeContainer`) * """ * def _decorator(copied_container): # <<<<<<<<<<<<<< * cdef dict memo = dict() * for name, provider in six.iteritems(copied_container.cls_providers): */ - __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_4copy_1_decorator, 0, __pyx_n_s_copy_locals__decorator, ((PyObject*)__pyx_cur_scope), __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 397, __pyx_L1_error) + __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_4copy_1_decorator, 0, __pyx_n_s_copy_locals__decorator, ((PyObject*)__pyx_cur_scope), __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v__decorator = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":412 + /* "dependency_injector/containers.pyx":465 * * return copied_container * return _decorator # <<<<<<<<<<<<<< @@ -9189,7 +10216,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_2copy(CYTHON_UNUSED __pyx_r = __pyx_v__decorator; goto __pyx_L0; - /* "dependency_injector/containers.pyx":384 + /* "dependency_injector/containers.pyx":437 * * * def copy(object container): # <<<<<<<<<<<<<< @@ -9210,7 +10237,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_2copy(CYTHON_UNUSED return __pyx_r; } -/* "dependency_injector/containers.pyx":415 +/* "dependency_injector/containers.pyx":468 * * * cpdef bint is_container(object instance): # <<<<<<<<<<<<<< @@ -9218,7 +10245,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_2copy(CYTHON_UNUSED * */ -static PyObject *__pyx_pw_19dependency_injector_10containers_5is_container(PyObject *__pyx_self, PyObject *__pyx_v_instance); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_10containers_9is_container(PyObject *__pyx_self, PyObject *__pyx_v_instance); /*proto*/ static int __pyx_f_19dependency_injector_10containers_is_container(PyObject *__pyx_v_instance, CYTHON_UNUSED int __pyx_skip_dispatch) { int __pyx_r; __Pyx_RefNannyDeclarations @@ -9229,21 +10256,21 @@ static int __pyx_f_19dependency_injector_10containers_is_container(PyObject *__p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("is_container", 0); - /* "dependency_injector/containers.pyx":423 + /* "dependency_injector/containers.pyx":476 * :rtype: bool * """ * return getattr(instance, '__IS_CONTAINER__', False) is True # <<<<<<<<<<<<<< * * */ - __pyx_t_1 = __Pyx_GetAttr3(__pyx_v_instance, __pyx_n_s_IS_CONTAINER, Py_False); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 423, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetAttr3(__pyx_v_instance, __pyx_n_s_IS_CONTAINER, Py_False); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__pyx_t_1 == Py_True); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; goto __pyx_L0; - /* "dependency_injector/containers.pyx":415 + /* "dependency_injector/containers.pyx":468 * * * cpdef bint is_container(object instance): # <<<<<<<<<<<<<< @@ -9262,20 +10289,20 @@ static int __pyx_f_19dependency_injector_10containers_is_container(PyObject *__p } /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_10containers_5is_container(PyObject *__pyx_self, PyObject *__pyx_v_instance); /*proto*/ -static char __pyx_doc_19dependency_injector_10containers_4is_container[] = "Check if instance is container instance.\n\n :param instance: Instance to be checked.\n :type instance: object\n\n :rtype: bool\n "; -static PyObject *__pyx_pw_19dependency_injector_10containers_5is_container(PyObject *__pyx_self, PyObject *__pyx_v_instance) { +static PyObject *__pyx_pw_19dependency_injector_10containers_9is_container(PyObject *__pyx_self, PyObject *__pyx_v_instance); /*proto*/ +static char __pyx_doc_19dependency_injector_10containers_8is_container[] = "Check if instance is container instance.\n\n :param instance: Instance to be checked.\n :type instance: object\n\n :rtype: bool\n "; +static PyObject *__pyx_pw_19dependency_injector_10containers_9is_container(PyObject *__pyx_self, PyObject *__pyx_v_instance) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("is_container (wrapper)", 0); - __pyx_r = __pyx_pf_19dependency_injector_10containers_4is_container(__pyx_self, ((PyObject *)__pyx_v_instance)); + __pyx_r = __pyx_pf_19dependency_injector_10containers_8is_container(__pyx_self, ((PyObject *)__pyx_v_instance)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_10containers_4is_container(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_instance) { +static PyObject *__pyx_pf_19dependency_injector_10containers_8is_container(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_instance) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -9284,7 +10311,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4is_container(CYTHO int __pyx_clineno = 0; __Pyx_RefNannySetupContext("is_container", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_f_19dependency_injector_10containers_is_container(__pyx_v_instance, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 415, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_f_19dependency_injector_10containers_is_container(__pyx_v_instance, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -9301,7 +10328,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4is_container(CYTHO return __pyx_r; } -/* "dependency_injector/containers.pyx":426 +/* "dependency_injector/containers.pyx":479 * * * cpdef object _check_provider_type(object container, object provider): # <<<<<<<<<<<<<< @@ -9309,7 +10336,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_4is_container(CYTHO * raise Error('{0} can contain only {1} ' */ -static PyObject *__pyx_pw_19dependency_injector_10containers_7_check_provider_type(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_10containers_11_check_provider_type(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_f_19dependency_injector_10containers__check_provider_type(PyObject *__pyx_v_container, PyObject *__pyx_v_provider, CYTHON_UNUSED int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -9328,37 +10355,37 @@ static PyObject *__pyx_f_19dependency_injector_10containers__check_provider_type int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_check_provider_type", 0); - /* "dependency_injector/containers.pyx":427 + /* "dependency_injector/containers.pyx":480 * * cpdef object _check_provider_type(object container, object provider): * if not isinstance(provider, container.provider_type): # <<<<<<<<<<<<<< * raise Error('{0} can contain only {1} ' * 'instances'.format(container, container.provider_type)) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_container, __pyx_n_s_provider_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 427, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_container, __pyx_n_s_provider_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_IsInstance(__pyx_v_provider, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 427, __pyx_L1_error) + __pyx_t_2 = PyObject_IsInstance(__pyx_v_provider, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 480, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = ((!(__pyx_t_2 != 0)) != 0); if (unlikely(__pyx_t_3)) { - /* "dependency_injector/containers.pyx":428 + /* "dependency_injector/containers.pyx":481 * cpdef object _check_provider_type(object container, object provider): * if not isinstance(provider, container.provider_type): * raise Error('{0} can contain only {1} ' # <<<<<<<<<<<<<< * 'instances'.format(container, container.provider_type)) */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 428, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - /* "dependency_injector/containers.pyx":429 + /* "dependency_injector/containers.pyx":482 * if not isinstance(provider, container.provider_type): * raise Error('{0} can contain only {1} ' * 'instances'.format(container, container.provider_type)) # <<<<<<<<<<<<<< */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_can_contain_only_1_instances, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 429, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_can_contain_only_1_instances, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_container, __pyx_n_s_provider_type); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 429, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_container, __pyx_n_s_provider_type); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_9 = 0; @@ -9375,7 +10402,7 @@ static PyObject *__pyx_f_19dependency_injector_10containers__check_provider_type #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_container, __pyx_t_7}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 429, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 482, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; @@ -9384,14 +10411,14 @@ static PyObject *__pyx_f_19dependency_injector_10containers__check_provider_type #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_container, __pyx_t_7}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 429, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 482, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { - __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 429, __pyx_L1_error) + __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; @@ -9402,7 +10429,7 @@ static PyObject *__pyx_f_19dependency_injector_10containers__check_provider_type __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7); __pyx_t_7 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 429, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } @@ -9420,14 +10447,14 @@ static PyObject *__pyx_f_19dependency_injector_10containers__check_provider_type __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 428, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 428, __pyx_L1_error) + __PYX_ERR(0, 481, __pyx_L1_error) - /* "dependency_injector/containers.pyx":427 + /* "dependency_injector/containers.pyx":480 * * cpdef object _check_provider_type(object container, object provider): * if not isinstance(provider, container.provider_type): # <<<<<<<<<<<<<< @@ -9436,7 +10463,7 @@ static PyObject *__pyx_f_19dependency_injector_10containers__check_provider_type */ } - /* "dependency_injector/containers.pyx":426 + /* "dependency_injector/containers.pyx":479 * * * cpdef object _check_provider_type(object container, object provider): # <<<<<<<<<<<<<< @@ -9464,8 +10491,8 @@ static PyObject *__pyx_f_19dependency_injector_10containers__check_provider_type } /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_10containers_7_check_provider_type(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_19dependency_injector_10containers_7_check_provider_type(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_10containers_11_check_provider_type(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_10containers_11_check_provider_type(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_container = 0; PyObject *__pyx_v_provider = 0; int __pyx_lineno = 0; @@ -9497,11 +10524,11 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_7_check_provider_ty case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_provider)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_check_provider_type", 1, 2, 2, 1); __PYX_ERR(0, 426, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_check_provider_type", 1, 2, 2, 1); __PYX_ERR(0, 479, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_check_provider_type") < 0)) __PYX_ERR(0, 426, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_check_provider_type") < 0)) __PYX_ERR(0, 479, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -9514,20 +10541,20 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_7_check_provider_ty } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_check_provider_type", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 426, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_check_provider_type", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 479, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.containers._check_provider_type", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_10containers_6_check_provider_type(__pyx_self, __pyx_v_container, __pyx_v_provider); + __pyx_r = __pyx_pf_19dependency_injector_10containers_10_check_provider_type(__pyx_self, __pyx_v_container, __pyx_v_provider); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_10containers_6_check_provider_type(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_container, PyObject *__pyx_v_provider) { +static PyObject *__pyx_pf_19dependency_injector_10containers_10_check_provider_type(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_container, PyObject *__pyx_v_provider) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -9536,7 +10563,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_6_check_provider_ty int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_check_provider_type", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_10containers__check_provider_type(__pyx_v_container, __pyx_v_provider, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 426, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_10containers__check_provider_type(__pyx_v_container, __pyx_v_provider, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -9553,7 +10580,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_6_check_provider_ty return __pyx_r; } -/* "providers.pxd":271 +/* "providers.pxd":275 * * # Inline helper functions * cdef inline object __get_name(NamedInjection self): # <<<<<<<<<<<<<< @@ -9566,7 +10593,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_na __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get_name", 0); - /* "providers.pxd":272 + /* "providers.pxd":276 * # Inline helper functions * cdef inline object __get_name(NamedInjection self): * return self.__name # <<<<<<<<<<<<<< @@ -9578,7 +10605,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_na __pyx_r = __pyx_v_self->__pyx___name; goto __pyx_L0; - /* "providers.pxd":271 + /* "providers.pxd":275 * * # Inline helper functions * cdef inline object __get_name(NamedInjection self): # <<<<<<<<<<<<<< @@ -9593,7 +10620,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_na return __pyx_r; } -/* "providers.pxd":275 +/* "providers.pxd":279 * * * cdef inline object __get_value(Injection self): # <<<<<<<<<<<<<< @@ -9613,7 +10640,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get_value", 0); - /* "providers.pxd":276 + /* "providers.pxd":280 * * cdef inline object __get_value(Injection self): * if self.__call == 0: # <<<<<<<<<<<<<< @@ -9623,7 +10650,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va __pyx_t_1 = ((__pyx_v_self->__pyx___call == 0) != 0); if (__pyx_t_1) { - /* "providers.pxd":277 + /* "providers.pxd":281 * cdef inline object __get_value(Injection self): * if self.__call == 0: * return self.__value # <<<<<<<<<<<<<< @@ -9635,7 +10662,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va __pyx_r = __pyx_v_self->__pyx___value; goto __pyx_L0; - /* "providers.pxd":276 + /* "providers.pxd":280 * * cdef inline object __get_value(Injection self): * if self.__call == 0: # <<<<<<<<<<<<<< @@ -9644,7 +10671,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va */ } - /* "providers.pxd":278 + /* "providers.pxd":282 * if self.__call == 0: * return self.__value * return self.__value() # <<<<<<<<<<<<<< @@ -9665,14 +10692,14 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 278, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "providers.pxd":275 + /* "providers.pxd":279 * * * cdef inline object __get_value(Injection self): # <<<<<<<<<<<<<< @@ -9693,7 +10720,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va return __pyx_r; } -/* "providers.pxd":281 +/* "providers.pxd":285 * * * cdef inline object __get_value_kwargs(Injection self, dict kwargs): # <<<<<<<<<<<<<< @@ -9711,7 +10738,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get_value_kwargs", 0); - /* "providers.pxd":282 + /* "providers.pxd":286 * * cdef inline object __get_value_kwargs(Injection self, dict kwargs): * if self.__call == 0: # <<<<<<<<<<<<<< @@ -9721,7 +10748,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va __pyx_t_1 = ((__pyx_v_self->__pyx___call == 0) != 0); if (__pyx_t_1) { - /* "providers.pxd":283 + /* "providers.pxd":287 * cdef inline object __get_value_kwargs(Injection self, dict kwargs): * if self.__call == 0: * return self.__value # <<<<<<<<<<<<<< @@ -9733,7 +10760,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va __pyx_r = __pyx_v_self->__pyx___value; goto __pyx_L0; - /* "providers.pxd":282 + /* "providers.pxd":286 * * cdef inline object __get_value_kwargs(Injection self, dict kwargs): * if self.__call == 0: # <<<<<<<<<<<<<< @@ -9742,7 +10769,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va */ } - /* "providers.pxd":284 + /* "providers.pxd":288 * if self.__call == 0: * return self.__value * return self.__value(**kwargs) # <<<<<<<<<<<<<< @@ -9752,15 +10779,15 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va __Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); - __PYX_ERR(1, 284, __pyx_L1_error) + __PYX_ERR(1, 288, __pyx_L1_error) } - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_self->__pyx___value, __pyx_empty_tuple, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 284, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_self->__pyx___value, __pyx_empty_tuple, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "providers.pxd":281 + /* "providers.pxd":285 * * * cdef inline object __get_value_kwargs(Injection self, dict kwargs): # <<<<<<<<<<<<<< @@ -9779,7 +10806,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va return __pyx_r; } -/* "providers.pxd":287 +/* "providers.pxd":291 * * * cdef inline tuple __separate_prefixed_kwargs(dict kwargs): # <<<<<<<<<<<<<< @@ -9812,31 +10839,31 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__separate_prefixed_kwargs", 0); - /* "providers.pxd":288 + /* "providers.pxd":292 * * cdef inline tuple __separate_prefixed_kwargs(dict kwargs): * cdef dict plain_kwargs = {} # <<<<<<<<<<<<<< * cdef dict prefixed_kwargs = {} * */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 288, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_plain_kwargs = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "providers.pxd":289 + /* "providers.pxd":293 * cdef inline tuple __separate_prefixed_kwargs(dict kwargs): * cdef dict plain_kwargs = {} * cdef dict prefixed_kwargs = {} # <<<<<<<<<<<<<< * * for key, value in kwargs.items(): */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 289, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_prefixed_kwargs = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "providers.pxd":291 + /* "providers.pxd":295 * cdef dict prefixed_kwargs = {} * * for key, value in kwargs.items(): # <<<<<<<<<<<<<< @@ -9845,17 +10872,17 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa */ if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); - __PYX_ERR(1, 291, __pyx_L1_error) + __PYX_ERR(1, 295, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyDict_Items(__pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 291, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_Items(__pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { - __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 291, __pyx_L1_error) + __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 291, __pyx_L1_error) + __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 295, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -9863,17 +10890,17 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 291, __pyx_L1_error) + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 295, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 291, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 291, __pyx_L1_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 295, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 291, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } @@ -9883,7 +10910,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(1, 291, __pyx_L1_error) + else __PYX_ERR(1, 295, __pyx_L1_error) } break; } @@ -9895,7 +10922,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(1, 291, __pyx_L1_error) + __PYX_ERR(1, 295, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -9908,15 +10935,15 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); #else - __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 291, __pyx_L1_error) + __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 291, __pyx_L1_error) + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 291, __pyx_L1_error) + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; @@ -9924,7 +10951,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa __Pyx_GOTREF(__pyx_t_5); index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(1, 291, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(1, 295, __pyx_L1_error) __pyx_t_8 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L6_unpacking_done; @@ -9932,7 +10959,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(1, 291, __pyx_L1_error) + __PYX_ERR(1, 295, __pyx_L1_error) __pyx_L6_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_5); @@ -9940,27 +10967,27 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_6); __pyx_t_6 = 0; - /* "providers.pxd":292 + /* "providers.pxd":296 * * for key, value in kwargs.items(): * if '__' not in key: # <<<<<<<<<<<<<< * plain_kwargs[key] = value * continue */ - __pyx_t_9 = (__Pyx_PySequence_ContainsTF(__pyx_n_s__6, __pyx_v_key, Py_NE)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(1, 292, __pyx_L1_error) + __pyx_t_9 = (__Pyx_PySequence_ContainsTF(__pyx_n_s__7, __pyx_v_key, Py_NE)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(1, 296, __pyx_L1_error) __pyx_t_10 = (__pyx_t_9 != 0); if (__pyx_t_10) { - /* "providers.pxd":293 + /* "providers.pxd":297 * for key, value in kwargs.items(): * if '__' not in key: * plain_kwargs[key] = value # <<<<<<<<<<<<<< * continue * */ - if (unlikely(PyDict_SetItem(__pyx_v_plain_kwargs, __pyx_v_key, __pyx_v_value) < 0)) __PYX_ERR(1, 293, __pyx_L1_error) + if (unlikely(PyDict_SetItem(__pyx_v_plain_kwargs, __pyx_v_key, __pyx_v_value) < 0)) __PYX_ERR(1, 297, __pyx_L1_error) - /* "providers.pxd":294 + /* "providers.pxd":298 * if '__' not in key: * plain_kwargs[key] = value * continue # <<<<<<<<<<<<<< @@ -9969,7 +10996,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa */ goto __pyx_L3_continue; - /* "providers.pxd":292 + /* "providers.pxd":296 * * for key, value in kwargs.items(): * if '__' not in key: # <<<<<<<<<<<<<< @@ -9978,14 +11005,14 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa */ } - /* "providers.pxd":296 + /* "providers.pxd":300 * continue * * index = key.index('__') # <<<<<<<<<<<<<< * prefix, name = key[:index], key[index+2:] * */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_key, __pyx_n_s_index); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 296, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_key, __pyx_n_s_index); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { @@ -9997,26 +11024,26 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa __Pyx_DECREF_SET(__pyx_t_6, function); } } - __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_n_s__6) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_s__6); + __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_n_s__7) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_s__7); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 296, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_1); __pyx_t_1 = 0; - /* "providers.pxd":297 + /* "providers.pxd":301 * * index = key.index('__') * prefix, name = key[:index], key[index+2:] # <<<<<<<<<<<<<< * * if prefix not in prefixed_kwargs: */ - __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_key, 0, 0, NULL, &__pyx_v_index, NULL, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 297, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_key, 0, 0, NULL, &__pyx_v_index, NULL, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_v_index, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 297, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_v_index, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_key, 0, 0, &__pyx_t_6, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 297, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_key, 0, 0, &__pyx_t_6, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_1); @@ -10024,30 +11051,30 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_5); __pyx_t_5 = 0; - /* "providers.pxd":299 + /* "providers.pxd":303 * prefix, name = key[:index], key[index+2:] * * if prefix not in prefixed_kwargs: # <<<<<<<<<<<<<< * prefixed_kwargs[prefix] = {} * prefixed_kwargs[prefix][name] = value */ - __pyx_t_10 = (__Pyx_PyDict_ContainsTF(__pyx_v_prefix, __pyx_v_prefixed_kwargs, Py_NE)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(1, 299, __pyx_L1_error) + __pyx_t_10 = (__Pyx_PyDict_ContainsTF(__pyx_v_prefix, __pyx_v_prefixed_kwargs, Py_NE)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(1, 303, __pyx_L1_error) __pyx_t_9 = (__pyx_t_10 != 0); if (__pyx_t_9) { - /* "providers.pxd":300 + /* "providers.pxd":304 * * if prefix not in prefixed_kwargs: * prefixed_kwargs[prefix] = {} # <<<<<<<<<<<<<< * prefixed_kwargs[prefix][name] = value * */ - __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 300, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (unlikely(PyDict_SetItem(__pyx_v_prefixed_kwargs, __pyx_v_prefix, __pyx_t_5) < 0)) __PYX_ERR(1, 300, __pyx_L1_error) + if (unlikely(PyDict_SetItem(__pyx_v_prefixed_kwargs, __pyx_v_prefix, __pyx_t_5) < 0)) __PYX_ERR(1, 304, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "providers.pxd":299 + /* "providers.pxd":303 * prefix, name = key[:index], key[index+2:] * * if prefix not in prefixed_kwargs: # <<<<<<<<<<<<<< @@ -10056,19 +11083,19 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa */ } - /* "providers.pxd":301 + /* "providers.pxd":305 * if prefix not in prefixed_kwargs: * prefixed_kwargs[prefix] = {} * prefixed_kwargs[prefix][name] = value # <<<<<<<<<<<<<< * * return plain_kwargs, prefixed_kwargs */ - __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_prefixed_kwargs, __pyx_v_prefix); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 301, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_prefixed_kwargs, __pyx_v_prefix); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_name, __pyx_v_value) < 0)) __PYX_ERR(1, 301, __pyx_L1_error) + if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_name, __pyx_v_value) < 0)) __PYX_ERR(1, 305, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "providers.pxd":291 + /* "providers.pxd":295 * cdef dict prefixed_kwargs = {} * * for key, value in kwargs.items(): # <<<<<<<<<<<<<< @@ -10079,7 +11106,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "providers.pxd":303 + /* "providers.pxd":307 * prefixed_kwargs[prefix][name] = value * * return plain_kwargs, prefixed_kwargs # <<<<<<<<<<<<<< @@ -10087,7 +11114,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 303, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_plain_kwargs); __Pyx_GIVEREF(__pyx_v_plain_kwargs); @@ -10099,7 +11126,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa __pyx_t_2 = 0; goto __pyx_L0; - /* "providers.pxd":287 + /* "providers.pxd":291 * * * cdef inline tuple __separate_prefixed_kwargs(dict kwargs): # <<<<<<<<<<<<<< @@ -10129,7 +11156,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa return __pyx_r; } -/* "providers.pxd":308 +/* "providers.pxd":312 * @cython.boundscheck(False) * @cython.wraparound(False) * cdef inline tuple __provide_positional_args( # <<<<<<<<<<<<<< @@ -10154,7 +11181,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__provide_positional_args", 0); - /* "providers.pxd":317 + /* "providers.pxd":321 * cdef PositionalInjection injection * * if inj_args_len == 0: # <<<<<<<<<<<<<< @@ -10164,7 +11191,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid __pyx_t_1 = ((__pyx_v_inj_args_len == 0) != 0); if (__pyx_t_1) { - /* "providers.pxd":318 + /* "providers.pxd":322 * * if inj_args_len == 0: * return args # <<<<<<<<<<<<<< @@ -10176,7 +11203,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid __pyx_r = __pyx_v_args; goto __pyx_L0; - /* "providers.pxd":317 + /* "providers.pxd":321 * cdef PositionalInjection injection * * if inj_args_len == 0: # <<<<<<<<<<<<<< @@ -10185,19 +11212,19 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ } - /* "providers.pxd":320 + /* "providers.pxd":324 * return args * * positional_args = list() # <<<<<<<<<<<<<< * for index in range(inj_args_len): * injection = inj_args[index] */ - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 320, __pyx_L1_error) + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_positional_args = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "providers.pxd":321 + /* "providers.pxd":325 * * positional_args = list() * for index in range(inj_args_len): # <<<<<<<<<<<<<< @@ -10209,7 +11236,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_index = __pyx_t_5; - /* "providers.pxd":322 + /* "providers.pxd":326 * positional_args = list() * for index in range(inj_args_len): * injection = inj_args[index] # <<<<<<<<<<<<<< @@ -10218,36 +11245,36 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ if (unlikely(__pyx_v_inj_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 322, __pyx_L1_error) + __PYX_ERR(1, 326, __pyx_L1_error) } __pyx_t_2 = PyTuple_GET_ITEM(__pyx_v_inj_args, __pyx_v_index); __Pyx_INCREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_injection, ((struct __pyx_obj_19dependency_injector_9providers_PositionalInjection *)__pyx_t_2)); __pyx_t_2 = 0; - /* "providers.pxd":323 + /* "providers.pxd":327 * for index in range(inj_args_len): * injection = inj_args[index] * positional_args.append(__get_value(injection)) # <<<<<<<<<<<<<< * positional_args.extend(args) * */ - __pyx_t_2 = __pyx_f_19dependency_injector_9providers___get_value(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_injection)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 323, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers___get_value(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_injection)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_positional_args, __pyx_t_2); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 323, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_positional_args, __pyx_t_2); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 327, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - /* "providers.pxd":324 + /* "providers.pxd":328 * injection = inj_args[index] * positional_args.append(__get_value(injection)) * positional_args.extend(args) # <<<<<<<<<<<<<< * * return tuple(positional_args) */ - __pyx_t_6 = __Pyx_PyList_Extend(__pyx_v_positional_args, __pyx_v_args); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 324, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyList_Extend(__pyx_v_positional_args, __pyx_v_args); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 328, __pyx_L1_error) - /* "providers.pxd":326 + /* "providers.pxd":330 * positional_args.extend(args) * * return tuple(positional_args) # <<<<<<<<<<<<<< @@ -10255,13 +11282,13 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyList_AsTuple(__pyx_v_positional_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 326, __pyx_L1_error) + __pyx_t_2 = PyList_AsTuple(__pyx_v_positional_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0; - /* "providers.pxd":308 + /* "providers.pxd":312 * @cython.boundscheck(False) * @cython.wraparound(False) * cdef inline tuple __provide_positional_args( # <<<<<<<<<<<<<< @@ -10282,7 +11309,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid return __pyx_r; } -/* "providers.pxd":331 +/* "providers.pxd":335 * @cython.boundscheck(False) * @cython.wraparound(False) * cdef inline dict __provide_keyword_args( # <<<<<<<<<<<<<< @@ -10313,7 +11340,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid __Pyx_RefNannySetupContext("__provide_keyword_args", 0); __Pyx_INCREF(__pyx_v_kwargs); - /* "providers.pxd":342 + /* "providers.pxd":346 * cdef NamedInjection kw_injection * * if len(kwargs) == 0: # <<<<<<<<<<<<<< @@ -10322,13 +11349,13 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(1, 342, __pyx_L1_error) + __PYX_ERR(1, 346, __pyx_L1_error) } - __pyx_t_1 = PyDict_Size(__pyx_v_kwargs); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(1, 342, __pyx_L1_error) + __pyx_t_1 = PyDict_Size(__pyx_v_kwargs); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(1, 346, __pyx_L1_error) __pyx_t_2 = ((__pyx_t_1 == 0) != 0); if (__pyx_t_2) { - /* "providers.pxd":343 + /* "providers.pxd":347 * * if len(kwargs) == 0: * for index in range(inj_kwargs_len): # <<<<<<<<<<<<<< @@ -10340,7 +11367,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_index = __pyx_t_5; - /* "providers.pxd":344 + /* "providers.pxd":348 * if len(kwargs) == 0: * for index in range(inj_kwargs_len): * kw_injection = inj_kwargs[index] # <<<<<<<<<<<<<< @@ -10349,43 +11376,43 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ if (unlikely(__pyx_v_inj_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 344, __pyx_L1_error) + __PYX_ERR(1, 348, __pyx_L1_error) } __pyx_t_6 = PyTuple_GET_ITEM(__pyx_v_inj_kwargs, __pyx_v_index); __Pyx_INCREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_kw_injection, ((struct __pyx_obj_19dependency_injector_9providers_NamedInjection *)__pyx_t_6)); __pyx_t_6 = 0; - /* "providers.pxd":345 + /* "providers.pxd":349 * for index in range(inj_kwargs_len): * kw_injection = inj_kwargs[index] * name = __get_name(kw_injection) # <<<<<<<<<<<<<< * kwargs[name] = __get_value(kw_injection) * else: */ - __pyx_t_6 = __pyx_f_19dependency_injector_9providers___get_name(__pyx_v_kw_injection); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 345, __pyx_L1_error) + __pyx_t_6 = __pyx_f_19dependency_injector_9providers___get_name(__pyx_v_kw_injection); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_6); __pyx_t_6 = 0; - /* "providers.pxd":346 + /* "providers.pxd":350 * kw_injection = inj_kwargs[index] * name = __get_name(kw_injection) * kwargs[name] = __get_value(kw_injection) # <<<<<<<<<<<<<< * else: * kwargs, prefixed = __separate_prefixed_kwargs(kwargs) */ - __pyx_t_6 = __pyx_f_19dependency_injector_9providers___get_value(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_kw_injection)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 346, __pyx_L1_error) + __pyx_t_6 = __pyx_f_19dependency_injector_9providers___get_value(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_kw_injection)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 346, __pyx_L1_error) + __PYX_ERR(1, 350, __pyx_L1_error) } - if (unlikely(PyDict_SetItem(__pyx_v_kwargs, __pyx_v_name, __pyx_t_6) < 0)) __PYX_ERR(1, 346, __pyx_L1_error) + if (unlikely(PyDict_SetItem(__pyx_v_kwargs, __pyx_v_name, __pyx_t_6) < 0)) __PYX_ERR(1, 350, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } - /* "providers.pxd":342 + /* "providers.pxd":346 * cdef NamedInjection kw_injection * * if len(kwargs) == 0: # <<<<<<<<<<<<<< @@ -10395,7 +11422,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid goto __pyx_L3; } - /* "providers.pxd":348 + /* "providers.pxd":352 * kwargs[name] = __get_value(kw_injection) * else: * kwargs, prefixed = __separate_prefixed_kwargs(kwargs) # <<<<<<<<<<<<<< @@ -10403,7 +11430,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid * */ /*else*/ { - __pyx_t_6 = __pyx_f_19dependency_injector_9providers___separate_prefixed_kwargs(__pyx_v_kwargs); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 348, __pyx_L1_error) + __pyx_t_6 = __pyx_f_19dependency_injector_9providers___separate_prefixed_kwargs(__pyx_v_kwargs); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (likely(__pyx_t_6 != Py_None)) { PyObject* sequence = __pyx_t_6; @@ -10411,7 +11438,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(1, 348, __pyx_L1_error) + __PYX_ERR(1, 352, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); @@ -10419,23 +11446,23 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); #else - __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 348, __pyx_L1_error) + __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 348, __pyx_L1_error) + __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); #endif __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 348, __pyx_L1_error) + __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 352, __pyx_L1_error) } - if (!(likely(PyDict_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(1, 348, __pyx_L1_error) - if (!(likely(PyDict_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(1, 348, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(1, 352, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(1, 352, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_kwargs, ((PyObject*)__pyx_t_7)); __pyx_t_7 = 0; __pyx_v_prefixed = ((PyObject*)__pyx_t_8); __pyx_t_8 = 0; - /* "providers.pxd":351 + /* "providers.pxd":355 * * * for index in range(inj_kwargs_len): # <<<<<<<<<<<<<< @@ -10447,7 +11474,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_index = __pyx_t_5; - /* "providers.pxd":352 + /* "providers.pxd":356 * * for index in range(inj_kwargs_len): * kw_injection = inj_kwargs[index] # <<<<<<<<<<<<<< @@ -10456,26 +11483,26 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ if (unlikely(__pyx_v_inj_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 352, __pyx_L1_error) + __PYX_ERR(1, 356, __pyx_L1_error) } __pyx_t_6 = PyTuple_GET_ITEM(__pyx_v_inj_kwargs, __pyx_v_index); __Pyx_INCREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_kw_injection, ((struct __pyx_obj_19dependency_injector_9providers_NamedInjection *)__pyx_t_6)); __pyx_t_6 = 0; - /* "providers.pxd":353 + /* "providers.pxd":357 * for index in range(inj_kwargs_len): * kw_injection = inj_kwargs[index] * name = __get_name(kw_injection) # <<<<<<<<<<<<<< * * if name in kwargs: */ - __pyx_t_6 = __pyx_f_19dependency_injector_9providers___get_name(__pyx_v_kw_injection); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 353, __pyx_L1_error) + __pyx_t_6 = __pyx_f_19dependency_injector_9providers___get_name(__pyx_v_kw_injection); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_6); __pyx_t_6 = 0; - /* "providers.pxd":355 + /* "providers.pxd":359 * name = __get_name(kw_injection) * * if name in kwargs: # <<<<<<<<<<<<<< @@ -10484,13 +11511,13 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(1, 355, __pyx_L1_error) + __PYX_ERR(1, 359, __pyx_L1_error) } - __pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_kwargs, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 355, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_kwargs, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 359, __pyx_L1_error) __pyx_t_9 = (__pyx_t_2 != 0); if (__pyx_t_9) { - /* "providers.pxd":356 + /* "providers.pxd":360 * * if name in kwargs: * continue # <<<<<<<<<<<<<< @@ -10499,7 +11526,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ goto __pyx_L6_continue; - /* "providers.pxd":355 + /* "providers.pxd":359 * name = __get_name(kw_injection) * * if name in kwargs: # <<<<<<<<<<<<<< @@ -10508,7 +11535,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ } - /* "providers.pxd":358 + /* "providers.pxd":362 * continue * * if name in prefixed: # <<<<<<<<<<<<<< @@ -10517,13 +11544,13 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ if (unlikely(__pyx_v_prefixed == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(1, 358, __pyx_L1_error) + __PYX_ERR(1, 362, __pyx_L1_error) } - __pyx_t_9 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_prefixed, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(1, 358, __pyx_L1_error) + __pyx_t_9 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_prefixed, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(1, 362, __pyx_L1_error) __pyx_t_2 = (__pyx_t_9 != 0); if (__pyx_t_2) { - /* "providers.pxd":359 + /* "providers.pxd":363 * * if name in prefixed: * value = __get_value_kwargs(kw_injection, prefixed[name]) # <<<<<<<<<<<<<< @@ -10532,18 +11559,18 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ if (unlikely(__pyx_v_prefixed == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 359, __pyx_L1_error) + __PYX_ERR(1, 363, __pyx_L1_error) } - __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_prefixed, __pyx_v_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 359, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_prefixed, __pyx_v_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - if (!(likely(PyDict_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(1, 359, __pyx_L1_error) - __pyx_t_8 = __pyx_f_19dependency_injector_9providers___get_value_kwargs(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_kw_injection), ((PyObject*)__pyx_t_6)); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 359, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(1, 363, __pyx_L1_error) + __pyx_t_8 = __pyx_f_19dependency_injector_9providers___get_value_kwargs(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_kw_injection), ((PyObject*)__pyx_t_6)); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_8); __pyx_t_8 = 0; - /* "providers.pxd":358 + /* "providers.pxd":362 * continue * * if name in prefixed: # <<<<<<<<<<<<<< @@ -10553,7 +11580,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid goto __pyx_L9; } - /* "providers.pxd":361 + /* "providers.pxd":365 * value = __get_value_kwargs(kw_injection, prefixed[name]) * else: * value = __get_value(kw_injection) # <<<<<<<<<<<<<< @@ -10561,14 +11588,14 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid * kwargs[name] = value */ /*else*/ { - __pyx_t_8 = __pyx_f_19dependency_injector_9providers___get_value(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_kw_injection)); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 361, __pyx_L1_error) + __pyx_t_8 = __pyx_f_19dependency_injector_9providers___get_value(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_kw_injection)); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_8); __pyx_t_8 = 0; } __pyx_L9:; - /* "providers.pxd":363 + /* "providers.pxd":367 * value = __get_value(kw_injection) * * kwargs[name] = value # <<<<<<<<<<<<<< @@ -10577,15 +11604,15 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 363, __pyx_L1_error) + __PYX_ERR(1, 367, __pyx_L1_error) } - if (unlikely(PyDict_SetItem(__pyx_v_kwargs, __pyx_v_name, __pyx_v_value) < 0)) __PYX_ERR(1, 363, __pyx_L1_error) + if (unlikely(PyDict_SetItem(__pyx_v_kwargs, __pyx_v_name, __pyx_v_value) < 0)) __PYX_ERR(1, 367, __pyx_L1_error) __pyx_L6_continue:; } } __pyx_L3:; - /* "providers.pxd":365 + /* "providers.pxd":369 * kwargs[name] = value * * return kwargs # <<<<<<<<<<<<<< @@ -10597,7 +11624,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid __pyx_r = __pyx_v_kwargs; goto __pyx_L0; - /* "providers.pxd":331 + /* "providers.pxd":335 * @cython.boundscheck(False) * @cython.wraparound(False) * cdef inline dict __provide_keyword_args( # <<<<<<<<<<<<<< @@ -10623,7 +11650,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid return __pyx_r; } -/* "providers.pxd":370 +/* "providers.pxd":374 * @cython.boundscheck(False) * @cython.wraparound(False) * cdef inline object __inject_attributes( # <<<<<<<<<<<<<< @@ -10647,7 +11674,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___inject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__inject_attributes", 0); - /* "providers.pxd":376 + /* "providers.pxd":380 * ): * cdef NamedInjection attr_injection * for index in range(attributes_len): # <<<<<<<<<<<<<< @@ -10659,7 +11686,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___inject for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_index = __pyx_t_3; - /* "providers.pxd":377 + /* "providers.pxd":381 * cdef NamedInjection attr_injection * for index in range(attributes_len): * attr_injection = attributes[index] # <<<<<<<<<<<<<< @@ -10668,46 +11695,46 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___inject */ if (unlikely(__pyx_v_attributes == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 377, __pyx_L1_error) + __PYX_ERR(1, 381, __pyx_L1_error) } __pyx_t_4 = PyTuple_GET_ITEM(__pyx_v_attributes, __pyx_v_index); __Pyx_INCREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_attr_injection, ((struct __pyx_obj_19dependency_injector_9providers_NamedInjection *)__pyx_t_4)); __pyx_t_4 = 0; - /* "providers.pxd":379 + /* "providers.pxd":383 * attr_injection = attributes[index] * setattr(instance, * __get_name(attr_injection), # <<<<<<<<<<<<<< * __get_value(attr_injection)) * */ - __pyx_t_4 = __pyx_f_19dependency_injector_9providers___get_name(__pyx_v_attr_injection); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 379, __pyx_L1_error) + __pyx_t_4 = __pyx_f_19dependency_injector_9providers___get_name(__pyx_v_attr_injection); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - /* "providers.pxd":380 + /* "providers.pxd":384 * setattr(instance, * __get_name(attr_injection), * __get_value(attr_injection)) # <<<<<<<<<<<<<< * * */ - __pyx_t_5 = __pyx_f_19dependency_injector_9providers___get_value(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_attr_injection)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 380, __pyx_L1_error) + __pyx_t_5 = __pyx_f_19dependency_injector_9providers___get_value(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_attr_injection)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - /* "providers.pxd":378 + /* "providers.pxd":382 * for index in range(attributes_len): * attr_injection = attributes[index] * setattr(instance, # <<<<<<<<<<<<<< * __get_name(attr_injection), * __get_value(attr_injection)) */ - __pyx_t_6 = PyObject_SetAttr(__pyx_v_instance, __pyx_t_4, __pyx_t_5); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 378, __pyx_L1_error) + __pyx_t_6 = PyObject_SetAttr(__pyx_v_instance, __pyx_t_4, __pyx_t_5); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 382, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } - /* "providers.pxd":370 + /* "providers.pxd":374 * @cython.boundscheck(False) * @cython.wraparound(False) * cdef inline object __inject_attributes( # <<<<<<<<<<<<<< @@ -10730,7 +11757,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___inject return __pyx_r; } -/* "providers.pxd":383 +/* "providers.pxd":387 * * * cdef inline object __call( # <<<<<<<<<<<<<< @@ -10749,31 +11776,31 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___call(P int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__call", 0); - /* "providers.pxd":395 + /* "providers.pxd":399 * cdef dict keyword_args * * positional_args = __provide_positional_args( # <<<<<<<<<<<<<< * context_args, * injection_args, */ - __pyx_t_1 = __pyx_f_19dependency_injector_9providers___provide_positional_args(__pyx_v_context_args, __pyx_v_injection_args, __pyx_v_injection_args_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 395, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers___provide_positional_args(__pyx_v_context_args, __pyx_v_injection_args, __pyx_v_injection_args_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_positional_args = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "providers.pxd":400 + /* "providers.pxd":404 * injection_args_len, * ) * keyword_args = __provide_keyword_args( # <<<<<<<<<<<<<< * kwargs, * injection_kwargs, */ - __pyx_t_1 = __pyx_f_19dependency_injector_9providers___provide_keyword_args(__pyx_v_kwargs, __pyx_v_injection_kwargs, __pyx_v_injection_kwargs_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 400, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers___provide_keyword_args(__pyx_v_kwargs, __pyx_v_injection_kwargs, __pyx_v_injection_kwargs_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_keyword_args = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "providers.pxd":406 + /* "providers.pxd":410 * ) * * return call(*positional_args, **keyword_args) # <<<<<<<<<<<<<< @@ -10783,19 +11810,19 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___call(P __Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_positional_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(1, 406, __pyx_L1_error) + __PYX_ERR(1, 410, __pyx_L1_error) } if (unlikely(__pyx_v_keyword_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); - __PYX_ERR(1, 406, __pyx_L1_error) + __PYX_ERR(1, 410, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_call, __pyx_v_positional_args, __pyx_v_keyword_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 406, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_call, __pyx_v_positional_args, __pyx_v_keyword_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "providers.pxd":383 + /* "providers.pxd":387 * * * cdef inline object __call( # <<<<<<<<<<<<<< @@ -10816,7 +11843,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___call(P return __pyx_r; } -/* "providers.pxd":409 +/* "providers.pxd":413 * * * cdef inline object __callable_call(Callable self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -10836,7 +11863,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___callab int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__callable_call", 0); - /* "providers.pxd":410 + /* "providers.pxd":414 * * cdef inline object __callable_call(Callable self, tuple args, dict kwargs): * return __call( # <<<<<<<<<<<<<< @@ -10845,7 +11872,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___callab */ __Pyx_XDECREF(__pyx_r); - /* "providers.pxd":411 + /* "providers.pxd":415 * cdef inline object __callable_call(Callable self, tuple args, dict kwargs): * return __call( * self.__provides, # <<<<<<<<<<<<<< @@ -10855,7 +11882,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___callab __pyx_t_1 = __pyx_v_self->__pyx___provides; __Pyx_INCREF(__pyx_t_1); - /* "providers.pxd":413 + /* "providers.pxd":417 * self.__provides, * args, * self.__args, # <<<<<<<<<<<<<< @@ -10865,7 +11892,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___callab __pyx_t_2 = __pyx_v_self->__pyx___args; __Pyx_INCREF(__pyx_t_2); - /* "providers.pxd":416 + /* "providers.pxd":420 * self.__args_len, * kwargs, * self.__kwargs, # <<<<<<<<<<<<<< @@ -10875,14 +11902,14 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___callab __pyx_t_3 = __pyx_v_self->__pyx___kwargs; __Pyx_INCREF(__pyx_t_3); - /* "providers.pxd":410 + /* "providers.pxd":414 * * cdef inline object __callable_call(Callable self, tuple args, dict kwargs): * return __call( # <<<<<<<<<<<<<< * self.__provides, * args, */ - __pyx_t_4 = __pyx_f_19dependency_injector_9providers___call(__pyx_t_1, __pyx_v_args, ((PyObject*)__pyx_t_2), __pyx_v_self->__pyx___args_len, __pyx_v_kwargs, ((PyObject*)__pyx_t_3), __pyx_v_self->__pyx___kwargs_len); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 410, __pyx_L1_error) + __pyx_t_4 = __pyx_f_19dependency_injector_9providers___call(__pyx_t_1, __pyx_v_args, ((PyObject*)__pyx_t_2), __pyx_v_self->__pyx___args_len, __pyx_v_kwargs, ((PyObject*)__pyx_t_3), __pyx_v_self->__pyx___kwargs_len); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -10891,7 +11918,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___callab __pyx_t_4 = 0; goto __pyx_L0; - /* "providers.pxd":409 + /* "providers.pxd":413 * * * cdef inline object __callable_call(Callable self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -10913,7 +11940,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___callab return __pyx_r; } -/* "providers.pxd":421 +/* "providers.pxd":425 * * * cdef inline object __factory_call(Factory self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -10933,7 +11960,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___factor int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__factory_call", 0); - /* "providers.pxd":424 + /* "providers.pxd":428 * cdef object instance * * instance = __callable_call(self.__instantiator, args, kwargs) # <<<<<<<<<<<<<< @@ -10942,13 +11969,13 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___factor */ __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx___instantiator); __Pyx_INCREF(__pyx_t_1); - __pyx_t_2 = __pyx_f_19dependency_injector_9providers___callable_call(((struct __pyx_obj_19dependency_injector_9providers_Callable *)__pyx_t_1), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 424, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers___callable_call(((struct __pyx_obj_19dependency_injector_9providers_Callable *)__pyx_t_1), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 428, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_instance = __pyx_t_2; __pyx_t_2 = 0; - /* "providers.pxd":426 + /* "providers.pxd":430 * instance = __callable_call(self.__instantiator, args, kwargs) * * if self.__attributes_len > 0: # <<<<<<<<<<<<<< @@ -10958,7 +11985,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___factor __pyx_t_3 = ((__pyx_v_self->__pyx___attributes_len > 0) != 0); if (__pyx_t_3) { - /* "providers.pxd":428 + /* "providers.pxd":432 * if self.__attributes_len > 0: * __inject_attributes(instance, * self.__attributes, # <<<<<<<<<<<<<< @@ -10968,19 +11995,19 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___factor __pyx_t_2 = __pyx_v_self->__pyx___attributes; __Pyx_INCREF(__pyx_t_2); - /* "providers.pxd":427 + /* "providers.pxd":431 * * if self.__attributes_len > 0: * __inject_attributes(instance, # <<<<<<<<<<<<<< * self.__attributes, * self.__attributes_len) */ - __pyx_t_1 = __pyx_f_19dependency_injector_9providers___inject_attributes(__pyx_v_instance, ((PyObject*)__pyx_t_2), __pyx_v_self->__pyx___attributes_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 427, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers___inject_attributes(__pyx_v_instance, ((PyObject*)__pyx_t_2), __pyx_v_self->__pyx___attributes_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "providers.pxd":426 + /* "providers.pxd":430 * instance = __callable_call(self.__instantiator, args, kwargs) * * if self.__attributes_len > 0: # <<<<<<<<<<<<<< @@ -10989,7 +12016,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___factor */ } - /* "providers.pxd":431 + /* "providers.pxd":435 * self.__attributes_len) * * return instance # <<<<<<<<<<<<<< @@ -10999,7 +12026,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___factor __pyx_r = __pyx_v_instance; goto __pyx_L0; - /* "providers.pxd":421 + /* "providers.pxd":425 * * * cdef inline object __factory_call(Factory self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -11735,8 +12762,8 @@ static PyTypeObject __pyx_type_19dependency_injector_10containers___pyx_scope_st }; static PyMethodDef __pyx_methods[] = { - {"is_container", (PyCFunction)__pyx_pw_19dependency_injector_10containers_5is_container, METH_O, __pyx_doc_19dependency_injector_10containers_4is_container}, - {"_check_provider_type", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_10containers_7_check_provider_type, METH_VARARGS|METH_KEYWORDS, 0}, + {"is_container", (PyCFunction)__pyx_pw_19dependency_injector_10containers_9is_container, METH_O, __pyx_doc_19dependency_injector_10containers_8is_container}, + {"_check_provider_type", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_10containers_11_check_provider_type, METH_VARARGS|METH_KEYWORDS, 0}, {0, 0, 0, 0} }; @@ -11797,6 +12824,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_DeclarativeContainer_override, __pyx_k_DeclarativeContainer_override, sizeof(__pyx_k_DeclarativeContainer_override), 0, 0, 1, 1}, {&__pyx_n_s_DeclarativeContainer_reset_last, __pyx_k_DeclarativeContainer_reset_last, sizeof(__pyx_k_DeclarativeContainer_reset_last), 0, 0, 1, 1}, {&__pyx_n_s_DeclarativeContainer_reset_overr, __pyx_k_DeclarativeContainer_reset_overr, sizeof(__pyx_k_DeclarativeContainer_reset_overr), 0, 0, 1, 1}, + {&__pyx_n_s_DeclarativeContainer_resolve_pro, __pyx_k_DeclarativeContainer_resolve_pro, sizeof(__pyx_k_DeclarativeContainer_resolve_pro), 0, 0, 1, 1}, {&__pyx_kp_s_Declarative_inversion_of_control, __pyx_k_Declarative_inversion_of_control, sizeof(__pyx_k_Declarative_inversion_of_control), 0, 0, 1, 0}, {&__pyx_kp_s_Declarative_inversion_of_control_2, __pyx_k_Declarative_inversion_of_control_2, sizeof(__pyx_k_Declarative_inversion_of_control_2), 0, 0, 1, 0}, {&__pyx_n_s_DynamicContainer, __pyx_k_DynamicContainer, sizeof(__pyx_k_DynamicContainer), 0, 0, 1, 1}, @@ -11809,16 +12837,21 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_DynamicContainer_reset_last_over, __pyx_k_DynamicContainer_reset_last_over, sizeof(__pyx_k_DynamicContainer_reset_last_over), 0, 0, 1, 1}, {&__pyx_n_s_DynamicContainer_reset_override, __pyx_k_DynamicContainer_reset_override, sizeof(__pyx_k_DynamicContainer_reset_override), 0, 0, 1, 1}, {&__pyx_n_s_DynamicContainer_set_providers, __pyx_k_DynamicContainer_set_providers, sizeof(__pyx_k_DynamicContainer_set_providers), 0, 0, 1, 1}, + {&__pyx_n_s_DynamicContainer_unwire, __pyx_k_DynamicContainer_unwire, sizeof(__pyx_k_DynamicContainer_unwire), 0, 0, 1, 1}, + {&__pyx_n_s_DynamicContainer_wire, __pyx_k_DynamicContainer_wire, sizeof(__pyx_k_DynamicContainer_wire), 0, 0, 1, 1}, {&__pyx_kp_s_Dynamic_inversion_of_control_con, __pyx_k_Dynamic_inversion_of_control_con, sizeof(__pyx_k_Dynamic_inversion_of_control_con), 0, 0, 1, 0}, {&__pyx_n_s_Error, __pyx_k_Error, sizeof(__pyx_k_Error), 0, 0, 1, 1}, {&__pyx_n_s_IS_CONTAINER, __pyx_k_IS_CONTAINER, sizeof(__pyx_k_IS_CONTAINER), 0, 0, 1, 1}, - {&__pyx_n_s__6, __pyx_k__6, sizeof(__pyx_k__6), 0, 0, 1, 1}, + {&__pyx_n_s_NotImplementedError, __pyx_k_NotImplementedError, sizeof(__pyx_k_NotImplementedError), 0, 0, 1, 1}, + {&__pyx_kp_s_Wiring_requires_Python_3_6_or_ab, __pyx_k_Wiring_requires_Python_3_6_or_ab, sizeof(__pyx_k_Wiring_requires_Python_3_6_or_ab), 0, 0, 1, 0}, + {&__pyx_n_s__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 0, 1, 1}, {&__pyx_n_s_add_metaclass, __pyx_k_add_metaclass, sizeof(__pyx_k_add_metaclass), 0, 0, 1, 1}, {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1}, {&__pyx_n_s_attributes, __pyx_k_attributes, sizeof(__pyx_k_attributes), 0, 0, 1, 1}, {&__pyx_n_s_bases, __pyx_k_bases, sizeof(__pyx_k_bases), 0, 0, 1, 1}, {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1}, {&__pyx_n_s_class_name, __pyx_k_class_name, sizeof(__pyx_k_class_name), 0, 0, 1, 1}, + {&__pyx_n_s_clear, __pyx_k_clear, sizeof(__pyx_k_clear), 0, 0, 1, 1}, {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1}, {&__pyx_n_s_cls, __pyx_k_cls, sizeof(__pyx_k_cls), 0, 0, 1, 1}, @@ -11830,12 +12863,14 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_copied_container, __pyx_k_copied_container, sizeof(__pyx_k_copied_container), 0, 0, 1, 1}, {&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1}, {&__pyx_n_s_copy_locals__decorator, __pyx_k_copy_locals__decorator, sizeof(__pyx_k_copy_locals__decorator), 0, 0, 1, 1}, + {&__pyx_n_s_declarative_parent, __pyx_k_declarative_parent, sizeof(__pyx_k_declarative_parent), 0, 0, 1, 1}, {&__pyx_n_s_decorator, __pyx_k_decorator, sizeof(__pyx_k_decorator), 0, 0, 1, 1}, {&__pyx_n_s_deepcopy, __pyx_k_deepcopy, sizeof(__pyx_k_deepcopy), 0, 0, 1, 1}, {&__pyx_n_s_delattr, __pyx_k_delattr, sizeof(__pyx_k_delattr), 0, 0, 1, 1}, {&__pyx_n_s_dependency_injector_containers, __pyx_k_dependency_injector_containers, sizeof(__pyx_k_dependency_injector_containers), 0, 0, 1, 1}, {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1}, {&__pyx_n_s_errors, __pyx_k_errors, sizeof(__pyx_k_errors), 0, 0, 1, 1}, + {&__pyx_n_s_extend, __pyx_k_extend, sizeof(__pyx_k_extend), 0, 0, 1, 1}, {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1}, {&__pyx_n_s_genexpr, __pyx_k_genexpr, sizeof(__pyx_k_genexpr), 0, 0, 1, 1}, {&__pyx_n_s_get, __pyx_k_get, sizeof(__pyx_k_get), 0, 0, 1, 1}, @@ -11848,11 +12883,13 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_items, __pyx_k_items, sizeof(__pyx_k_items), 0, 0, 1, 1}, {&__pyx_n_s_iteritems, __pyx_k_iteritems, sizeof(__pyx_k_iteritems), 0, 0, 1, 1}, {&__pyx_n_s_itervalues, __pyx_k_itervalues, sizeof(__pyx_k_itervalues), 0, 0, 1, 1}, + {&__pyx_n_s_kwargs, __pyx_k_kwargs, sizeof(__pyx_k_kwargs), 0, 0, 1, 1}, {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, {&__pyx_n_s_mcs, __pyx_k_mcs, sizeof(__pyx_k_mcs), 0, 0, 1, 1}, {&__pyx_n_s_memo, __pyx_k_memo, sizeof(__pyx_k_memo), 0, 0, 1, 1}, {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1}, {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1}, + {&__pyx_n_s_modules, __pyx_k_modules, sizeof(__pyx_k_modules), 0, 0, 1, 1}, {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1}, {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1}, @@ -11865,8 +12902,11 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_overriding_container, __pyx_k_overriding_container, sizeof(__pyx_k_overriding_container), 0, 0, 1, 1}, {&__pyx_n_s_overriding_provider, __pyx_k_overriding_provider, sizeof(__pyx_k_overriding_provider), 0, 0, 1, 1}, {&__pyx_n_s_overriding_providers, __pyx_k_overriding_providers, sizeof(__pyx_k_overriding_providers), 0, 0, 1, 1}, + {&__pyx_n_s_packages, __pyx_k_packages, sizeof(__pyx_k_packages), 0, 0, 1, 1}, {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1}, {&__pyx_n_s_provider, __pyx_k_provider, sizeof(__pyx_k_provider), 0, 0, 1, 1}, + {&__pyx_n_s_provider_name, __pyx_k_provider_name, sizeof(__pyx_k_provider_name), 0, 0, 1, 1}, + {&__pyx_n_s_provider_to_resolve, __pyx_k_provider_to_resolve, sizeof(__pyx_k_provider_to_resolve), 0, 0, 1, 1}, {&__pyx_n_s_provider_type, __pyx_k_provider_type, sizeof(__pyx_k_provider_type), 0, 0, 1, 1}, {&__pyx_n_s_providers, __pyx_k_providers, sizeof(__pyx_k_providers), 0, 0, 1, 1}, {&__pyx_n_s_providers_copy, __pyx_k_providers_copy, sizeof(__pyx_k_providers_copy), 0, 0, 1, 1}, @@ -11875,6 +12915,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, {&__pyx_n_s_reset_last_overriding, __pyx_k_reset_last_overriding, sizeof(__pyx_k_reset_last_overriding), 0, 0, 1, 1}, {&__pyx_n_s_reset_override, __pyx_k_reset_override, sizeof(__pyx_k_reset_override), 0, 0, 1, 1}, + {&__pyx_n_s_resolve_provider_name, __pyx_k_resolve_provider_name, sizeof(__pyx_k_resolve_provider_name), 0, 0, 1, 1}, {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1}, {&__pyx_n_s_send, __pyx_k_send, sizeof(__pyx_k_send), 0, 0, 1, 1}, {&__pyx_n_s_set_providers, __pyx_k_set_providers, sizeof(__pyx_k_set_providers), 0, 0, 1, 1}, @@ -11883,17 +12924,25 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_source_provider, __pyx_k_source_provider, sizeof(__pyx_k_source_provider), 0, 0, 1, 1}, {&__pyx_kp_s_src_dependency_injector_containe, __pyx_k_src_dependency_injector_containe, sizeof(__pyx_k_src_dependency_injector_containe), 0, 0, 1, 0}, {&__pyx_n_s_super, __pyx_k_super, sizeof(__pyx_k_super), 0, 0, 1, 1}, + {&__pyx_n_s_sys, __pyx_k_sys, sizeof(__pyx_k_sys), 0, 0, 1, 1}, {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, {&__pyx_n_s_throw, __pyx_k_throw, sizeof(__pyx_k_throw), 0, 0, 1, 1}, + {&__pyx_n_s_unwire, __pyx_k_unwire, sizeof(__pyx_k_unwire), 0, 0, 1, 1}, {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1}, + {&__pyx_n_s_version_info, __pyx_k_version_info, sizeof(__pyx_k_version_info), 0, 0, 1, 1}, + {&__pyx_n_s_wire, __pyx_k_wire, sizeof(__pyx_k_wire), 0, 0, 1, 1}, + {&__pyx_n_s_wired_to_modules, __pyx_k_wired_to_modules, sizeof(__pyx_k_wired_to_modules), 0, 0, 1, 1}, + {&__pyx_n_s_wired_to_packages, __pyx_k_wired_to_packages, sizeof(__pyx_k_wired_to_packages), 0, 0, 1, 1}, + {&__pyx_n_s_wiring, __pyx_k_wiring, sizeof(__pyx_k_wiring), 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0} }; static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s_object); if (!__pyx_builtin_object) __PYX_ERR(0, 13, __pyx_L1_error) - __pyx_builtin_super = __Pyx_GetBuiltinName(__pyx_n_s_super); if (!__pyx_builtin_super) __PYX_ERR(0, 52, __pyx_L1_error) - __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(0, 56, __pyx_L1_error) - __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(0, 135, __pyx_L1_error) - __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(1, 321, __pyx_L1_error) + __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s_object); if (!__pyx_builtin_object) __PYX_ERR(0, 24, __pyx_L1_error) + __pyx_builtin_NotImplementedError = __Pyx_GetBuiltinName(__pyx_n_s_NotImplementedError); if (!__pyx_builtin_NotImplementedError) __PYX_ERR(0, 18, __pyx_L1_error) + __pyx_builtin_super = __Pyx_GetBuiltinName(__pyx_n_s_super); if (!__pyx_builtin_super) __PYX_ERR(0, 66, __pyx_L1_error) + __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(0, 70, __pyx_L1_error) + __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(0, 150, __pyx_L1_error) + __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(1, 325, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; @@ -11903,278 +12952,366 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - /* "dependency_injector/containers.pyx":159 + /* "dependency_injector/containers.pyx":18 + * else: + * def wire(*args, **kwargs): + * raise NotImplementedError('Wiring requires Python 3.6 or above') # <<<<<<<<<<<<<< + * + * def unwire(*args, **kwargs): + */ + __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_Wiring_requires_Python_3_6_or_ab); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple_); + __Pyx_GIVEREF(__pyx_tuple_); + + /* "dependency_injector/containers.pyx":174 * raise Error('Container {0} is not overridden'.format(self)) * * self.overridden = self.overridden[:-1] # <<<<<<<<<<<<<< * * for provider in six.itervalues(self.providers): */ - __pyx_slice_ = PySlice_New(Py_None, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_slice_)) __PYX_ERR(0, 159, __pyx_L1_error) - __Pyx_GOTREF(__pyx_slice_); - __Pyx_GIVEREF(__pyx_slice_); + __pyx_slice__2 = PySlice_New(Py_None, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_slice__2)) __PYX_ERR(0, 174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_slice__2); + __Pyx_GIVEREF(__pyx_slice__2); - /* "dependency_injector/containers.pyx":377 + /* "dependency_injector/containers.pyx":430 * :rtype: callable(:py:class:`DeclarativeContainer`) * """ * def _decorator(object overriding_container): # <<<<<<<<<<<<<< * """Overriding decorator.""" * container.override(overriding_container) */ - __pyx_tuple__2 = PyTuple_Pack(1, __pyx_n_s_overriding_container); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 377, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); - __pyx_codeobj__3 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__2, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_decorator, 377, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__3)) __PYX_ERR(0, 377, __pyx_L1_error) + __pyx_tuple__3 = PyTuple_Pack(1, __pyx_n_s_overriding_container); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__3); + __Pyx_GIVEREF(__pyx_tuple__3); + __pyx_codeobj__4 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__3, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_decorator, 430, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__4)) __PYX_ERR(0, 430, __pyx_L1_error) - /* "dependency_injector/containers.pyx":397 + /* "dependency_injector/containers.pyx":450 * :rtype: callable(:py:class:`DeclarativeContainer`) * """ * def _decorator(copied_container): # <<<<<<<<<<<<<< * cdef dict memo = dict() * for name, provider in six.iteritems(copied_container.cls_providers): */ - __pyx_tuple__4 = PyTuple_Pack(6, __pyx_n_s_copied_container, __pyx_n_s_memo, __pyx_n_s_name, __pyx_n_s_provider, __pyx_n_s_source_provider, __pyx_n_s_providers_copy); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 397, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__4); - __Pyx_GIVEREF(__pyx_tuple__4); - __pyx_codeobj__5 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__4, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_decorator, 397, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__5)) __PYX_ERR(0, 397, __pyx_L1_error) + __pyx_tuple__5 = PyTuple_Pack(6, __pyx_n_s_copied_container, __pyx_n_s_memo, __pyx_n_s_name, __pyx_n_s_provider, __pyx_n_s_source_provider, __pyx_n_s_providers_copy); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__5); + __Pyx_GIVEREF(__pyx_tuple__5); + __pyx_codeobj__6 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__5, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_decorator, 450, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__6)) __PYX_ERR(0, 450, __pyx_L1_error) - /* "dependency_injector/containers.pyx":13 + /* "dependency_injector/containers.pyx":14 + * + * + * if sys.version_info[:2] >= (3, 6): # <<<<<<<<<<<<<< + * from .wiring import wire, unwire + * else: + */ + __pyx_slice__8 = PySlice_New(Py_None, __pyx_int_2, Py_None); if (unlikely(!__pyx_slice__8)) __PYX_ERR(0, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_slice__8); + __Pyx_GIVEREF(__pyx_slice__8); + __pyx_tuple__9 = PyTuple_Pack(2, __pyx_int_3, __pyx_int_6); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(0, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__9); + __Pyx_GIVEREF(__pyx_tuple__9); + + /* "dependency_injector/containers.pyx":17 + * from .wiring import wire, unwire + * else: + * def wire(*args, **kwargs): # <<<<<<<<<<<<<< + * raise NotImplementedError('Wiring requires Python 3.6 or above') + * + */ + __pyx_tuple__10 = PyTuple_Pack(2, __pyx_n_s_args, __pyx_n_s_kwargs); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__10); + __Pyx_GIVEREF(__pyx_tuple__10); + __pyx_codeobj__11 = (PyObject*)__Pyx_PyCode_New(0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__10, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_wire, 17, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__11)) __PYX_ERR(0, 17, __pyx_L1_error) + + /* "dependency_injector/containers.pyx":20 + * raise NotImplementedError('Wiring requires Python 3.6 or above') + * + * def unwire(*args, **kwargs): # <<<<<<<<<<<<<< + * raise NotImplementedError('Wiring requires Python 3.6 or above') + * + */ + __pyx_tuple__12 = PyTuple_Pack(2, __pyx_n_s_args, __pyx_n_s_kwargs); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__12); + __Pyx_GIVEREF(__pyx_tuple__12); + __pyx_codeobj__13 = (PyObject*)__Pyx_PyCode_New(0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__12, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_unwire, 20, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__13)) __PYX_ERR(0, 20, __pyx_L1_error) + + /* "dependency_injector/containers.pyx":24 * * * class DynamicContainer(object): # <<<<<<<<<<<<<< * """Dynamic inversion of control container. * */ - __pyx_tuple__7 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 13, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__7); - __Pyx_GIVEREF(__pyx_tuple__7); + __pyx_tuple__14 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__14); + __Pyx_GIVEREF(__pyx_tuple__14); - /* "dependency_injector/containers.pyx":44 + /* "dependency_injector/containers.pyx":55 * __IS_CONTAINER__ = True * * def __init__(self): # <<<<<<<<<<<<<< * """Initializer. * */ - __pyx_tuple__8 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(0, 44, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__8); - __Pyx_GIVEREF(__pyx_tuple__8); - __pyx_codeobj__9 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__8, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_init, 44, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__9)) __PYX_ERR(0, 44, __pyx_L1_error) + __pyx_tuple__15 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(0, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__15); + __Pyx_GIVEREF(__pyx_tuple__15); + __pyx_codeobj__16 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__15, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_init, 55, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__16)) __PYX_ERR(0, 55, __pyx_L1_error) - /* "dependency_injector/containers.pyx":54 + /* "dependency_injector/containers.pyx":68 * super(DynamicContainer, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< * """Create and return full copy of container.""" * copied = memo.get(id(self)) */ - __pyx_tuple__10 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_memo, __pyx_n_s_copied, __pyx_n_s_name, __pyx_n_s_provider); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 54, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__10); - __Pyx_GIVEREF(__pyx_tuple__10); - __pyx_codeobj__11 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__10, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_deepcopy, 54, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__11)) __PYX_ERR(0, 54, __pyx_L1_error) + __pyx_tuple__17 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_memo, __pyx_n_s_copied, __pyx_n_s_name, __pyx_n_s_provider); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(0, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__17); + __Pyx_GIVEREF(__pyx_tuple__17); + __pyx_codeobj__18 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_deepcopy, 68, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__18)) __PYX_ERR(0, 68, __pyx_L1_error) - /* "dependency_injector/containers.pyx":69 + /* "dependency_injector/containers.pyx":84 * return copied * * def __setattr__(self, str name, object value): # <<<<<<<<<<<<<< * """Set instance attribute. * */ - __pyx_tuple__12 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_name, __pyx_n_s_value); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 69, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__12); - __Pyx_GIVEREF(__pyx_tuple__12); - __pyx_codeobj__13 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__12, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_setattr, 69, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__13)) __PYX_ERR(0, 69, __pyx_L1_error) + __pyx_tuple__19 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_name, __pyx_n_s_value); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__19); + __Pyx_GIVEREF(__pyx_tuple__19); + __pyx_codeobj__20 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__19, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_setattr, 84, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__20)) __PYX_ERR(0, 84, __pyx_L1_error) - /* "dependency_injector/containers.pyx":88 + /* "dependency_injector/containers.pyx":103 * super(DynamicContainer, self).__setattr__(name, value) * * def __delattr__(self, str name): # <<<<<<<<<<<<<< * """Delete instance attribute. * */ - __pyx_tuple__14 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_name); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__14); - __Pyx_GIVEREF(__pyx_tuple__14); - __pyx_codeobj__15 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__14, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_delattr, 88, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__15)) __PYX_ERR(0, 88, __pyx_L1_error) + __pyx_tuple__21 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_name); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__21); + __Pyx_GIVEREF(__pyx_tuple__21); + __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_delattr, 103, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(0, 103, __pyx_L1_error) - /* "dependency_injector/containers.pyx":103 + /* "dependency_injector/containers.pyx":118 * super(DynamicContainer, self).__delattr__(name) * * def set_providers(self, **providers): # <<<<<<<<<<<<<< * """Set container providers. * */ - __pyx_tuple__16 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_providers, __pyx_n_s_name, __pyx_n_s_provider); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 103, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__16); - __Pyx_GIVEREF(__pyx_tuple__16); - __pyx_codeobj__17 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__16, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_set_providers, 103, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__17)) __PYX_ERR(0, 103, __pyx_L1_error) + __pyx_tuple__23 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_providers, __pyx_n_s_name, __pyx_n_s_provider); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__23); + __Pyx_GIVEREF(__pyx_tuple__23); + __pyx_codeobj__24 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__23, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_set_providers, 118, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__24)) __PYX_ERR(0, 118, __pyx_L1_error) - /* "dependency_injector/containers.pyx":115 + /* "dependency_injector/containers.pyx":130 * setattr(self, name, provider) * * def override(self, object overriding): # <<<<<<<<<<<<<< * """Override current container by overriding container. * */ - __pyx_tuple__18 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_overriding, __pyx_n_s_name, __pyx_n_s_provider); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 115, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__18); - __Pyx_GIVEREF(__pyx_tuple__18); - __pyx_codeobj__19 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__18, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_override, 115, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__19)) __PYX_ERR(0, 115, __pyx_L1_error) + __pyx_tuple__25 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_overriding, __pyx_n_s_name, __pyx_n_s_provider); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__25); + __Pyx_GIVEREF(__pyx_tuple__25); + __pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_override, 130, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(0, 130, __pyx_L1_error) - /* "dependency_injector/containers.pyx":138 + /* "dependency_injector/containers.pyx":153 * pass * * def override_providers(self, **overriding_providers): # <<<<<<<<<<<<<< * """Override container providers. * */ - __pyx_tuple__20 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_overriding_providers, __pyx_n_s_name, __pyx_n_s_overriding_provider, __pyx_n_s_container_provider); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__20); - __Pyx_GIVEREF(__pyx_tuple__20); - __pyx_codeobj__21 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__20, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_override_providers, 138, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__21)) __PYX_ERR(0, 138, __pyx_L1_error) + __pyx_tuple__27 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_overriding_providers, __pyx_n_s_name, __pyx_n_s_overriding_provider, __pyx_n_s_container_provider); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__27); + __Pyx_GIVEREF(__pyx_tuple__27); + __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_override_providers, 153, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(0, 153, __pyx_L1_error) - /* "dependency_injector/containers.pyx":151 + /* "dependency_injector/containers.pyx":166 * container_provider.override(overriding_provider) * * def reset_last_overriding(self): # <<<<<<<<<<<<<< * """Reset last overriding provider for each container providers. * */ - __pyx_tuple__22 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_provider); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(0, 151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__22); - __Pyx_GIVEREF(__pyx_tuple__22); - __pyx_codeobj__23 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__22, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_reset_last_overriding, 151, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__23)) __PYX_ERR(0, 151, __pyx_L1_error) + __pyx_tuple__29 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_provider); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__29); + __Pyx_GIVEREF(__pyx_tuple__29); + __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_reset_last_overriding, 166, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(0, 166, __pyx_L1_error) - /* "dependency_injector/containers.pyx":164 + /* "dependency_injector/containers.pyx":179 * provider.reset_last_overriding() * * def reset_override(self): # <<<<<<<<<<<<<< * """Reset all overridings for each container providers. * */ - __pyx_tuple__24 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_provider); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__24); - __Pyx_GIVEREF(__pyx_tuple__24); - __pyx_codeobj__25 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__24, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_reset_override, 164, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__25)) __PYX_ERR(0, 164, __pyx_L1_error) + __pyx_tuple__31 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_provider); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__31); + __Pyx_GIVEREF(__pyx_tuple__31); + __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_reset_override, 179, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 179, __pyx_L1_error) - /* "dependency_injector/containers.pyx":178 + /* "dependency_injector/containers.pyx":189 + * provider.reset_override() + * + * def wire(self, modules=None, packages=None): # <<<<<<<<<<<<<< + * """Wire container providers with provided packages and modules. + * + */ + __pyx_tuple__33 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_modules, __pyx_n_s_packages); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__33); + __Pyx_GIVEREF(__pyx_tuple__33); + __pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_wire, 189, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(0, 189, __pyx_L1_error) + __pyx_tuple__35 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__35); + __Pyx_GIVEREF(__pyx_tuple__35); + + /* "dependency_injector/containers.pyx":206 + * self.wired_to_packages.extend(packages) + * + * def unwire(self): # <<<<<<<<<<<<<< + * """Unwire container providers from previously wired packages and modules.""" + * unwire( + */ + __pyx_tuple__36 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(0, 206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__36); + __Pyx_GIVEREF(__pyx_tuple__36); + __pyx_codeobj__37 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__36, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_unwire, 206, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__37)) __PYX_ERR(0, 206, __pyx_L1_error) + + /* "dependency_injector/containers.pyx":221 * """Declarative inversion of control container meta class.""" * * def __new__(type mcs, str class_name, tuple bases, dict attributes): # <<<<<<<<<<<<<< * """Declarative container class factory.""" * cdef tuple cls_providers */ - __pyx_tuple__26 = PyTuple_Pack(13, __pyx_n_s_mcs, __pyx_n_s_class_name, __pyx_n_s_bases, __pyx_n_s_attributes, __pyx_n_s_cls_providers, __pyx_n_s_inherited_providers, __pyx_n_s_cls, __pyx_n_s_containers, __pyx_n_s_provider, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 178, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__26); - __Pyx_GIVEREF(__pyx_tuple__26); - __pyx_codeobj__27 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__26, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_new, 178, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__27)) __PYX_ERR(0, 178, __pyx_L1_error) + __pyx_tuple__38 = PyTuple_Pack(13, __pyx_n_s_mcs, __pyx_n_s_class_name, __pyx_n_s_bases, __pyx_n_s_attributes, __pyx_n_s_cls_providers, __pyx_n_s_inherited_providers, __pyx_n_s_cls, __pyx_n_s_containers, __pyx_n_s_provider, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(0, 221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__38); + __Pyx_GIVEREF(__pyx_tuple__38); + __pyx_codeobj__39 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__38, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_new, 221, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__39)) __PYX_ERR(0, 221, __pyx_L1_error) - /* "dependency_injector/containers.pyx":211 + /* "dependency_injector/containers.pyx":254 * return cls * * def __setattr__(cls, str name, object value): # <<<<<<<<<<<<<< * """Set class attribute. * */ - __pyx_tuple__28 = PyTuple_Pack(3, __pyx_n_s_cls, __pyx_n_s_name, __pyx_n_s_value); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(0, 211, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__28); - __Pyx_GIVEREF(__pyx_tuple__28); - __pyx_codeobj__29 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__28, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_setattr, 211, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__29)) __PYX_ERR(0, 211, __pyx_L1_error) + __pyx_tuple__40 = PyTuple_Pack(3, __pyx_n_s_cls, __pyx_n_s_name, __pyx_n_s_value); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(0, 254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__40); + __Pyx_GIVEREF(__pyx_tuple__40); + __pyx_codeobj__41 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__40, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_setattr, 254, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__41)) __PYX_ERR(0, 254, __pyx_L1_error) - /* "dependency_injector/containers.pyx":231 + /* "dependency_injector/containers.pyx":274 * super(DeclarativeContainerMetaClass, cls).__setattr__(name, value) * * def __delattr__(cls, str name): # <<<<<<<<<<<<<< * """Delete class attribute. * */ - __pyx_tuple__30 = PyTuple_Pack(2, __pyx_n_s_cls, __pyx_n_s_name); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(0, 231, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__30); - __Pyx_GIVEREF(__pyx_tuple__30); - __pyx_codeobj__31 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__30, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_delattr, 231, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__31)) __PYX_ERR(0, 231, __pyx_L1_error) + __pyx_tuple__42 = PyTuple_Pack(2, __pyx_n_s_cls, __pyx_n_s_name); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(0, 274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__42); + __Pyx_GIVEREF(__pyx_tuple__42); + __pyx_codeobj__43 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__42, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_delattr, 274, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__43)) __PYX_ERR(0, 274, __pyx_L1_error) - /* "dependency_injector/containers.pyx":249 + /* "dependency_injector/containers.pyx":292 * * @six.add_metaclass(DeclarativeContainerMetaClass) * class DeclarativeContainer(object): # <<<<<<<<<<<<<< * """Declarative inversion of control container. * */ - __pyx_tuple__32 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(0, 249, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__32); - __Pyx_GIVEREF(__pyx_tuple__32); + __pyx_tuple__44 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(0, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__44); + __Pyx_GIVEREF(__pyx_tuple__44); - /* "dependency_injector/containers.pyx":305 + /* "dependency_injector/containers.pyx":348 * """ * * def __new__(cls, **overriding_providers): # <<<<<<<<<<<<<< * """Constructor. * */ - __pyx_tuple__33 = PyTuple_Pack(3, __pyx_n_s_cls, __pyx_n_s_overriding_providers, __pyx_n_s_container); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 305, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__33); - __Pyx_GIVEREF(__pyx_tuple__33); - __pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_new, 305, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(0, 305, __pyx_L1_error) + __pyx_tuple__45 = PyTuple_Pack(3, __pyx_n_s_cls, __pyx_n_s_overriding_providers, __pyx_n_s_container); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(0, 348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__45); + __Pyx_GIVEREF(__pyx_tuple__45); + __pyx_codeobj__46 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__45, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_new, 348, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__46)) __PYX_ERR(0, 348, __pyx_L1_error) - /* "dependency_injector/containers.pyx":318 + /* "dependency_injector/containers.pyx":362 * * @classmethod * def override(cls, object overriding): # <<<<<<<<<<<<<< * """Override current container by overriding container. * */ - __pyx_tuple__35 = PyTuple_Pack(4, __pyx_n_s_cls, __pyx_n_s_overriding, __pyx_n_s_name, __pyx_n_s_provider); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 318, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__35); - __Pyx_GIVEREF(__pyx_tuple__35); - __pyx_codeobj__36 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__35, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_override, 318, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__36)) __PYX_ERR(0, 318, __pyx_L1_error) + __pyx_tuple__47 = PyTuple_Pack(4, __pyx_n_s_cls, __pyx_n_s_overriding, __pyx_n_s_name, __pyx_n_s_provider); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(0, 362, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__47); + __Pyx_GIVEREF(__pyx_tuple__47); + __pyx_codeobj__48 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__47, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_override, 362, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__48)) __PYX_ERR(0, 362, __pyx_L1_error) - /* "dependency_injector/containers.pyx":342 + /* "dependency_injector/containers.pyx":386 * * @classmethod * def reset_last_overriding(cls): # <<<<<<<<<<<<<< * """Reset last overriding provider for each container providers. * */ - __pyx_tuple__37 = PyTuple_Pack(2, __pyx_n_s_cls, __pyx_n_s_provider); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 342, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__37); - __Pyx_GIVEREF(__pyx_tuple__37); - __pyx_codeobj__38 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_reset_last_overriding, 342, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__38)) __PYX_ERR(0, 342, __pyx_L1_error) + __pyx_tuple__49 = PyTuple_Pack(2, __pyx_n_s_cls, __pyx_n_s_provider); if (unlikely(!__pyx_tuple__49)) __PYX_ERR(0, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__49); + __Pyx_GIVEREF(__pyx_tuple__49); + __pyx_codeobj__50 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__49, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_reset_last_overriding, 386, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__50)) __PYX_ERR(0, 386, __pyx_L1_error) - /* "dependency_injector/containers.pyx":356 + /* "dependency_injector/containers.pyx":400 * * @classmethod * def reset_override(cls): # <<<<<<<<<<<<<< * """Reset all overridings for each container providers. * */ - __pyx_tuple__39 = PyTuple_Pack(2, __pyx_n_s_cls, __pyx_n_s_provider); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(0, 356, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__39); - __Pyx_GIVEREF(__pyx_tuple__39); - __pyx_codeobj__40 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__39, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_reset_override, 356, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__40)) __PYX_ERR(0, 356, __pyx_L1_error) + __pyx_tuple__51 = PyTuple_Pack(2, __pyx_n_s_cls, __pyx_n_s_provider); if (unlikely(!__pyx_tuple__51)) __PYX_ERR(0, 400, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__51); + __Pyx_GIVEREF(__pyx_tuple__51); + __pyx_codeobj__52 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__51, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_reset_override, 400, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__52)) __PYX_ERR(0, 400, __pyx_L1_error) - /* "dependency_injector/containers.pyx":367 + /* "dependency_injector/containers.pyx":411 + * + * @classmethod + * def resolve_provider_name(cls, provider_to_resolve): # <<<<<<<<<<<<<< + * """Try to resolve provider name by its instance.""" + * for provider_name, container_provider in cls.providers.items(): + */ + __pyx_tuple__53 = PyTuple_Pack(4, __pyx_n_s_cls, __pyx_n_s_provider_to_resolve, __pyx_n_s_provider_name, __pyx_n_s_container_provider); if (unlikely(!__pyx_tuple__53)) __PYX_ERR(0, 411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__53); + __Pyx_GIVEREF(__pyx_tuple__53); + __pyx_codeobj__54 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__53, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_resolve_provider_name, 411, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__54)) __PYX_ERR(0, 411, __pyx_L1_error) + + /* "dependency_injector/containers.pyx":420 * * * def override(object container): # <<<<<<<<<<<<<< * """:py:class:`DeclarativeContainer` overriding decorator. * */ - __pyx_tuple__41 = PyTuple_Pack(3, __pyx_n_s_container, __pyx_n_s_decorator, __pyx_n_s_decorator); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(0, 367, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__41); - __Pyx_GIVEREF(__pyx_tuple__41); - __pyx_codeobj__42 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__41, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_override, 367, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__42)) __PYX_ERR(0, 367, __pyx_L1_error) + __pyx_tuple__55 = PyTuple_Pack(3, __pyx_n_s_container, __pyx_n_s_decorator, __pyx_n_s_decorator); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(0, 420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__55); + __Pyx_GIVEREF(__pyx_tuple__55); + __pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_override, 420, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(0, 420, __pyx_L1_error) - /* "dependency_injector/containers.pyx":384 + /* "dependency_injector/containers.pyx":437 * * * def copy(object container): # <<<<<<<<<<<<<< * """:py:class:`DeclarativeContainer` copying decorator. * */ - __pyx_tuple__43 = PyTuple_Pack(3, __pyx_n_s_container, __pyx_n_s_decorator, __pyx_n_s_decorator); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(0, 384, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__43); - __Pyx_GIVEREF(__pyx_tuple__43); - __pyx_codeobj__44 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__43, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_copy, 384, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__44)) __PYX_ERR(0, 384, __pyx_L1_error) + __pyx_tuple__57 = PyTuple_Pack(3, __pyx_n_s_container, __pyx_n_s_decorator, __pyx_n_s_decorator); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(0, 437, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__57); + __Pyx_GIVEREF(__pyx_tuple__57); + __pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__57, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_containe, __pyx_n_s_copy, 437, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(0, 437, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; @@ -12186,6 +13323,8 @@ static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { __pyx_umethod_PyDict_Type_items.type = (PyObject*)&PyDict_Type; if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_int_6 = PyInt_FromLong(6); if (unlikely(!__pyx_int_6)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(0, 1, __pyx_L1_error) return 0; __pyx_L1_error:; @@ -12239,7 +13378,7 @@ static int __Pyx_modinit_type_init_code(void) { int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); /*--- Type init code ---*/ - if (PyType_Ready(&__pyx_type_19dependency_injector_10containers___pyx_scope_struct____new__) < 0) __PYX_ERR(0, 178, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_10containers___pyx_scope_struct____new__) < 0) __PYX_ERR(0, 221, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_10containers___pyx_scope_struct____new__.tp_print = 0; #endif @@ -12247,7 +13386,7 @@ static int __Pyx_modinit_type_init_code(void) { __pyx_type_19dependency_injector_10containers___pyx_scope_struct____new__.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } __pyx_ptype_19dependency_injector_10containers___pyx_scope_struct____new__ = &__pyx_type_19dependency_injector_10containers___pyx_scope_struct____new__; - if (PyType_Ready(&__pyx_type_19dependency_injector_10containers___pyx_scope_struct_1_genexpr) < 0) __PYX_ERR(0, 184, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_10containers___pyx_scope_struct_1_genexpr) < 0) __PYX_ERR(0, 227, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_10containers___pyx_scope_struct_1_genexpr.tp_print = 0; #endif @@ -12255,7 +13394,7 @@ static int __Pyx_modinit_type_init_code(void) { __pyx_type_19dependency_injector_10containers___pyx_scope_struct_1_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } __pyx_ptype_19dependency_injector_10containers___pyx_scope_struct_1_genexpr = &__pyx_type_19dependency_injector_10containers___pyx_scope_struct_1_genexpr; - if (PyType_Ready(&__pyx_type_19dependency_injector_10containers___pyx_scope_struct_2_genexpr) < 0) __PYX_ERR(0, 190, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_10containers___pyx_scope_struct_2_genexpr) < 0) __PYX_ERR(0, 233, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_10containers___pyx_scope_struct_2_genexpr.tp_print = 0; #endif @@ -12263,7 +13402,7 @@ static int __Pyx_modinit_type_init_code(void) { __pyx_type_19dependency_injector_10containers___pyx_scope_struct_2_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } __pyx_ptype_19dependency_injector_10containers___pyx_scope_struct_2_genexpr = &__pyx_type_19dependency_injector_10containers___pyx_scope_struct_2_genexpr; - if (PyType_Ready(&__pyx_type_19dependency_injector_10containers___pyx_scope_struct_3_genexpr) < 0) __PYX_ERR(0, 194, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_10containers___pyx_scope_struct_3_genexpr) < 0) __PYX_ERR(0, 237, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_10containers___pyx_scope_struct_3_genexpr.tp_print = 0; #endif @@ -12271,7 +13410,7 @@ static int __Pyx_modinit_type_init_code(void) { __pyx_type_19dependency_injector_10containers___pyx_scope_struct_3_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } __pyx_ptype_19dependency_injector_10containers___pyx_scope_struct_3_genexpr = &__pyx_type_19dependency_injector_10containers___pyx_scope_struct_3_genexpr; - if (PyType_Ready(&__pyx_type_19dependency_injector_10containers___pyx_scope_struct_4_override) < 0) __PYX_ERR(0, 367, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_10containers___pyx_scope_struct_4_override) < 0) __PYX_ERR(0, 420, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_10containers___pyx_scope_struct_4_override.tp_print = 0; #endif @@ -12279,7 +13418,7 @@ static int __Pyx_modinit_type_init_code(void) { __pyx_type_19dependency_injector_10containers___pyx_scope_struct_4_override.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } __pyx_ptype_19dependency_injector_10containers___pyx_scope_struct_4_override = &__pyx_type_19dependency_injector_10containers___pyx_scope_struct_4_override; - if (PyType_Ready(&__pyx_type_19dependency_injector_10containers___pyx_scope_struct_5_copy) < 0) __PYX_ERR(0, 384, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_10containers___pyx_scope_struct_5_copy) < 0) __PYX_ERR(0, 437, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_10containers___pyx_scope_struct_5_copy.tp_print = 0; #endif @@ -12351,78 +13490,81 @@ static int __Pyx_modinit_type_import_code(void) { __pyx_ptype_19dependency_injector_9providers_ConfigurationOption = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "ConfigurationOption", sizeof(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_19dependency_injector_9providers_ConfigurationOption) __PYX_ERR(1, 89, __pyx_L1_error) __pyx_vtabptr_19dependency_injector_9providers_ConfigurationOption = (struct __pyx_vtabstruct_19dependency_injector_9providers_ConfigurationOption*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_ConfigurationOption->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_ConfigurationOption)) __PYX_ERR(1, 89, __pyx_L1_error) + __pyx_ptype_19dependency_injector_9providers_TypedConfigurationOption = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "TypedConfigurationOption", sizeof(struct __pyx_obj_19dependency_injector_9providers_TypedConfigurationOption), __Pyx_ImportType_CheckSize_Warn); + if (!__pyx_ptype_19dependency_injector_9providers_TypedConfigurationOption) __PYX_ERR(1, 96, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_TypedConfigurationOption = (struct __pyx_vtabstruct_19dependency_injector_9providers_TypedConfigurationOption*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_TypedConfigurationOption->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_TypedConfigurationOption)) __PYX_ERR(1, 96, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_Configuration = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "Configuration", sizeof(struct __pyx_obj_19dependency_injector_9providers_Configuration), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_Configuration) __PYX_ERR(1, 96, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_Configuration = (struct __pyx_vtabstruct_19dependency_injector_9providers_Configuration*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_Configuration->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_Configuration)) __PYX_ERR(1, 96, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_Configuration) __PYX_ERR(1, 100, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_Configuration = (struct __pyx_vtabstruct_19dependency_injector_9providers_Configuration*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_Configuration->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_Configuration)) __PYX_ERR(1, 100, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_Factory = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "Factory", sizeof(struct __pyx_obj_19dependency_injector_9providers_Factory), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_Factory) __PYX_ERR(1, 103, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_Factory = (struct __pyx_vtabstruct_19dependency_injector_9providers_Factory*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_Factory->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_Factory)) __PYX_ERR(1, 103, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_Factory) __PYX_ERR(1, 107, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_Factory = (struct __pyx_vtabstruct_19dependency_injector_9providers_Factory*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_Factory->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_Factory)) __PYX_ERR(1, 107, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_DelegatedFactory = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "DelegatedFactory", sizeof(struct __pyx_obj_19dependency_injector_9providers_DelegatedFactory), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_DelegatedFactory) __PYX_ERR(1, 112, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_DelegatedFactory = (struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedFactory*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_DelegatedFactory->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_DelegatedFactory)) __PYX_ERR(1, 112, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_DelegatedFactory) __PYX_ERR(1, 116, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_DelegatedFactory = (struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedFactory*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_DelegatedFactory->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_DelegatedFactory)) __PYX_ERR(1, 116, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_AbstractFactory = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "AbstractFactory", sizeof(struct __pyx_obj_19dependency_injector_9providers_AbstractFactory), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_AbstractFactory) __PYX_ERR(1, 116, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_AbstractFactory = (struct __pyx_vtabstruct_19dependency_injector_9providers_AbstractFactory*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_AbstractFactory->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_AbstractFactory)) __PYX_ERR(1, 116, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_AbstractFactory) __PYX_ERR(1, 120, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_AbstractFactory = (struct __pyx_vtabstruct_19dependency_injector_9providers_AbstractFactory*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_AbstractFactory->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_AbstractFactory)) __PYX_ERR(1, 120, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_FactoryDelegate = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "FactoryDelegate", sizeof(struct __pyx_obj_19dependency_injector_9providers_FactoryDelegate), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_FactoryDelegate) __PYX_ERR(1, 120, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_FactoryDelegate = (struct __pyx_vtabstruct_19dependency_injector_9providers_FactoryDelegate*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_FactoryDelegate->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_FactoryDelegate)) __PYX_ERR(1, 120, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_FactoryDelegate) __PYX_ERR(1, 124, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_FactoryDelegate = (struct __pyx_vtabstruct_19dependency_injector_9providers_FactoryDelegate*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_FactoryDelegate->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_FactoryDelegate)) __PYX_ERR(1, 124, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_FactoryAggregate = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "FactoryAggregate", sizeof(struct __pyx_obj_19dependency_injector_9providers_FactoryAggregate), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_FactoryAggregate) __PYX_ERR(1, 124, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_FactoryAggregate = (struct __pyx_vtabstruct_19dependency_injector_9providers_FactoryAggregate*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_FactoryAggregate->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_FactoryAggregate)) __PYX_ERR(1, 124, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_FactoryAggregate) __PYX_ERR(1, 128, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_FactoryAggregate = (struct __pyx_vtabstruct_19dependency_injector_9providers_FactoryAggregate*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_FactoryAggregate->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_FactoryAggregate)) __PYX_ERR(1, 128, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_BaseSingleton = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "BaseSingleton", sizeof(struct __pyx_obj_19dependency_injector_9providers_BaseSingleton), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_BaseSingleton) __PYX_ERR(1, 131, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_BaseSingleton = (struct __pyx_vtabstruct_19dependency_injector_9providers_BaseSingleton*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_BaseSingleton->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_BaseSingleton)) __PYX_ERR(1, 131, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_BaseSingleton) __PYX_ERR(1, 135, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_BaseSingleton = (struct __pyx_vtabstruct_19dependency_injector_9providers_BaseSingleton*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_BaseSingleton->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_BaseSingleton)) __PYX_ERR(1, 135, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_Singleton = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "Singleton", sizeof(struct __pyx_obj_19dependency_injector_9providers_Singleton), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_Singleton) __PYX_ERR(1, 135, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_Singleton = (struct __pyx_vtabstruct_19dependency_injector_9providers_Singleton*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_Singleton->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_Singleton)) __PYX_ERR(1, 135, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_Singleton) __PYX_ERR(1, 139, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_Singleton = (struct __pyx_vtabstruct_19dependency_injector_9providers_Singleton*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_Singleton->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_Singleton)) __PYX_ERR(1, 139, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_DelegatedSingleton = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "DelegatedSingleton", sizeof(struct __pyx_obj_19dependency_injector_9providers_DelegatedSingleton), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_DelegatedSingleton) __PYX_ERR(1, 141, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_DelegatedSingleton = (struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedSingleton*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_DelegatedSingleton->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_DelegatedSingleton)) __PYX_ERR(1, 141, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_DelegatedSingleton) __PYX_ERR(1, 145, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_DelegatedSingleton = (struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedSingleton*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_DelegatedSingleton->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_DelegatedSingleton)) __PYX_ERR(1, 145, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_ThreadSafeSingleton = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "ThreadSafeSingleton", sizeof(struct __pyx_obj_19dependency_injector_9providers_ThreadSafeSingleton), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_ThreadSafeSingleton) __PYX_ERR(1, 145, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_ThreadSafeSingleton = (struct __pyx_vtabstruct_19dependency_injector_9providers_ThreadSafeSingleton*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_ThreadSafeSingleton->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_ThreadSafeSingleton)) __PYX_ERR(1, 145, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_ThreadSafeSingleton) __PYX_ERR(1, 149, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_ThreadSafeSingleton = (struct __pyx_vtabstruct_19dependency_injector_9providers_ThreadSafeSingleton*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_ThreadSafeSingleton->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_ThreadSafeSingleton)) __PYX_ERR(1, 149, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_DelegatedThreadSafeSingleton = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "DelegatedThreadSafeSingleton", sizeof(struct __pyx_obj_19dependency_injector_9providers_DelegatedThreadSafeSingleton), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_DelegatedThreadSafeSingleton) __PYX_ERR(1, 152, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_DelegatedThreadSafeSingleton = (struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedThreadSafeSingleton*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_DelegatedThreadSafeSingleton->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_DelegatedThreadSafeSingleton)) __PYX_ERR(1, 152, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_DelegatedThreadSafeSingleton) __PYX_ERR(1, 156, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_DelegatedThreadSafeSingleton = (struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedThreadSafeSingleton*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_DelegatedThreadSafeSingleton->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_DelegatedThreadSafeSingleton)) __PYX_ERR(1, 156, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_ThreadLocalSingleton = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "ThreadLocalSingleton", sizeof(struct __pyx_obj_19dependency_injector_9providers_ThreadLocalSingleton), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_ThreadLocalSingleton) __PYX_ERR(1, 156, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_ThreadLocalSingleton = (struct __pyx_vtabstruct_19dependency_injector_9providers_ThreadLocalSingleton*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_ThreadLocalSingleton->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_ThreadLocalSingleton)) __PYX_ERR(1, 156, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_ThreadLocalSingleton) __PYX_ERR(1, 160, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_ThreadLocalSingleton = (struct __pyx_vtabstruct_19dependency_injector_9providers_ThreadLocalSingleton*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_ThreadLocalSingleton->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_ThreadLocalSingleton)) __PYX_ERR(1, 160, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_DelegatedThreadLocalSingleton = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "DelegatedThreadLocalSingleton", sizeof(struct __pyx_obj_19dependency_injector_9providers_DelegatedThreadLocalSingleton), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_DelegatedThreadLocalSingleton) __PYX_ERR(1, 162, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_DelegatedThreadLocalSingleton = (struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedThreadLocalSingleton*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_DelegatedThreadLocalSingleton->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_DelegatedThreadLocalSingleton)) __PYX_ERR(1, 162, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_DelegatedThreadLocalSingleton) __PYX_ERR(1, 166, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_DelegatedThreadLocalSingleton = (struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedThreadLocalSingleton*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_DelegatedThreadLocalSingleton->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_DelegatedThreadLocalSingleton)) __PYX_ERR(1, 166, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_AbstractSingleton = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "AbstractSingleton", sizeof(struct __pyx_obj_19dependency_injector_9providers_AbstractSingleton), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_AbstractSingleton) __PYX_ERR(1, 166, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_AbstractSingleton = (struct __pyx_vtabstruct_19dependency_injector_9providers_AbstractSingleton*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_AbstractSingleton->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_AbstractSingleton)) __PYX_ERR(1, 166, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_AbstractSingleton) __PYX_ERR(1, 170, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_AbstractSingleton = (struct __pyx_vtabstruct_19dependency_injector_9providers_AbstractSingleton*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_AbstractSingleton->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_AbstractSingleton)) __PYX_ERR(1, 170, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_SingletonDelegate = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "SingletonDelegate", sizeof(struct __pyx_obj_19dependency_injector_9providers_SingletonDelegate), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_SingletonDelegate) __PYX_ERR(1, 170, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_SingletonDelegate = (struct __pyx_vtabstruct_19dependency_injector_9providers_SingletonDelegate*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_SingletonDelegate->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_SingletonDelegate)) __PYX_ERR(1, 170, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_SingletonDelegate) __PYX_ERR(1, 174, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_SingletonDelegate = (struct __pyx_vtabstruct_19dependency_injector_9providers_SingletonDelegate*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_SingletonDelegate->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_SingletonDelegate)) __PYX_ERR(1, 174, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_List = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "List", sizeof(struct __pyx_obj_19dependency_injector_9providers_List), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_List) __PYX_ERR(1, 176, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_List = (struct __pyx_vtabstruct_19dependency_injector_9providers_List*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_List->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_List)) __PYX_ERR(1, 176, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_List) __PYX_ERR(1, 180, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_List = (struct __pyx_vtabstruct_19dependency_injector_9providers_List*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_List->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_List)) __PYX_ERR(1, 180, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_Container = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "Container", sizeof(struct __pyx_obj_19dependency_injector_9providers_Container), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_Container) __PYX_ERR(1, 183, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_Container = (struct __pyx_vtabstruct_19dependency_injector_9providers_Container*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_Container->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_Container)) __PYX_ERR(1, 183, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_Container) __PYX_ERR(1, 187, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_Container = (struct __pyx_vtabstruct_19dependency_injector_9providers_Container*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_Container->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_Container)) __PYX_ERR(1, 187, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_Selector = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "Selector", sizeof(struct __pyx_obj_19dependency_injector_9providers_Selector), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_Selector) __PYX_ERR(1, 191, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_Selector = (struct __pyx_vtabstruct_19dependency_injector_9providers_Selector*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_Selector->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_Selector)) __PYX_ERR(1, 191, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_Selector) __PYX_ERR(1, 195, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_Selector = (struct __pyx_vtabstruct_19dependency_injector_9providers_Selector*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_Selector->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_Selector)) __PYX_ERR(1, 195, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_ProvidedInstance = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "ProvidedInstance", sizeof(struct __pyx_obj_19dependency_injector_9providers_ProvidedInstance), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_ProvidedInstance) __PYX_ERR(1, 199, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_ProvidedInstance = (struct __pyx_vtabstruct_19dependency_injector_9providers_ProvidedInstance*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_ProvidedInstance->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_ProvidedInstance)) __PYX_ERR(1, 199, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_ProvidedInstance) __PYX_ERR(1, 203, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_ProvidedInstance = (struct __pyx_vtabstruct_19dependency_injector_9providers_ProvidedInstance*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_ProvidedInstance->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_ProvidedInstance)) __PYX_ERR(1, 203, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_AttributeGetter = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "AttributeGetter", sizeof(struct __pyx_obj_19dependency_injector_9providers_AttributeGetter), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_AttributeGetter) __PYX_ERR(1, 205, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_AttributeGetter = (struct __pyx_vtabstruct_19dependency_injector_9providers_AttributeGetter*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_AttributeGetter->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_AttributeGetter)) __PYX_ERR(1, 205, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_AttributeGetter) __PYX_ERR(1, 209, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_AttributeGetter = (struct __pyx_vtabstruct_19dependency_injector_9providers_AttributeGetter*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_AttributeGetter->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_AttributeGetter)) __PYX_ERR(1, 209, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_ItemGetter = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "ItemGetter", sizeof(struct __pyx_obj_19dependency_injector_9providers_ItemGetter), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_ItemGetter) __PYX_ERR(1, 212, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_ItemGetter = (struct __pyx_vtabstruct_19dependency_injector_9providers_ItemGetter*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_ItemGetter->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_ItemGetter)) __PYX_ERR(1, 212, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_ItemGetter) __PYX_ERR(1, 216, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_ItemGetter = (struct __pyx_vtabstruct_19dependency_injector_9providers_ItemGetter*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_ItemGetter->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_ItemGetter)) __PYX_ERR(1, 216, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_MethodCaller = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "MethodCaller", sizeof(struct __pyx_obj_19dependency_injector_9providers_MethodCaller), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_MethodCaller) __PYX_ERR(1, 219, __pyx_L1_error) - __pyx_vtabptr_19dependency_injector_9providers_MethodCaller = (struct __pyx_vtabstruct_19dependency_injector_9providers_MethodCaller*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_MethodCaller->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_MethodCaller)) __PYX_ERR(1, 219, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_MethodCaller) __PYX_ERR(1, 223, __pyx_L1_error) + __pyx_vtabptr_19dependency_injector_9providers_MethodCaller = (struct __pyx_vtabstruct_19dependency_injector_9providers_MethodCaller*)__Pyx_GetVtable(__pyx_ptype_19dependency_injector_9providers_MethodCaller->tp_dict); if (unlikely(!__pyx_vtabptr_19dependency_injector_9providers_MethodCaller)) __PYX_ERR(1, 223, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_Injection = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "Injection", sizeof(struct __pyx_obj_19dependency_injector_9providers_Injection), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_Injection) __PYX_ERR(1, 230, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_Injection) __PYX_ERR(1, 234, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_PositionalInjection = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "PositionalInjection", sizeof(struct __pyx_obj_19dependency_injector_9providers_PositionalInjection), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_PositionalInjection) __PYX_ERR(1, 237, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_PositionalInjection) __PYX_ERR(1, 241, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_NamedInjection = __Pyx_ImportType(__pyx_t_1, "dependency_injector.providers", "NamedInjection", sizeof(struct __pyx_obj_19dependency_injector_9providers_NamedInjection), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_19dependency_injector_9providers_NamedInjection) __PYX_ERR(1, 241, __pyx_L1_error) + if (!__pyx_ptype_19dependency_injector_9providers_NamedInjection) __PYX_ERR(1, 245, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_RefNannyFinishContext(); return 0; @@ -12568,11 +13710,12 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec_containers(PyObject *__pyx_pyinit_ { PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; + int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -12683,526 +13826,672 @@ if (!__Pyx_RefNanny) { /* "dependency_injector/containers.pyx":3 * """Containers module.""" * + * import sys # <<<<<<<<<<<<<< + * + * import six + */ + __pyx_t_1 = __Pyx_Import(__pyx_n_s_sys, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_1) < 0) __PYX_ERR(0, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "dependency_injector/containers.pyx":5 + * import sys + * * import six # <<<<<<<<<<<<<< * * from .errors import Error */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_six, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3, __pyx_L1_error) + __pyx_t_1 = __Pyx_Import(__pyx_n_s_six, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_six, __pyx_t_1) < 0) __PYX_ERR(0, 3, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_six, __pyx_t_1) < 0) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/containers.pyx":5 + /* "dependency_injector/containers.pyx":7 * import six * * from .errors import Error # <<<<<<<<<<<<<< - * * from .providers cimport ( + * Provider, */ - __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __pyx_L1_error) + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_Error); __Pyx_GIVEREF(__pyx_n_s_Error); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_Error); - __pyx_t_2 = __Pyx_Import(__pyx_n_s_errors, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5, __pyx_L1_error) + __pyx_t_2 = __Pyx_Import(__pyx_n_s_errors, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_Error, __pyx_t_1) < 0) __PYX_ERR(0, 5, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_Error, __pyx_t_1) < 0) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/containers.pyx":13 + /* "dependency_injector/containers.pyx":14 + * + * + * if sys.version_info[:2] >= (3, 6): # <<<<<<<<<<<<<< + * from .wiring import wire, unwire + * else: + */ + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_version_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_t_1, 0, 2, NULL, NULL, &__pyx_slice__8, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_tuple__9, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 14, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 14, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_3) { + + /* "dependency_injector/containers.pyx":15 + * + * if sys.version_info[:2] >= (3, 6): + * from .wiring import wire, unwire # <<<<<<<<<<<<<< + * else: + * def wire(*args, **kwargs): + */ + __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_n_s_wire); + __Pyx_GIVEREF(__pyx_n_s_wire); + PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_wire); + __Pyx_INCREF(__pyx_n_s_unwire); + __Pyx_GIVEREF(__pyx_n_s_unwire); + PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_unwire); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_wiring, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_wire); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_wire, __pyx_t_1) < 0) __PYX_ERR(0, 15, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_unwire); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_unwire, __pyx_t_1) < 0) __PYX_ERR(0, 15, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "dependency_injector/containers.pyx":14 + * + * + * if sys.version_info[:2] >= (3, 6): # <<<<<<<<<<<<<< + * from .wiring import wire, unwire + * else: + */ + goto __pyx_L2; + } + + /* "dependency_injector/containers.pyx":17 + * from .wiring import wire, unwire + * else: + * def wire(*args, **kwargs): # <<<<<<<<<<<<<< + * raise NotImplementedError('Wiring requires Python 3.6 or above') + * + */ + /*else*/ { + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_10containers_1wire, NULL, __pyx_n_s_dependency_injector_containers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_wire, __pyx_t_2) < 0) __PYX_ERR(0, 17, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "dependency_injector/containers.pyx":20 + * raise NotImplementedError('Wiring requires Python 3.6 or above') + * + * def unwire(*args, **kwargs): # <<<<<<<<<<<<<< + * raise NotImplementedError('Wiring requires Python 3.6 or above') + * + */ + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_10containers_3unwire, NULL, __pyx_n_s_dependency_injector_containers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_unwire, __pyx_t_2) < 0) __PYX_ERR(0, 20, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __pyx_L2:; + + /* "dependency_injector/containers.pyx":24 * * * class DynamicContainer(object): # <<<<<<<<<<<<<< * """Dynamic inversion of control container. * */ - __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13, __pyx_L1_error) + __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__14); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_tuple__7, __pyx_n_s_DynamicContainer, __pyx_n_s_DynamicContainer, (PyObject *) NULL, __pyx_n_s_dependency_injector_containers, __pyx_kp_s_Dynamic_inversion_of_control_con); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13, __pyx_L1_error) + __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_tuple__14, __pyx_n_s_DynamicContainer, __pyx_n_s_DynamicContainer, (PyObject *) NULL, __pyx_n_s_dependency_injector_containers, __pyx_kp_s_Dynamic_inversion_of_control_con); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - /* "dependency_injector/containers.pyx":42 + /* "dependency_injector/containers.pyx":53 * """ * * __IS_CONTAINER__ = True # <<<<<<<<<<<<<< * * def __init__(self): */ - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_IS_CONTAINER, Py_True) < 0) __PYX_ERR(0, 42, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_IS_CONTAINER, Py_True) < 0) __PYX_ERR(0, 53, __pyx_L1_error) - /* "dependency_injector/containers.pyx":44 + /* "dependency_injector/containers.pyx":55 * __IS_CONTAINER__ = True * * def __init__(self): # <<<<<<<<<<<<<< * """Initializer. * */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_1__init__, 0, __pyx_n_s_DynamicContainer___init, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__9)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 44, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_init, __pyx_t_3) < 0) __PYX_ERR(0, 44, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_1__init__, 0, __pyx_n_s_DynamicContainer___init, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__16)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_init, __pyx_t_4) < 0) __PYX_ERR(0, 55, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":54 + /* "dependency_injector/containers.pyx":68 * super(DynamicContainer, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< * """Create and return full copy of container.""" * copied = memo.get(id(self)) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_3__deepcopy__, 0, __pyx_n_s_DynamicContainer___deepcopy, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__11)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 54, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_deepcopy, __pyx_t_3) < 0) __PYX_ERR(0, 54, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_3__deepcopy__, 0, __pyx_n_s_DynamicContainer___deepcopy, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__18)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_deepcopy, __pyx_t_4) < 0) __PYX_ERR(0, 68, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":69 + /* "dependency_injector/containers.pyx":84 * return copied * * def __setattr__(self, str name, object value): # <<<<<<<<<<<<<< * """Set instance attribute. * */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_5__setattr__, 0, __pyx_n_s_DynamicContainer___setattr, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__13)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 69, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_setattr, __pyx_t_3) < 0) __PYX_ERR(0, 69, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_5__setattr__, 0, __pyx_n_s_DynamicContainer___setattr, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__20)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_setattr, __pyx_t_4) < 0) __PYX_ERR(0, 84, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":88 + /* "dependency_injector/containers.pyx":103 * super(DynamicContainer, self).__setattr__(name, value) * * def __delattr__(self, str name): # <<<<<<<<<<<<<< * """Delete instance attribute. * */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_7__delattr__, 0, __pyx_n_s_DynamicContainer___delattr, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__15)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_delattr, __pyx_t_3) < 0) __PYX_ERR(0, 88, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_7__delattr__, 0, __pyx_n_s_DynamicContainer___delattr, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__22)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_delattr, __pyx_t_4) < 0) __PYX_ERR(0, 103, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":103 + /* "dependency_injector/containers.pyx":118 * super(DynamicContainer, self).__delattr__(name) * * def set_providers(self, **providers): # <<<<<<<<<<<<<< * """Set container providers. * */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_9set_providers, 0, __pyx_n_s_DynamicContainer_set_providers, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__17)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 103, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_set_providers, __pyx_t_3) < 0) __PYX_ERR(0, 103, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_9set_providers, 0, __pyx_n_s_DynamicContainer_set_providers, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__24)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_set_providers, __pyx_t_4) < 0) __PYX_ERR(0, 118, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":115 + /* "dependency_injector/containers.pyx":130 * setattr(self, name, provider) * * def override(self, object overriding): # <<<<<<<<<<<<<< * """Override current container by overriding container. * */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_11override, 0, __pyx_n_s_DynamicContainer_override, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__19)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 115, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_override, __pyx_t_3) < 0) __PYX_ERR(0, 115, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_11override, 0, __pyx_n_s_DynamicContainer_override, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__26)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_override, __pyx_t_4) < 0) __PYX_ERR(0, 130, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":138 + /* "dependency_injector/containers.pyx":153 * pass * * def override_providers(self, **overriding_providers): # <<<<<<<<<<<<<< * """Override container providers. * */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_13override_providers, 0, __pyx_n_s_DynamicContainer_override_provid, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__21)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_override_providers, __pyx_t_3) < 0) __PYX_ERR(0, 138, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_13override_providers, 0, __pyx_n_s_DynamicContainer_override_provid, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__28)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_override_providers, __pyx_t_4) < 0) __PYX_ERR(0, 153, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":151 + /* "dependency_injector/containers.pyx":166 * container_provider.override(overriding_provider) * * def reset_last_overriding(self): # <<<<<<<<<<<<<< * """Reset last overriding provider for each container providers. * */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_15reset_last_overriding, 0, __pyx_n_s_DynamicContainer_reset_last_over, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__23)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_reset_last_overriding, __pyx_t_3) < 0) __PYX_ERR(0, 151, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_15reset_last_overriding, 0, __pyx_n_s_DynamicContainer_reset_last_over, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__30)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_reset_last_overriding, __pyx_t_4) < 0) __PYX_ERR(0, 166, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":164 + /* "dependency_injector/containers.pyx":179 * provider.reset_last_overriding() * * def reset_override(self): # <<<<<<<<<<<<<< * """Reset all overridings for each container providers. * */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_17reset_override, 0, __pyx_n_s_DynamicContainer_reset_override, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__25)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_reset_override, __pyx_t_3) < 0) __PYX_ERR(0, 164, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_17reset_override, 0, __pyx_n_s_DynamicContainer_reset_override, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_reset_override, __pyx_t_4) < 0) __PYX_ERR(0, 179, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":13 + /* "dependency_injector/containers.pyx":189 + * provider.reset_override() + * + * def wire(self, modules=None, packages=None): # <<<<<<<<<<<<<< + * """Wire container providers with provided packages and modules. + * + */ + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_19wire, 0, __pyx_n_s_DynamicContainer_wire, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_tuple__35); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_wire, __pyx_t_4) < 0) __PYX_ERR(0, 189, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "dependency_injector/containers.pyx":206 + * self.wired_to_packages.extend(packages) + * + * def unwire(self): # <<<<<<<<<<<<<< + * """Unwire container providers from previously wired packages and modules.""" + * unwire( + */ + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_21unwire, 0, __pyx_n_s_DynamicContainer_unwire, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_unwire, __pyx_t_4) < 0) __PYX_ERR(0, 206, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "dependency_injector/containers.pyx":24 * * * class DynamicContainer(object): # <<<<<<<<<<<<<< * """Dynamic inversion of control container. * */ - __pyx_t_3 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_DynamicContainer, __pyx_tuple__7, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_DynamicContainer, __pyx_t_3) < 0) __PYX_ERR(0, 13, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_DynamicContainer, __pyx_tuple__14, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DynamicContainer, __pyx_t_4) < 0) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/containers.pyx":175 + /* "dependency_injector/containers.pyx":218 * * * class DeclarativeContainerMetaClass(type): # <<<<<<<<<<<<<< * """Declarative inversion of control container meta class.""" * */ - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 175, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)(&PyType_Type))); __Pyx_GIVEREF(((PyObject *)(&PyType_Type))); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)(&PyType_Type))); - __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 175, __pyx_L1_error) + __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_DeclarativeContainerMetaClass_2, __pyx_n_s_DeclarativeContainerMetaClass_2, (PyObject *) NULL, __pyx_n_s_dependency_injector_containers, __pyx_kp_s_Declarative_inversion_of_control); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 175, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_DeclarativeContainerMetaClass_2, __pyx_n_s_DeclarativeContainerMetaClass_2, (PyObject *) NULL, __pyx_n_s_dependency_injector_containers, __pyx_kp_s_Declarative_inversion_of_control); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - /* "dependency_injector/containers.pyx":178 + /* "dependency_injector/containers.pyx":221 * """Declarative inversion of control container meta class.""" * * def __new__(type mcs, str class_name, tuple bases, dict attributes): # <<<<<<<<<<<<<< * """Declarative container class factory.""" * cdef tuple cls_providers */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_29DeclarativeContainerMetaClass_1__new__, __Pyx_CYFUNCTION_STATICMETHOD, __pyx_n_s_DeclarativeContainerMetaClass_3, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__27)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 178, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_new, __pyx_t_4) < 0) __PYX_ERR(0, 178, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_29DeclarativeContainerMetaClass_1__new__, __Pyx_CYFUNCTION_STATICMETHOD, __pyx_n_s_DeclarativeContainerMetaClass_3, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__39)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_new, __pyx_t_5) < 0) __PYX_ERR(0, 221, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/containers.pyx":211 + /* "dependency_injector/containers.pyx":254 * return cls * * def __setattr__(cls, str name, object value): # <<<<<<<<<<<<<< * """Set class attribute. * */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_29DeclarativeContainerMetaClass_3__setattr__, 0, __pyx_n_s_DeclarativeContainerMetaClass_4, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__29)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 211, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_setattr, __pyx_t_4) < 0) __PYX_ERR(0, 211, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_29DeclarativeContainerMetaClass_3__setattr__, 0, __pyx_n_s_DeclarativeContainerMetaClass_4, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__41)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_setattr, __pyx_t_5) < 0) __PYX_ERR(0, 254, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/containers.pyx":231 + /* "dependency_injector/containers.pyx":274 * super(DeclarativeContainerMetaClass, cls).__setattr__(name, value) * * def __delattr__(cls, str name): # <<<<<<<<<<<<<< * """Delete class attribute. * */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_29DeclarativeContainerMetaClass_5__delattr__, 0, __pyx_n_s_DeclarativeContainerMetaClass_5, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__31)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 231, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_delattr, __pyx_t_4) < 0) __PYX_ERR(0, 231, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_29DeclarativeContainerMetaClass_5__delattr__, 0, __pyx_n_s_DeclarativeContainerMetaClass_5, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_delattr, __pyx_t_5) < 0) __PYX_ERR(0, 274, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/containers.pyx":175 + /* "dependency_injector/containers.pyx":218 * * * class DeclarativeContainerMetaClass(type): # <<<<<<<<<<<<<< * """Declarative inversion of control container meta class.""" * */ - __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_DeclarativeContainerMetaClass_2, __pyx_t_2, __pyx_t_3, NULL, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 175, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_DeclarativeContainerMetaClass_2, __pyx_t_4) < 0) __PYX_ERR(0, 175, __pyx_L1_error) + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_DeclarativeContainerMetaClass_2, __pyx_t_2, __pyx_t_4, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DeclarativeContainerMetaClass_2, __pyx_t_5) < 0) __PYX_ERR(0, 218, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/containers.pyx":249 + /* "dependency_injector/containers.pyx":292 * * @six.add_metaclass(DeclarativeContainerMetaClass) * class DeclarativeContainer(object): # <<<<<<<<<<<<<< * """Declarative inversion of control container. * */ - __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__32); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 249, __pyx_L1_error) + __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__44); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_tuple__32, __pyx_n_s_DeclarativeContainer, __pyx_n_s_DeclarativeContainer, (PyObject *) NULL, __pyx_n_s_dependency_injector_containers, __pyx_kp_s_Declarative_inversion_of_control_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 249, __pyx_L1_error) + __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_tuple__44, __pyx_n_s_DeclarativeContainer, __pyx_n_s_DeclarativeContainer, (PyObject *) NULL, __pyx_n_s_dependency_injector_containers, __pyx_kp_s_Declarative_inversion_of_control_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - /* "dependency_injector/containers.pyx":260 + /* "dependency_injector/containers.pyx":303 * """ * * __IS_CONTAINER__ = True # <<<<<<<<<<<<<< * * provider_type = Provider */ - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_IS_CONTAINER, Py_True) < 0) __PYX_ERR(0, 260, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_IS_CONTAINER, Py_True) < 0) __PYX_ERR(0, 303, __pyx_L1_error) - /* "dependency_injector/containers.pyx":262 + /* "dependency_injector/containers.pyx":305 * __IS_CONTAINER__ = True * * provider_type = Provider # <<<<<<<<<<<<<< * """Type of providers that could be placed in container. * */ - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_provider_type, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Provider)) < 0) __PYX_ERR(0, 262, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_provider_type, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Provider)) < 0) __PYX_ERR(0, 305, __pyx_L1_error) - /* "dependency_injector/containers.pyx":268 + /* "dependency_injector/containers.pyx":311 * """ * * instance_type = DynamicContainer # <<<<<<<<<<<<<< * """Type of container that is returned on instantiating declarative * container. */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_DynamicContainer); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 268, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_instance_type, __pyx_t_3) < 0) __PYX_ERR(0, 268, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_DynamicContainer); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_instance_type, __pyx_t_4) < 0) __PYX_ERR(0, 311, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":275 + /* "dependency_injector/containers.pyx":318 * """ * * containers = dict() # <<<<<<<<<<<<<< * """Read-only dictionary of all nested containers. * */ - __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 275, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_containers, __pyx_t_3) < 0) __PYX_ERR(0, 275, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 318, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_containers, __pyx_t_4) < 0) __PYX_ERR(0, 318, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":281 + /* "dependency_injector/containers.pyx":324 * """ * * providers = dict() # <<<<<<<<<<<<<< * """Read-only dictionary of all providers. * */ - __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 281, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_providers, __pyx_t_3) < 0) __PYX_ERR(0, 281, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 324, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_providers, __pyx_t_4) < 0) __PYX_ERR(0, 324, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":287 + /* "dependency_injector/containers.pyx":330 * """ * * cls_providers = dict() # <<<<<<<<<<<<<< * """Read-only dictionary of current container providers. * */ - __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 287, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_cls_providers, __pyx_t_3) < 0) __PYX_ERR(0, 287, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 330, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_cls_providers, __pyx_t_4) < 0) __PYX_ERR(0, 330, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":293 + /* "dependency_injector/containers.pyx":336 * """ * * inherited_providers = dict() # <<<<<<<<<<<<<< * """Read-only dictionary of inherited providers. * */ - __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 293, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_inherited_providers, __pyx_t_3) < 0) __PYX_ERR(0, 293, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_inherited_providers, __pyx_t_4) < 0) __PYX_ERR(0, 336, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":299 + /* "dependency_injector/containers.pyx":342 * """ * * overridden = tuple() # <<<<<<<<<<<<<< * """Tuple of overriding containers. * */ - __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_overridden, __pyx_t_3) < 0) __PYX_ERR(0, 299, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_overridden, __pyx_t_4) < 0) __PYX_ERR(0, 342, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":305 + /* "dependency_injector/containers.pyx":348 * """ * * def __new__(cls, **overriding_providers): # <<<<<<<<<<<<<< * """Constructor. * */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_20DeclarativeContainer_1__new__, __Pyx_CYFUNCTION_STATICMETHOD, __pyx_n_s_DeclarativeContainer___new, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 305, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_new, __pyx_t_3) < 0) __PYX_ERR(0, 305, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_20DeclarativeContainer_1__new__, __Pyx_CYFUNCTION_STATICMETHOD, __pyx_n_s_DeclarativeContainer___new, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_new, __pyx_t_4) < 0) __PYX_ERR(0, 348, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":318 + /* "dependency_injector/containers.pyx":362 * * @classmethod * def override(cls, object overriding): # <<<<<<<<<<<<<< * """Override current container by overriding container. * */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_20DeclarativeContainer_3override, __Pyx_CYFUNCTION_CLASSMETHOD, __pyx_n_s_DeclarativeContainer_override, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 318, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_20DeclarativeContainer_3override, __Pyx_CYFUNCTION_CLASSMETHOD, __pyx_n_s_DeclarativeContainer_override, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 362, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - /* "dependency_injector/containers.pyx":317 + /* "dependency_injector/containers.pyx":361 * return container * * @classmethod # <<<<<<<<<<<<<< * def override(cls, object overriding): * """Override current container by overriding container. */ - __pyx_t_4 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 317, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_override, __pyx_t_4) < 0) __PYX_ERR(0, 318, __pyx_L1_error) + __pyx_t_5 = __Pyx_Method_ClassMethod(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_override, __pyx_t_5) < 0) __PYX_ERR(0, 362, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/containers.pyx":342 + /* "dependency_injector/containers.pyx":386 * * @classmethod * def reset_last_overriding(cls): # <<<<<<<<<<<<<< * """Reset last overriding provider for each container providers. * */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_20DeclarativeContainer_5reset_last_overriding, __Pyx_CYFUNCTION_CLASSMETHOD, __pyx_n_s_DeclarativeContainer_reset_last, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 342, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_20DeclarativeContainer_5reset_last_overriding, __Pyx_CYFUNCTION_CLASSMETHOD, __pyx_n_s_DeclarativeContainer_reset_last, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); - /* "dependency_injector/containers.pyx":341 + /* "dependency_injector/containers.pyx":385 * pass * * @classmethod # <<<<<<<<<<<<<< * def reset_last_overriding(cls): * """Reset last overriding provider for each container providers. */ - __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 341, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_Method_ClassMethod(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_reset_last_overriding, __pyx_t_4) < 0) __PYX_ERR(0, 386, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_reset_last_overriding, __pyx_t_3) < 0) __PYX_ERR(0, 342, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/containers.pyx":356 + /* "dependency_injector/containers.pyx":400 * * @classmethod * def reset_override(cls): # <<<<<<<<<<<<<< * """Reset all overridings for each container providers. * */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_20DeclarativeContainer_7reset_override, __Pyx_CYFUNCTION_CLASSMETHOD, __pyx_n_s_DeclarativeContainer_reset_overr, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__40)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 356, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_20DeclarativeContainer_7reset_override, __Pyx_CYFUNCTION_CLASSMETHOD, __pyx_n_s_DeclarativeContainer_reset_overr, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 400, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - /* "dependency_injector/containers.pyx":355 + /* "dependency_injector/containers.pyx":399 * provider.reset_last_overriding() * * @classmethod # <<<<<<<<<<<<<< * def reset_override(cls): * """Reset all overridings for each container providers. */ - __pyx_t_4 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 355, __pyx_L1_error) + __pyx_t_5 = __Pyx_Method_ClassMethod(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_reset_override, __pyx_t_5) < 0) __PYX_ERR(0, 400, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "dependency_injector/containers.pyx":411 + * + * @classmethod + * def resolve_provider_name(cls, provider_to_resolve): # <<<<<<<<<<<<<< + * """Try to resolve provider name by its instance.""" + * for provider_name, container_provider in cls.providers.items(): + */ + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_20DeclarativeContainer_9resolve_provider_name, __Pyx_CYFUNCTION_CLASSMETHOD, __pyx_n_s_DeclarativeContainer_resolve_pro, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + /* "dependency_injector/containers.pyx":410 + * provider.reset_override() + * + * @classmethod # <<<<<<<<<<<<<< + * def resolve_provider_name(cls, provider_to_resolve): + * """Try to resolve provider name by its instance.""" + */ + __pyx_t_4 = __Pyx_Method_ClassMethod(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_reset_override, __pyx_t_4) < 0) __PYX_ERR(0, 356, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_resolve_provider_name, __pyx_t_4) < 0) __PYX_ERR(0, 411, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/containers.pyx":248 + /* "dependency_injector/containers.pyx":291 * * * @six.add_metaclass(DeclarativeContainerMetaClass) # <<<<<<<<<<<<<< * class DeclarativeContainer(object): * """Declarative inversion of control container. */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_six); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 248, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_add_metaclass); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 248, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_six); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_DeclarativeContainerMetaClass_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 248, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); - if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_7); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_add_metaclass); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_DeclarativeContainerMetaClass_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_6, function); + __Pyx_DECREF_SET(__pyx_t_7, function); } } - __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 248, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "dependency_injector/containers.pyx":249 + /* "dependency_injector/containers.pyx":292 * * @six.add_metaclass(DeclarativeContainerMetaClass) * class DeclarativeContainer(object): # <<<<<<<<<<<<<< * """Declarative inversion of control container. * */ - __pyx_t_6 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_DeclarativeContainer, __pyx_tuple__32, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 249, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_5)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_5); + __pyx_t_7 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_DeclarativeContainer, __pyx_tuple__44, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); + __Pyx_DECREF_SET(__pyx_t_5, function); } } - __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_6); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 248, __pyx_L1_error) + __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_7); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_DeclarativeContainer, __pyx_t_4) < 0) __PYX_ERR(0, 249, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DeclarativeContainer, __pyx_t_4) < 0) __PYX_ERR(0, 292, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/containers.pyx":367 + /* "dependency_injector/containers.pyx":420 * * * def override(object container): # <<<<<<<<<<<<<< * """:py:class:`DeclarativeContainer` overriding decorator. * */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_10containers_1override, NULL, __pyx_n_s_dependency_injector_containers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 367, __pyx_L1_error) + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_10containers_5override, NULL, __pyx_n_s_dependency_injector_containers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_override, __pyx_t_2) < 0) __PYX_ERR(0, 367, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_override, __pyx_t_2) < 0) __PYX_ERR(0, 420, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/containers.pyx":384 + /* "dependency_injector/containers.pyx":437 * * * def copy(object container): # <<<<<<<<<<<<<< * """:py:class:`DeclarativeContainer` copying decorator. * */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_10containers_3copy, NULL, __pyx_n_s_dependency_injector_containers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 384, __pyx_L1_error) + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_10containers_7copy, NULL, __pyx_n_s_dependency_injector_containers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_copy, __pyx_t_2) < 0) __PYX_ERR(0, 384, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_copy, __pyx_t_2) < 0) __PYX_ERR(0, 437, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "dependency_injector/containers.pyx":1 * """Containers module.""" # <<<<<<<<<<<<<< * - * import six + * import sys */ __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "providers.pxd":421 + /* "providers.pxd":425 * * * cdef inline object __factory_call(Factory self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -13216,11 +14505,11 @@ if (!__Pyx_RefNanny) { __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); if (__pyx_m) { if (__pyx_d) { __Pyx_AddTraceback("init dependency_injector.containers", __pyx_clineno, __pyx_lineno, __pyx_filename); @@ -13286,6 +14575,249 @@ static PyObject *__Pyx_GetBuiltinName(PyObject *name) { return result; } +/* KeywordStringCheck */ +static int __Pyx_CheckKeywordStrings( + PyObject *kwdict, + const char* function_name, + int kw_allowed) +{ + PyObject* key = 0; + Py_ssize_t pos = 0; +#if CYTHON_COMPILING_IN_PYPY + if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0)) + goto invalid_keyword; + return 1; +#else + while (PyDict_Next(kwdict, &pos, &key, 0)) { + #if PY_MAJOR_VERSION < 3 + if (unlikely(!PyString_Check(key))) + #endif + if (unlikely(!PyUnicode_Check(key))) + goto invalid_keyword_type; + } + if ((!kw_allowed) && unlikely(key)) + goto invalid_keyword; + return 1; +invalid_keyword_type: + PyErr_Format(PyExc_TypeError, + "%.200s() keywords must be strings", function_name); + return 0; +#endif +invalid_keyword: + PyErr_Format(PyExc_TypeError, + #if PY_MAJOR_VERSION < 3 + "%.200s() got an unexpected keyword argument '%.200s'", + function_name, PyString_AsString(key)); + #else + "%s() got an unexpected keyword argument '%U'", + function_name, key); + #endif + return 0; +} + +/* PyObjectCall */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { + PyObject *result; + ternaryfunc call = func->ob_type->tp_call; + if (unlikely(!call)) + return PyObject_Call(func, arg, kw); + if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) + return NULL; + result = (*call)(func, arg, kw); + Py_LeaveRecursiveCall(); + if (unlikely(!result) && unlikely(!PyErr_Occurred())) { + PyErr_SetString( + PyExc_SystemError, + "NULL result without error in PyObject_Call"); + } + return result; +} +#endif + +/* PyErrFetchRestore */ +#if CYTHON_FAST_THREAD_STATE +static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { + PyObject *tmp_type, *tmp_value, *tmp_tb; + tmp_type = tstate->curexc_type; + tmp_value = tstate->curexc_value; + tmp_tb = tstate->curexc_traceback; + tstate->curexc_type = type; + tstate->curexc_value = value; + tstate->curexc_traceback = tb; + Py_XDECREF(tmp_type); + Py_XDECREF(tmp_value); + Py_XDECREF(tmp_tb); +} +static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { + *type = tstate->curexc_type; + *value = tstate->curexc_value; + *tb = tstate->curexc_traceback; + tstate->curexc_type = 0; + tstate->curexc_value = 0; + tstate->curexc_traceback = 0; +} +#endif + +/* RaiseException */ +#if PY_MAJOR_VERSION < 3 +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, + CYTHON_UNUSED PyObject *cause) { + __Pyx_PyThreadState_declare + Py_XINCREF(type); + if (!value || value == Py_None) + value = NULL; + else + Py_INCREF(value); + if (!tb || tb == Py_None) + tb = NULL; + else { + Py_INCREF(tb); + if (!PyTraceBack_Check(tb)) { + PyErr_SetString(PyExc_TypeError, + "raise: arg 3 must be a traceback or None"); + goto raise_error; + } + } + if (PyType_Check(type)) { +#if CYTHON_COMPILING_IN_PYPY + if (!value) { + Py_INCREF(Py_None); + value = Py_None; + } +#endif + PyErr_NormalizeException(&type, &value, &tb); + } else { + if (value) { + PyErr_SetString(PyExc_TypeError, + "instance exception may not have a separate value"); + goto raise_error; + } + value = type; + type = (PyObject*) Py_TYPE(type); + Py_INCREF(type); + if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { + PyErr_SetString(PyExc_TypeError, + "raise: exception class must be a subclass of BaseException"); + goto raise_error; + } + } + __Pyx_PyThreadState_assign + __Pyx_ErrRestore(type, value, tb); + return; +raise_error: + Py_XDECREF(value); + Py_XDECREF(type); + Py_XDECREF(tb); + return; +} +#else +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { + PyObject* owned_instance = NULL; + if (tb == Py_None) { + tb = 0; + } else if (tb && !PyTraceBack_Check(tb)) { + PyErr_SetString(PyExc_TypeError, + "raise: arg 3 must be a traceback or None"); + goto bad; + } + if (value == Py_None) + value = 0; + if (PyExceptionInstance_Check(type)) { + if (value) { + PyErr_SetString(PyExc_TypeError, + "instance exception may not have a separate value"); + goto bad; + } + value = type; + type = (PyObject*) Py_TYPE(value); + } else if (PyExceptionClass_Check(type)) { + PyObject *instance_class = NULL; + if (value && PyExceptionInstance_Check(value)) { + instance_class = (PyObject*) Py_TYPE(value); + if (instance_class != type) { + int is_subclass = PyObject_IsSubclass(instance_class, type); + if (!is_subclass) { + instance_class = NULL; + } else if (unlikely(is_subclass == -1)) { + goto bad; + } else { + type = instance_class; + } + } + } + if (!instance_class) { + PyObject *args; + if (!value) + args = PyTuple_New(0); + else if (PyTuple_Check(value)) { + Py_INCREF(value); + args = value; + } else + args = PyTuple_Pack(1, value); + if (!args) + goto bad; + owned_instance = PyObject_Call(type, args, NULL); + Py_DECREF(args); + if (!owned_instance) + goto bad; + value = owned_instance; + if (!PyExceptionInstance_Check(value)) { + PyErr_Format(PyExc_TypeError, + "calling %R should have returned an instance of " + "BaseException, not %R", + type, Py_TYPE(value)); + goto bad; + } + } + } else { + PyErr_SetString(PyExc_TypeError, + "raise: exception class must be a subclass of BaseException"); + goto bad; + } + if (cause) { + PyObject *fixed_cause; + if (cause == Py_None) { + fixed_cause = NULL; + } else if (PyExceptionClass_Check(cause)) { + fixed_cause = PyObject_CallObject(cause, NULL); + if (fixed_cause == NULL) + goto bad; + } else if (PyExceptionInstance_Check(cause)) { + fixed_cause = cause; + Py_INCREF(fixed_cause); + } else { + PyErr_SetString(PyExc_TypeError, + "exception causes must derive from " + "BaseException"); + goto bad; + } + PyException_SetCause(value, fixed_cause); + } + PyErr_SetObject(type, value); + if (tb) { +#if CYTHON_COMPILING_IN_PYPY + PyObject *tmp_type, *tmp_value, *tmp_tb; + PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); + Py_INCREF(tb); + PyErr_Restore(tmp_type, tmp_value, tb); + Py_XDECREF(tmp_tb); +#else + PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject* tmp_tb = tstate->curexc_traceback; + if (tb != tmp_tb) { + Py_INCREF(tb); + tstate->curexc_traceback = tb; + Py_XDECREF(tmp_tb); + } +#endif + } +bad: + Py_XDECREF(owned_instance); + return; +} +#endif + /* PyObjectSetAttrStr */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) { @@ -13419,26 +14951,6 @@ done: #endif #endif -/* PyObjectCall */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; - ternaryfunc call = func->ob_type->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) - return NULL; - result = (*call)(func, arg, kw); - Py_LeaveRecursiveCall(); - if (unlikely(!result) && unlikely(!PyErr_Occurred())) { - PyErr_SetString( - PyExc_SystemError, - "NULL result without error in PyObject_Call"); - } - return result; -} -#endif - /* PyObjectCallMethO */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { @@ -13857,189 +15369,6 @@ static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *nam return 0; } -/* PyErrFetchRestore */ -#if CYTHON_FAST_THREAD_STATE -static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { - PyObject *tmp_type, *tmp_value, *tmp_tb; - tmp_type = tstate->curexc_type; - tmp_value = tstate->curexc_value; - tmp_tb = tstate->curexc_traceback; - tstate->curexc_type = type; - tstate->curexc_value = value; - tstate->curexc_traceback = tb; - Py_XDECREF(tmp_type); - Py_XDECREF(tmp_value); - Py_XDECREF(tmp_tb); -} -static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { - *type = tstate->curexc_type; - *value = tstate->curexc_value; - *tb = tstate->curexc_traceback; - tstate->curexc_type = 0; - tstate->curexc_value = 0; - tstate->curexc_traceback = 0; -} -#endif - -/* RaiseException */ -#if PY_MAJOR_VERSION < 3 -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, - CYTHON_UNUSED PyObject *cause) { - __Pyx_PyThreadState_declare - Py_XINCREF(type); - if (!value || value == Py_None) - value = NULL; - else - Py_INCREF(value); - if (!tb || tb == Py_None) - tb = NULL; - else { - Py_INCREF(tb); - if (!PyTraceBack_Check(tb)) { - PyErr_SetString(PyExc_TypeError, - "raise: arg 3 must be a traceback or None"); - goto raise_error; - } - } - if (PyType_Check(type)) { -#if CYTHON_COMPILING_IN_PYPY - if (!value) { - Py_INCREF(Py_None); - value = Py_None; - } -#endif - PyErr_NormalizeException(&type, &value, &tb); - } else { - if (value) { - PyErr_SetString(PyExc_TypeError, - "instance exception may not have a separate value"); - goto raise_error; - } - value = type; - type = (PyObject*) Py_TYPE(type); - Py_INCREF(type); - if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { - PyErr_SetString(PyExc_TypeError, - "raise: exception class must be a subclass of BaseException"); - goto raise_error; - } - } - __Pyx_PyThreadState_assign - __Pyx_ErrRestore(type, value, tb); - return; -raise_error: - Py_XDECREF(value); - Py_XDECREF(type); - Py_XDECREF(tb); - return; -} -#else -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { - PyObject* owned_instance = NULL; - if (tb == Py_None) { - tb = 0; - } else if (tb && !PyTraceBack_Check(tb)) { - PyErr_SetString(PyExc_TypeError, - "raise: arg 3 must be a traceback or None"); - goto bad; - } - if (value == Py_None) - value = 0; - if (PyExceptionInstance_Check(type)) { - if (value) { - PyErr_SetString(PyExc_TypeError, - "instance exception may not have a separate value"); - goto bad; - } - value = type; - type = (PyObject*) Py_TYPE(value); - } else if (PyExceptionClass_Check(type)) { - PyObject *instance_class = NULL; - if (value && PyExceptionInstance_Check(value)) { - instance_class = (PyObject*) Py_TYPE(value); - if (instance_class != type) { - int is_subclass = PyObject_IsSubclass(instance_class, type); - if (!is_subclass) { - instance_class = NULL; - } else if (unlikely(is_subclass == -1)) { - goto bad; - } else { - type = instance_class; - } - } - } - if (!instance_class) { - PyObject *args; - if (!value) - args = PyTuple_New(0); - else if (PyTuple_Check(value)) { - Py_INCREF(value); - args = value; - } else - args = PyTuple_Pack(1, value); - if (!args) - goto bad; - owned_instance = PyObject_Call(type, args, NULL); - Py_DECREF(args); - if (!owned_instance) - goto bad; - value = owned_instance; - if (!PyExceptionInstance_Check(value)) { - PyErr_Format(PyExc_TypeError, - "calling %R should have returned an instance of " - "BaseException, not %R", - type, Py_TYPE(value)); - goto bad; - } - } - } else { - PyErr_SetString(PyExc_TypeError, - "raise: exception class must be a subclass of BaseException"); - goto bad; - } - if (cause) { - PyObject *fixed_cause; - if (cause == Py_None) { - fixed_cause = NULL; - } else if (PyExceptionClass_Check(cause)) { - fixed_cause = PyObject_CallObject(cause, NULL); - if (fixed_cause == NULL) - goto bad; - } else if (PyExceptionInstance_Check(cause)) { - fixed_cause = cause; - Py_INCREF(fixed_cause); - } else { - PyErr_SetString(PyExc_TypeError, - "exception causes must derive from " - "BaseException"); - goto bad; - } - PyException_SetCause(value, fixed_cause); - } - PyErr_SetObject(type, value); - if (tb) { -#if CYTHON_COMPILING_IN_PYPY - PyObject *tmp_type, *tmp_value, *tmp_tb; - PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); - Py_INCREF(tb); - PyErr_Restore(tmp_type, tmp_value, tb); - Py_XDECREF(tmp_tb); -#else - PyThreadState *tstate = __Pyx_PyThreadState_Current; - PyObject* tmp_tb = tstate->curexc_traceback; - if (tb != tmp_tb) { - Py_INCREF(tb); - tstate->curexc_traceback = tb; - Py_XDECREF(tmp_tb); - } -#endif - } -bad: - Py_XDECREF(owned_instance); - return; -} -#endif - /* GetAttr */ static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) { #if CYTHON_USE_TYPE_SLOTS diff --git a/src/dependency_injector/containers.pyi b/src/dependency_injector/containers.pyi index 1c5346bf..8b7a3e9e 100644 --- a/src/dependency_injector/containers.pyi +++ b/src/dependency_injector/containers.pyi @@ -1,4 +1,5 @@ -from typing import Type, Dict, Tuple, Optional, Any, Union, ClassVar, Callable as _Callable +from types import ModuleType +from typing import Type, Dict, Tuple, Optional, Any, Union, ClassVar, Callable as _Callable, Iterable from .providers import Provider @@ -16,6 +17,9 @@ class Container: def override_providers(self, **overriding_providers: Provider) -> None: ... def reset_last_overriding(self) -> None: ... def reset_override(self) -> None: ... + def resolve_provider_name(self, provider_to_resolve: Provider) -> Optional[str]: ... + def wire(self, modules: Optional[Iterable[ModuleType]] = None, packages: Optional[Iterable[ModuleType]] = None) -> None: ... + def unwire(self) -> None: ... class DynamicContainer(Container): ... diff --git a/src/dependency_injector/containers.pyx b/src/dependency_injector/containers.pyx index 7ee11e5a..e4f8edb4 100644 --- a/src/dependency_injector/containers.pyx +++ b/src/dependency_injector/containers.pyx @@ -1,15 +1,26 @@ """Containers module.""" +import sys + import six from .errors import Error - from .providers cimport ( Provider, deepcopy, ) +if sys.version_info[:2] >= (3, 6): + from .wiring import wire, unwire +else: + def wire(*args, **kwargs): + raise NotImplementedError('Wiring requires Python 3.6 or above') + + def unwire(*args, **kwargs): + raise NotImplementedError('Wiring requires Python 3.6 or above') + + class DynamicContainer(object): """Dynamic inversion of control container. @@ -47,8 +58,11 @@ class DynamicContainer(object): :rtype: None """ self.provider_type = Provider - self.providers = dict() + self.providers = {} self.overridden = tuple() + self.declarative_parent = None + self.wired_to_modules = [] + self.wired_to_packages = [] super(DynamicContainer, self).__init__() def __deepcopy__(self, memo): @@ -60,6 +74,7 @@ class DynamicContainer(object): copied = self.__class__() copied.provider_type = Provider copied.overridden = deepcopy(self.overridden, memo) + copied.declarative_parent = self.declarative_parent for name, provider in deepcopy(self.providers, memo).items(): setattr(copied, name, provider) @@ -171,6 +186,34 @@ class DynamicContainer(object): for provider in six.itervalues(self.providers): provider.reset_override() + def wire(self, modules=None, packages=None): + """Wire container providers with provided packages and modules. + + :rtype: None + """ + wire( + container=self, + modules=modules, + packages=packages, + ) + + if modules: + self.wired_to_modules.extend(modules) + + if packages: + self.wired_to_packages.extend(packages) + + def unwire(self): + """Unwire container providers from previously wired packages and modules.""" + unwire( + modules=self.wired_to_modules, + packages=self.wired_to_packages, + ) + + self.wired_to_modules.clear() + self.wired_to_packages.clear() + + class DeclarativeContainerMetaClass(type): """Declarative inversion of control container meta class.""" @@ -310,6 +353,7 @@ class DeclarativeContainer(object): """ container = cls.instance_type() container.provider_type = cls.provider_type + container.declarative_parent = cls container.set_providers(**deepcopy(cls.providers)) container.override_providers(**overriding_providers) return container @@ -363,6 +407,15 @@ class DeclarativeContainer(object): for provider in six.itervalues(cls.providers): provider.reset_override() + @classmethod + def resolve_provider_name(cls, provider_to_resolve): + """Try to resolve provider name by its instance.""" + for provider_name, container_provider in cls.providers.items(): + if container_provider is provider_to_resolve: + return provider_name + else: + return None + def override(object container): """:py:class:`DeclarativeContainer` overriding decorator. diff --git a/src/dependency_injector/ext/aiohttp.py b/src/dependency_injector/ext/aiohttp.py index f42d95e4..b132f362 100644 --- a/src/dependency_injector/ext/aiohttp.py +++ b/src/dependency_injector/ext/aiohttp.py @@ -3,10 +3,18 @@ from __future__ import absolute_import import functools +import warnings from dependency_injector import providers +warnings.warn( + 'Module "dependency_injector.ext.aiohttp" is deprecated since ' + 'version 4.0.0. Use "dependency_injector.wiring" module instead.', + category=DeprecationWarning, +) + + class Application(providers.Singleton): """Aiohttp application provider.""" diff --git a/src/dependency_injector/ext/flask.py b/src/dependency_injector/ext/flask.py index bcc696c8..f03a6e6a 100644 --- a/src/dependency_injector/ext/flask.py +++ b/src/dependency_injector/ext/flask.py @@ -1,12 +1,20 @@ """Flask extension module.""" from __future__ import absolute_import +import warnings from flask import request as flask_request from dependency_injector import providers, errors +warnings.warn( + 'Module "dependency_injector.ext.aiohttp" is deprecated since ' + 'version 4.0.0. Use "dependency_injector.wiring" module instead.', + category=DeprecationWarning, +) + + request = providers.Object(flask_request) diff --git a/src/dependency_injector/providers.c b/src/dependency_injector/providers.c index e49e2dde..d2442028 100644 --- a/src/dependency_injector/providers.c +++ b/src/dependency_injector/providers.c @@ -835,6 +835,7 @@ struct __pyx_obj_19dependency_injector_9providers_DelegatedCoroutine; struct __pyx_obj_19dependency_injector_9providers_AbstractCoroutine; struct __pyx_obj_19dependency_injector_9providers_CoroutineDelegate; struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption; +struct __pyx_obj_19dependency_injector_9providers_TypedConfigurationOption; struct __pyx_obj_19dependency_injector_9providers_Configuration; struct __pyx_obj_19dependency_injector_9providers_Factory; struct __pyx_obj_19dependency_injector_9providers_DelegatedFactory; @@ -866,7 +867,7 @@ struct __pyx_obj_19dependency_injector_9providers___pyx_scope_struct_2___str__; struct __pyx_obj_19dependency_injector_9providers___pyx_scope_struct_3_genexpr; struct __pyx_opt_args_19dependency_injector_9providers_deepcopy; -/* "dependency_injector/providers.pxd":267 +/* "dependency_injector/providers.pxd":271 * * * cpdef object deepcopy(object instance, dict memo=*) # <<<<<<<<<<<<<< @@ -1089,6 +1090,18 @@ struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption { /* "dependency_injector/providers.pxd":96 + * + * + * cdef class TypedConfigurationOption(Callable): # <<<<<<<<<<<<<< + * pass + * + */ +struct __pyx_obj_19dependency_injector_9providers_TypedConfigurationOption { + struct __pyx_obj_19dependency_injector_9providers_Callable __pyx_base; +}; + + +/* "dependency_injector/providers.pxd":100 * * * cdef class Configuration(Object): # <<<<<<<<<<<<<< @@ -1103,7 +1116,7 @@ struct __pyx_obj_19dependency_injector_9providers_Configuration { }; -/* "dependency_injector/providers.pxd":103 +/* "dependency_injector/providers.pxd":107 * * # Factory providers * cdef class Factory(Provider): # <<<<<<<<<<<<<< @@ -1118,7 +1131,7 @@ struct __pyx_obj_19dependency_injector_9providers_Factory { }; -/* "dependency_injector/providers.pxd":112 +/* "dependency_injector/providers.pxd":116 * * * cdef class DelegatedFactory(Factory): # <<<<<<<<<<<<<< @@ -1130,7 +1143,7 @@ struct __pyx_obj_19dependency_injector_9providers_DelegatedFactory { }; -/* "dependency_injector/providers.pxd":116 +/* "dependency_injector/providers.pxd":120 * * * cdef class AbstractFactory(Factory): # <<<<<<<<<<<<<< @@ -1142,7 +1155,7 @@ struct __pyx_obj_19dependency_injector_9providers_AbstractFactory { }; -/* "dependency_injector/providers.pxd":120 +/* "dependency_injector/providers.pxd":124 * * * cdef class FactoryDelegate(Delegate): # <<<<<<<<<<<<<< @@ -1154,7 +1167,7 @@ struct __pyx_obj_19dependency_injector_9providers_FactoryDelegate { }; -/* "dependency_injector/providers.pxd":124 +/* "dependency_injector/providers.pxd":128 * * * cdef class FactoryAggregate(Provider): # <<<<<<<<<<<<<< @@ -1167,7 +1180,7 @@ struct __pyx_obj_19dependency_injector_9providers_FactoryAggregate { }; -/* "dependency_injector/providers.pxd":131 +/* "dependency_injector/providers.pxd":135 * * # Singleton providers * cdef class BaseSingleton(Provider): # <<<<<<<<<<<<<< @@ -1180,7 +1193,7 @@ struct __pyx_obj_19dependency_injector_9providers_BaseSingleton { }; -/* "dependency_injector/providers.pxd":135 +/* "dependency_injector/providers.pxd":139 * * * cdef class Singleton(BaseSingleton): # <<<<<<<<<<<<<< @@ -1193,7 +1206,7 @@ struct __pyx_obj_19dependency_injector_9providers_Singleton { }; -/* "dependency_injector/providers.pxd":141 +/* "dependency_injector/providers.pxd":145 * * * cdef class DelegatedSingleton(Singleton): # <<<<<<<<<<<<<< @@ -1205,7 +1218,7 @@ struct __pyx_obj_19dependency_injector_9providers_DelegatedSingleton { }; -/* "dependency_injector/providers.pxd":145 +/* "dependency_injector/providers.pxd":149 * * * cdef class ThreadSafeSingleton(BaseSingleton): # <<<<<<<<<<<<<< @@ -1219,7 +1232,7 @@ struct __pyx_obj_19dependency_injector_9providers_ThreadSafeSingleton { }; -/* "dependency_injector/providers.pxd":152 +/* "dependency_injector/providers.pxd":156 * * * cdef class DelegatedThreadSafeSingleton(ThreadSafeSingleton): # <<<<<<<<<<<<<< @@ -1231,7 +1244,7 @@ struct __pyx_obj_19dependency_injector_9providers_DelegatedThreadSafeSingleton { }; -/* "dependency_injector/providers.pxd":156 +/* "dependency_injector/providers.pxd":160 * * * cdef class ThreadLocalSingleton(BaseSingleton): # <<<<<<<<<<<<<< @@ -1244,7 +1257,7 @@ struct __pyx_obj_19dependency_injector_9providers_ThreadLocalSingleton { }; -/* "dependency_injector/providers.pxd":162 +/* "dependency_injector/providers.pxd":166 * * * cdef class DelegatedThreadLocalSingleton(ThreadLocalSingleton): # <<<<<<<<<<<<<< @@ -1256,7 +1269,7 @@ struct __pyx_obj_19dependency_injector_9providers_DelegatedThreadLocalSingleton }; -/* "dependency_injector/providers.pxd":166 +/* "dependency_injector/providers.pxd":170 * * * cdef class AbstractSingleton(BaseSingleton): # <<<<<<<<<<<<<< @@ -1268,7 +1281,7 @@ struct __pyx_obj_19dependency_injector_9providers_AbstractSingleton { }; -/* "dependency_injector/providers.pxd":170 +/* "dependency_injector/providers.pxd":174 * * * cdef class SingletonDelegate(Delegate): # <<<<<<<<<<<<<< @@ -1280,7 +1293,7 @@ struct __pyx_obj_19dependency_injector_9providers_SingletonDelegate { }; -/* "dependency_injector/providers.pxd":176 +/* "dependency_injector/providers.pxd":180 * # Miscellaneous providers * * cdef class List(Provider): # <<<<<<<<<<<<<< @@ -1294,22 +1307,22 @@ struct __pyx_obj_19dependency_injector_9providers_List { }; -/* "dependency_injector/providers.pxd":183 +/* "dependency_injector/providers.pxd":187 * * * cdef class Container(Provider): # <<<<<<<<<<<<<< - * cdef object container_cls - * cdef dict overriding_providers + * cdef object __container_cls + * cdef dict __overriding_providers */ struct __pyx_obj_19dependency_injector_9providers_Container { struct __pyx_obj_19dependency_injector_9providers_Provider __pyx_base; - PyObject *container_cls; - PyObject *overriding_providers; - PyObject *container; + PyObject *__pyx___container_cls; + PyObject *__pyx___overriding_providers; + PyObject *__pyx___container; }; -/* "dependency_injector/providers.pxd":191 +/* "dependency_injector/providers.pxd":195 * * * cdef class Selector(Provider): # <<<<<<<<<<<<<< @@ -1323,7 +1336,7 @@ struct __pyx_obj_19dependency_injector_9providers_Selector { }; -/* "dependency_injector/providers.pxd":199 +/* "dependency_injector/providers.pxd":203 * # Provided instance * * cdef class ProvidedInstance(Provider): # <<<<<<<<<<<<<< @@ -1336,7 +1349,7 @@ struct __pyx_obj_19dependency_injector_9providers_ProvidedInstance { }; -/* "dependency_injector/providers.pxd":205 +/* "dependency_injector/providers.pxd":209 * * * cdef class AttributeGetter(Provider): # <<<<<<<<<<<<<< @@ -1350,7 +1363,7 @@ struct __pyx_obj_19dependency_injector_9providers_AttributeGetter { }; -/* "dependency_injector/providers.pxd":212 +/* "dependency_injector/providers.pxd":216 * * * cdef class ItemGetter(Provider): # <<<<<<<<<<<<<< @@ -1364,7 +1377,7 @@ struct __pyx_obj_19dependency_injector_9providers_ItemGetter { }; -/* "dependency_injector/providers.pxd":219 +/* "dependency_injector/providers.pxd":223 * * * cdef class MethodCaller(Provider): # <<<<<<<<<<<<<< @@ -1381,7 +1394,7 @@ struct __pyx_obj_19dependency_injector_9providers_MethodCaller { }; -/* "dependency_injector/providers.pxd":230 +/* "dependency_injector/providers.pxd":234 * * # Injections * cdef class Injection(object): # <<<<<<<<<<<<<< @@ -1397,7 +1410,7 @@ struct __pyx_obj_19dependency_injector_9providers_Injection { }; -/* "dependency_injector/providers.pxd":237 +/* "dependency_injector/providers.pxd":241 * * * cdef class PositionalInjection(Injection): # <<<<<<<<<<<<<< @@ -1409,7 +1422,7 @@ struct __pyx_obj_19dependency_injector_9providers_PositionalInjection { }; -/* "dependency_injector/providers.pxd":241 +/* "dependency_injector/providers.pxd":245 * * * cdef class NamedInjection(Injection): # <<<<<<<<<<<<<< @@ -1422,7 +1435,7 @@ struct __pyx_obj_19dependency_injector_9providers_NamedInjection { }; -/* "dependency_injector/providers.pyx":1137 +/* "dependency_injector/providers.pyx":1148 * return value * * def _get_self_name(self): # <<<<<<<<<<<<<< @@ -1435,7 +1448,7 @@ struct __pyx_obj_19dependency_injector_9providers___pyx_scope_struct___get_self_ }; -/* "dependency_injector/providers.pyx":1139 +/* "dependency_injector/providers.pyx":1150 * def _get_self_name(self): * return '.'.join( * segment() if is_provider(segment) else segment for segment in self.__name # <<<<<<<<<<<<<< @@ -1451,7 +1464,7 @@ struct __pyx_obj_19dependency_injector_9providers___pyx_scope_struct_1_genexpr { }; -/* "dependency_injector/providers.pyx":2566 +/* "dependency_injector/providers.pyx":2595 * return self.__providers[name] * * def __str__(self): # <<<<<<<<<<<<<< @@ -1464,7 +1477,7 @@ struct __pyx_obj_19dependency_injector_9providers___pyx_scope_struct_2___str__ { }; -/* "dependency_injector/providers.pyx":2576 +/* "dependency_injector/providers.pyx":2605 * selector=self.__selector, * providers=', '.join(( * '{0}={1}'.format(name, provider) # <<<<<<<<<<<<<< @@ -1483,7 +1496,7 @@ struct __pyx_obj_19dependency_injector_9providers___pyx_scope_struct_3_genexpr { -/* "dependency_injector/providers.pyx":89 +/* "dependency_injector/providers.pyx":90 * * * cdef class Provider(object): # <<<<<<<<<<<<<< @@ -1498,7 +1511,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_Provider { static struct __pyx_vtabstruct_19dependency_injector_9providers_Provider *__pyx_vtabptr_19dependency_injector_9providers_Provider; -/* "dependency_injector/providers.pyx":285 +/* "dependency_injector/providers.pyx":291 * * * cdef class Object(Provider): # <<<<<<<<<<<<<< @@ -1512,7 +1525,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_Object { static struct __pyx_vtabstruct_19dependency_injector_9providers_Object *__pyx_vtabptr_19dependency_injector_9providers_Object; -/* "dependency_injector/providers.pyx":349 +/* "dependency_injector/providers.pyx":355 * * * cdef class Delegate(Provider): # <<<<<<<<<<<<<< @@ -1526,7 +1539,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_Delegate { static struct __pyx_vtabstruct_19dependency_injector_9providers_Delegate *__pyx_vtabptr_19dependency_injector_9providers_Delegate; -/* "dependency_injector/providers.pyx":408 +/* "dependency_injector/providers.pyx":419 * * * cdef class Dependency(Provider): # <<<<<<<<<<<<<< @@ -1540,7 +1553,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_Dependency { static struct __pyx_vtabstruct_19dependency_injector_9providers_Dependency *__pyx_vtabptr_19dependency_injector_9providers_Dependency; -/* "dependency_injector/providers.pyx":511 +/* "dependency_injector/providers.pyx":522 * * * cdef class ExternalDependency(Dependency): # <<<<<<<<<<<<<< @@ -1554,7 +1567,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_ExternalDependency { static struct __pyx_vtabstruct_19dependency_injector_9providers_ExternalDependency *__pyx_vtabptr_19dependency_injector_9providers_ExternalDependency; -/* "dependency_injector/providers.pyx":539 +/* "dependency_injector/providers.pyx":550 * * * cdef class DependenciesContainer(Object): # <<<<<<<<<<<<<< @@ -1569,7 +1582,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_DependenciesContainer { static struct __pyx_vtabstruct_19dependency_injector_9providers_DependenciesContainer *__pyx_vtabptr_19dependency_injector_9providers_DependenciesContainer; -/* "dependency_injector/providers.pyx":708 +/* "dependency_injector/providers.pyx":719 * * * cdef class Callable(Provider): # <<<<<<<<<<<<<< @@ -1583,7 +1596,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_Callable { static struct __pyx_vtabstruct_19dependency_injector_9providers_Callable *__pyx_vtabptr_19dependency_injector_9providers_Callable; -/* "dependency_injector/providers.pyx":879 +/* "dependency_injector/providers.pyx":890 * * * cdef class DelegatedCallable(Callable): # <<<<<<<<<<<<<< @@ -1597,7 +1610,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedCallable { static struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedCallable *__pyx_vtabptr_19dependency_injector_9providers_DelegatedCallable; -/* "dependency_injector/providers.pyx":888 +/* "dependency_injector/providers.pyx":899 * * * cdef class AbstractCallable(Callable): # <<<<<<<<<<<<<< @@ -1611,7 +1624,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_AbstractCallable { static struct __pyx_vtabstruct_19dependency_injector_9providers_AbstractCallable *__pyx_vtabptr_19dependency_injector_9providers_AbstractCallable; -/* "dependency_injector/providers.pyx":929 +/* "dependency_injector/providers.pyx":940 * * * cdef class CallableDelegate(Delegate): # <<<<<<<<<<<<<< @@ -1625,7 +1638,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_CallableDelegate { static struct __pyx_vtabstruct_19dependency_injector_9providers_CallableDelegate *__pyx_vtabptr_19dependency_injector_9providers_CallableDelegate; -/* "dependency_injector/providers.pyx":951 +/* "dependency_injector/providers.pyx":962 * * * cdef class Coroutine(Callable): # <<<<<<<<<<<<<< @@ -1639,7 +1652,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_Coroutine { static struct __pyx_vtabstruct_19dependency_injector_9providers_Coroutine *__pyx_vtabptr_19dependency_injector_9providers_Coroutine; -/* "dependency_injector/providers.pyx":995 +/* "dependency_injector/providers.pyx":1006 * * * cdef class DelegatedCoroutine(Coroutine): # <<<<<<<<<<<<<< @@ -1653,7 +1666,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedCoroutine { static struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedCoroutine *__pyx_vtabptr_19dependency_injector_9providers_DelegatedCoroutine; -/* "dependency_injector/providers.pyx":1004 +/* "dependency_injector/providers.pyx":1015 * * * cdef class AbstractCoroutine(Coroutine): # <<<<<<<<<<<<<< @@ -1667,7 +1680,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_AbstractCoroutine { static struct __pyx_vtabstruct_19dependency_injector_9providers_AbstractCoroutine *__pyx_vtabptr_19dependency_injector_9providers_AbstractCoroutine; -/* "dependency_injector/providers.pyx":1045 +/* "dependency_injector/providers.pyx":1056 * * * cdef class CoroutineDelegate(Delegate): # <<<<<<<<<<<<<< @@ -1681,7 +1694,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_CoroutineDelegate { static struct __pyx_vtabstruct_19dependency_injector_9providers_CoroutineDelegate *__pyx_vtabptr_19dependency_injector_9providers_CoroutineDelegate; -/* "dependency_injector/providers.pyx":1067 +/* "dependency_injector/providers.pyx":1078 * * * cdef class ConfigurationOption(Provider): # <<<<<<<<<<<<<< @@ -1695,7 +1708,21 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_ConfigurationOption { static struct __pyx_vtabstruct_19dependency_injector_9providers_ConfigurationOption *__pyx_vtabptr_19dependency_injector_9providers_ConfigurationOption; -/* "dependency_injector/providers.pyx":1265 +/* "dependency_injector/providers.pyx":1283 + * + * + * cdef class TypedConfigurationOption(Callable): # <<<<<<<<<<<<<< + * + * @property + */ + +struct __pyx_vtabstruct_19dependency_injector_9providers_TypedConfigurationOption { + struct __pyx_vtabstruct_19dependency_injector_9providers_Callable __pyx_base; +}; +static struct __pyx_vtabstruct_19dependency_injector_9providers_TypedConfigurationOption *__pyx_vtabptr_19dependency_injector_9providers_TypedConfigurationOption; + + +/* "dependency_injector/providers.pyx":1290 * * * cdef class Configuration(Object): # <<<<<<<<<<<<<< @@ -1709,7 +1736,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_Configuration { static struct __pyx_vtabstruct_19dependency_injector_9providers_Configuration *__pyx_vtabptr_19dependency_injector_9providers_Configuration; -/* "dependency_injector/providers.pyx":1521 +/* "dependency_injector/providers.pyx":1546 * * * cdef class Factory(Provider): # <<<<<<<<<<<<<< @@ -1723,7 +1750,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_Factory { static struct __pyx_vtabstruct_19dependency_injector_9providers_Factory *__pyx_vtabptr_19dependency_injector_9providers_Factory; -/* "dependency_injector/providers.pyx":1743 +/* "dependency_injector/providers.pyx":1768 * * * cdef class DelegatedFactory(Factory): # <<<<<<<<<<<<<< @@ -1737,7 +1764,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedFactory { static struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedFactory *__pyx_vtabptr_19dependency_injector_9providers_DelegatedFactory; -/* "dependency_injector/providers.pyx":1765 +/* "dependency_injector/providers.pyx":1790 * * * cdef class AbstractFactory(Factory): # <<<<<<<<<<<<<< @@ -1751,7 +1778,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_AbstractFactory { static struct __pyx_vtabstruct_19dependency_injector_9providers_AbstractFactory *__pyx_vtabptr_19dependency_injector_9providers_AbstractFactory; -/* "dependency_injector/providers.pyx":1806 +/* "dependency_injector/providers.pyx":1831 * * * cdef class FactoryDelegate(Delegate): # <<<<<<<<<<<<<< @@ -1765,7 +1792,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_FactoryDelegate { static struct __pyx_vtabstruct_19dependency_injector_9providers_FactoryDelegate *__pyx_vtabptr_19dependency_injector_9providers_FactoryDelegate; -/* "dependency_injector/providers.pyx":1828 +/* "dependency_injector/providers.pyx":1853 * * * cdef class FactoryAggregate(Provider): # <<<<<<<<<<<<<< @@ -1780,7 +1807,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_FactoryAggregate { static struct __pyx_vtabstruct_19dependency_injector_9providers_FactoryAggregate *__pyx_vtabptr_19dependency_injector_9providers_FactoryAggregate; -/* "dependency_injector/providers.pyx":1915 +/* "dependency_injector/providers.pyx":1940 * * * cdef class BaseSingleton(Provider): # <<<<<<<<<<<<<< @@ -1794,7 +1821,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_BaseSingleton { static struct __pyx_vtabstruct_19dependency_injector_9providers_BaseSingleton *__pyx_vtabptr_19dependency_injector_9providers_BaseSingleton; -/* "dependency_injector/providers.pyx":2073 +/* "dependency_injector/providers.pyx":2098 * * * cdef class Singleton(BaseSingleton): # <<<<<<<<<<<<<< @@ -1808,7 +1835,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_Singleton { static struct __pyx_vtabstruct_19dependency_injector_9providers_Singleton *__pyx_vtabptr_19dependency_injector_9providers_Singleton; -/* "dependency_injector/providers.pyx":2129 +/* "dependency_injector/providers.pyx":2154 * * * cdef class DelegatedSingleton(Singleton): # <<<<<<<<<<<<<< @@ -1822,7 +1849,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedSingleton { static struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedSingleton *__pyx_vtabptr_19dependency_injector_9providers_DelegatedSingleton; -/* "dependency_injector/providers.pyx":2151 +/* "dependency_injector/providers.pyx":2176 * * * cdef class ThreadSafeSingleton(BaseSingleton): # <<<<<<<<<<<<<< @@ -1836,7 +1863,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_ThreadSafeSingleton { static struct __pyx_vtabstruct_19dependency_injector_9providers_ThreadSafeSingleton *__pyx_vtabptr_19dependency_injector_9providers_ThreadSafeSingleton; -/* "dependency_injector/providers.pyx":2186 +/* "dependency_injector/providers.pyx":2211 * * * cdef class DelegatedThreadSafeSingleton(ThreadSafeSingleton): # <<<<<<<<<<<<<< @@ -1850,7 +1877,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedThreadSafeSing static struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedThreadSafeSingleton *__pyx_vtabptr_19dependency_injector_9providers_DelegatedThreadSafeSingleton; -/* "dependency_injector/providers.pyx":2208 +/* "dependency_injector/providers.pyx":2233 * * * cdef class ThreadLocalSingleton(BaseSingleton): # <<<<<<<<<<<<<< @@ -1864,7 +1891,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_ThreadLocalSingleton { static struct __pyx_vtabstruct_19dependency_injector_9providers_ThreadLocalSingleton *__pyx_vtabptr_19dependency_injector_9providers_ThreadLocalSingleton; -/* "dependency_injector/providers.pyx":2256 +/* "dependency_injector/providers.pyx":2281 * * * cdef class DelegatedThreadLocalSingleton(ThreadLocalSingleton): # <<<<<<<<<<<<<< @@ -1878,7 +1905,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedThreadLocalSin static struct __pyx_vtabstruct_19dependency_injector_9providers_DelegatedThreadLocalSingleton *__pyx_vtabptr_19dependency_injector_9providers_DelegatedThreadLocalSingleton; -/* "dependency_injector/providers.pyx":2278 +/* "dependency_injector/providers.pyx":2303 * * * cdef class AbstractSingleton(BaseSingleton): # <<<<<<<<<<<<<< @@ -1892,7 +1919,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_AbstractSingleton { static struct __pyx_vtabstruct_19dependency_injector_9providers_AbstractSingleton *__pyx_vtabptr_19dependency_injector_9providers_AbstractSingleton; -/* "dependency_injector/providers.pyx":2323 +/* "dependency_injector/providers.pyx":2348 * * * cdef class SingletonDelegate(Delegate): # <<<<<<<<<<<<<< @@ -1906,7 +1933,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_SingletonDelegate { static struct __pyx_vtabstruct_19dependency_injector_9providers_SingletonDelegate *__pyx_vtabptr_19dependency_injector_9providers_SingletonDelegate; -/* "dependency_injector/providers.pyx":2345 +/* "dependency_injector/providers.pyx":2370 * * * cdef class List(Provider): # <<<<<<<<<<<<<< @@ -1920,7 +1947,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_List { static struct __pyx_vtabstruct_19dependency_injector_9providers_List *__pyx_vtabptr_19dependency_injector_9providers_List; -/* "dependency_injector/providers.pyx":2452 +/* "dependency_injector/providers.pyx":2477 * * * cdef class Container(Provider): # <<<<<<<<<<<<<< @@ -1934,7 +1961,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_Container { static struct __pyx_vtabstruct_19dependency_injector_9providers_Container *__pyx_vtabptr_19dependency_injector_9providers_Container; -/* "dependency_injector/providers.pyx":2503 +/* "dependency_injector/providers.pyx":2532 * * * cdef class Selector(Provider): # <<<<<<<<<<<<<< @@ -1948,7 +1975,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_Selector { static struct __pyx_vtabstruct_19dependency_injector_9providers_Selector *__pyx_vtabptr_19dependency_injector_9providers_Selector; -/* "dependency_injector/providers.pyx":2605 +/* "dependency_injector/providers.pyx":2634 * * * cdef class ProvidedInstance(Provider): # <<<<<<<<<<<<<< @@ -1962,7 +1989,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_ProvidedInstance { static struct __pyx_vtabstruct_19dependency_injector_9providers_ProvidedInstance *__pyx_vtabptr_19dependency_injector_9providers_ProvidedInstance; -/* "dependency_injector/providers.pyx":2667 +/* "dependency_injector/providers.pyx":2701 * * * cdef class AttributeGetter(Provider): # <<<<<<<<<<<<<< @@ -1976,7 +2003,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_AttributeGetter { static struct __pyx_vtabstruct_19dependency_injector_9providers_AttributeGetter *__pyx_vtabptr_19dependency_injector_9providers_AttributeGetter; -/* "dependency_injector/providers.pyx":2707 +/* "dependency_injector/providers.pyx":2751 * * * cdef class ItemGetter(Provider): # <<<<<<<<<<<<<< @@ -1990,7 +2017,7 @@ struct __pyx_vtabstruct_19dependency_injector_9providers_ItemGetter { static struct __pyx_vtabstruct_19dependency_injector_9providers_ItemGetter *__pyx_vtabptr_19dependency_injector_9providers_ItemGetter; -/* "dependency_injector/providers.pyx":2747 +/* "dependency_injector/providers.pyx":2801 * * * cdef class MethodCaller(Provider): # <<<<<<<<<<<<<< @@ -2906,6 +2933,7 @@ static PyTypeObject *__pyx_ptype_19dependency_injector_9providers_DelegatedCorou static PyTypeObject *__pyx_ptype_19dependency_injector_9providers_AbstractCoroutine = 0; static PyTypeObject *__pyx_ptype_19dependency_injector_9providers_CoroutineDelegate = 0; static PyTypeObject *__pyx_ptype_19dependency_injector_9providers_ConfigurationOption = 0; +static PyTypeObject *__pyx_ptype_19dependency_injector_9providers_TypedConfigurationOption = 0; static PyTypeObject *__pyx_ptype_19dependency_injector_9providers_Configuration = 0; static PyTypeObject *__pyx_ptype_19dependency_injector_9providers_Factory = 0; static PyTypeObject *__pyx_ptype_19dependency_injector_9providers_DelegatedFactory = 0; @@ -2969,6 +2997,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Delegat static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_AbstractCoroutine__set_state(struct __pyx_obj_19dependency_injector_9providers_AbstractCoroutine *, PyObject *); /*proto*/ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_CoroutineDelegate__set_state(struct __pyx_obj_19dependency_injector_9providers_CoroutineDelegate *, PyObject *); /*proto*/ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_ConfigurationOption__set_state(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *, PyObject *); /*proto*/ +static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_TypedConfigurationOption__set_state(struct __pyx_obj_19dependency_injector_9providers_TypedConfigurationOption *, PyObject *); /*proto*/ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Configuration__set_state(struct __pyx_obj_19dependency_injector_9providers_Configuration *, PyObject *); /*proto*/ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Factory__set_state(struct __pyx_obj_19dependency_injector_9providers_Factory *, PyObject *); /*proto*/ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_DelegatedFactory__set_state(struct __pyx_obj_19dependency_injector_9providers_DelegatedFactory *, PyObject *); /*proto*/ @@ -3007,24 +3036,25 @@ static PyObject *__pyx_builtin_open; static PyObject *__pyx_builtin_IOError; static PyObject *__pyx_builtin_id; static PyObject *__pyx_builtin_IndexError; +static PyObject *__pyx_builtin_DeprecationWarning; static PyObject *__pyx_builtin_NotImplementedError; static PyObject *__pyx_builtin_TypeError; static PyObject *__pyx_builtin_AttributeError; static PyObject *__pyx_builtin_hex; static const char __pyx_k_[] = "_"; -static const char __pyx_k__3[] = "__"; -static const char __pyx_k__4[] = "."; -static const char __pyx_k__7[] = ", "; -static const char __pyx_k__8[] = "('"; -static const char __pyx_k__9[] = "')"; +static const char __pyx_k__4[] = "__"; +static const char __pyx_k__5[] = "."; +static const char __pyx_k__8[] = ", "; +static const char __pyx_k__9[] = "('"; static const char __pyx_k_id[] = "id"; static const char __pyx_k_os[] = "os"; static const char __pyx_k_re[] = "re"; static const char __pyx_k_0_1[] = "{0}={1}"; -static const char __pyx_k__10[] = "("; -static const char __pyx_k__11[] = ")"; -static const char __pyx_k__12[] = ""; -static const char __pyx_k__14[] = "\\$\\{([^}^{]+)\\}"; +static const char __pyx_k__10[] = "')"; +static const char __pyx_k__11[] = "("; +static const char __pyx_k__12[] = ")"; +static const char __pyx_k__13[] = ""; +static const char __pyx_k__15[] = "\\$\\{([^}^{]+)\\}"; static const char __pyx_k_cls[] = "cls"; static const char __pyx_k_doc[] = "__doc__"; static const char __pyx_k_get[] = "get"; @@ -3058,6 +3088,7 @@ static const char __pyx_k_root[] = "root"; static const char __pyx_k_self[] = "self"; static const char __pyx_k_send[] = "send"; static const char __pyx_k_test[] = "__test__"; +static const char __pyx_k_warn[] = "warn"; static const char __pyx_k_yaml[] = "yaml"; static const char __pyx_k_Error[] = "Error"; static const char __pyx_k_RLock[] = "RLock"; @@ -3124,9 +3155,9 @@ static const char __pyx_k_StringIO[] = "StringIO"; static const char __pyx_k_add_args[] = "add_args"; static const char __pyx_k_callable[] = "callable"; static const char __pyx_k_callback[] = "callback"; +static const char __pyx_k_category[] = "category"; static const char __pyx_k_deepcopy[] = "deepcopy"; static const char __pyx_k_defaults[] = "defaults"; -static const char __pyx_k_delegate[] = "delegate"; static const char __pyx_k_endswith[] = "endswith"; static const char __pyx_k_filepath[] = "filepath"; static const char __pyx_k_get_name[] = "get_name"; @@ -3143,6 +3174,7 @@ static const char __pyx_k_sections[] = "sections"; static const char __pyx_k_selector[] = "selector"; static const char __pyx_k_set_args[] = "set_args"; static const char __pyx_k_setstate[] = "__setstate__"; +static const char __pyx_k_warnings[] = "warnings"; static const char __pyx_k_ClassType[] = "ClassType"; static const char __pyx_k_Container[] = "Container"; static const char __pyx_k_Coroutine[] = "Coroutine"; @@ -3245,6 +3277,7 @@ static const char __pyx_k_pyx_unpickle_List[] = "__pyx_unpickle_List"; static const char __pyx_k_BasicInterpolation[] = "BasicInterpolation"; static const char __pyx_k_DelegatedCoroutine[] = "DelegatedCoroutine"; static const char __pyx_k_DelegatedSingleton[] = "DelegatedSingleton"; +static const char __pyx_k_DeprecationWarning[] = "DeprecationWarning"; static const char __pyx_k_ExternalDependency[] = "ExternalDependency"; static const char __pyx_k_asyncio_coroutines[] = "asyncio.coroutines"; static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; @@ -3275,6 +3308,7 @@ static const char __pyx_k_pyx_unpickle_Singleton[] = "__pyx_unpickle_Singleton"; static const char __pyx_k_pyx_unpickle_Dependency[] = "__pyx_unpickle_Dependency"; static const char __pyx_k_pyx_unpickle_ItemGetter[] = "__pyx_unpickle_ItemGetter"; static const char __pyx_k_yaml_env_marker_pattern[] = "yaml_env_marker_pattern"; +static const char __pyx_k_TypedConfigurationOption[] = "TypedConfigurationOption"; static const char __pyx_k_Dependency_is_not_defined[] = "Dependency is not defined"; static const char __pyx_k_pyx_unpickle_MethodCaller[] = "__pyx_unpickle_MethodCaller"; static const char __pyx_k_Selector_has_no_0_provider[] = "Selector has no \"{0}\" provider"; @@ -3319,6 +3353,7 @@ static const char __pyx_k_pyx_unpickle_PositionalInjecti[] = "__pyx_unpickle_Pos static const char __pyx_k_pyx_unpickle_SingletonDelegate[] = "__pyx_unpickle_SingletonDelegate"; static const char __pyx_k_pyx_unpickle_ThreadLocalSingle[] = "__pyx_unpickle_ThreadLocalSingleton"; static const char __pyx_k_pyx_unpickle_ThreadSafeSinglet[] = "__pyx_unpickle_ThreadSafeSingleton"; +static const char __pyx_k_pyx_unpickle_TypedConfiguratio[] = "__pyx_unpickle_TypedConfigurationOption"; static const char __pyx_k_0_does_not_contain_factory_with[] = "{0} does not contain factory with name {1}"; static const char __pyx_k_0_must_be_overridden_before_cal[] = "{0} must be overridden before calling"; static const char __pyx_k_0_providers_could_not_be_overri[] = "{0} providers could not be overridden"; @@ -3329,12 +3364,12 @@ static const char __pyx_k_Configuration_option_can_only_be[] = "Configuration op static const char __pyx_k_Configuration_option_does_not_su[] = "Configuration option does not support this method"; static const char __pyx_k_Expected_provider_instance_got_0[] = "Expected provider instance, got {0}"; static const char __pyx_k_Incompatible_checksums_s_vs_0x03[] = "Incompatible checksums (%s vs 0x03251dc = (__args, __args_len, __kwargs, __kwargs_len, __last_overriding, __overridden, __provides))"; +static const char __pyx_k_Incompatible_checksums_s_vs_0x04[] = "Incompatible checksums (%s vs 0x0433d08 = (__container, __container_cls, __last_overriding, __overridden, __overriding_providers))"; static const char __pyx_k_Incompatible_checksums_s_vs_0x0c[] = "Incompatible checksums (%s vs 0x0c49df0 = (__instantiator, __last_overriding, __overridden))"; static const char __pyx_k_Incompatible_checksums_s_vs_0x0d[] = "Incompatible checksums (%s vs 0x0d07ffc = (__last_overriding, __overridden, __provider))"; static const char __pyx_k_Incompatible_checksums_s_vs_0x0f[] = "Incompatible checksums (%s vs 0x0f5c5dd = (__last_overriding, __overridden))"; static const char __pyx_k_Incompatible_checksums_s_vs_0x20[] = "Incompatible checksums (%s vs 0x2071b6b = (__overridden, __overriding))"; static const char __pyx_k_Incompatible_checksums_s_vs_0x2e[] = "Incompatible checksums (%s vs 0x2e1d18f = (__call, __is_delegated, __is_provider, __value))"; -static const char __pyx_k_Incompatible_checksums_s_vs_0x34[] = "Incompatible checksums (%s vs 0x3486ddb = (__last_overriding, __overridden, container, container_cls, overriding_providers))"; static const char __pyx_k_Incompatible_checksums_s_vs_0x3f[] = "Incompatible checksums (%s vs 0x3f4a3b6 = (__last_overriding, __overridden, __provides))"; static const char __pyx_k_Incompatible_checksums_s_vs_0x57[] = "Incompatible checksums (%s vs 0x570b822 = (__last_overriding, __overridden, __providers, __selector))"; static const char __pyx_k_Incompatible_checksums_s_vs_0x58[] = "Incompatible checksums (%s vs 0x5818eae = (__item, __last_overriding, __overridden, __provider))"; @@ -3349,6 +3384,7 @@ static const char __pyx_k_Incompatible_checksums_s_vs_0xd8[] = "Incompatible che static const char __pyx_k_Incompatible_checksums_s_vs_0xe0[] = "Incompatible checksums (%s vs 0xe01ff48 = (__attribute, __last_overriding, __overridden, __provider))"; static const char __pyx_k_Incompatible_checksums_s_vs_0xf1[] = "Incompatible checksums (%s vs 0xf1f5217 = (__instance_of, __last_overriding, __overridden))"; static const char __pyx_k_Interpolation_which_expands_envi[] = "Interpolation which expands environment variables in values."; +static const char __pyx_k_Method_delegate_is_deprecated_si[] = "Method \".delegate()\" is deprecated since version 4.0.0. Use \".provider\" attribute instead."; static const char __pyx_k_Package_asyncio_is_not_available[] = "Package asyncio is not available"; static const char __pyx_k_Provider_0_can_not_be_overridden[] = "Provider {0} can not be overridden"; static const char __pyx_k_Provider_0_could_not_be_overridd[] = "Provider {0} could not be overridden with itself"; @@ -3401,6 +3437,7 @@ static PyObject *__pyx_n_s_DelegatedThreadSafeSingleton; static PyObject *__pyx_n_s_DependenciesContainer; static PyObject *__pyx_n_s_Dependency; static PyObject *__pyx_kp_s_Dependency_is_not_defined; +static PyObject *__pyx_n_s_DeprecationWarning; static PyObject *__pyx_n_s_EnvInterpolation; static PyObject *__pyx_n_s_EnvInterpolation_before_get; static PyObject *__pyx_n_s_Error; @@ -3414,13 +3451,13 @@ static PyObject *__pyx_n_s_IS_DELEGATED; static PyObject *__pyx_n_s_IS_PROVIDER; static PyObject *__pyx_n_s_ImportError; static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x03; +static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x04; static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x0c; static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x0d; static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x0f; static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x20; static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x20_2; static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x2e; -static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x34; static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x3f; static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x57; static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x58; @@ -3443,6 +3480,7 @@ static PyObject *__pyx_n_s_List; static PyObject *__pyx_n_s_Loader; static PyObject *__pyx_n_s_MethodCaller; static PyObject *__pyx_n_s_MethodType; +static PyObject *__pyx_kp_s_Method_delegate_is_deprecated_si; static PyObject *__pyx_n_s_NamedInjection; static PyObject *__pyx_n_s_NoSuchProviderError; static PyObject *__pyx_n_s_NotImplementedError; @@ -3468,16 +3506,17 @@ static PyObject *__pyx_n_s_StringIO; static PyObject *__pyx_n_s_ThreadLocalSingleton; static PyObject *__pyx_n_s_ThreadSafeSingleton; static PyObject *__pyx_n_s_TypeError; +static PyObject *__pyx_n_s_TypedConfigurationOption; static PyObject *__pyx_n_s_UNDEFINED; static PyObject *__pyx_kp_s_Unable_to_load_yaml_configuratio; static PyObject *__pyx_kp_u__10; static PyObject *__pyx_kp_u__11; -static PyObject *__pyx_kp_s__12; -static PyObject *__pyx_kp_s__14; -static PyObject *__pyx_n_s__3; -static PyObject *__pyx_kp_s__4; -static PyObject *__pyx_kp_s__7; -static PyObject *__pyx_kp_u__8; +static PyObject *__pyx_kp_u__12; +static PyObject *__pyx_kp_s__13; +static PyObject *__pyx_kp_s__15; +static PyObject *__pyx_n_s__4; +static PyObject *__pyx_kp_s__5; +static PyObject *__pyx_kp_s__8; static PyObject *__pyx_kp_u__9; static PyObject *__pyx_n_s_add_args; static PyObject *__pyx_n_s_add_attributes; @@ -3497,6 +3536,7 @@ static PyObject *__pyx_n_s_before_get; static PyObject *__pyx_n_s_call; static PyObject *__pyx_n_s_callable; static PyObject *__pyx_n_s_callback; +static PyObject *__pyx_n_s_category; static PyObject *__pyx_n_s_class; static PyObject *__pyx_n_s_class_getitem; static PyObject *__pyx_n_s_clear_args; @@ -3522,7 +3562,6 @@ static PyObject *__pyx_n_s_deepcopy; static PyObject *__pyx_n_s_deepcopy_dispatch; static PyObject *__pyx_n_s_default; static PyObject *__pyx_n_s_defaults; -static PyObject *__pyx_n_s_delegate; static PyObject *__pyx_n_s_dependency_injector_providers; static PyObject *__pyx_n_s_dict; static PyObject *__pyx_n_s_dict1; @@ -3652,6 +3691,7 @@ static PyObject *__pyx_n_s_pyx_unpickle_Singleton; static PyObject *__pyx_n_s_pyx_unpickle_SingletonDelegate; static PyObject *__pyx_n_s_pyx_unpickle_ThreadLocalSingle; static PyObject *__pyx_n_s_pyx_unpickle_ThreadSafeSinglet; +static PyObject *__pyx_n_s_pyx_unpickle_TypedConfiguratio; static PyObject *__pyx_n_s_pyx_vtable; static PyObject *__pyx_n_s_qualname; static PyObject *__pyx_n_s_range; @@ -3700,6 +3740,8 @@ static PyObject *__pyx_n_s_update; static PyObject *__pyx_n_s_value; static PyObject *__pyx_n_s_values; static PyObject *__pyx_n_s_version_info; +static PyObject *__pyx_n_s_warn; +static PyObject *__pyx_n_s_warnings; static PyObject *__pyx_n_s_weakref; static PyObject *__pyx_n_s_yaml; static PyObject *__pyx_n_s_yaml_env_marker_constructor; @@ -3738,6 +3780,7 @@ static int __pyx_pf_19dependency_injector_9providers_8Delegate___init__(struct _ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_2__deepcopy__(struct __pyx_obj_19dependency_injector_9providers_Delegate *__pyx_v_self, PyObject *__pyx_v_memo); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_4__str__(struct __pyx_obj_19dependency_injector_9providers_Delegate *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_6__repr__(struct __pyx_obj_19dependency_injector_9providers_Delegate *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_8provides___get__(struct __pyx_obj_19dependency_injector_9providers_Delegate *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_8_provide(struct __pyx_obj_19dependency_injector_9providers_Delegate *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_10__reduce_cython__(struct __pyx_obj_19dependency_injector_9providers_Delegate *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_12__setstate_cython__(struct __pyx_obj_19dependency_injector_9providers_Delegate *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ @@ -3815,21 +3858,26 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_10_provide(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_14_get_self_name_genexpr(PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_12_get_self_name(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_4root___get__(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_14get_name(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_16as_int(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_18as_float(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_20as_(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_callback, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_22override(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_24reset_last_overriding(CYTHON_UNUSED struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_26reset_override(CYTHON_UNUSED struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_28reset_cache(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_30update(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_32from_ini(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_filepath); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_34from_yaml(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_filepath); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_36from_dict(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_options); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_38from_env(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_default); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_40__reduce_cython__(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_42__setstate_cython__(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_16get_name_segments(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_18as_int(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_20as_float(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_22as_(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_callback, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_24override(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_26reset_last_overriding(CYTHON_UNUSED struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_28reset_override(CYTHON_UNUSED struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_30reset_cache(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_32update(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_34from_ini(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_filepath); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_36from_yaml(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_filepath); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_38from_dict(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_options); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_40from_env(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_default); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_42__reduce_cython__(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_44__setstate_cython__(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_24TypedConfigurationOption_6option___get__(struct __pyx_obj_19dependency_injector_9providers_TypedConfigurationOption *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_24TypedConfigurationOption___reduce_cython__(struct __pyx_obj_19dependency_injector_9providers_TypedConfigurationOption *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_24TypedConfigurationOption_2__setstate_cython__(struct __pyx_obj_19dependency_injector_9providers_TypedConfigurationOption *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_19dependency_injector_9providers_13Configuration___init__(struct __pyx_obj_19dependency_injector_9providers_Configuration *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_default); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_2__deepcopy__(struct __pyx_obj_19dependency_injector_9providers_Configuration *__pyx_v_self, PyObject *__pyx_v_memo); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_4__str__(struct __pyx_obj_19dependency_injector_9providers_Configuration *__pyx_v_self); /* proto */ @@ -3952,6 +4000,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_16__setstate_cy static int __pyx_pf_19dependency_injector_9providers_9Container___init__(struct __pyx_obj_19dependency_injector_9providers_Container *__pyx_v_self, PyObject *__pyx_v_container_cls, PyObject *__pyx_v_container, PyObject *__pyx_v_overriding_providers); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_2__deepcopy__(struct __pyx_obj_19dependency_injector_9providers_Container *__pyx_v_self, PyObject *__pyx_v_memo); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_4__getattr__(struct __pyx_obj_19dependency_injector_9providers_Container *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_9container___get__(struct __pyx_obj_19dependency_injector_9providers_Container *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_6override(struct __pyx_obj_19dependency_injector_9providers_Container *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_provider); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_8_provide(struct __pyx_obj_19dependency_injector_9providers_Container *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_10__reduce_cython__(struct __pyx_obj_19dependency_injector_9providers_Container *__pyx_v_self); /* proto */ @@ -3971,6 +4020,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_2_ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_4__deepcopy__(struct __pyx_obj_19dependency_injector_9providers_ProvidedInstance *__pyx_v_self, PyObject *__pyx_v_memo); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_6__getattr__(struct __pyx_obj_19dependency_injector_9providers_ProvidedInstance *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_8__getitem__(struct __pyx_obj_19dependency_injector_9providers_ProvidedInstance *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_8provides___get__(struct __pyx_obj_19dependency_injector_9providers_ProvidedInstance *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_10call(struct __pyx_obj_19dependency_injector_9providers_ProvidedInstance *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_12_provide(struct __pyx_obj_19dependency_injector_9providers_ProvidedInstance *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_14__reduce_cython__(struct __pyx_obj_19dependency_injector_9providers_ProvidedInstance *__pyx_v_self); /* proto */ @@ -3980,6 +4030,8 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_2__ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_4__deepcopy__(struct __pyx_obj_19dependency_injector_9providers_AttributeGetter *__pyx_v_self, PyObject *__pyx_v_memo); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_6__getattr__(struct __pyx_obj_19dependency_injector_9providers_AttributeGetter *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_8__getitem__(struct __pyx_obj_19dependency_injector_9providers_AttributeGetter *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_8provides___get__(struct __pyx_obj_19dependency_injector_9providers_AttributeGetter *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_4name___get__(struct __pyx_obj_19dependency_injector_9providers_AttributeGetter *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_10call(struct __pyx_obj_19dependency_injector_9providers_AttributeGetter *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_12_provide(struct __pyx_obj_19dependency_injector_9providers_AttributeGetter *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_14__reduce_cython__(struct __pyx_obj_19dependency_injector_9providers_AttributeGetter *__pyx_v_self); /* proto */ @@ -3989,6 +4041,8 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_2__repr_ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_4__deepcopy__(struct __pyx_obj_19dependency_injector_9providers_ItemGetter *__pyx_v_self, PyObject *__pyx_v_memo); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_6__getattr__(struct __pyx_obj_19dependency_injector_9providers_ItemGetter *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_8__getitem__(struct __pyx_obj_19dependency_injector_9providers_ItemGetter *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_8provides___get__(struct __pyx_obj_19dependency_injector_9providers_ItemGetter *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_4name___get__(struct __pyx_obj_19dependency_injector_9providers_ItemGetter *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_10call(struct __pyx_obj_19dependency_injector_9providers_ItemGetter *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_12_provide(struct __pyx_obj_19dependency_injector_9providers_ItemGetter *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_14__reduce_cython__(struct __pyx_obj_19dependency_injector_9providers_ItemGetter *__pyx_v_self); /* proto */ @@ -3998,6 +4052,9 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_2__rep static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_4__deepcopy__(struct __pyx_obj_19dependency_injector_9providers_MethodCaller *__pyx_v_self, PyObject *__pyx_v_memo); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_6__getattr__(struct __pyx_obj_19dependency_injector_9providers_MethodCaller *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_8__getitem__(struct __pyx_obj_19dependency_injector_9providers_MethodCaller *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_8provides___get__(struct __pyx_obj_19dependency_injector_9providers_MethodCaller *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_4args___get__(struct __pyx_obj_19dependency_injector_9providers_MethodCaller *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_6kwargs___get__(struct __pyx_obj_19dependency_injector_9providers_MethodCaller *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_10call(struct __pyx_obj_19dependency_injector_9providers_MethodCaller *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_12_provide(struct __pyx_obj_19dependency_injector_9providers_MethodCaller *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_14__reduce_cython__(struct __pyx_obj_19dependency_injector_9providers_MethodCaller *__pyx_v_self); /* proto */ @@ -4042,31 +4099,32 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_49__pyx_unpickle_Dele static PyObject *__pyx_pf_19dependency_injector_9providers_51__pyx_unpickle_AbstractCoroutine(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_53__pyx_unpickle_CoroutineDelegate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_19dependency_injector_9providers_55__pyx_unpickle_ConfigurationOption(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_57__pyx_unpickle_Configuration(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_59__pyx_unpickle_Factory(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_61__pyx_unpickle_DelegatedFactory(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_63__pyx_unpickle_AbstractFactory(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_65__pyx_unpickle_FactoryDelegate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_67__pyx_unpickle_FactoryAggregate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_69__pyx_unpickle_BaseSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_71__pyx_unpickle_Singleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_73__pyx_unpickle_DelegatedSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_75__pyx_unpickle_ThreadSafeSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_77__pyx_unpickle_DelegatedThreadSafeSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_79__pyx_unpickle_ThreadLocalSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_81__pyx_unpickle_DelegatedThreadLocalSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_83__pyx_unpickle_AbstractSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_85__pyx_unpickle_SingletonDelegate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_87__pyx_unpickle_List(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_89__pyx_unpickle_Container(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_91__pyx_unpickle_Selector(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_93__pyx_unpickle_ProvidedInstance(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_95__pyx_unpickle_AttributeGetter(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_97__pyx_unpickle_ItemGetter(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_99__pyx_unpickle_MethodCaller(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_101__pyx_unpickle_Injection(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_103__pyx_unpickle_PositionalInjection(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_19dependency_injector_9providers_105__pyx_unpickle_NamedInjection(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_57__pyx_unpickle_TypedConfigurationOption(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_59__pyx_unpickle_Configuration(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_61__pyx_unpickle_Factory(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_63__pyx_unpickle_DelegatedFactory(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_65__pyx_unpickle_AbstractFactory(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_67__pyx_unpickle_FactoryDelegate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_69__pyx_unpickle_FactoryAggregate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_71__pyx_unpickle_BaseSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_73__pyx_unpickle_Singleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_75__pyx_unpickle_DelegatedSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_77__pyx_unpickle_ThreadSafeSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_79__pyx_unpickle_DelegatedThreadSafeSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_81__pyx_unpickle_ThreadLocalSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_83__pyx_unpickle_DelegatedThreadLocalSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_85__pyx_unpickle_AbstractSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_87__pyx_unpickle_SingletonDelegate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_89__pyx_unpickle_List(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_91__pyx_unpickle_Container(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_93__pyx_unpickle_Selector(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_95__pyx_unpickle_ProvidedInstance(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_97__pyx_unpickle_AttributeGetter(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_99__pyx_unpickle_ItemGetter(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_101__pyx_unpickle_MethodCaller(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_103__pyx_unpickle_Injection(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_105__pyx_unpickle_PositionalInjection(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_19dependency_injector_9providers_107__pyx_unpickle_NamedInjection(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_tp_new_19dependency_injector_9providers_Provider(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_19dependency_injector_9providers_Object(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_19dependency_injector_9providers_Delegate(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ @@ -4083,6 +4141,7 @@ static PyObject *__pyx_tp_new_19dependency_injector_9providers_DelegatedCoroutin static PyObject *__pyx_tp_new_19dependency_injector_9providers_AbstractCoroutine(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_19dependency_injector_9providers_CoroutineDelegate(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_19dependency_injector_9providers_ConfigurationOption(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_19dependency_injector_9providers_TypedConfigurationOption(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_19dependency_injector_9providers_Configuration(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_19dependency_injector_9providers_Factory(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_19dependency_injector_9providers_DelegatedFactory(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ @@ -4120,13 +4179,13 @@ static PyObject *__pyx_int_2; static PyObject *__pyx_int_3; static PyObject *__pyx_int_5; static PyObject *__pyx_int_3297756; +static PyObject *__pyx_int_4406536; static PyObject *__pyx_int_12885488; static PyObject *__pyx_int_13664252; static PyObject *__pyx_int_16106973; static PyObject *__pyx_int_33712928; static PyObject *__pyx_int_34020203; static PyObject *__pyx_int_48353679; -static PyObject *__pyx_int_55078363; static PyObject *__pyx_int_66364342; static PyObject *__pyx_int_91273250; static PyObject *__pyx_int_92376750; @@ -4141,108 +4200,111 @@ static PyObject *__pyx_int_186670759; static PyObject *__pyx_int_226841543; static PyObject *__pyx_int_235011912; static PyObject *__pyx_int_253710871; -static PyObject *__pyx_k__6; +static PyObject *__pyx_k__7; static PyObject *__pyx_tuple__2; -static PyObject *__pyx_tuple__5; -static PyObject *__pyx_tuple__13; -static PyObject *__pyx_tuple__15; +static PyObject *__pyx_tuple__3; +static PyObject *__pyx_tuple__6; +static PyObject *__pyx_tuple__14; static PyObject *__pyx_tuple__16; -static PyObject *__pyx_tuple__18; -static PyObject *__pyx_tuple__20; -static PyObject *__pyx_tuple__22; -static PyObject *__pyx_tuple__24; -static PyObject *__pyx_tuple__26; -static PyObject *__pyx_tuple__28; -static PyObject *__pyx_tuple__30; -static PyObject *__pyx_tuple__32; -static PyObject *__pyx_tuple__34; -static PyObject *__pyx_tuple__36; -static PyObject *__pyx_tuple__38; -static PyObject *__pyx_tuple__40; -static PyObject *__pyx_tuple__42; -static PyObject *__pyx_tuple__44; -static PyObject *__pyx_tuple__46; -static PyObject *__pyx_tuple__48; -static PyObject *__pyx_tuple__50; -static PyObject *__pyx_tuple__52; -static PyObject *__pyx_tuple__54; -static PyObject *__pyx_tuple__56; -static PyObject *__pyx_tuple__58; -static PyObject *__pyx_tuple__60; -static PyObject *__pyx_tuple__62; -static PyObject *__pyx_tuple__64; -static PyObject *__pyx_tuple__66; -static PyObject *__pyx_tuple__68; -static PyObject *__pyx_tuple__70; -static PyObject *__pyx_tuple__72; -static PyObject *__pyx_tuple__74; -static PyObject *__pyx_tuple__76; -static PyObject *__pyx_tuple__78; -static PyObject *__pyx_tuple__80; -static PyObject *__pyx_tuple__82; -static PyObject *__pyx_tuple__84; -static PyObject *__pyx_tuple__86; -static PyObject *__pyx_tuple__88; -static PyObject *__pyx_tuple__90; -static PyObject *__pyx_tuple__92; -static PyObject *__pyx_tuple__94; -static PyObject *__pyx_tuple__96; -static PyObject *__pyx_tuple__98; -static PyObject *__pyx_tuple__100; -static PyObject *__pyx_tuple__102; -static PyObject *__pyx_tuple__104; -static PyObject *__pyx_tuple__106; -static PyObject *__pyx_tuple__108; -static PyObject *__pyx_codeobj__17; -static PyObject *__pyx_codeobj__19; -static PyObject *__pyx_codeobj__21; -static PyObject *__pyx_codeobj__23; -static PyObject *__pyx_codeobj__25; -static PyObject *__pyx_codeobj__27; -static PyObject *__pyx_codeobj__29; -static PyObject *__pyx_codeobj__31; -static PyObject *__pyx_codeobj__33; -static PyObject *__pyx_codeobj__35; -static PyObject *__pyx_codeobj__37; -static PyObject *__pyx_codeobj__39; -static PyObject *__pyx_codeobj__41; -static PyObject *__pyx_codeobj__43; -static PyObject *__pyx_codeobj__45; -static PyObject *__pyx_codeobj__47; -static PyObject *__pyx_codeobj__49; -static PyObject *__pyx_codeobj__51; -static PyObject *__pyx_codeobj__53; -static PyObject *__pyx_codeobj__55; -static PyObject *__pyx_codeobj__57; -static PyObject *__pyx_codeobj__59; -static PyObject *__pyx_codeobj__61; -static PyObject *__pyx_codeobj__63; -static PyObject *__pyx_codeobj__65; -static PyObject *__pyx_codeobj__67; -static PyObject *__pyx_codeobj__69; -static PyObject *__pyx_codeobj__71; -static PyObject *__pyx_codeobj__73; -static PyObject *__pyx_codeobj__75; -static PyObject *__pyx_codeobj__77; -static PyObject *__pyx_codeobj__79; -static PyObject *__pyx_codeobj__81; -static PyObject *__pyx_codeobj__83; -static PyObject *__pyx_codeobj__85; -static PyObject *__pyx_codeobj__87; -static PyObject *__pyx_codeobj__89; -static PyObject *__pyx_codeobj__91; -static PyObject *__pyx_codeobj__93; -static PyObject *__pyx_codeobj__95; -static PyObject *__pyx_codeobj__97; -static PyObject *__pyx_codeobj__99; -static PyObject *__pyx_codeobj__101; -static PyObject *__pyx_codeobj__103; -static PyObject *__pyx_codeobj__105; -static PyObject *__pyx_codeobj__107; -static PyObject *__pyx_codeobj__109; +static PyObject *__pyx_tuple__17; +static PyObject *__pyx_tuple__19; +static PyObject *__pyx_tuple__21; +static PyObject *__pyx_tuple__23; +static PyObject *__pyx_tuple__25; +static PyObject *__pyx_tuple__27; +static PyObject *__pyx_tuple__29; +static PyObject *__pyx_tuple__31; +static PyObject *__pyx_tuple__33; +static PyObject *__pyx_tuple__35; +static PyObject *__pyx_tuple__37; +static PyObject *__pyx_tuple__39; +static PyObject *__pyx_tuple__41; +static PyObject *__pyx_tuple__43; +static PyObject *__pyx_tuple__45; +static PyObject *__pyx_tuple__47; +static PyObject *__pyx_tuple__49; +static PyObject *__pyx_tuple__51; +static PyObject *__pyx_tuple__53; +static PyObject *__pyx_tuple__55; +static PyObject *__pyx_tuple__57; +static PyObject *__pyx_tuple__59; +static PyObject *__pyx_tuple__61; +static PyObject *__pyx_tuple__63; +static PyObject *__pyx_tuple__65; +static PyObject *__pyx_tuple__67; +static PyObject *__pyx_tuple__69; +static PyObject *__pyx_tuple__71; +static PyObject *__pyx_tuple__73; +static PyObject *__pyx_tuple__75; +static PyObject *__pyx_tuple__77; +static PyObject *__pyx_tuple__79; +static PyObject *__pyx_tuple__81; +static PyObject *__pyx_tuple__83; +static PyObject *__pyx_tuple__85; +static PyObject *__pyx_tuple__87; +static PyObject *__pyx_tuple__89; +static PyObject *__pyx_tuple__91; +static PyObject *__pyx_tuple__93; +static PyObject *__pyx_tuple__95; +static PyObject *__pyx_tuple__97; +static PyObject *__pyx_tuple__99; +static PyObject *__pyx_tuple__101; +static PyObject *__pyx_tuple__103; +static PyObject *__pyx_tuple__105; +static PyObject *__pyx_tuple__107; +static PyObject *__pyx_tuple__109; +static PyObject *__pyx_tuple__111; +static PyObject *__pyx_codeobj__18; +static PyObject *__pyx_codeobj__20; +static PyObject *__pyx_codeobj__22; +static PyObject *__pyx_codeobj__24; +static PyObject *__pyx_codeobj__26; +static PyObject *__pyx_codeobj__28; +static PyObject *__pyx_codeobj__30; +static PyObject *__pyx_codeobj__32; +static PyObject *__pyx_codeobj__34; +static PyObject *__pyx_codeobj__36; +static PyObject *__pyx_codeobj__38; +static PyObject *__pyx_codeobj__40; +static PyObject *__pyx_codeobj__42; +static PyObject *__pyx_codeobj__44; +static PyObject *__pyx_codeobj__46; +static PyObject *__pyx_codeobj__48; +static PyObject *__pyx_codeobj__50; +static PyObject *__pyx_codeobj__52; +static PyObject *__pyx_codeobj__54; +static PyObject *__pyx_codeobj__56; +static PyObject *__pyx_codeobj__58; +static PyObject *__pyx_codeobj__60; +static PyObject *__pyx_codeobj__62; +static PyObject *__pyx_codeobj__64; +static PyObject *__pyx_codeobj__66; +static PyObject *__pyx_codeobj__68; +static PyObject *__pyx_codeobj__70; +static PyObject *__pyx_codeobj__72; +static PyObject *__pyx_codeobj__74; +static PyObject *__pyx_codeobj__76; +static PyObject *__pyx_codeobj__78; +static PyObject *__pyx_codeobj__80; +static PyObject *__pyx_codeobj__82; +static PyObject *__pyx_codeobj__84; +static PyObject *__pyx_codeobj__86; +static PyObject *__pyx_codeobj__88; +static PyObject *__pyx_codeobj__90; +static PyObject *__pyx_codeobj__92; +static PyObject *__pyx_codeobj__94; +static PyObject *__pyx_codeobj__96; +static PyObject *__pyx_codeobj__98; +static PyObject *__pyx_codeobj__100; +static PyObject *__pyx_codeobj__102; +static PyObject *__pyx_codeobj__104; +static PyObject *__pyx_codeobj__106; +static PyObject *__pyx_codeobj__108; +static PyObject *__pyx_codeobj__110; +static PyObject *__pyx_codeobj__112; /* Late includes */ -/* "dependency_injector/providers.pyx":49 +/* "dependency_injector/providers.pyx":50 * * copy._deepcopy_dispatch[types.MethodType] = \ * lambda obj, memo: type(obj)(obj.im_func, # <<<<<<<<<<<<<< @@ -4285,11 +4347,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_24lambda(PyObject *__ case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_memo)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("lambda", 1, 2, 2, 1); __PYX_ERR(1, 49, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("lambda", 1, 2, 2, 1); __PYX_ERR(1, 50, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda") < 0)) __PYX_ERR(1, 49, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda") < 0)) __PYX_ERR(1, 50, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -4302,7 +4364,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_24lambda(PyObject *__ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("lambda", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 49, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("lambda", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 50, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.lambda", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -4331,22 +4393,22 @@ static PyObject *__pyx_lambda_funcdef_19dependency_injector_9providers_lambda(CY int __pyx_clineno = 0; __Pyx_RefNannySetupContext("lambda", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_n_s_im_func); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 49, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_n_s_im_func); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - /* "dependency_injector/providers.pyx":50 + /* "dependency_injector/providers.pyx":51 * copy._deepcopy_dispatch[types.MethodType] = \ * lambda obj, memo: type(obj)(obj.im_func, * copy.deepcopy(obj.im_self, memo), # <<<<<<<<<<<<<< * obj.im_class) * */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_copy); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 50, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_copy); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_deepcopy); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 50, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_deepcopy); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_n_s_im_self); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 50, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_n_s_im_self); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = NULL; __pyx_t_7 = 0; @@ -4363,7 +4425,7 @@ static PyObject *__pyx_lambda_funcdef_19dependency_injector_9providers_lambda(CY #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_v_memo}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 50, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 51, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -4372,14 +4434,14 @@ static PyObject *__pyx_lambda_funcdef_19dependency_injector_9providers_lambda(CY #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_v_memo}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 50, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 51, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { - __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 50, __pyx_L1_error) + __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; @@ -4390,20 +4452,20 @@ static PyObject *__pyx_lambda_funcdef_19dependency_injector_9providers_lambda(CY __Pyx_GIVEREF(__pyx_v_memo); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_memo); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 50, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/providers.pyx":51 + /* "dependency_injector/providers.pyx":52 * lambda obj, memo: type(obj)(obj.im_func, * copy.deepcopy(obj.im_self, memo), * obj.im_class) # <<<<<<<<<<<<<< * * if yaml: */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_n_s_im_class); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 51, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_n_s_im_class); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_obj))); __pyx_t_8 = ((PyObject *)Py_TYPE(__pyx_v_obj)); __pyx_t_4 = NULL; @@ -4421,7 +4483,7 @@ static PyObject *__pyx_lambda_funcdef_19dependency_injector_9providers_lambda(CY #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_5}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 49, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 50, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -4432,7 +4494,7 @@ static PyObject *__pyx_lambda_funcdef_19dependency_injector_9providers_lambda(CY #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_5}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 49, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 50, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -4441,7 +4503,7 @@ static PyObject *__pyx_lambda_funcdef_19dependency_injector_9providers_lambda(CY } else #endif { - __pyx_t_6 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 49, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -4455,7 +4517,7 @@ static PyObject *__pyx_lambda_funcdef_19dependency_injector_9providers_lambda(CY __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_5 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 49, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -4464,7 +4526,7 @@ static PyObject *__pyx_lambda_funcdef_19dependency_injector_9providers_lambda(CY __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":49 + /* "dependency_injector/providers.pyx":50 * * copy._deepcopy_dispatch[types.MethodType] = \ * lambda obj, memo: type(obj)(obj.im_func, # <<<<<<<<<<<<<< @@ -4489,7 +4551,7 @@ static PyObject *__pyx_lambda_funcdef_19dependency_injector_9providers_lambda(CY return __pyx_r; } -/* "dependency_injector/providers.pyx":55 +/* "dependency_injector/providers.pyx":56 * if yaml: * yaml_env_marker_pattern = re.compile(r'\$\{([^}^{]+)\}') * def yaml_env_marker_constructor(_, node): # <<<<<<<<<<<<<< @@ -4533,11 +4595,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_1yaml_env_marker_cons case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_node)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("yaml_env_marker_constructor", 1, 2, 2, 1); __PYX_ERR(1, 55, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("yaml_env_marker_constructor", 1, 2, 2, 1); __PYX_ERR(1, 56, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "yaml_env_marker_constructor") < 0)) __PYX_ERR(1, 55, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "yaml_env_marker_constructor") < 0)) __PYX_ERR(1, 56, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -4550,7 +4612,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_1yaml_env_marker_cons } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("yaml_env_marker_constructor", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 55, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("yaml_env_marker_constructor", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 56, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.yaml_env_marker_constructor", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -4575,7 +4637,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_yaml_env_marker_const int __pyx_clineno = 0; __Pyx_RefNannySetupContext("yaml_env_marker_constructor", 0); - /* "dependency_injector/providers.pyx":57 + /* "dependency_injector/providers.pyx":58 * def yaml_env_marker_constructor(_, node): * """"Replace environment variable marker with its value.""" * return os.path.expandvars(node.value) # <<<<<<<<<<<<<< @@ -4583,15 +4645,15 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_yaml_env_marker_const * yaml.add_implicit_resolver('!path', yaml_env_marker_pattern) */ __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 57, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 57, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_expandvars); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 57, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_expandvars); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 57, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -4606,14 +4668,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_yaml_env_marker_const __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 57, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":55 + /* "dependency_injector/providers.pyx":56 * if yaml: * yaml_env_marker_pattern = re.compile(r'\$\{([^}^{]+)\}') * def yaml_env_marker_constructor(_, node): # <<<<<<<<<<<<<< @@ -4635,7 +4697,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_yaml_env_marker_const return __pyx_r; } -/* "dependency_injector/providers.pyx":66 +/* "dependency_injector/providers.pyx":67 * """Interpolation which expands environment variables in values.""" * * def before_get(self, parser, section, option, value, defaults): # <<<<<<<<<<<<<< @@ -4690,35 +4752,35 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_16EnvInterpolation_1b case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parser)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("before_get", 1, 6, 6, 1); __PYX_ERR(1, 66, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("before_get", 1, 6, 6, 1); __PYX_ERR(1, 67, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_section)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("before_get", 1, 6, 6, 2); __PYX_ERR(1, 66, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("before_get", 1, 6, 6, 2); __PYX_ERR(1, 67, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_option)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("before_get", 1, 6, 6, 3); __PYX_ERR(1, 66, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("before_get", 1, 6, 6, 3); __PYX_ERR(1, 67, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("before_get", 1, 6, 6, 4); __PYX_ERR(1, 66, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("before_get", 1, 6, 6, 4); __PYX_ERR(1, 67, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("before_get", 1, 6, 6, 5); __PYX_ERR(1, 66, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("before_get", 1, 6, 6, 5); __PYX_ERR(1, 67, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "before_get") < 0)) __PYX_ERR(1, 66, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "before_get") < 0)) __PYX_ERR(1, 67, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { goto __pyx_L5_argtuple_error; @@ -4739,7 +4801,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_16EnvInterpolation_1b } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("before_get", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 66, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("before_get", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 67, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.EnvInterpolation.before_get", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -4766,7 +4828,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16EnvInterpolation_be __Pyx_RefNannySetupContext("before_get", 0); __Pyx_INCREF(__pyx_v_value); - /* "dependency_injector/providers.pyx":67 + /* "dependency_injector/providers.pyx":68 * * def before_get(self, parser, section, option, value, defaults): * value = super().before_get(parser, section, option, value, defaults) # <<<<<<<<<<<<<< @@ -4774,9 +4836,9 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16EnvInterpolation_be * */ __pyx_t_2 = __Pyx_CyFunction_GetClassObj(__pyx_self); - if (!__pyx_t_2) { PyErr_SetString(PyExc_SystemError, "super(): empty __class__ cell"); __PYX_ERR(1, 67, __pyx_L1_error) } + if (!__pyx_t_2) { PyErr_SetString(PyExc_SystemError, "super(): empty __class__ cell"); __PYX_ERR(1, 68, __pyx_L1_error) } __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 67, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); @@ -4784,10 +4846,10 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16EnvInterpolation_be __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 67, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_before_get); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 67, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_before_get); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; @@ -4805,7 +4867,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16EnvInterpolation_be #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[6] = {__pyx_t_2, __pyx_v_parser, __pyx_v_section, __pyx_v_option, __pyx_v_value, __pyx_v_defaults}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 5+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 67, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 5+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 68, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -4813,13 +4875,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16EnvInterpolation_be #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[6] = {__pyx_t_2, __pyx_v_parser, __pyx_v_section, __pyx_v_option, __pyx_v_value, __pyx_v_defaults}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 5+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 67, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 5+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 68, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_5 = PyTuple_New(5+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 67, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(5+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; @@ -4839,7 +4901,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16EnvInterpolation_be __Pyx_INCREF(__pyx_v_defaults); __Pyx_GIVEREF(__pyx_v_defaults); PyTuple_SET_ITEM(__pyx_t_5, 4+__pyx_t_4, __pyx_v_defaults); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 67, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } @@ -4847,7 +4909,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16EnvInterpolation_be __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":68 + /* "dependency_injector/providers.pyx":69 * def before_get(self, parser, section, option, value, defaults): * value = super().before_get(parser, section, option, value, defaults) * return os.path.expandvars(value) # <<<<<<<<<<<<<< @@ -4855,12 +4917,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16EnvInterpolation_be * def _parse_ini_file(filepath): */ __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 68, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_path); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 68, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_path); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_expandvars); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 68, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_expandvars); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; @@ -4875,14 +4937,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16EnvInterpolation_be } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_value); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 68, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":66 + /* "dependency_injector/providers.pyx":67 * """Interpolation which expands environment variables in values.""" * * def before_get(self, parser, section, option, value, defaults): # <<<<<<<<<<<<<< @@ -4905,7 +4967,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16EnvInterpolation_be return __pyx_r; } -/* "dependency_injector/providers.pyx":70 +/* "dependency_injector/providers.pyx":71 * return os.path.expandvars(value) * * def _parse_ini_file(filepath): # <<<<<<<<<<<<<< @@ -4941,21 +5003,21 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_2_parse_ini_file(CYTH int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_parse_ini_file", 0); - /* "dependency_injector/providers.pyx":71 + /* "dependency_injector/providers.pyx":72 * * def _parse_ini_file(filepath): * parser = iniconfigparser.ConfigParser(interpolation=EnvInterpolation()) # <<<<<<<<<<<<<< * parser.read(filepath) * return parser */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_iniconfigparser); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 71, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_iniconfigparser); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ConfigParser); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 71, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ConfigParser); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 71, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_EnvInterpolation); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 71, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_EnvInterpolation); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -4969,26 +5031,26 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_2_parse_ini_file(CYTH } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 71, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_interpolation, __pyx_t_3) < 0) __PYX_ERR(1, 71, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_interpolation, __pyx_t_3) < 0) __PYX_ERR(1, 72, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 71, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_parser = __pyx_t_3; __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":72 + /* "dependency_injector/providers.pyx":73 * def _parse_ini_file(filepath): * parser = iniconfigparser.ConfigParser(interpolation=EnvInterpolation()) * parser.read(filepath) # <<<<<<<<<<<<<< * return parser * else: */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_parser, __pyx_n_s_read); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 72, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_parser, __pyx_n_s_read); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { @@ -5002,12 +5064,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_2_parse_ini_file(CYTH } __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_v_filepath) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_filepath); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 72, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":73 + /* "dependency_injector/providers.pyx":74 * parser = iniconfigparser.ConfigParser(interpolation=EnvInterpolation()) * parser.read(filepath) * return parser # <<<<<<<<<<<<<< @@ -5019,7 +5081,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_2_parse_ini_file(CYTH __pyx_r = __pyx_v_parser; goto __pyx_L0; - /* "dependency_injector/providers.pyx":70 + /* "dependency_injector/providers.pyx":71 * return os.path.expandvars(value) * * def _parse_ini_file(filepath): # <<<<<<<<<<<<<< @@ -5043,7 +5105,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_2_parse_ini_file(CYTH return __pyx_r; } -/* "dependency_injector/providers.pyx":77 +/* "dependency_injector/providers.pyx":78 * import StringIO * * def _parse_ini_file(filepath): # <<<<<<<<<<<<<< @@ -5092,16 +5154,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4_parse_ini_file(CYTH int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_parse_ini_file", 0); - /* "dependency_injector/providers.pyx":78 + /* "dependency_injector/providers.pyx":79 * * def _parse_ini_file(filepath): * parser = iniconfigparser.ConfigParser() # <<<<<<<<<<<<<< * try: * with open(filepath) as config_file: */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_iniconfigparser); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 78, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_iniconfigparser); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ConfigParser); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 78, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ConfigParser); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; @@ -5116,13 +5178,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4_parse_ini_file(CYTH } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 78, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_parser = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":79 + /* "dependency_injector/providers.pyx":80 * def _parse_ini_file(filepath): * parser = iniconfigparser.ConfigParser() * try: # <<<<<<<<<<<<<< @@ -5138,7 +5200,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4_parse_ini_file(CYTH __Pyx_XGOTREF(__pyx_t_6); /*try:*/ { - /* "dependency_injector/providers.pyx":80 + /* "dependency_injector/providers.pyx":81 * parser = iniconfigparser.ConfigParser() * try: * with open(filepath) as config_file: # <<<<<<<<<<<<<< @@ -5146,11 +5208,11 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4_parse_ini_file(CYTH * except IOError: */ /*with:*/ { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_open, __pyx_v_filepath); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 80, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_open, __pyx_v_filepath); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 81, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 80, __pyx_L3_error) + __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 81, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 80, __pyx_L9_error) + __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 81, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -5164,7 +5226,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4_parse_ini_file(CYTH } __pyx_t_3 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 80, __pyx_L9_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 81, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_t_3; @@ -5182,22 +5244,22 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4_parse_ini_file(CYTH __pyx_v_config_file = __pyx_t_2; __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":81 + /* "dependency_injector/providers.pyx":82 * try: * with open(filepath) as config_file: * config_string = os.path.expandvars(config_file.read()) # <<<<<<<<<<<<<< * except IOError: * return parser */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 81, __pyx_L13_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 82, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 81, __pyx_L13_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 82, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_expandvars); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 81, __pyx_L13_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_expandvars); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 82, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_config_file, __pyx_n_s_read); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 81, __pyx_L13_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_config_file, __pyx_n_s_read); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 82, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { @@ -5211,7 +5273,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4_parse_ini_file(CYTH } __pyx_t_3 = (__pyx_t_12) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_12) : __Pyx_PyObject_CallNoArg(__pyx_t_8); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 81, __pyx_L13_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 82, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; @@ -5227,13 +5289,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4_parse_ini_file(CYTH __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_8, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 81, __pyx_L13_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 82, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_config_string = __pyx_t_2; __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":80 + /* "dependency_injector/providers.pyx":81 * parser = iniconfigparser.ConfigParser() * try: * with open(filepath) as config_file: # <<<<<<<<<<<<<< @@ -5253,20 +5315,20 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4_parse_ini_file(CYTH __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; /*except:*/ { __Pyx_AddTraceback("dependency_injector.providers._parse_ini_file", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_3) < 0) __PYX_ERR(1, 80, __pyx_L15_except_error) + if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_3) < 0) __PYX_ERR(1, 81, __pyx_L15_except_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 80, __pyx_L15_except_error) + __pyx_t_8 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 81, __pyx_L15_except_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_8, NULL); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 80, __pyx_L15_except_error) + if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 81, __pyx_L15_except_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_13); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (__pyx_t_14 < 0) __PYX_ERR(1, 80, __pyx_L15_except_error) + if (__pyx_t_14 < 0) __PYX_ERR(1, 81, __pyx_L15_except_error) __pyx_t_15 = ((!(__pyx_t_14 != 0)) != 0); if (__pyx_t_15) { __Pyx_GIVEREF(__pyx_t_2); @@ -5274,7 +5336,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4_parse_ini_file(CYTH __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_1, __pyx_t_3); __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_3 = 0; - __PYX_ERR(1, 80, __pyx_L15_except_error) + __PYX_ERR(1, 81, __pyx_L15_except_error) } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -5300,7 +5362,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4_parse_ini_file(CYTH if (__pyx_t_7) { __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__2, NULL); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 80, __pyx_L3_error) + if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 81, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } @@ -5315,7 +5377,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4_parse_ini_file(CYTH __pyx_L22:; } - /* "dependency_injector/providers.pyx":79 + /* "dependency_injector/providers.pyx":80 * def _parse_ini_file(filepath): * parser = iniconfigparser.ConfigParser() * try: # <<<<<<<<<<<<<< @@ -5324,7 +5386,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4_parse_ini_file(CYTH */ } - /* "dependency_injector/providers.pyx":85 + /* "dependency_injector/providers.pyx":86 * return parser * else: * parser.readfp(StringIO.StringIO(config_string)) # <<<<<<<<<<<<<< @@ -5332,14 +5394,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4_parse_ini_file(CYTH * */ /*else:*/ { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_parser, __pyx_n_s_readfp); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 85, __pyx_L5_except_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_parser, __pyx_n_s_readfp); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 86, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_StringIO); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 85, __pyx_L5_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_StringIO); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 86, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_StringIO); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 85, __pyx_L5_except_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_StringIO); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 86, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_v_config_string)) { __Pyx_RaiseUnboundLocalError("config_string"); __PYX_ERR(1, 85, __pyx_L5_except_error) } + if (unlikely(!__pyx_v_config_string)) { __Pyx_RaiseUnboundLocalError("config_string"); __PYX_ERR(1, 86, __pyx_L5_except_error) } __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_12); @@ -5352,7 +5414,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4_parse_ini_file(CYTH } __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_8, __pyx_v_config_string) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_v_config_string); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 85, __pyx_L5_except_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 86, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; @@ -5368,12 +5430,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4_parse_ini_file(CYTH __pyx_t_3 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_12, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 85, __pyx_L5_except_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 86, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":86 + /* "dependency_injector/providers.pyx":87 * else: * parser.readfp(StringIO.StringIO(config_string)) * return parser # <<<<<<<<<<<<<< @@ -5392,7 +5454,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4_parse_ini_file(CYTH __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "dependency_injector/providers.pyx":82 + /* "dependency_injector/providers.pyx":83 * with open(filepath) as config_file: * config_string = os.path.expandvars(config_file.read()) * except IOError: # <<<<<<<<<<<<<< @@ -5402,12 +5464,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4_parse_ini_file(CYTH __pyx_t_16 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_IOError); if (__pyx_t_16) { __Pyx_AddTraceback("dependency_injector.providers._parse_ini_file", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(1, 82, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(1, 83, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_2); - /* "dependency_injector/providers.pyx":83 + /* "dependency_injector/providers.pyx":84 * config_string = os.path.expandvars(config_file.read()) * except IOError: * return parser # <<<<<<<<<<<<<< @@ -5425,7 +5487,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4_parse_ini_file(CYTH goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "dependency_injector/providers.pyx":79 + /* "dependency_injector/providers.pyx":80 * def _parse_ini_file(filepath): * parser = iniconfigparser.ConfigParser() * try: # <<<<<<<<<<<<<< @@ -5445,7 +5507,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4_parse_ini_file(CYTH goto __pyx_L0; } - /* "dependency_injector/providers.pyx":77 + /* "dependency_injector/providers.pyx":78 * import StringIO * * def _parse_ini_file(filepath): # <<<<<<<<<<<<<< @@ -5471,7 +5533,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4_parse_ini_file(CYTH return __pyx_r; } -/* "dependency_injector/providers.pyx":145 +/* "dependency_injector/providers.pyx":146 * """ * * def __init__(self): # <<<<<<<<<<<<<< @@ -5510,14 +5572,14 @@ static int __pyx_pf_19dependency_injector_9providers_8Provider___init__(struct _ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":147 + /* "dependency_injector/providers.pyx":148 * def __init__(self): * """Initializer.""" * self.__overridden = tuple() # <<<<<<<<<<<<<< * self.__last_overriding = None * super(Provider, self).__init__() */ - __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 147, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->__pyx___overridden); @@ -5525,7 +5587,7 @@ static int __pyx_pf_19dependency_injector_9providers_8Provider___init__(struct _ __pyx_v_self->__pyx___overridden = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":148 + /* "dependency_injector/providers.pyx":149 * """Initializer.""" * self.__overridden = tuple() * self.__last_overriding = None # <<<<<<<<<<<<<< @@ -5538,14 +5600,14 @@ static int __pyx_pf_19dependency_injector_9providers_8Provider___init__(struct _ __Pyx_DECREF(((PyObject *)__pyx_v_self->__pyx___last_overriding)); __pyx_v_self->__pyx___last_overriding = ((struct __pyx_obj_19dependency_injector_9providers_Provider *)Py_None); - /* "dependency_injector/providers.pyx":149 + /* "dependency_injector/providers.pyx":150 * self.__overridden = tuple() * self.__last_overriding = None * super(Provider, self).__init__() # <<<<<<<<<<<<<< * * def __call__(self, *args, **kwargs): */ - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 149, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Provider)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Provider)); @@ -5553,10 +5615,10 @@ static int __pyx_pf_19dependency_injector_9providers_8Provider___init__(struct _ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 149, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 149, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -5571,12 +5633,12 @@ static int __pyx_pf_19dependency_injector_9providers_8Provider___init__(struct _ } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 149, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":145 + /* "dependency_injector/providers.pyx":146 * """ * * def __init__(self): # <<<<<<<<<<<<<< @@ -5598,7 +5660,7 @@ static int __pyx_pf_19dependency_injector_9providers_8Provider___init__(struct _ return __pyx_r; } -/* "dependency_injector/providers.pyx":151 +/* "dependency_injector/providers.pyx":152 * super(Provider, self).__init__() * * def __call__(self, *args, **kwargs): # <<<<<<<<<<<<<< @@ -5643,7 +5705,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_2__call__(s int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__call__", 0); - /* "dependency_injector/providers.pyx":156 + /* "dependency_injector/providers.pyx":157 * Callable interface implementation. * """ * if self.__last_overriding is not None: # <<<<<<<<<<<<<< @@ -5654,7 +5716,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_2__call__(s __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "dependency_injector/providers.pyx":157 + /* "dependency_injector/providers.pyx":158 * """ * if self.__last_overriding is not None: * return self.__last_overriding(*args, **kwargs) # <<<<<<<<<<<<<< @@ -5662,13 +5724,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_2__call__(s * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_self->__pyx___last_overriding), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 157, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_self->__pyx___last_overriding), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":156 + /* "dependency_injector/providers.pyx":157 * Callable interface implementation. * """ * if self.__last_overriding is not None: # <<<<<<<<<<<<<< @@ -5677,7 +5739,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_2__call__(s */ } - /* "dependency_injector/providers.pyx":158 + /* "dependency_injector/providers.pyx":159 * if self.__last_overriding is not None: * return self.__last_overriding(*args, **kwargs) * return self._provide(args, kwargs) # <<<<<<<<<<<<<< @@ -5685,13 +5747,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_2__call__(s * def __deepcopy__(self, memo): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = ((struct __pyx_vtabstruct_19dependency_injector_9providers_Provider *)__pyx_v_self->__pyx_vtab)->_provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 158, __pyx_L1_error) + __pyx_t_3 = ((struct __pyx_vtabstruct_19dependency_injector_9providers_Provider *)__pyx_v_self->__pyx_vtab)->_provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":151 + /* "dependency_injector/providers.pyx":152 * super(Provider, self).__init__() * * def __call__(self, *args, **kwargs): # <<<<<<<<<<<<<< @@ -5710,7 +5772,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_2__call__(s return __pyx_r; } -/* "dependency_injector/providers.pyx":160 +/* "dependency_injector/providers.pyx":161 * return self._provide(args, kwargs) * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -5747,16 +5809,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_4__deepcopy int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__deepcopy__", 0); - /* "dependency_injector/providers.pyx":162 + /* "dependency_injector/providers.pyx":163 * def __deepcopy__(self, memo): * """Create and return full copy of provider.""" * copied = memo.get(id(self)) # <<<<<<<<<<<<<< * if copied is not None: * return copied */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 162, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 162, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -5771,13 +5833,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_4__deepcopy __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 162, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_copied = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":163 + /* "dependency_injector/providers.pyx":164 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -5788,7 +5850,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_4__deepcopy __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":164 + /* "dependency_injector/providers.pyx":165 * copied = memo.get(id(self)) * if copied is not None: * return copied # <<<<<<<<<<<<<< @@ -5800,7 +5862,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_4__deepcopy __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":163 + /* "dependency_injector/providers.pyx":164 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -5809,14 +5871,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_4__deepcopy */ } - /* "dependency_injector/providers.pyx":166 + /* "dependency_injector/providers.pyx":167 * return copied * * copied = self.__class__() # <<<<<<<<<<<<<< * * self._copy_overridings(copied, memo) */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 166, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -5830,24 +5892,24 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_4__deepcopy } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 166, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_copied, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":168 + /* "dependency_injector/providers.pyx":169 * copied = self.__class__() * * self._copy_overridings(copied, memo) # <<<<<<<<<<<<<< * * return copied */ - if (!(likely(((__pyx_v_copied) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_copied, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 168, __pyx_L1_error) - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 168, __pyx_L1_error) + if (!(likely(((__pyx_v_copied) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_copied, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 169, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 169, __pyx_L1_error) ((struct __pyx_vtabstruct_19dependency_injector_9providers_Provider *)__pyx_v_self->__pyx_vtab)->_copy_overridings(__pyx_v_self, ((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_copied), ((PyObject*)__pyx_v_memo), 0); - /* "dependency_injector/providers.pyx":170 + /* "dependency_injector/providers.pyx":171 * self._copy_overridings(copied, memo) * * return copied # <<<<<<<<<<<<<< @@ -5859,7 +5921,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_4__deepcopy __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":160 + /* "dependency_injector/providers.pyx":161 * return self._provide(args, kwargs) * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -5882,7 +5944,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_4__deepcopy return __pyx_r; } -/* "dependency_injector/providers.pyx":173 +/* "dependency_injector/providers.pyx":174 * * @classmethod * def __class_getitem__(cls, item): # <<<<<<<<<<<<<< @@ -5908,7 +5970,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_6__class_ge __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__class_getitem__", 0); - /* "dependency_injector/providers.pyx":174 + /* "dependency_injector/providers.pyx":175 * @classmethod * def __class_getitem__(cls, item): * return cls # <<<<<<<<<<<<<< @@ -5920,7 +5982,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_6__class_ge __pyx_r = ((PyObject *)__pyx_v_cls); goto __pyx_L0; - /* "dependency_injector/providers.pyx":173 + /* "dependency_injector/providers.pyx":174 * * @classmethod * def __class_getitem__(cls, item): # <<<<<<<<<<<<<< @@ -5935,7 +5997,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_6__class_ge return __pyx_r; } -/* "dependency_injector/providers.pyx":176 +/* "dependency_injector/providers.pyx":177 * return cls * * def __str__(self): # <<<<<<<<<<<<<< @@ -5969,7 +6031,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_8__str__(st int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__str__", 0); - /* "dependency_injector/providers.pyx":181 + /* "dependency_injector/providers.pyx":182 * :rtype: str * """ * return represent_provider(provider=self, provides=None) # <<<<<<<<<<<<<< @@ -5977,13 +6039,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_8__str__(st * def __repr__(self): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), Py_None, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 181, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), Py_None, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":176 + /* "dependency_injector/providers.pyx":177 * return cls * * def __str__(self): # <<<<<<<<<<<<<< @@ -6002,7 +6064,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_8__str__(st return __pyx_r; } -/* "dependency_injector/providers.pyx":183 +/* "dependency_injector/providers.pyx":184 * return represent_provider(provider=self, provides=None) * * def __repr__(self): # <<<<<<<<<<<<<< @@ -6038,7 +6100,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_10__repr__( int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__", 0); - /* "dependency_injector/providers.pyx":188 + /* "dependency_injector/providers.pyx":189 * :rtype: str * """ * return self.__str__() # <<<<<<<<<<<<<< @@ -6046,7 +6108,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_10__repr__( * @property */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_str); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 188, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_str); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -6060,14 +6122,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_10__repr__( } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 188, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":183 + /* "dependency_injector/providers.pyx":184 * return represent_provider(provider=self, provides=None) * * def __repr__(self): # <<<<<<<<<<<<<< @@ -6088,7 +6150,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_10__repr__( return __pyx_r; } -/* "dependency_injector/providers.pyx":191 +/* "dependency_injector/providers.pyx":192 * * @property * def overridden(self): # <<<<<<<<<<<<<< @@ -6125,7 +6187,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_10overridde int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":193 + /* "dependency_injector/providers.pyx":194 * def overridden(self): * """Return tuple of overriding providers.""" * with self.overriding_lock: # <<<<<<<<<<<<<< @@ -6133,11 +6195,11 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_10overridde * */ /*with:*/ { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_overriding_lock); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 193, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_overriding_lock); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 193, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 193, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 194, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { @@ -6151,7 +6213,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_10overridde } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 193, __pyx_L3_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 194, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -6161,7 +6223,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_10overridde (void)__pyx_t_6; (void)__pyx_t_7; (void)__pyx_t_8; /* mark used */ /*try:*/ { - /* "dependency_injector/providers.pyx":194 + /* "dependency_injector/providers.pyx":195 * """Return tuple of overriding providers.""" * with self.overriding_lock: * return self.__overridden # <<<<<<<<<<<<<< @@ -6173,7 +6235,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_10overridde __pyx_r = __pyx_v_self->__pyx___overridden; goto __pyx_L11_try_return; - /* "dependency_injector/providers.pyx":193 + /* "dependency_injector/providers.pyx":194 * def overridden(self): * """Return tuple of overriding providers.""" * with self.overriding_lock: # <<<<<<<<<<<<<< @@ -6190,7 +6252,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_10overridde if (__pyx_t_2) { __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__2, NULL); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 193, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } @@ -6202,7 +6264,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_10overridde if (__pyx_t_2) { __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__2, NULL); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 193, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } @@ -6219,7 +6281,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_10overridde __pyx_L13:; } - /* "dependency_injector/providers.pyx":191 + /* "dependency_injector/providers.pyx":192 * * @property * def overridden(self): # <<<<<<<<<<<<<< @@ -6243,7 +6305,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_10overridde return __pyx_r; } -/* "dependency_injector/providers.pyx":197 +/* "dependency_injector/providers.pyx":198 * * @property * def last_overriding(self): # <<<<<<<<<<<<<< @@ -6269,7 +6331,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_15last_over __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":202 + /* "dependency_injector/providers.pyx":203 * If provider is not overridden, then None is returned. * """ * return self.__last_overriding # <<<<<<<<<<<<<< @@ -6281,7 +6343,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_15last_over __pyx_r = ((PyObject *)__pyx_v_self->__pyx___last_overriding); goto __pyx_L0; - /* "dependency_injector/providers.pyx":197 + /* "dependency_injector/providers.pyx":198 * * @property * def last_overriding(self): # <<<<<<<<<<<<<< @@ -6296,7 +6358,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_15last_over return __pyx_r; } -/* "dependency_injector/providers.pyx":204 +/* "dependency_injector/providers.pyx":205 * return self.__last_overriding * * def override(self, provider): # <<<<<<<<<<<<<< @@ -6339,7 +6401,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_12override( __Pyx_RefNannySetupContext("override", 0); __Pyx_INCREF(__pyx_v_provider); - /* "dependency_injector/providers.pyx":215 + /* "dependency_injector/providers.pyx":216 * :rtype: :py:class:`OverridingContext` * """ * if provider is self: # <<<<<<<<<<<<<< @@ -6350,24 +6412,24 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_12override( __pyx_t_2 = (__pyx_t_1 != 0); if (unlikely(__pyx_t_2)) { - /* "dependency_injector/providers.pyx":216 + /* "dependency_injector/providers.pyx":217 * """ * if provider is self: * raise Error('Provider {0} could not be overridden ' # <<<<<<<<<<<<<< * 'with itself'.format(self)) * */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 216, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - /* "dependency_injector/providers.pyx":217 + /* "dependency_injector/providers.pyx":218 * if provider is self: * raise Error('Provider {0} could not be overridden ' * 'with itself'.format(self)) # <<<<<<<<<<<<<< * * if not is_provider(provider): */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Provider_0_could_not_be_overridd, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 217, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Provider_0_could_not_be_overridd, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { @@ -6381,7 +6443,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_12override( } __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 217, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -6397,14 +6459,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_12override( __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 216, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 216, __pyx_L1_error) + __PYX_ERR(1, 217, __pyx_L1_error) - /* "dependency_injector/providers.pyx":215 + /* "dependency_injector/providers.pyx":216 * :rtype: :py:class:`OverridingContext` * """ * if provider is self: # <<<<<<<<<<<<<< @@ -6413,7 +6475,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_12override( */ } - /* "dependency_injector/providers.pyx":219 + /* "dependency_injector/providers.pyx":220 * 'with itself'.format(self)) * * if not is_provider(provider): # <<<<<<<<<<<<<< @@ -6423,19 +6485,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_12override( __pyx_t_2 = ((!(__pyx_f_19dependency_injector_9providers_is_provider(__pyx_v_provider, 0) != 0)) != 0); if (__pyx_t_2) { - /* "dependency_injector/providers.pyx":220 + /* "dependency_injector/providers.pyx":221 * * if not is_provider(provider): * provider = Object(provider) # <<<<<<<<<<<<<< * * with self.overriding_lock: */ - __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Object), __pyx_v_provider); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 220, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Object), __pyx_v_provider); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF_SET(__pyx_v_provider, __pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":219 + /* "dependency_injector/providers.pyx":220 * 'with itself'.format(self)) * * if not is_provider(provider): # <<<<<<<<<<<<<< @@ -6444,7 +6506,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_12override( */ } - /* "dependency_injector/providers.pyx":222 + /* "dependency_injector/providers.pyx":223 * provider = Object(provider) * * with self.overriding_lock: # <<<<<<<<<<<<<< @@ -6452,11 +6514,11 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_12override( * self.__last_overriding = provider */ /*with:*/ { - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_overriding_lock); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 222, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_overriding_lock); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_exit); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 222, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_exit); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_enter); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 222, __pyx_L5_error) + __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_enter); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 223, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { @@ -6470,7 +6532,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_12override( } __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 222, __pyx_L5_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 223, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -6485,19 +6547,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_12override( __Pyx_XGOTREF(__pyx_t_11); /*try:*/ { - /* "dependency_injector/providers.pyx":223 + /* "dependency_injector/providers.pyx":224 * * with self.overriding_lock: * self.__overridden += (provider,) # <<<<<<<<<<<<<< * self.__last_overriding = provider * */ - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 223, __pyx_L9_error) + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 224, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_provider); __Pyx_GIVEREF(__pyx_v_provider); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_provider); - __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_self->__pyx___overridden, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 223, __pyx_L9_error) + __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_self->__pyx___overridden, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 224, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GIVEREF(__pyx_t_4); @@ -6506,14 +6568,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_12override( __pyx_v_self->__pyx___overridden = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/providers.pyx":224 + /* "dependency_injector/providers.pyx":225 * with self.overriding_lock: * self.__overridden += (provider,) * self.__last_overriding = provider # <<<<<<<<<<<<<< * * return OverridingContext(self, provider) */ - if (!(likely(((__pyx_v_provider) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_provider, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 224, __pyx_L9_error) + if (!(likely(((__pyx_v_provider) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_provider, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 225, __pyx_L9_error) __pyx_t_4 = __pyx_v_provider; __Pyx_INCREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); @@ -6522,7 +6584,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_12override( __pyx_v_self->__pyx___last_overriding = ((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/providers.pyx":222 + /* "dependency_injector/providers.pyx":223 * provider = Object(provider) * * with self.overriding_lock: # <<<<<<<<<<<<<< @@ -6542,20 +6604,20 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_12override( __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /*except:*/ { __Pyx_AddTraceback("dependency_injector.providers.Provider.override", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_5) < 0) __PYX_ERR(1, 222, __pyx_L11_except_error) + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_5) < 0) __PYX_ERR(1, 223, __pyx_L11_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 222, __pyx_L11_except_error) + __pyx_t_6 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 223, __pyx_L11_except_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 222, __pyx_L11_except_error) + if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 223, __pyx_L11_except_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_12); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (__pyx_t_2 < 0) __PYX_ERR(1, 222, __pyx_L11_except_error) + if (__pyx_t_2 < 0) __PYX_ERR(1, 223, __pyx_L11_except_error) __pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_4); @@ -6563,7 +6625,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_12override( __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_3, __pyx_t_5); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_5 = 0; - __PYX_ERR(1, 222, __pyx_L11_except_error) + __PYX_ERR(1, 223, __pyx_L11_except_error) } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -6589,7 +6651,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_12override( if (__pyx_t_8) { __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_tuple__2, NULL); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 222, __pyx_L1_error) + if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } @@ -6604,7 +6666,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_12override( __pyx_L18:; } - /* "dependency_injector/providers.pyx":226 + /* "dependency_injector/providers.pyx":227 * self.__last_overriding = provider * * return OverridingContext(self, provider) # <<<<<<<<<<<<<< @@ -6612,7 +6674,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_12override( * def reset_last_overriding(self): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 226, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); @@ -6620,14 +6682,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_12override( __Pyx_INCREF(__pyx_v_provider); __Pyx_GIVEREF(__pyx_v_provider); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_provider); - __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_OverridingContext), __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 226, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_OverridingContext), __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":204 + /* "dependency_injector/providers.pyx":205 * return self.__last_overriding * * def override(self, provider): # <<<<<<<<<<<<<< @@ -6651,7 +6713,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_12override( return __pyx_r; } -/* "dependency_injector/providers.pyx":228 +/* "dependency_injector/providers.pyx":229 * return OverridingContext(self, provider) * * def reset_last_overriding(self): # <<<<<<<<<<<<<< @@ -6698,7 +6760,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_14reset_las int __pyx_clineno = 0; __Pyx_RefNannySetupContext("reset_last_overriding", 0); - /* "dependency_injector/providers.pyx":236 + /* "dependency_injector/providers.pyx":237 * :rtype: None * """ * with self.overriding_lock: # <<<<<<<<<<<<<< @@ -6706,11 +6768,11 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_14reset_las * raise Error('Provider {0} is not overridden'.format(str(self))) */ /*with:*/ { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_overriding_lock); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 236, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_overriding_lock); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 236, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 236, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 237, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { @@ -6724,7 +6786,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_14reset_las } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 236, __pyx_L3_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 237, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -6739,7 +6801,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_14reset_las __Pyx_XGOTREF(__pyx_t_8); /*try:*/ { - /* "dependency_injector/providers.pyx":237 + /* "dependency_injector/providers.pyx":238 * """ * with self.overriding_lock: * if len(self.__overridden) == 0: # <<<<<<<<<<<<<< @@ -6750,25 +6812,25 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_14reset_las __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(1, 237, __pyx_L7_error) + __PYX_ERR(1, 238, __pyx_L7_error) } - __pyx_t_9 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(1, 237, __pyx_L7_error) + __pyx_t_9 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(1, 238, __pyx_L7_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_10 = ((__pyx_t_9 == 0) != 0); if (unlikely(__pyx_t_10)) { - /* "dependency_injector/providers.pyx":238 + /* "dependency_injector/providers.pyx":239 * with self.overriding_lock: * if len(self.__overridden) == 0: * raise Error('Provider {0} is not overridden'.format(str(self))) # <<<<<<<<<<<<<< * * self.__overridden = self.__overridden[:-1] */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Error); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 238, __pyx_L7_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Error); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 239, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Provider_0_is_not_overridden, __pyx_n_s_format); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 238, __pyx_L7_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Provider_0_is_not_overridden, __pyx_n_s_format); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 239, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_11 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 238, __pyx_L7_error) + __pyx_t_11 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 239, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { @@ -6783,7 +6845,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_14reset_las __pyx_t_4 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_12, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_11); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 238, __pyx_L7_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 239, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; @@ -6799,14 +6861,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_14reset_las __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 238, __pyx_L7_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 239, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 238, __pyx_L7_error) + __PYX_ERR(1, 239, __pyx_L7_error) - /* "dependency_injector/providers.pyx":237 + /* "dependency_injector/providers.pyx":238 * """ * with self.overriding_lock: * if len(self.__overridden) == 0: # <<<<<<<<<<<<<< @@ -6815,7 +6877,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_14reset_las */ } - /* "dependency_injector/providers.pyx":240 + /* "dependency_injector/providers.pyx":241 * raise Error('Provider {0} is not overridden'.format(str(self))) * * self.__overridden = self.__overridden[:-1] # <<<<<<<<<<<<<< @@ -6824,9 +6886,9 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_14reset_las */ if (unlikely(__pyx_v_self->__pyx___overridden == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 240, __pyx_L7_error) + __PYX_ERR(1, 241, __pyx_L7_error) } - __pyx_t_1 = __Pyx_PyTuple_GetSlice(__pyx_v_self->__pyx___overridden, 0, -1L); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 240, __pyx_L7_error) + __pyx_t_1 = __Pyx_PyTuple_GetSlice(__pyx_v_self->__pyx___overridden, 0, -1L); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 241, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->__pyx___overridden); @@ -6834,7 +6896,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_14reset_las __pyx_v_self->__pyx___overridden = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":241 + /* "dependency_injector/providers.pyx":242 * * self.__overridden = self.__overridden[:-1] * try: # <<<<<<<<<<<<<< @@ -6850,7 +6912,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_14reset_las __Pyx_XGOTREF(__pyx_t_15); /*try:*/ { - /* "dependency_injector/providers.pyx":242 + /* "dependency_injector/providers.pyx":243 * self.__overridden = self.__overridden[:-1] * try: * self.__last_overriding = self.__overridden[-1] # <<<<<<<<<<<<<< @@ -6859,18 +6921,18 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_14reset_las */ if (unlikely(__pyx_v_self->__pyx___overridden == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 242, __pyx_L14_error) + __PYX_ERR(1, 243, __pyx_L14_error) } - __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->__pyx___overridden, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 242, __pyx_L14_error) + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->__pyx___overridden, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 243, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 242, __pyx_L14_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 243, __pyx_L14_error) __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->__pyx___last_overriding); __Pyx_DECREF(((PyObject *)__pyx_v_self->__pyx___last_overriding)); __pyx_v_self->__pyx___last_overriding = ((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":241 + /* "dependency_injector/providers.pyx":242 * * self.__overridden = self.__overridden[:-1] * try: # <<<<<<<<<<<<<< @@ -6890,7 +6952,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_14reset_las __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/providers.pyx":243 + /* "dependency_injector/providers.pyx":244 * try: * self.__last_overriding = self.__overridden[-1] * except IndexError: # <<<<<<<<<<<<<< @@ -6900,12 +6962,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_14reset_las __pyx_t_16 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_IndexError); if (__pyx_t_16) { __Pyx_AddTraceback("dependency_injector.providers.Provider.reset_last_overriding", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_4) < 0) __PYX_ERR(1, 243, __pyx_L16_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_4) < 0) __PYX_ERR(1, 244, __pyx_L16_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_4); - /* "dependency_injector/providers.pyx":244 + /* "dependency_injector/providers.pyx":245 * self.__last_overriding = self.__overridden[-1] * except IndexError: * self.__last_overriding = None # <<<<<<<<<<<<<< @@ -6925,7 +6987,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_14reset_las goto __pyx_L16_except_error; __pyx_L16_except_error:; - /* "dependency_injector/providers.pyx":241 + /* "dependency_injector/providers.pyx":242 * * self.__overridden = self.__overridden[:-1] * try: # <<<<<<<<<<<<<< @@ -6945,7 +7007,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_14reset_las __pyx_L19_try_end:; } - /* "dependency_injector/providers.pyx":236 + /* "dependency_injector/providers.pyx":237 * :rtype: None * """ * with self.overriding_lock: # <<<<<<<<<<<<<< @@ -6966,20 +7028,20 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_14reset_las __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; /*except:*/ { __Pyx_AddTraceback("dependency_injector.providers.Provider.reset_last_overriding", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_1) < 0) __PYX_ERR(1, 236, __pyx_L9_except_error) + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_1) < 0) __PYX_ERR(1, 237, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 236, __pyx_L9_except_error) + __pyx_t_5 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 237, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 236, __pyx_L9_except_error) + if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 237, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_15); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (__pyx_t_10 < 0) __PYX_ERR(1, 236, __pyx_L9_except_error) + if (__pyx_t_10 < 0) __PYX_ERR(1, 237, __pyx_L9_except_error) __pyx_t_17 = ((!(__pyx_t_10 != 0)) != 0); if (__pyx_t_17) { __Pyx_GIVEREF(__pyx_t_4); @@ -6987,7 +7049,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_14reset_las __Pyx_XGIVEREF(__pyx_t_1); __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_3, __pyx_t_1); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_1 = 0; - __PYX_ERR(1, 236, __pyx_L9_except_error) + __PYX_ERR(1, 237, __pyx_L9_except_error) } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -7013,7 +7075,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_14reset_las if (__pyx_t_2) { __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__2, NULL); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 236, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } @@ -7028,7 +7090,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_14reset_las __pyx_L25:; } - /* "dependency_injector/providers.pyx":228 + /* "dependency_injector/providers.pyx":229 * return OverridingContext(self, provider) * * def reset_last_overriding(self): # <<<<<<<<<<<<<< @@ -7054,7 +7116,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_14reset_las return __pyx_r; } -/* "dependency_injector/providers.pyx":246 +/* "dependency_injector/providers.pyx":247 * self.__last_overriding = None * * def reset_override(self): # <<<<<<<<<<<<<< @@ -7095,7 +7157,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_16reset_ove int __pyx_clineno = 0; __Pyx_RefNannySetupContext("reset_override", 0); - /* "dependency_injector/providers.pyx":251 + /* "dependency_injector/providers.pyx":252 * :rtype: None * """ * with self.overriding_lock: # <<<<<<<<<<<<<< @@ -7103,11 +7165,11 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_16reset_ove * self.__last_overriding = None */ /*with:*/ { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_overriding_lock); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 251, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_overriding_lock); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 251, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 251, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 252, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { @@ -7121,7 +7183,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_16reset_ove } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 251, __pyx_L3_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 252, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -7136,14 +7198,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_16reset_ove __Pyx_XGOTREF(__pyx_t_8); /*try:*/ { - /* "dependency_injector/providers.pyx":252 + /* "dependency_injector/providers.pyx":253 * """ * with self.overriding_lock: * self.__overridden = tuple() # <<<<<<<<<<<<<< * self.__last_overriding = None * */ - __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 252, __pyx_L7_error) + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 253, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->__pyx___overridden); @@ -7151,7 +7213,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_16reset_ove __pyx_v_self->__pyx___overridden = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":253 + /* "dependency_injector/providers.pyx":254 * with self.overriding_lock: * self.__overridden = tuple() * self.__last_overriding = None # <<<<<<<<<<<<<< @@ -7164,7 +7226,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_16reset_ove __Pyx_DECREF(((PyObject *)__pyx_v_self->__pyx___last_overriding)); __pyx_v_self->__pyx___last_overriding = ((struct __pyx_obj_19dependency_injector_9providers_Provider *)Py_None); - /* "dependency_injector/providers.pyx":251 + /* "dependency_injector/providers.pyx":252 * :rtype: None * """ * with self.overriding_lock: # <<<<<<<<<<<<<< @@ -7183,20 +7245,20 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_16reset_ove __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; /*except:*/ { __Pyx_AddTraceback("dependency_injector.providers.Provider.reset_override", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_4) < 0) __PYX_ERR(1, 251, __pyx_L9_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_4) < 0) __PYX_ERR(1, 252, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_Pack(3, __pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 251, __pyx_L9_except_error) + __pyx_t_5 = PyTuple_Pack(3, __pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 252, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 251, __pyx_L9_except_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 252, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (__pyx_t_10 < 0) __PYX_ERR(1, 251, __pyx_L9_except_error) + if (__pyx_t_10 < 0) __PYX_ERR(1, 252, __pyx_L9_except_error) __pyx_t_11 = ((!(__pyx_t_10 != 0)) != 0); if (__pyx_t_11) { __Pyx_GIVEREF(__pyx_t_1); @@ -7204,7 +7266,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_16reset_ove __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_3, __pyx_t_4); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; - __PYX_ERR(1, 251, __pyx_L9_except_error) + __PYX_ERR(1, 252, __pyx_L9_except_error) } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -7230,7 +7292,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_16reset_ove if (__pyx_t_2) { __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__2, NULL); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 251, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } @@ -7245,7 +7307,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_16reset_ove __pyx_L16:; } - /* "dependency_injector/providers.pyx":246 + /* "dependency_injector/providers.pyx":247 * self.__last_overriding = None * * def reset_override(self): # <<<<<<<<<<<<<< @@ -7269,7 +7331,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_16reset_ove return __pyx_r; } -/* "dependency_injector/providers.pyx":255 +/* "dependency_injector/providers.pyx":256 * self.__last_overriding = None * * def delegate(self): # <<<<<<<<<<<<<< @@ -7295,26 +7357,65 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_18delegate( PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("delegate", 0); - /* "dependency_injector/providers.pyx":260 + /* "dependency_injector/providers.pyx":261 * :rtype: :py:class:`Delegate` * """ + * warnings.warn( # <<<<<<<<<<<<<< + * 'Method ".delegate()" is deprecated since version 4.0.0. ' + * 'Use ".provider" attribute instead.', + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_warnings); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_warn); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "dependency_injector/providers.pyx":264 + * 'Method ".delegate()" is deprecated since version 4.0.0. ' + * 'Use ".provider" attribute instead.', + * category=DeprecationWarning, # <<<<<<<<<<<<<< + * ) + * return Delegate(self) + */ + __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_category, __pyx_builtin_DeprecationWarning) < 0) __PYX_ERR(1, 264, __pyx_L1_error) + + /* "dependency_injector/providers.pyx":261 + * :rtype: :py:class:`Delegate` + * """ + * warnings.warn( # <<<<<<<<<<<<<< + * 'Method ".delegate()" is deprecated since version 4.0.0. ' + * 'Use ".provider" attribute instead.', + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__3, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "dependency_injector/providers.pyx":266 + * category=DeprecationWarning, + * ) * return Delegate(self) # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Delegate), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 260, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Delegate), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":255 + /* "dependency_injector/providers.pyx":256 * self.__last_overriding = None * * def delegate(self): # <<<<<<<<<<<<<< @@ -7325,6 +7426,8 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_18delegate( /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("dependency_injector.providers.Provider.delegate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -7333,7 +7436,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_18delegate( return __pyx_r; } -/* "dependency_injector/providers.pyx":263 +/* "dependency_injector/providers.pyx":269 * * @property * def provider(self): # <<<<<<<<<<<<<< @@ -7358,43 +7461,26 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_8provider__ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":268 + /* "dependency_injector/providers.pyx":274 * :rtype: :py:class:`Delegate` * """ - * return self.delegate() # <<<<<<<<<<<<<< + * return Delegate(self) # <<<<<<<<<<<<<< * * cpdef object _provide(self, tuple args, dict kwargs): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_delegate); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 268, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - } - } - __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 268, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Delegate), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":263 + /* "dependency_injector/providers.pyx":269 * * @property * def provider(self): # <<<<<<<<<<<<<< @@ -7405,8 +7491,6 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_8provider__ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("dependency_injector.providers.Provider.provider.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -7415,8 +7499,8 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_8provider__ return __pyx_r; } -/* "dependency_injector/providers.pyx":270 - * return self.delegate() +/* "dependency_injector/providers.pyx":276 + * return Delegate(self) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< * """Providing strategy implementation. @@ -7446,7 +7530,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Provider__provide(CYT if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 270, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_19dependency_injector_9providers_8Provider_21_provide)) { __Pyx_XDECREF(__pyx_r); @@ -7466,7 +7550,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Provider__provide(CYT #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 270, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 276, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -7474,13 +7558,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Provider__provide(CYT #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 270, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 276, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 270, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -7491,7 +7575,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Provider__provide(CYT __Pyx_INCREF(__pyx_v_kwargs); __Pyx_GIVEREF(__pyx_v_kwargs); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_kwargs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 270, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -7514,21 +7598,21 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Provider__provide(CYT #endif } - /* "dependency_injector/providers.pyx":277 + /* "dependency_injector/providers.pyx":283 * overridden provider is called. Need to be overridden in subclasses. * """ * raise NotImplementedError() # <<<<<<<<<<<<<< * * cpdef void _copy_overridings(self, Provider copied, dict memo): */ - __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_builtin_NotImplementedError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 277, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_builtin_NotImplementedError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 277, __pyx_L1_error) + __PYX_ERR(1, 283, __pyx_L1_error) - /* "dependency_injector/providers.pyx":270 - * return self.delegate() + /* "dependency_injector/providers.pyx":276 + * return Delegate(self) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< * """Providing strategy implementation. @@ -7585,11 +7669,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_8Provider_21_provide( case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 270, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 276, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 270, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 276, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -7602,14 +7686,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_8Provider_21_provide( } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 270, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 276, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.Provider._provide", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 270, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 270, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 276, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 276, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_8Provider_20_provide(((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs); /* function exit code */ @@ -7630,7 +7714,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_20_provide( int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_provide", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_8Provider__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 270, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_8Provider__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -7647,7 +7731,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_20_provide( return __pyx_r; } -/* "dependency_injector/providers.pyx":279 +/* "dependency_injector/providers.pyx":285 * raise NotImplementedError() * * cpdef void _copy_overridings(self, Provider copied, dict memo): # <<<<<<<<<<<<<< @@ -7678,7 +7762,7 @@ static void __pyx_f_19dependency_injector_9providers_8Provider__copy_overridings if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_copy_overridings); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 279, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_copy_overridings); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_19dependency_injector_9providers_8Provider_23_copy_overridings)) { __Pyx_INCREF(__pyx_t_1); @@ -7697,7 +7781,7 @@ static void __pyx_f_19dependency_injector_9providers_8Provider__copy_overridings #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_copied), __pyx_v_memo}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 279, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 285, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -7705,13 +7789,13 @@ static void __pyx_f_19dependency_injector_9providers_8Provider__copy_overridings #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_copied), __pyx_v_memo}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 279, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 285, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 279, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -7722,7 +7806,7 @@ static void __pyx_f_19dependency_injector_9providers_8Provider__copy_overridings __Pyx_INCREF(__pyx_v_memo); __Pyx_GIVEREF(__pyx_v_memo); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_memo); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 279, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -7744,7 +7828,7 @@ static void __pyx_f_19dependency_injector_9providers_8Provider__copy_overridings #endif } - /* "dependency_injector/providers.pyx":281 + /* "dependency_injector/providers.pyx":287 * cpdef void _copy_overridings(self, Provider copied, dict memo): * """Copy provider overridings to a newly copied provider.""" * copied.__overridden = deepcopy(self.__overridden, memo) # <<<<<<<<<<<<<< @@ -7755,17 +7839,17 @@ static void __pyx_f_19dependency_injector_9providers_8Provider__copy_overridings __Pyx_INCREF(__pyx_t_1); __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = __pyx_v_memo; - __pyx_t_2 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_1, 0, &__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 281, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_1, 0, &__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(1, 281, __pyx_L1_error) + if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(1, 287, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_copied->__pyx___overridden); __Pyx_DECREF(__pyx_v_copied->__pyx___overridden); __pyx_v_copied->__pyx___overridden = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":282 + /* "dependency_injector/providers.pyx":288 * """Copy provider overridings to a newly copied provider.""" * copied.__overridden = deepcopy(self.__overridden, memo) * copied.__last_overriding = deepcopy(self.__last_overriding, memo) # <<<<<<<<<<<<<< @@ -7776,17 +7860,17 @@ static void __pyx_f_19dependency_injector_9providers_8Provider__copy_overridings __Pyx_INCREF(__pyx_t_2); __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = __pyx_v_memo; - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_2, 0, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 282, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_2, 0, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 282, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 288, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_copied->__pyx___last_overriding); __Pyx_DECREF(((PyObject *)__pyx_v_copied->__pyx___last_overriding)); __pyx_v_copied->__pyx___last_overriding = ((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":279 + /* "dependency_injector/providers.pyx":285 * raise NotImplementedError() * * cpdef void _copy_overridings(self, Provider copied, dict memo): # <<<<<<<<<<<<<< @@ -7842,11 +7926,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_8Provider_23_copy_ove case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_memo)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_copy_overridings", 1, 2, 2, 1); __PYX_ERR(1, 279, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_copy_overridings", 1, 2, 2, 1); __PYX_ERR(1, 285, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_copy_overridings") < 0)) __PYX_ERR(1, 279, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_copy_overridings") < 0)) __PYX_ERR(1, 285, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -7859,14 +7943,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_8Provider_23_copy_ove } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_copy_overridings", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 279, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_copy_overridings", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 285, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.Provider._copy_overridings", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_copied), __pyx_ptype_19dependency_injector_9providers_Provider, 1, "copied", 0))) __PYX_ERR(1, 279, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_memo), (&PyDict_Type), 1, "memo", 1))) __PYX_ERR(1, 279, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_copied), __pyx_ptype_19dependency_injector_9providers_Provider, 1, "copied", 0))) __PYX_ERR(1, 285, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_memo), (&PyDict_Type), 1, "memo", 1))) __PYX_ERR(1, 285, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_8Provider_22_copy_overridings(((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_self), __pyx_v_copied, __pyx_v_memo); /* function exit code */ @@ -7887,7 +7971,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_22_copy_ove int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_copy_overridings", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_void_to_None(__pyx_f_19dependency_injector_9providers_8Provider__copy_overridings(__pyx_v_self, __pyx_v_copied, __pyx_v_memo, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 279, __pyx_L1_error) + __pyx_t_1 = __Pyx_void_to_None(__pyx_f_19dependency_injector_9providers_8Provider__copy_overridings(__pyx_v_self, __pyx_v_copied, __pyx_v_memo, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -8211,7 +8295,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Provider_26__setstat return __pyx_r; } -/* "dependency_injector/providers.pyx":295 +/* "dependency_injector/providers.pyx":301 * """ * * def __init__(self, provides): # <<<<<<<<<<<<<< @@ -8252,7 +8336,7 @@ static int __pyx_pw_19dependency_injector_9providers_6Object_1__init__(PyObject else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 295, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 301, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; @@ -8263,7 +8347,7 @@ static int __pyx_pw_19dependency_injector_9providers_6Object_1__init__(PyObject } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 295, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 301, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.Object.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -8287,7 +8371,7 @@ static int __pyx_pf_19dependency_injector_9providers_6Object___init__(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":301 + /* "dependency_injector/providers.pyx":307 * :type provides: object * """ * self.__provides = provides # <<<<<<<<<<<<<< @@ -8300,14 +8384,14 @@ static int __pyx_pf_19dependency_injector_9providers_6Object___init__(struct __p __Pyx_DECREF(__pyx_v_self->__pyx___provides); __pyx_v_self->__pyx___provides = __pyx_v_provides; - /* "dependency_injector/providers.pyx":302 + /* "dependency_injector/providers.pyx":308 * """ * self.__provides = provides * super(Object, self).__init__() # <<<<<<<<<<<<<< * * def __deepcopy__(self, memo): */ - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 302, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Object)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Object)); @@ -8315,10 +8399,10 @@ static int __pyx_pf_19dependency_injector_9providers_6Object___init__(struct __p __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 302, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 302, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -8333,12 +8417,12 @@ static int __pyx_pf_19dependency_injector_9providers_6Object___init__(struct __p } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 302, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":295 + /* "dependency_injector/providers.pyx":301 * """ * * def __init__(self, provides): # <<<<<<<<<<<<<< @@ -8360,7 +8444,7 @@ static int __pyx_pf_19dependency_injector_9providers_6Object___init__(struct __p return __pyx_r; } -/* "dependency_injector/providers.pyx":304 +/* "dependency_injector/providers.pyx":310 * super(Object, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -8397,16 +8481,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6Object_2__deepcopy__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__deepcopy__", 0); - /* "dependency_injector/providers.pyx":306 + /* "dependency_injector/providers.pyx":312 * def __deepcopy__(self, memo): * """Create and return full copy of provider.""" * copied = memo.get(id(self)) # <<<<<<<<<<<<<< * if copied is not None: * return copied */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 306, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 306, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -8421,13 +8505,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6Object_2__deepcopy__ __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 306, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_copied = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":307 + /* "dependency_injector/providers.pyx":313 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -8438,7 +8522,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6Object_2__deepcopy__ __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":308 + /* "dependency_injector/providers.pyx":314 * copied = memo.get(id(self)) * if copied is not None: * return copied # <<<<<<<<<<<<<< @@ -8450,7 +8534,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6Object_2__deepcopy__ __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":307 + /* "dependency_injector/providers.pyx":313 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -8459,14 +8543,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6Object_2__deepcopy__ */ } - /* "dependency_injector/providers.pyx":310 + /* "dependency_injector/providers.pyx":316 * return copied * * copied = self.__class__(self.__provides) # <<<<<<<<<<<<<< * * self._copy_overridings(copied, memo) */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 310, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -8480,24 +8564,24 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6Object_2__deepcopy__ } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_self->__pyx___provides) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_self->__pyx___provides); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 310, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_copied, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":312 + /* "dependency_injector/providers.pyx":318 * copied = self.__class__(self.__provides) * * self._copy_overridings(copied, memo) # <<<<<<<<<<<<<< * * return copied */ - if (!(likely(((__pyx_v_copied) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_copied, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 312, __pyx_L1_error) - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 312, __pyx_L1_error) + if (!(likely(((__pyx_v_copied) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_copied, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 318, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 318, __pyx_L1_error) ((struct __pyx_vtabstruct_19dependency_injector_9providers_Object *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._copy_overridings(((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_self), ((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_copied), ((PyObject*)__pyx_v_memo), 0); - /* "dependency_injector/providers.pyx":314 + /* "dependency_injector/providers.pyx":320 * self._copy_overridings(copied, memo) * * return copied # <<<<<<<<<<<<<< @@ -8509,7 +8593,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6Object_2__deepcopy__ __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":304 + /* "dependency_injector/providers.pyx":310 * super(Object, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -8532,7 +8616,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6Object_2__deepcopy__ return __pyx_r; } -/* "dependency_injector/providers.pyx":316 +/* "dependency_injector/providers.pyx":322 * return copied * * def __str__(self): # <<<<<<<<<<<<<< @@ -8567,7 +8651,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6Object_4__str__(stru int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__str__", 0); - /* "dependency_injector/providers.pyx":321 + /* "dependency_injector/providers.pyx":327 * :rtype: str * """ * return represent_provider(provider=self, provides=self.__provides) # <<<<<<<<<<<<<< @@ -8577,14 +8661,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6Object_4__str__(stru __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_v_self->__pyx___provides; __Pyx_INCREF(__pyx_t_1); - __pyx_t_2 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 321, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":316 + /* "dependency_injector/providers.pyx":322 * return copied * * def __str__(self): # <<<<<<<<<<<<<< @@ -8604,7 +8688,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6Object_4__str__(stru return __pyx_r; } -/* "dependency_injector/providers.pyx":323 +/* "dependency_injector/providers.pyx":329 * return represent_provider(provider=self, provides=self.__provides) * * def __repr__(self): # <<<<<<<<<<<<<< @@ -8640,7 +8724,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6Object_6__repr__(str int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__", 0); - /* "dependency_injector/providers.pyx":328 + /* "dependency_injector/providers.pyx":334 * :rtype: str * """ * return self.__str__() # <<<<<<<<<<<<<< @@ -8648,7 +8732,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6Object_6__repr__(str * @property */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_str); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 328, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_str); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 334, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -8662,14 +8746,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6Object_6__repr__(str } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 328, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 334, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":323 + /* "dependency_injector/providers.pyx":329 * return represent_provider(provider=self, provides=self.__provides) * * def __repr__(self): # <<<<<<<<<<<<<< @@ -8690,7 +8774,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6Object_6__repr__(str return __pyx_r; } -/* "dependency_injector/providers.pyx":331 +/* "dependency_injector/providers.pyx":337 * * @property * def provided(self): # <<<<<<<<<<<<<< @@ -8720,7 +8804,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6Object_8provided___g int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":333 + /* "dependency_injector/providers.pyx":339 * def provided(self): * """Return :py:class:`ProvidedInstance` provider.""" * return ProvidedInstance(self) # <<<<<<<<<<<<<< @@ -8728,13 +8812,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6Object_8provided___g * cpdef object _provide(self, tuple args, dict kwargs): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ProvidedInstance), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 333, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ProvidedInstance), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":331 + /* "dependency_injector/providers.pyx":337 * * @property * def provided(self): # <<<<<<<<<<<<<< @@ -8753,7 +8837,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6Object_8provided___g return __pyx_r; } -/* "dependency_injector/providers.pyx":335 +/* "dependency_injector/providers.pyx":341 * return ProvidedInstance(self) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -8784,7 +8868,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_6Object__provide(struc if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 335, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_19dependency_injector_9providers_6Object_9_provide)) { __Pyx_XDECREF(__pyx_r); @@ -8804,7 +8888,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_6Object__provide(struc #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 335, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 341, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -8812,13 +8896,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_6Object__provide(struc #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 335, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 341, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 335, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -8829,7 +8913,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_6Object__provide(struc __Pyx_INCREF(__pyx_v_kwargs); __Pyx_GIVEREF(__pyx_v_kwargs); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_kwargs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 335, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -8852,7 +8936,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_6Object__provide(struc #endif } - /* "dependency_injector/providers.pyx":346 + /* "dependency_injector/providers.pyx":352 * :rtype: object * """ * return self.__provides # <<<<<<<<<<<<<< @@ -8864,7 +8948,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_6Object__provide(struc __pyx_r = __pyx_v_self->__pyx___provides; goto __pyx_L0; - /* "dependency_injector/providers.pyx":335 + /* "dependency_injector/providers.pyx":341 * return ProvidedInstance(self) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -8922,11 +9006,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_6Object_9_provide(PyO case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 335, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 341, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 335, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 341, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -8939,14 +9023,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_6Object_9_provide(PyO } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 335, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 341, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.Object._provide", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 335, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 335, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 341, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 341, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_6Object_8_provide(((struct __pyx_obj_19dependency_injector_9providers_Object *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs); /* function exit code */ @@ -8967,7 +9051,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6Object_8_provide(str int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_provide", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_6Object__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 335, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_6Object__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -9301,7 +9385,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6Object_12__setstate_ return __pyx_r; } -/* "dependency_injector/providers.pyx":359 +/* "dependency_injector/providers.pyx":365 * """ * * def __init__(self, provides): # <<<<<<<<<<<<<< @@ -9342,7 +9426,7 @@ static int __pyx_pw_19dependency_injector_9providers_8Delegate_1__init__(PyObjec else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 359, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 365, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; @@ -9353,7 +9437,7 @@ static int __pyx_pw_19dependency_injector_9providers_8Delegate_1__init__(PyObjec } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 359, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 365, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.Delegate.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -9377,14 +9461,14 @@ static int __pyx_pf_19dependency_injector_9providers_8Delegate___init__(struct _ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":365 + /* "dependency_injector/providers.pyx":371 * :type provides: :py:class:`Provider` * """ * self.__provides = ensure_is_provider(provides) # <<<<<<<<<<<<<< * super(Delegate, self).__init__() * */ - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_ensure_is_provider(__pyx_v_provides, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 365, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_ensure_is_provider(__pyx_v_provides, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->__pyx___provides); @@ -9392,14 +9476,14 @@ static int __pyx_pf_19dependency_injector_9providers_8Delegate___init__(struct _ __pyx_v_self->__pyx___provides = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":366 + /* "dependency_injector/providers.pyx":372 * """ * self.__provides = ensure_is_provider(provides) * super(Delegate, self).__init__() # <<<<<<<<<<<<<< * * def __deepcopy__(self, memo): */ - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 366, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Delegate)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Delegate)); @@ -9407,10 +9491,10 @@ static int __pyx_pf_19dependency_injector_9providers_8Delegate___init__(struct _ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 366, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 366, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -9425,12 +9509,12 @@ static int __pyx_pf_19dependency_injector_9providers_8Delegate___init__(struct _ } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 366, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":359 + /* "dependency_injector/providers.pyx":365 * """ * * def __init__(self, provides): # <<<<<<<<<<<<<< @@ -9452,7 +9536,7 @@ static int __pyx_pf_19dependency_injector_9providers_8Delegate___init__(struct _ return __pyx_r; } -/* "dependency_injector/providers.pyx":368 +/* "dependency_injector/providers.pyx":374 * super(Delegate, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -9490,16 +9574,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_2__deepcopy int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__deepcopy__", 0); - /* "dependency_injector/providers.pyx":370 + /* "dependency_injector/providers.pyx":376 * def __deepcopy__(self, memo): * """Create and return full copy of provider.""" * copied = memo.get(id(self)) # <<<<<<<<<<<<<< * if copied is not None: * return copied */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 370, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 370, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -9514,13 +9598,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_2__deepcopy __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 370, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_copied = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":371 + /* "dependency_injector/providers.pyx":377 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -9531,7 +9615,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_2__deepcopy __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":372 + /* "dependency_injector/providers.pyx":378 * copied = memo.get(id(self)) * if copied is not None: * return copied # <<<<<<<<<<<<<< @@ -9543,7 +9627,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_2__deepcopy __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":371 + /* "dependency_injector/providers.pyx":377 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -9552,21 +9636,21 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_2__deepcopy */ } - /* "dependency_injector/providers.pyx":374 + /* "dependency_injector/providers.pyx":380 * return copied * * copied = self.__class__(deepcopy(self.__provides, memo)) # <<<<<<<<<<<<<< * * self._copy_overridings(copied, memo) */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 374, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __pyx_v_self->__pyx___provides; __Pyx_INCREF(__pyx_t_3); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 374, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 380, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 374, __pyx_L1_error) + __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -9582,24 +9666,24 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_2__deepcopy __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 374, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_copied, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":376 + /* "dependency_injector/providers.pyx":382 * copied = self.__class__(deepcopy(self.__provides, memo)) * * self._copy_overridings(copied, memo) # <<<<<<<<<<<<<< * * return copied */ - if (!(likely(((__pyx_v_copied) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_copied, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 376, __pyx_L1_error) - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 376, __pyx_L1_error) + if (!(likely(((__pyx_v_copied) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_copied, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 382, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 382, __pyx_L1_error) ((struct __pyx_vtabstruct_19dependency_injector_9providers_Delegate *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._copy_overridings(((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_self), ((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_copied), ((PyObject*)__pyx_v_memo), 0); - /* "dependency_injector/providers.pyx":378 + /* "dependency_injector/providers.pyx":384 * self._copy_overridings(copied, memo) * * return copied # <<<<<<<<<<<<<< @@ -9611,7 +9695,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_2__deepcopy __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":368 + /* "dependency_injector/providers.pyx":374 * super(Delegate, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -9634,7 +9718,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_2__deepcopy return __pyx_r; } -/* "dependency_injector/providers.pyx":380 +/* "dependency_injector/providers.pyx":386 * return copied * * def __str__(self): # <<<<<<<<<<<<<< @@ -9669,7 +9753,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_4__str__(st int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__str__", 0); - /* "dependency_injector/providers.pyx":385 + /* "dependency_injector/providers.pyx":391 * :rtype: str * """ * return represent_provider(provider=self, provides=self.__provides) # <<<<<<<<<<<<<< @@ -9679,14 +9763,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_4__str__(st __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_v_self->__pyx___provides; __Pyx_INCREF(__pyx_t_1); - __pyx_t_2 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 385, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":380 + /* "dependency_injector/providers.pyx":386 * return copied * * def __str__(self): # <<<<<<<<<<<<<< @@ -9706,7 +9790,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_4__str__(st return __pyx_r; } -/* "dependency_injector/providers.pyx":387 +/* "dependency_injector/providers.pyx":393 * return represent_provider(provider=self, provides=self.__provides) * * def __repr__(self): # <<<<<<<<<<<<<< @@ -9742,15 +9826,15 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_6__repr__(s int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__", 0); - /* "dependency_injector/providers.pyx":392 + /* "dependency_injector/providers.pyx":398 * :rtype: str * """ * return self.__str__() # <<<<<<<<<<<<<< * - * cpdef object _provide(self, tuple args, dict kwargs): + * @property */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_str); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 392, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_str); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -9764,14 +9848,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_6__repr__(s } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 392, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":387 + /* "dependency_injector/providers.pyx":393 * return represent_provider(provider=self, provides=self.__provides) * * def __repr__(self): # <<<<<<<<<<<<<< @@ -9792,8 +9876,61 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_6__repr__(s return __pyx_r; } -/* "dependency_injector/providers.pyx":394 - * return self.__str__() +/* "dependency_injector/providers.pyx":401 + * + * @property + * def provides(self): # <<<<<<<<<<<<<< + * """Return provider.""" + * return self.__provides + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_9providers_8Delegate_8provides_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_8Delegate_8provides_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_19dependency_injector_9providers_8Delegate_8provides___get__(((struct __pyx_obj_19dependency_injector_9providers_Delegate *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_8provides___get__(struct __pyx_obj_19dependency_injector_9providers_Delegate *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + + /* "dependency_injector/providers.pyx":403 + * def provides(self): + * """Return provider.""" + * return self.__provides # <<<<<<<<<<<<<< + * + * cpdef object _provide(self, tuple args, dict kwargs): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->__pyx___provides); + __pyx_r = __pyx_v_self->__pyx___provides; + goto __pyx_L0; + + /* "dependency_injector/providers.pyx":401 + * + * @property + * def provides(self): # <<<<<<<<<<<<<< + * """Return provider.""" + * return self.__provides + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "dependency_injector/providers.pyx":405 + * return self.__provides * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< * """Return provided instance. @@ -9823,7 +9960,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Delegate__provide(str if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 394, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_19dependency_injector_9providers_8Delegate_9_provide)) { __Pyx_XDECREF(__pyx_r); @@ -9843,7 +9980,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Delegate__provide(str #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 394, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 405, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -9851,13 +9988,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Delegate__provide(str #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 394, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 405, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 394, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -9868,7 +10005,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Delegate__provide(str __Pyx_INCREF(__pyx_v_kwargs); __Pyx_GIVEREF(__pyx_v_kwargs); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_kwargs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 394, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -9891,7 +10028,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Delegate__provide(str #endif } - /* "dependency_injector/providers.pyx":405 + /* "dependency_injector/providers.pyx":416 * :rtype: object * """ * return self.__provides # <<<<<<<<<<<<<< @@ -9903,8 +10040,8 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Delegate__provide(str __pyx_r = __pyx_v_self->__pyx___provides; goto __pyx_L0; - /* "dependency_injector/providers.pyx":394 - * return self.__str__() + /* "dependency_injector/providers.pyx":405 + * return self.__provides * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< * """Return provided instance. @@ -9961,11 +10098,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_8Delegate_9_provide(P case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 394, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 405, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 394, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 405, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -9978,14 +10115,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_8Delegate_9_provide(P } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 394, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 405, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.Delegate._provide", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 394, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 394, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 405, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 405, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_8Delegate_8_provide(((struct __pyx_obj_19dependency_injector_9providers_Delegate *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs); /* function exit code */ @@ -10006,7 +10143,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_8_provide(s int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_provide", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_8Delegate__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 394, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_8Delegate__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -10340,7 +10477,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Delegate_12__setstat return __pyx_r; } -/* "dependency_injector/providers.pyx":431 +/* "dependency_injector/providers.pyx":442 * """ * * def __init__(self, object instance_of=object): # <<<<<<<<<<<<<< @@ -10384,7 +10521,7 @@ static int __pyx_pw_19dependency_injector_9providers_10Dependency_1__init__(PyOb } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 431, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 442, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -10398,7 +10535,7 @@ static int __pyx_pw_19dependency_injector_9providers_10Dependency_1__init__(PyOb } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 431, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 442, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.Dependency.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -10426,7 +10563,7 @@ static int __pyx_pf_19dependency_injector_9providers_10Dependency___init__(struc int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":433 + /* "dependency_injector/providers.pyx":444 * def __init__(self, object instance_of=object): * """Initializer.""" * if not isinstance(instance_of, CLASS_TYPES): # <<<<<<<<<<<<<< @@ -10435,22 +10572,22 @@ static int __pyx_pf_19dependency_injector_9providers_10Dependency___init__(struc */ __pyx_t_1 = __pyx_v_19dependency_injector_9providers_CLASS_TYPES; __Pyx_INCREF(__pyx_t_1); - __pyx_t_2 = PyObject_IsInstance(__pyx_v_instance_of, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 433, __pyx_L1_error) + __pyx_t_2 = PyObject_IsInstance(__pyx_v_instance_of, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 444, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = ((!(__pyx_t_2 != 0)) != 0); if (unlikely(__pyx_t_3)) { - /* "dependency_injector/providers.pyx":435 + /* "dependency_injector/providers.pyx":446 * if not isinstance(instance_of, CLASS_TYPES): * raise TypeError( * 'Argument \'instance_of\' has incorrect type (expected {0}, got {1}))'.format( # <<<<<<<<<<<<<< * CLASS_TYPES, * instance_of, */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Argument_instance_of_has_incorre, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 435, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Argument_instance_of_has_incorre, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - /* "dependency_injector/providers.pyx":437 + /* "dependency_injector/providers.pyx":448 * 'Argument \'instance_of\' has incorrect type (expected {0}, got {1}))'.format( * CLASS_TYPES, * instance_of, # <<<<<<<<<<<<<< @@ -10472,7 +10609,7 @@ static int __pyx_pf_19dependency_injector_9providers_10Dependency___init__(struc #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_19dependency_injector_9providers_CLASS_TYPES, __pyx_v_instance_of}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 435, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 446, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -10480,13 +10617,13 @@ static int __pyx_pf_19dependency_injector_9providers_10Dependency___init__(struc #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_19dependency_injector_9providers_CLASS_TYPES, __pyx_v_instance_of}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 435, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 446, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 435, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; @@ -10497,27 +10634,27 @@ static int __pyx_pf_19dependency_injector_9providers_10Dependency___init__(struc __Pyx_INCREF(__pyx_v_instance_of); __Pyx_GIVEREF(__pyx_v_instance_of); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_instance_of); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 435, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/providers.pyx":434 + /* "dependency_injector/providers.pyx":445 * """Initializer.""" * if not isinstance(instance_of, CLASS_TYPES): * raise TypeError( # <<<<<<<<<<<<<< * 'Argument \'instance_of\' has incorrect type (expected {0}, got {1}))'.format( * CLASS_TYPES, */ - __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 434, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __PYX_ERR(1, 434, __pyx_L1_error) + __PYX_ERR(1, 445, __pyx_L1_error) - /* "dependency_injector/providers.pyx":433 + /* "dependency_injector/providers.pyx":444 * def __init__(self, object instance_of=object): * """Initializer.""" * if not isinstance(instance_of, CLASS_TYPES): # <<<<<<<<<<<<<< @@ -10526,7 +10663,7 @@ static int __pyx_pf_19dependency_injector_9providers_10Dependency___init__(struc */ } - /* "dependency_injector/providers.pyx":441 + /* "dependency_injector/providers.pyx":452 * ) * * self.__instance_of = instance_of # <<<<<<<<<<<<<< @@ -10539,14 +10676,14 @@ static int __pyx_pf_19dependency_injector_9providers_10Dependency___init__(struc __Pyx_DECREF(__pyx_v_self->__pyx___instance_of); __pyx_v_self->__pyx___instance_of = __pyx_v_instance_of; - /* "dependency_injector/providers.pyx":442 + /* "dependency_injector/providers.pyx":453 * * self.__instance_of = instance_of * super(Dependency, self).__init__() # <<<<<<<<<<<<<< * * def __deepcopy__(self, memo): */ - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 442, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Dependency)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Dependency)); @@ -10554,10 +10691,10 @@ static int __pyx_pf_19dependency_injector_9providers_10Dependency___init__(struc __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 442, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 442, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; @@ -10572,12 +10709,12 @@ static int __pyx_pf_19dependency_injector_9providers_10Dependency___init__(struc } __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 442, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/providers.pyx":431 + /* "dependency_injector/providers.pyx":442 * """ * * def __init__(self, object instance_of=object): # <<<<<<<<<<<<<< @@ -10600,7 +10737,7 @@ static int __pyx_pf_19dependency_injector_9providers_10Dependency___init__(struc return __pyx_r; } -/* "dependency_injector/providers.pyx":444 +/* "dependency_injector/providers.pyx":455 * super(Dependency, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -10637,16 +10774,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_2__deepc int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__deepcopy__", 0); - /* "dependency_injector/providers.pyx":446 + /* "dependency_injector/providers.pyx":457 * def __deepcopy__(self, memo): * """Create and return full copy of provider.""" * copied = memo.get(id(self)) # <<<<<<<<<<<<<< * if copied is not None: * return copied */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 446, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 446, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -10661,13 +10798,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_2__deepc __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 446, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_copied = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":447 + /* "dependency_injector/providers.pyx":458 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -10678,7 +10815,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_2__deepc __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":448 + /* "dependency_injector/providers.pyx":459 * copied = memo.get(id(self)) * if copied is not None: * return copied # <<<<<<<<<<<<<< @@ -10690,7 +10827,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_2__deepc __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":447 + /* "dependency_injector/providers.pyx":458 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -10699,14 +10836,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_2__deepc */ } - /* "dependency_injector/providers.pyx":450 + /* "dependency_injector/providers.pyx":461 * return copied * * copied = self.__class__(self.__instance_of) # <<<<<<<<<<<<<< * * self._copy_overridings(copied, memo) */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 450, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -10720,24 +10857,24 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_2__deepc } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_self->__pyx___instance_of) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_self->__pyx___instance_of); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 450, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_copied, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":452 + /* "dependency_injector/providers.pyx":463 * copied = self.__class__(self.__instance_of) * * self._copy_overridings(copied, memo) # <<<<<<<<<<<<<< * * return copied */ - if (!(likely(((__pyx_v_copied) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_copied, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 452, __pyx_L1_error) - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 452, __pyx_L1_error) + if (!(likely(((__pyx_v_copied) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_copied, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 463, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 463, __pyx_L1_error) ((struct __pyx_vtabstruct_19dependency_injector_9providers_Dependency *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._copy_overridings(((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_self), ((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_copied), ((PyObject*)__pyx_v_memo), 0); - /* "dependency_injector/providers.pyx":454 + /* "dependency_injector/providers.pyx":465 * self._copy_overridings(copied, memo) * * return copied # <<<<<<<<<<<<<< @@ -10749,7 +10886,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_2__deepc __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":444 + /* "dependency_injector/providers.pyx":455 * super(Dependency, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -10772,7 +10909,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_2__deepc return __pyx_r; } -/* "dependency_injector/providers.pyx":456 +/* "dependency_injector/providers.pyx":467 * return copied * * def __call__(self, *args, **kwargs): # <<<<<<<<<<<<<< @@ -10828,7 +10965,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_4__call_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__call__", 0); - /* "dependency_injector/providers.pyx":465 + /* "dependency_injector/providers.pyx":476 * cdef object instance * * if self.__last_overriding is None: # <<<<<<<<<<<<<< @@ -10839,14 +10976,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_4__call_ __pyx_t_2 = (__pyx_t_1 != 0); if (unlikely(__pyx_t_2)) { - /* "dependency_injector/providers.pyx":466 + /* "dependency_injector/providers.pyx":477 * * if self.__last_overriding is None: * raise Error('Dependency is not defined') # <<<<<<<<<<<<<< * * instance = self.__last_overriding(*args, **kwargs) */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 466, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -10860,14 +10997,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_4__call_ } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_kp_s_Dependency_is_not_defined) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_s_Dependency_is_not_defined); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 466, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 466, __pyx_L1_error) + __PYX_ERR(1, 477, __pyx_L1_error) - /* "dependency_injector/providers.pyx":465 + /* "dependency_injector/providers.pyx":476 * cdef object instance * * if self.__last_overriding is None: # <<<<<<<<<<<<<< @@ -10876,42 +11013,42 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_4__call_ */ } - /* "dependency_injector/providers.pyx":468 + /* "dependency_injector/providers.pyx":479 * raise Error('Dependency is not defined') * * instance = self.__last_overriding(*args, **kwargs) # <<<<<<<<<<<<<< * * if not isinstance(instance, self.instance_of): */ - __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_self->__pyx_base.__pyx___last_overriding), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 468, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_self->__pyx_base.__pyx___last_overriding), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_instance = __pyx_t_3; __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":470 + /* "dependency_injector/providers.pyx":481 * instance = self.__last_overriding(*args, **kwargs) * * if not isinstance(instance, self.instance_of): # <<<<<<<<<<<<<< * raise Error('{0} is not an '.format(instance) + * 'instance of {0}'.format(self.instance_of)) */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_instance_of); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 470, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_instance_of); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = PyObject_IsInstance(__pyx_v_instance, __pyx_t_3); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 470, __pyx_L1_error) + __pyx_t_2 = PyObject_IsInstance(__pyx_v_instance, __pyx_t_3); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 481, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0); if (unlikely(__pyx_t_1)) { - /* "dependency_injector/providers.pyx":471 + /* "dependency_injector/providers.pyx":482 * * if not isinstance(instance, self.instance_of): * raise Error('{0} is not an '.format(instance) + # <<<<<<<<<<<<<< * 'instance of {0}'.format(self.instance_of)) * */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 471, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_is_not_an, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 471, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_is_not_an, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { @@ -10925,20 +11062,20 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_4__call_ } __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_v_instance) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_instance); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 471, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "dependency_injector/providers.pyx":472 + /* "dependency_injector/providers.pyx":483 * if not isinstance(instance, self.instance_of): * raise Error('{0} is not an '.format(instance) + * 'instance of {0}'.format(self.instance_of)) # <<<<<<<<<<<<<< * * return instance */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_instance_of_0, __pyx_n_s_format); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 472, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_instance_of_0, __pyx_n_s_format); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_instance_of); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 472, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_instance_of); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { @@ -10953,18 +11090,18 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_4__call_ __pyx_t_6 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_9, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 472, __pyx_L1_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "dependency_injector/providers.pyx":471 + /* "dependency_injector/providers.pyx":482 * * if not isinstance(instance, self.instance_of): * raise Error('{0} is not an '.format(instance) + # <<<<<<<<<<<<<< * 'instance of {0}'.format(self.instance_of)) * */ - __pyx_t_7 = PyNumber_Add(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 471, __pyx_L1_error) + __pyx_t_7 = PyNumber_Add(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; @@ -10981,14 +11118,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_4__call_ __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 471, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 471, __pyx_L1_error) + __PYX_ERR(1, 482, __pyx_L1_error) - /* "dependency_injector/providers.pyx":470 + /* "dependency_injector/providers.pyx":481 * instance = self.__last_overriding(*args, **kwargs) * * if not isinstance(instance, self.instance_of): # <<<<<<<<<<<<<< @@ -10997,7 +11134,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_4__call_ */ } - /* "dependency_injector/providers.pyx":474 + /* "dependency_injector/providers.pyx":485 * 'instance of {0}'.format(self.instance_of)) * * return instance # <<<<<<<<<<<<<< @@ -11009,7 +11146,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_4__call_ __pyx_r = __pyx_v_instance; goto __pyx_L0; - /* "dependency_injector/providers.pyx":456 + /* "dependency_injector/providers.pyx":467 * return copied * * def __call__(self, *args, **kwargs): # <<<<<<<<<<<<<< @@ -11035,7 +11172,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_4__call_ return __pyx_r; } -/* "dependency_injector/providers.pyx":476 +/* "dependency_injector/providers.pyx":487 * return instance * * def __str__(self): # <<<<<<<<<<<<<< @@ -11070,7 +11207,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_6__str__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__str__", 0); - /* "dependency_injector/providers.pyx":481 + /* "dependency_injector/providers.pyx":492 * :rtype: str * """ * return represent_provider(provider=self, provides=self.__instance_of) # <<<<<<<<<<<<<< @@ -11080,14 +11217,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_6__str__ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_v_self->__pyx___instance_of; __Pyx_INCREF(__pyx_t_1); - __pyx_t_2 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 481, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":476 + /* "dependency_injector/providers.pyx":487 * return instance * * def __str__(self): # <<<<<<<<<<<<<< @@ -11107,7 +11244,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_6__str__ return __pyx_r; } -/* "dependency_injector/providers.pyx":483 +/* "dependency_injector/providers.pyx":494 * return represent_provider(provider=self, provides=self.__instance_of) * * def __repr__(self): # <<<<<<<<<<<<<< @@ -11143,7 +11280,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_8__repr_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__", 0); - /* "dependency_injector/providers.pyx":488 + /* "dependency_injector/providers.pyx":499 * :rtype: str * """ * return self.__str__() # <<<<<<<<<<<<<< @@ -11151,7 +11288,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_8__repr_ * @property */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_str); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 488, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_str); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -11165,14 +11302,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_8__repr_ } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 488, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":483 + /* "dependency_injector/providers.pyx":494 * return represent_provider(provider=self, provides=self.__instance_of) * * def __repr__(self): # <<<<<<<<<<<<<< @@ -11193,7 +11330,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_8__repr_ return __pyx_r; } -/* "dependency_injector/providers.pyx":491 +/* "dependency_injector/providers.pyx":502 * * @property * def provided(self): # <<<<<<<<<<<<<< @@ -11223,7 +11360,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_8provide int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":493 + /* "dependency_injector/providers.pyx":504 * def provided(self): * """Return :py:class:`ProvidedInstance` provider.""" * return ProvidedInstance(self) # <<<<<<<<<<<<<< @@ -11231,13 +11368,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_8provide * @property */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ProvidedInstance), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 493, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ProvidedInstance), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":491 + /* "dependency_injector/providers.pyx":502 * * @property * def provided(self): # <<<<<<<<<<<<<< @@ -11256,7 +11393,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_8provide return __pyx_r; } -/* "dependency_injector/providers.pyx":496 +/* "dependency_injector/providers.pyx":507 * * @property * def instance_of(self): # <<<<<<<<<<<<<< @@ -11282,7 +11419,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_11instan __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":498 + /* "dependency_injector/providers.pyx":509 * def instance_of(self): * """Return class of required dependency.""" * return self.__instance_of # <<<<<<<<<<<<<< @@ -11294,7 +11431,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_11instan __pyx_r = __pyx_v_self->__pyx___instance_of; goto __pyx_L0; - /* "dependency_injector/providers.pyx":496 + /* "dependency_injector/providers.pyx":507 * * @property * def instance_of(self): # <<<<<<<<<<<<<< @@ -11309,7 +11446,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_11instan return __pyx_r; } -/* "dependency_injector/providers.pyx":500 +/* "dependency_injector/providers.pyx":511 * return self.__instance_of * * def provided_by(self, provider): # <<<<<<<<<<<<<< @@ -11342,7 +11479,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_10provid int __pyx_clineno = 0; __Pyx_RefNannySetupContext("provided_by", 0); - /* "dependency_injector/providers.pyx":508 + /* "dependency_injector/providers.pyx":519 * :rtype: None * """ * return self.override(provider) # <<<<<<<<<<<<<< @@ -11350,7 +11487,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_10provid * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 508, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -11364,14 +11501,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10Dependency_10provid } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_provider) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_provider); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 508, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":500 + /* "dependency_injector/providers.pyx":511 * return self.__instance_of * * def provided_by(self, provider): # <<<<<<<<<<<<<< @@ -12026,7 +12163,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_18ExternalDependency_ return __pyx_r; } -/* "dependency_injector/providers.pyx":573 +/* "dependency_injector/providers.pyx":584 * """ * * def __init__(self, **dependencies): # <<<<<<<<<<<<<< @@ -12069,7 +12206,7 @@ static int __pyx_pf_19dependency_injector_9providers_21DependenciesContainer___i int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":575 + /* "dependency_injector/providers.pyx":586 * def __init__(self, **dependencies): * """Initializer.""" * self.__providers = dependencies # <<<<<<<<<<<<<< @@ -12082,14 +12219,14 @@ static int __pyx_pf_19dependency_injector_9providers_21DependenciesContainer___i __Pyx_DECREF(__pyx_v_self->__pyx___providers); __pyx_v_self->__pyx___providers = __pyx_v_dependencies; - /* "dependency_injector/providers.pyx":576 + /* "dependency_injector/providers.pyx":587 * """Initializer.""" * self.__providers = dependencies * super(DependenciesContainer, self).__init__(None) # <<<<<<<<<<<<<< * * def __deepcopy__(self, memo): */ - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 576, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_DependenciesContainer)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_DependenciesContainer)); @@ -12097,10 +12234,10 @@ static int __pyx_pf_19dependency_injector_9providers_21DependenciesContainer___i __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 576, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 576, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -12115,12 +12252,12 @@ static int __pyx_pf_19dependency_injector_9providers_21DependenciesContainer___i } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, Py_None) : __Pyx_PyObject_CallOneArg(__pyx_t_2, Py_None); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 576, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":573 + /* "dependency_injector/providers.pyx":584 * """ * * def __init__(self, **dependencies): # <<<<<<<<<<<<<< @@ -12142,7 +12279,7 @@ static int __pyx_pf_19dependency_injector_9providers_21DependenciesContainer___i return __pyx_r; } -/* "dependency_injector/providers.pyx":578 +/* "dependency_injector/providers.pyx":589 * super(DependenciesContainer, self).__init__(None) * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -12180,16 +12317,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__deepcopy__", 0); - /* "dependency_injector/providers.pyx":582 + /* "dependency_injector/providers.pyx":593 * cdef DependenciesContainer copied * * copied = memo.get(id(self)) # <<<<<<<<<<<<<< * if copied is not None: * return copied */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 582, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 582, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -12204,14 +12341,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 582, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_DependenciesContainer))))) __PYX_ERR(1, 582, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_DependenciesContainer))))) __PYX_ERR(1, 593, __pyx_L1_error) __pyx_v_copied = ((struct __pyx_obj_19dependency_injector_9providers_DependenciesContainer *)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":583 + /* "dependency_injector/providers.pyx":594 * * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -12222,7 +12359,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":584 + /* "dependency_injector/providers.pyx":595 * copied = memo.get(id(self)) * if copied is not None: * return copied # <<<<<<<<<<<<<< @@ -12234,7 +12371,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain __pyx_r = ((PyObject *)__pyx_v_copied); goto __pyx_L0; - /* "dependency_injector/providers.pyx":583 + /* "dependency_injector/providers.pyx":594 * * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -12243,14 +12380,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain */ } - /* "dependency_injector/providers.pyx":586 + /* "dependency_injector/providers.pyx":597 * return copied * * copied = self.__class__() # <<<<<<<<<<<<<< * copied.__provides = deepcopy(self.__provides, memo) * copied.__providers = deepcopy(self.__providers, memo) */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 586, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -12264,14 +12401,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 586, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_DependenciesContainer))))) __PYX_ERR(1, 586, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_DependenciesContainer))))) __PYX_ERR(1, 597, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_copied, ((struct __pyx_obj_19dependency_injector_9providers_DependenciesContainer *)__pyx_t_1)); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":587 + /* "dependency_injector/providers.pyx":598 * * copied = self.__class__() * copied.__provides = deepcopy(self.__provides, memo) # <<<<<<<<<<<<<< @@ -12280,10 +12417,10 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain */ __pyx_t_1 = __pyx_v_self->__pyx_base.__pyx___provides; __Pyx_INCREF(__pyx_t_1); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 587, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 598, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_2 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_1, 0, &__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 587, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_1, 0, &__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); @@ -12292,7 +12429,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain __pyx_v_copied->__pyx_base.__pyx___provides = __pyx_t_2; __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":588 + /* "dependency_injector/providers.pyx":599 * copied = self.__class__() * copied.__provides = deepcopy(self.__provides, memo) * copied.__providers = deepcopy(self.__providers, memo) # <<<<<<<<<<<<<< @@ -12301,30 +12438,30 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain */ __pyx_t_2 = __pyx_v_self->__pyx___providers; __Pyx_INCREF(__pyx_t_2); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 588, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 599, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_2, 0, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 588, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_2, 0, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(1, 588, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(1, 599, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_copied->__pyx___providers); __Pyx_DECREF(__pyx_v_copied->__pyx___providers); __pyx_v_copied->__pyx___providers = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":590 + /* "dependency_injector/providers.pyx":601 * copied.__providers = deepcopy(self.__providers, memo) * * self._copy_overridings(copied, memo) # <<<<<<<<<<<<<< * * return copied */ - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 590, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 601, __pyx_L1_error) ((struct __pyx_vtabstruct_19dependency_injector_9providers_DependenciesContainer *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._copy_overridings(((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_self), ((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_copied), ((PyObject*)__pyx_v_memo), 0); - /* "dependency_injector/providers.pyx":592 + /* "dependency_injector/providers.pyx":603 * self._copy_overridings(copied, memo) * * return copied # <<<<<<<<<<<<<< @@ -12336,7 +12473,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain __pyx_r = ((PyObject *)__pyx_v_copied); goto __pyx_L0; - /* "dependency_injector/providers.pyx":578 + /* "dependency_injector/providers.pyx":589 * super(DependenciesContainer, self).__init__(None) * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -12359,7 +12496,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain return __pyx_r; } -/* "dependency_injector/providers.pyx":594 +/* "dependency_injector/providers.pyx":605 * return copied * * def __getattr__(self, name): # <<<<<<<<<<<<<< @@ -12401,14 +12538,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getattr__", 0); - /* "dependency_injector/providers.pyx":596 + /* "dependency_injector/providers.pyx":607 * def __getattr__(self, name): * """Return dependency provider.""" * if name.startswith('__') and name.endswith('__'): # <<<<<<<<<<<<<< * raise AttributeError( * '\'{cls}\' object has no attribute ' */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_startswith); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 596, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_startswith); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -12420,19 +12557,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain __Pyx_DECREF_SET(__pyx_t_3, function); } } - __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_n_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s__3); + __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_n_s__4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s__4); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 596, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 596, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 607, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_5) { } else { __pyx_t_1 = __pyx_t_5; goto __pyx_L4_bool_binop_done; } - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_endswith); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 596, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_endswith); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -12444,72 +12581,72 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain __Pyx_DECREF_SET(__pyx_t_3, function); } } - __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_n_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s__3); + __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_n_s__4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s__4); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 596, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 596, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 607, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_1 = __pyx_t_5; __pyx_L4_bool_binop_done:; if (unlikely(__pyx_t_1)) { - /* "dependency_injector/providers.pyx":599 + /* "dependency_injector/providers.pyx":610 * raise AttributeError( * '\'{cls}\' object has no attribute ' * '\'{attribute_name}\''.format(cls=self.__class__.__name__, # <<<<<<<<<<<<<< * attribute_name=name)) * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_cls_object_has_no_attribute_att, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 599, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_cls_object_has_no_attribute_att, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 599, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 599, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 599, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_cls, __pyx_t_6) < 0) __PYX_ERR(1, 599, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_cls, __pyx_t_6) < 0) __PYX_ERR(1, 610, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "dependency_injector/providers.pyx":600 + /* "dependency_injector/providers.pyx":611 * '\'{cls}\' object has no attribute ' * '\'{attribute_name}\''.format(cls=self.__class__.__name__, * attribute_name=name)) # <<<<<<<<<<<<<< * * provider = self.__providers.get(name) */ - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_attribute_name, __pyx_v_name) < 0) __PYX_ERR(1, 599, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_attribute_name, __pyx_v_name) < 0) __PYX_ERR(1, 610, __pyx_L1_error) - /* "dependency_injector/providers.pyx":599 + /* "dependency_injector/providers.pyx":610 * raise AttributeError( * '\'{cls}\' object has no attribute ' * '\'{attribute_name}\''.format(cls=self.__class__.__name__, # <<<<<<<<<<<<<< * attribute_name=name)) * */ - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 599, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":597 + /* "dependency_injector/providers.pyx":608 * """Return dependency provider.""" * if name.startswith('__') and name.endswith('__'): * raise AttributeError( # <<<<<<<<<<<<<< * '\'{cls}\' object has no attribute ' * '\'{attribute_name}\''.format(cls=self.__class__.__name__, */ - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_AttributeError, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 597, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_AttributeError, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 597, __pyx_L1_error) + __PYX_ERR(1, 608, __pyx_L1_error) - /* "dependency_injector/providers.pyx":596 + /* "dependency_injector/providers.pyx":607 * def __getattr__(self, name): * """Return dependency provider.""" * if name.startswith('__') and name.endswith('__'): # <<<<<<<<<<<<<< @@ -12518,7 +12655,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain */ } - /* "dependency_injector/providers.pyx":602 + /* "dependency_injector/providers.pyx":613 * attribute_name=name)) * * provider = self.__providers.get(name) # <<<<<<<<<<<<<< @@ -12527,37 +12664,37 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain */ if (unlikely(__pyx_v_self->__pyx___providers == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(1, 602, __pyx_L1_error) + __PYX_ERR(1, 613, __pyx_L1_error) } - __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_self->__pyx___providers, __pyx_v_name, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 602, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_self->__pyx___providers, __pyx_v_name, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_provider = __pyx_t_3; __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":603 + /* "dependency_injector/providers.pyx":614 * * provider = self.__providers.get(name) * if not provider: # <<<<<<<<<<<<<< * provider = Dependency() * self.__providers[name] = provider */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_provider); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 603, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_provider); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 614, __pyx_L1_error) __pyx_t_5 = ((!__pyx_t_1) != 0); if (__pyx_t_5) { - /* "dependency_injector/providers.pyx":604 + /* "dependency_injector/providers.pyx":615 * provider = self.__providers.get(name) * if not provider: * provider = Dependency() # <<<<<<<<<<<<<< * self.__providers[name] = provider * */ - __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Dependency)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 604, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Dependency)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF_SET(__pyx_v_provider, __pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":605 + /* "dependency_injector/providers.pyx":616 * if not provider: * provider = Dependency() * self.__providers[name] = provider # <<<<<<<<<<<<<< @@ -12566,18 +12703,18 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain */ if (unlikely(__pyx_v_self->__pyx___providers == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 605, __pyx_L1_error) + __PYX_ERR(1, 616, __pyx_L1_error) } - if (unlikely(PyDict_SetItem(__pyx_v_self->__pyx___providers, __pyx_v_name, __pyx_v_provider) < 0)) __PYX_ERR(1, 605, __pyx_L1_error) + if (unlikely(PyDict_SetItem(__pyx_v_self->__pyx___providers, __pyx_v_name, __pyx_v_provider) < 0)) __PYX_ERR(1, 616, __pyx_L1_error) - /* "dependency_injector/providers.pyx":607 + /* "dependency_injector/providers.pyx":618 * self.__providers[name] = provider * * container = self.__call__() # <<<<<<<<<<<<<< * if container: * dependency_provider = container.providers.get(name) */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_call); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 607, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_call); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { @@ -12591,32 +12728,32 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain } __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_6); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 607, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_container = __pyx_t_3; __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":608 + /* "dependency_injector/providers.pyx":619 * * container = self.__call__() * if container: # <<<<<<<<<<<<<< * dependency_provider = container.providers.get(name) * if dependency_provider: */ - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_container); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 608, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_container); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 619, __pyx_L1_error) if (__pyx_t_5) { - /* "dependency_injector/providers.pyx":609 + /* "dependency_injector/providers.pyx":620 * container = self.__call__() * if container: * dependency_provider = container.providers.get(name) # <<<<<<<<<<<<<< * if dependency_provider: * provider.override(dependency_provider) */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_container, __pyx_n_s_providers); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 609, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_container, __pyx_n_s_providers); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 609, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -12631,30 +12768,30 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain } __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_name); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 609, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_dependency_provider = __pyx_t_3; __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":610 + /* "dependency_injector/providers.pyx":621 * if container: * dependency_provider = container.providers.get(name) * if dependency_provider: # <<<<<<<<<<<<<< * provider.override(dependency_provider) * */ - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_dependency_provider); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 610, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_dependency_provider); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 621, __pyx_L1_error) if (__pyx_t_5) { - /* "dependency_injector/providers.pyx":611 + /* "dependency_injector/providers.pyx":622 * dependency_provider = container.providers.get(name) * if dependency_provider: * provider.override(dependency_provider) # <<<<<<<<<<<<<< * * return provider */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_provider, __pyx_n_s_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 611, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_provider, __pyx_n_s_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -12668,12 +12805,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain } __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, __pyx_v_dependency_provider) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_dependency_provider); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 611, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":610 + /* "dependency_injector/providers.pyx":621 * if container: * dependency_provider = container.providers.get(name) * if dependency_provider: # <<<<<<<<<<<<<< @@ -12682,7 +12819,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain */ } - /* "dependency_injector/providers.pyx":608 + /* "dependency_injector/providers.pyx":619 * * container = self.__call__() * if container: # <<<<<<<<<<<<<< @@ -12691,7 +12828,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain */ } - /* "dependency_injector/providers.pyx":603 + /* "dependency_injector/providers.pyx":614 * * provider = self.__providers.get(name) * if not provider: # <<<<<<<<<<<<<< @@ -12700,7 +12837,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain */ } - /* "dependency_injector/providers.pyx":613 + /* "dependency_injector/providers.pyx":624 * provider.override(dependency_provider) * * return provider # <<<<<<<<<<<<<< @@ -12712,7 +12849,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain __pyx_r = __pyx_v_provider; goto __pyx_L0; - /* "dependency_injector/providers.pyx":594 + /* "dependency_injector/providers.pyx":605 * return copied * * def __getattr__(self, name): # <<<<<<<<<<<<<< @@ -12737,7 +12874,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain return __pyx_r; } -/* "dependency_injector/providers.pyx":616 +/* "dependency_injector/providers.pyx":627 * * @property * def providers(self): # <<<<<<<<<<<<<< @@ -12763,7 +12900,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":618 + /* "dependency_injector/providers.pyx":629 * def providers(self): * """Read-only dictionary of dependency providers.""" * return self.__providers # <<<<<<<<<<<<<< @@ -12775,7 +12912,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain __pyx_r = __pyx_v_self->__pyx___providers; goto __pyx_L0; - /* "dependency_injector/providers.pyx":616 + /* "dependency_injector/providers.pyx":627 * * @property * def providers(self): # <<<<<<<<<<<<<< @@ -12790,7 +12927,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain return __pyx_r; } -/* "dependency_injector/providers.pyx":620 +/* "dependency_injector/providers.pyx":631 * return self.__providers * * def override(self, provider): # <<<<<<<<<<<<<< @@ -12823,18 +12960,18 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain int __pyx_clineno = 0; __Pyx_RefNannySetupContext("override", 0); - /* "dependency_injector/providers.pyx":631 + /* "dependency_injector/providers.pyx":642 * :rtype: :py:class:`OverridingContext` * """ * self._override_providers(container=provider) # <<<<<<<<<<<<<< * return super(DependenciesContainer, self).override(provider) * */ - __pyx_t_1 = ((struct __pyx_vtabstruct_19dependency_injector_9providers_DependenciesContainer *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->_override_providers(__pyx_v_self, __pyx_v_provider, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 631, __pyx_L1_error) + __pyx_t_1 = ((struct __pyx_vtabstruct_19dependency_injector_9providers_DependenciesContainer *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->_override_providers(__pyx_v_self, __pyx_v_provider, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":632 + /* "dependency_injector/providers.pyx":643 * """ * self._override_providers(container=provider) * return super(DependenciesContainer, self).override(provider) # <<<<<<<<<<<<<< @@ -12842,7 +12979,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain * def reset_last_overriding(self): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 632, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_DependenciesContainer)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_DependenciesContainer)); @@ -12850,10 +12987,10 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 632, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 632, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -12868,14 +13005,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_provider) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_provider); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 632, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":620 + /* "dependency_injector/providers.pyx":631 * return self.__providers * * def override(self, provider): # <<<<<<<<<<<<<< @@ -12896,7 +13033,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain return __pyx_r; } -/* "dependency_injector/providers.pyx":634 +/* "dependency_injector/providers.pyx":645 * return super(DependenciesContainer, self).override(provider) * * def reset_last_overriding(self): # <<<<<<<<<<<<<< @@ -12938,7 +13075,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain int __pyx_clineno = 0; __Pyx_RefNannySetupContext("reset_last_overriding", 0); - /* "dependency_injector/providers.pyx":642 + /* "dependency_injector/providers.pyx":653 * :rtype: None * """ * for child in self.__providers.values(): # <<<<<<<<<<<<<< @@ -12947,17 +13084,17 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain */ if (unlikely(__pyx_v_self->__pyx___providers == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values"); - __PYX_ERR(1, 642, __pyx_L1_error) + __PYX_ERR(1, 653, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_self->__pyx___providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 642, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_self->__pyx___providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { - __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 642, __pyx_L1_error) + __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 642, __pyx_L1_error) + __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 653, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -12965,17 +13102,17 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 642, __pyx_L1_error) + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 653, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 642, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 642, __pyx_L1_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 653, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 642, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } @@ -12985,7 +13122,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(1, 642, __pyx_L1_error) + else __PYX_ERR(1, 653, __pyx_L1_error) } break; } @@ -12994,7 +13131,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain __Pyx_XDECREF_SET(__pyx_v_child, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":643 + /* "dependency_injector/providers.pyx":654 * """ * for child in self.__providers.values(): * try: # <<<<<<<<<<<<<< @@ -13010,14 +13147,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain __Pyx_XGOTREF(__pyx_t_7); /*try:*/ { - /* "dependency_injector/providers.pyx":644 + /* "dependency_injector/providers.pyx":655 * for child in self.__providers.values(): * try: * child.reset_last_overriding() # <<<<<<<<<<<<<< * except Error: * pass */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_child, __pyx_n_s_reset_last_overriding); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 644, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_child, __pyx_n_s_reset_last_overriding); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 655, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { @@ -13031,12 +13168,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain } __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 644, __pyx_L5_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 655, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":643 + /* "dependency_injector/providers.pyx":654 * """ * for child in self.__providers.values(): * try: # <<<<<<<<<<<<<< @@ -13053,7 +13190,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "dependency_injector/providers.pyx":645 + /* "dependency_injector/providers.pyx":656 * try: * child.reset_last_overriding() * except Error: # <<<<<<<<<<<<<< @@ -13061,7 +13198,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain * super(DependenciesContainer, self).reset_last_overriding() */ __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_8, &__pyx_t_9); - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_Error); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 645, __pyx_L7_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_Error); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 656, __pyx_L7_except_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; @@ -13074,7 +13211,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain goto __pyx_L7_except_error; __pyx_L7_except_error:; - /* "dependency_injector/providers.pyx":643 + /* "dependency_injector/providers.pyx":654 * """ * for child in self.__providers.values(): * try: # <<<<<<<<<<<<<< @@ -13094,7 +13231,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain __pyx_L12_try_end:; } - /* "dependency_injector/providers.pyx":642 + /* "dependency_injector/providers.pyx":653 * :rtype: None * """ * for child in self.__providers.values(): # <<<<<<<<<<<<<< @@ -13104,14 +13241,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":647 + /* "dependency_injector/providers.pyx":658 * except Error: * pass * super(DependenciesContainer, self).reset_last_overriding() # <<<<<<<<<<<<<< * * def reset_override(self): */ - __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 647, __pyx_L1_error) + __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_DependenciesContainer)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_DependenciesContainer)); @@ -13119,10 +13256,10 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 647, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_reset_last_overriding); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 647, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_reset_last_overriding); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; @@ -13137,12 +13274,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain } __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_9); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 647, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":634 + /* "dependency_injector/providers.pyx":645 * return super(DependenciesContainer, self).override(provider) * * def reset_last_overriding(self): # <<<<<<<<<<<<<< @@ -13168,7 +13305,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain return __pyx_r; } -/* "dependency_injector/providers.pyx":649 +/* "dependency_injector/providers.pyx":660 * super(DependenciesContainer, self).reset_last_overriding() * * def reset_override(self): # <<<<<<<<<<<<<< @@ -13205,7 +13342,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain int __pyx_clineno = 0; __Pyx_RefNannySetupContext("reset_override", 0); - /* "dependency_injector/providers.pyx":654 + /* "dependency_injector/providers.pyx":665 * :rtype: None * """ * for child in self.__providers.values(): # <<<<<<<<<<<<<< @@ -13214,17 +13351,17 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain */ if (unlikely(__pyx_v_self->__pyx___providers == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values"); - __PYX_ERR(1, 654, __pyx_L1_error) + __PYX_ERR(1, 665, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_self->__pyx___providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 654, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_self->__pyx___providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { - __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 654, __pyx_L1_error) + __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 654, __pyx_L1_error) + __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 665, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -13232,17 +13369,17 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 654, __pyx_L1_error) + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 665, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 654, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 654, __pyx_L1_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 665, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 654, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } @@ -13252,7 +13389,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(1, 654, __pyx_L1_error) + else __PYX_ERR(1, 665, __pyx_L1_error) } break; } @@ -13261,14 +13398,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain __Pyx_XDECREF_SET(__pyx_v_child, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":655 + /* "dependency_injector/providers.pyx":666 * """ * for child in self.__providers.values(): * child.reset_override() # <<<<<<<<<<<<<< * super(DependenciesContainer, self).reset_override() * */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_child, __pyx_n_s_reset_override); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 655, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_child, __pyx_n_s_reset_override); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { @@ -13282,12 +13419,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain } __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 655, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":654 + /* "dependency_injector/providers.pyx":665 * :rtype: None * """ * for child in self.__providers.values(): # <<<<<<<<<<<<<< @@ -13297,14 +13434,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":656 + /* "dependency_injector/providers.pyx":667 * for child in self.__providers.values(): * child.reset_override() * super(DependenciesContainer, self).reset_override() # <<<<<<<<<<<<<< * * cpdef object _override_providers(self, object container): */ - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 656, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_DependenciesContainer)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_DependenciesContainer)); @@ -13312,10 +13449,10 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 656, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_reset_override); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 656, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_reset_override); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; @@ -13330,12 +13467,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 656, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":649 + /* "dependency_injector/providers.pyx":660 * super(DependenciesContainer, self).reset_last_overriding() * * def reset_override(self): # <<<<<<<<<<<<<< @@ -13360,7 +13497,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain return __pyx_r; } -/* "dependency_injector/providers.pyx":658 +/* "dependency_injector/providers.pyx":669 * super(DependenciesContainer, self).reset_override() * * cpdef object _override_providers(self, object container): # <<<<<<<<<<<<<< @@ -13398,7 +13535,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_21DependenciesContaine if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 658, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_19dependency_injector_9providers_21DependenciesContainer_13_override_providers)) { __Pyx_XDECREF(__pyx_r); @@ -13415,7 +13552,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_21DependenciesContaine } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_container) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_container); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 658, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; @@ -13436,16 +13573,16 @@ static PyObject *__pyx_f_19dependency_injector_9providers_21DependenciesContaine #endif } - /* "dependency_injector/providers.pyx":660 + /* "dependency_injector/providers.pyx":671 * cpdef object _override_providers(self, object container): * """Override providers with providers from provided container.""" * for name, dependency_provider in container.providers.items(): # <<<<<<<<<<<<<< * provider = self.__providers.get(name) * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_container, __pyx_n_s_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 660, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_container, __pyx_n_s_providers); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_items); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 660, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_items); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; @@ -13460,16 +13597,16 @@ static PyObject *__pyx_f_19dependency_injector_9providers_21DependenciesContaine } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 660, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { - __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 660, __pyx_L1_error) + __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 660, __pyx_L1_error) + __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 671, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -13477,17 +13614,17 @@ static PyObject *__pyx_f_19dependency_injector_9providers_21DependenciesContaine if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 660, __pyx_L1_error) + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 671, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 660, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 660, __pyx_L1_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 671, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 660, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } @@ -13497,7 +13634,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_21DependenciesContaine PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(1, 660, __pyx_L1_error) + else __PYX_ERR(1, 671, __pyx_L1_error) } break; } @@ -13509,7 +13646,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_21DependenciesContaine if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(1, 660, __pyx_L1_error) + __PYX_ERR(1, 671, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -13522,15 +13659,15 @@ static PyObject *__pyx_f_19dependency_injector_9providers_21DependenciesContaine __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); #else - __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 660, __pyx_L1_error) + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 660, __pyx_L1_error) + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 660, __pyx_L1_error) + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; @@ -13538,7 +13675,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_21DependenciesContaine __Pyx_GOTREF(__pyx_t_2); index = 1; __pyx_t_4 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(1, 660, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(1, 671, __pyx_L1_error) __pyx_t_8 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L6_unpacking_done; @@ -13546,7 +13683,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_21DependenciesContaine __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(1, 660, __pyx_L1_error) + __PYX_ERR(1, 671, __pyx_L1_error) __pyx_L6_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_2); @@ -13554,7 +13691,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_21DependenciesContaine __Pyx_XDECREF_SET(__pyx_v_dependency_provider, __pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/providers.pyx":661 + /* "dependency_injector/providers.pyx":672 * """Override providers with providers from provided container.""" * for name, dependency_provider in container.providers.items(): * provider = self.__providers.get(name) # <<<<<<<<<<<<<< @@ -13563,25 +13700,25 @@ static PyObject *__pyx_f_19dependency_injector_9providers_21DependenciesContaine */ if (unlikely(__pyx_v_self->__pyx___providers == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(1, 661, __pyx_L1_error) + __PYX_ERR(1, 672, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_self->__pyx___providers, __pyx_v_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 661, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_self->__pyx___providers, __pyx_v_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_provider, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":663 + /* "dependency_injector/providers.pyx":674 * provider = self.__providers.get(name) * * if not provider: # <<<<<<<<<<<<<< * continue * */ - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_provider); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(1, 663, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_provider); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(1, 674, __pyx_L1_error) __pyx_t_10 = ((!__pyx_t_9) != 0); if (__pyx_t_10) { - /* "dependency_injector/providers.pyx":664 + /* "dependency_injector/providers.pyx":675 * * if not provider: * continue # <<<<<<<<<<<<<< @@ -13590,7 +13727,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_21DependenciesContaine */ goto __pyx_L3_continue; - /* "dependency_injector/providers.pyx":663 + /* "dependency_injector/providers.pyx":674 * provider = self.__providers.get(name) * * if not provider: # <<<<<<<<<<<<<< @@ -13599,21 +13736,21 @@ static PyObject *__pyx_f_19dependency_injector_9providers_21DependenciesContaine */ } - /* "dependency_injector/providers.pyx":666 + /* "dependency_injector/providers.pyx":677 * continue * * if provider.last_overriding is dependency_provider: # <<<<<<<<<<<<<< * continue * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_provider, __pyx_n_s_last_overriding); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 666, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_provider, __pyx_n_s_last_overriding); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = (__pyx_t_1 == __pyx_v_dependency_provider); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_9 = (__pyx_t_10 != 0); if (__pyx_t_9) { - /* "dependency_injector/providers.pyx":667 + /* "dependency_injector/providers.pyx":678 * * if provider.last_overriding is dependency_provider: * continue # <<<<<<<<<<<<<< @@ -13622,7 +13759,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_21DependenciesContaine */ goto __pyx_L3_continue; - /* "dependency_injector/providers.pyx":666 + /* "dependency_injector/providers.pyx":677 * continue * * if provider.last_overriding is dependency_provider: # <<<<<<<<<<<<<< @@ -13631,14 +13768,14 @@ static PyObject *__pyx_f_19dependency_injector_9providers_21DependenciesContaine */ } - /* "dependency_injector/providers.pyx":669 + /* "dependency_injector/providers.pyx":680 * continue * * provider.override(dependency_provider) # <<<<<<<<<<<<<< * * */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_provider, __pyx_n_s_override); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 669, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_provider, __pyx_n_s_override); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { @@ -13652,12 +13789,12 @@ static PyObject *__pyx_f_19dependency_injector_9providers_21DependenciesContaine } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_v_dependency_provider) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_dependency_provider); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 669, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":660 + /* "dependency_injector/providers.pyx":671 * cpdef object _override_providers(self, object container): * """Override providers with providers from provided container.""" * for name, dependency_provider in container.providers.items(): # <<<<<<<<<<<<<< @@ -13668,7 +13805,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_21DependenciesContaine } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":658 + /* "dependency_injector/providers.pyx":669 * super(DependenciesContainer, self).reset_override() * * cpdef object _override_providers(self, object container): # <<<<<<<<<<<<<< @@ -13719,7 +13856,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_override_providers", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_21DependenciesContainer__override_providers(__pyx_v_self, __pyx_v_container, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 658, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_21DependenciesContainer__override_providers(__pyx_v_self, __pyx_v_container, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -14063,7 +14200,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_21DependenciesContain return __pyx_r; } -/* "dependency_injector/providers.pyx":686 +/* "dependency_injector/providers.pyx":697 * """ * * def __init__(self, Provider overridden, Provider overriding): # <<<<<<<<<<<<<< @@ -14109,11 +14246,11 @@ static int __pyx_pw_19dependency_injector_9providers_17OverridingContext_1__init case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_overriding)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(1, 686, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(1, 697, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 686, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 697, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -14126,14 +14263,14 @@ static int __pyx_pw_19dependency_injector_9providers_17OverridingContext_1__init } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 686, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 697, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.OverridingContext.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_overridden), __pyx_ptype_19dependency_injector_9providers_Provider, 1, "overridden", 0))) __PYX_ERR(1, 686, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_overriding), __pyx_ptype_19dependency_injector_9providers_Provider, 1, "overriding", 0))) __PYX_ERR(1, 686, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_overridden), __pyx_ptype_19dependency_injector_9providers_Provider, 1, "overridden", 0))) __PYX_ERR(1, 697, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_overriding), __pyx_ptype_19dependency_injector_9providers_Provider, 1, "overriding", 0))) __PYX_ERR(1, 697, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_17OverridingContext___init__(((struct __pyx_obj_19dependency_injector_9providers_OverridingContext *)__pyx_v_self), __pyx_v_overridden, __pyx_v_overriding); /* function exit code */ @@ -14156,7 +14293,7 @@ static int __pyx_pf_19dependency_injector_9providers_17OverridingContext___init_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":695 + /* "dependency_injector/providers.pyx":706 * :type overriding: :py:class:`Provider` * """ * self.__overridden = overridden # <<<<<<<<<<<<<< @@ -14169,7 +14306,7 @@ static int __pyx_pf_19dependency_injector_9providers_17OverridingContext___init_ __Pyx_DECREF(((PyObject *)__pyx_v_self->__pyx___overridden)); __pyx_v_self->__pyx___overridden = __pyx_v_overridden; - /* "dependency_injector/providers.pyx":696 + /* "dependency_injector/providers.pyx":707 * """ * self.__overridden = overridden * self.__overriding = overriding # <<<<<<<<<<<<<< @@ -14182,14 +14319,14 @@ static int __pyx_pf_19dependency_injector_9providers_17OverridingContext___init_ __Pyx_DECREF(((PyObject *)__pyx_v_self->__pyx___overriding)); __pyx_v_self->__pyx___overriding = __pyx_v_overriding; - /* "dependency_injector/providers.pyx":697 + /* "dependency_injector/providers.pyx":708 * self.__overridden = overridden * self.__overriding = overriding * super(OverridingContext, self).__init__() # <<<<<<<<<<<<<< * * def __enter__(self): */ - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 697, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_OverridingContext)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_OverridingContext)); @@ -14197,10 +14334,10 @@ static int __pyx_pf_19dependency_injector_9providers_17OverridingContext___init_ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 697, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 697, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -14215,12 +14352,12 @@ static int __pyx_pf_19dependency_injector_9providers_17OverridingContext___init_ } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 697, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":686 + /* "dependency_injector/providers.pyx":697 * """ * * def __init__(self, Provider overridden, Provider overriding): # <<<<<<<<<<<<<< @@ -14242,7 +14379,7 @@ static int __pyx_pf_19dependency_injector_9providers_17OverridingContext___init_ return __pyx_r; } -/* "dependency_injector/providers.pyx":699 +/* "dependency_injector/providers.pyx":710 * super(OverridingContext, self).__init__() * * def __enter__(self): # <<<<<<<<<<<<<< @@ -14269,7 +14406,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17OverridingContext_2 __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__enter__", 0); - /* "dependency_injector/providers.pyx":701 + /* "dependency_injector/providers.pyx":712 * def __enter__(self): * """Do nothing.""" * return self.__overriding # <<<<<<<<<<<<<< @@ -14281,7 +14418,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17OverridingContext_2 __pyx_r = ((PyObject *)__pyx_v_self->__pyx___overriding); goto __pyx_L0; - /* "dependency_injector/providers.pyx":699 + /* "dependency_injector/providers.pyx":710 * super(OverridingContext, self).__init__() * * def __enter__(self): # <<<<<<<<<<<<<< @@ -14296,7 +14433,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17OverridingContext_2 return __pyx_r; } -/* "dependency_injector/providers.pyx":703 +/* "dependency_injector/providers.pyx":714 * return self.__overriding * * def __exit__(self, *_): # <<<<<<<<<<<<<< @@ -14334,14 +14471,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17OverridingContext_4 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__exit__", 0); - /* "dependency_injector/providers.pyx":705 + /* "dependency_injector/providers.pyx":716 * def __exit__(self, *_): * """Exit overriding context.""" * self.__overridden.reset_last_overriding() # <<<<<<<<<<<<<< * * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___overridden), __pyx_n_s_reset_last_overriding); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 705, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___overridden), __pyx_n_s_reset_last_overriding); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -14355,12 +14492,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17OverridingContext_4 } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 705, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":703 + /* "dependency_injector/providers.pyx":714 * return self.__overriding * * def __exit__(self, *_): # <<<<<<<<<<<<<< @@ -14690,7 +14827,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17OverridingContext_8 return __pyx_r; } -/* "dependency_injector/providers.pyx":732 +/* "dependency_injector/providers.pyx":743 * """ * * def __init__(self, provides, *args, **kwargs): # <<<<<<<<<<<<<< @@ -14747,7 +14884,7 @@ static int __pyx_pw_19dependency_injector_9providers_8Callable_1__init__(PyObjec } if (unlikely(kw_args > 0)) { const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__init__") < 0)) __PYX_ERR(1, 732, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__init__") < 0)) __PYX_ERR(1, 743, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) < 1) { goto __pyx_L5_argtuple_error; @@ -14758,7 +14895,7 @@ static int __pyx_pw_19dependency_injector_9providers_8Callable_1__init__(PyObjec } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 732, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 743, __pyx_L3_error) __pyx_L3_error:; __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; @@ -14793,63 +14930,63 @@ static int __pyx_pf_19dependency_injector_9providers_8Callable___init__(struct _ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":738 + /* "dependency_injector/providers.pyx":749 * :type provides: callable * """ * if not callable(provides): # <<<<<<<<<<<<<< * raise Error('Provider {0} expected to get callable, ' * 'got {0}'.format('.'.join((self.__class__.__module__, */ - __pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_provides); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(1, 738, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_provides); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(1, 749, __pyx_L1_error) __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (unlikely(__pyx_t_2)) { - /* "dependency_injector/providers.pyx":739 + /* "dependency_injector/providers.pyx":750 * """ * if not callable(provides): * raise Error('Provider {0} expected to get callable, ' # <<<<<<<<<<<<<< * 'got {0}'.format('.'.join((self.__class__.__module__, * self.__class__.__name__)), */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 739, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - /* "dependency_injector/providers.pyx":740 + /* "dependency_injector/providers.pyx":751 * if not callable(provides): * raise Error('Provider {0} expected to get callable, ' * 'got {0}'.format('.'.join((self.__class__.__module__, # <<<<<<<<<<<<<< * self.__class__.__name__)), * provides)) */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Provider_0_expected_to_get_calla, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 740, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Provider_0_expected_to_get_calla, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 740, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_module); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 740, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_module); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "dependency_injector/providers.pyx":741 + /* "dependency_injector/providers.pyx":752 * raise Error('Provider {0} expected to get callable, ' * 'got {0}'.format('.'.join((self.__class__.__module__, * self.__class__.__name__)), # <<<<<<<<<<<<<< * provides)) * self.__provides = provides */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 741, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_name); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 741, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_name); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "dependency_injector/providers.pyx":740 + /* "dependency_injector/providers.pyx":751 * if not callable(provides): * raise Error('Provider {0} expected to get callable, ' * 'got {0}'.format('.'.join((self.__class__.__module__, # <<<<<<<<<<<<<< * self.__class__.__name__)), * provides)) */ - __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 740, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8); @@ -14857,11 +14994,11 @@ static int __pyx_pf_19dependency_injector_9providers_8Callable___init__(struct _ PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_9); __pyx_t_8 = 0; __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyString_Join(__pyx_kp_s__4, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 740, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyString_Join(__pyx_kp_s__5, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "dependency_injector/providers.pyx":742 + /* "dependency_injector/providers.pyx":753 * 'got {0}'.format('.'.join((self.__class__.__module__, * self.__class__.__name__)), * provides)) # <<<<<<<<<<<<<< @@ -14883,7 +15020,7 @@ static int __pyx_pf_19dependency_injector_9providers_8Callable___init__(struct _ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_9, __pyx_v_provides}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 740, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 751, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; @@ -14892,14 +15029,14 @@ static int __pyx_pf_19dependency_injector_9providers_8Callable___init__(struct _ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_9, __pyx_v_provides}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 740, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 751, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif { - __pyx_t_8 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 740, __pyx_L1_error) + __pyx_t_8 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -14910,7 +15047,7 @@ static int __pyx_pf_19dependency_injector_9providers_8Callable___init__(struct _ __Pyx_GIVEREF(__pyx_v_provides); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_10, __pyx_v_provides); __pyx_t_9 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 740, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } @@ -14928,14 +15065,14 @@ static int __pyx_pf_19dependency_injector_9providers_8Callable___init__(struct _ __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 739, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 739, __pyx_L1_error) + __PYX_ERR(1, 750, __pyx_L1_error) - /* "dependency_injector/providers.pyx":738 + /* "dependency_injector/providers.pyx":749 * :type provides: callable * """ * if not callable(provides): # <<<<<<<<<<<<<< @@ -14944,7 +15081,7 @@ static int __pyx_pf_19dependency_injector_9providers_8Callable___init__(struct _ */ } - /* "dependency_injector/providers.pyx":743 + /* "dependency_injector/providers.pyx":754 * self.__class__.__name__)), * provides)) * self.__provides = provides # <<<<<<<<<<<<<< @@ -14957,14 +15094,14 @@ static int __pyx_pf_19dependency_injector_9providers_8Callable___init__(struct _ __Pyx_DECREF(__pyx_v_self->__pyx___provides); __pyx_v_self->__pyx___provides = __pyx_v_provides; - /* "dependency_injector/providers.pyx":745 + /* "dependency_injector/providers.pyx":756 * self.__provides = provides * * self.__args = tuple() # <<<<<<<<<<<<<< * self.__args_len = 0 * self.set_args(*args) */ - __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 745, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 756, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->__pyx___args); @@ -14972,7 +15109,7 @@ static int __pyx_pf_19dependency_injector_9providers_8Callable___init__(struct _ __pyx_v_self->__pyx___args = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":746 + /* "dependency_injector/providers.pyx":757 * * self.__args = tuple() * self.__args_len = 0 # <<<<<<<<<<<<<< @@ -14981,28 +15118,28 @@ static int __pyx_pf_19dependency_injector_9providers_8Callable___init__(struct _ */ __pyx_v_self->__pyx___args_len = 0; - /* "dependency_injector/providers.pyx":747 + /* "dependency_injector/providers.pyx":758 * self.__args = tuple() * self.__args_len = 0 * self.set_args(*args) # <<<<<<<<<<<<<< * * self.__kwargs = tuple() */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 747, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_v_args, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 747, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_v_args, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/providers.pyx":749 + /* "dependency_injector/providers.pyx":760 * self.set_args(*args) * * self.__kwargs = tuple() # <<<<<<<<<<<<<< * self.__kwargs_len = 0 * self.set_kwargs(**kwargs) */ - __pyx_t_4 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 749, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __Pyx_GOTREF(__pyx_v_self->__pyx___kwargs); @@ -15010,7 +15147,7 @@ static int __pyx_pf_19dependency_injector_9providers_8Callable___init__(struct _ __pyx_v_self->__pyx___kwargs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/providers.pyx":750 + /* "dependency_injector/providers.pyx":761 * * self.__kwargs = tuple() * self.__kwargs_len = 0 # <<<<<<<<<<<<<< @@ -15019,28 +15156,28 @@ static int __pyx_pf_19dependency_injector_9providers_8Callable___init__(struct _ */ __pyx_v_self->__pyx___kwargs_len = 0; - /* "dependency_injector/providers.pyx":751 + /* "dependency_injector/providers.pyx":762 * self.__kwargs = tuple() * self.__kwargs_len = 0 * self.set_kwargs(**kwargs) # <<<<<<<<<<<<<< * * super(Callable, self).__init__() */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_kwargs); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 751, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_kwargs); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_empty_tuple, __pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 751, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_empty_tuple, __pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":753 + /* "dependency_injector/providers.pyx":764 * self.set_kwargs(**kwargs) * * super(Callable, self).__init__() # <<<<<<<<<<<<<< * * def __deepcopy__(self, memo): */ - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 753, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Callable)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Callable)); @@ -15048,10 +15185,10 @@ static int __pyx_pf_19dependency_injector_9providers_8Callable___init__(struct _ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 753, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 753, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; @@ -15066,12 +15203,12 @@ static int __pyx_pf_19dependency_injector_9providers_8Callable___init__(struct _ } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 753, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":732 + /* "dependency_injector/providers.pyx":743 * """ * * def __init__(self, provides, *args, **kwargs): # <<<<<<<<<<<<<< @@ -15097,7 +15234,7 @@ static int __pyx_pf_19dependency_injector_9providers_8Callable___init__(struct _ return __pyx_r; } -/* "dependency_injector/providers.pyx":755 +/* "dependency_injector/providers.pyx":766 * super(Callable, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -15137,16 +15274,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_2__deepcopy int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__deepcopy__", 0); - /* "dependency_injector/providers.pyx":757 + /* "dependency_injector/providers.pyx":768 * def __deepcopy__(self, memo): * """Create and return full copy of provider.""" * copied = memo.get(id(self)) # <<<<<<<<<<<<<< * if copied is not None: * return copied */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 757, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 757, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -15161,13 +15298,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_2__deepcopy __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 757, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_copied = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":758 + /* "dependency_injector/providers.pyx":769 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -15178,7 +15315,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_2__deepcopy __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":759 + /* "dependency_injector/providers.pyx":770 * copied = memo.get(id(self)) * if copied is not None: * return copied # <<<<<<<<<<<<<< @@ -15190,7 +15327,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_2__deepcopy __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":758 + /* "dependency_injector/providers.pyx":769 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -15199,19 +15336,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_2__deepcopy */ } - /* "dependency_injector/providers.pyx":761 + /* "dependency_injector/providers.pyx":772 * return copied * * provides = self.provides # <<<<<<<<<<<<<< * if isinstance(provides, Provider): * provides = deepcopy(provides, memo) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provides); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 761, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provides); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_provides = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":762 + /* "dependency_injector/providers.pyx":773 * * provides = self.provides * if isinstance(provides, Provider): # <<<<<<<<<<<<<< @@ -15222,22 +15359,22 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_2__deepcopy __pyx_t_5 = (__pyx_t_6 != 0); if (__pyx_t_5) { - /* "dependency_injector/providers.pyx":763 + /* "dependency_injector/providers.pyx":774 * provides = self.provides * if isinstance(provides, Provider): * provides = deepcopy(provides, memo) # <<<<<<<<<<<<<< * * copied = self.__class__(provides, */ - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 763, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 774, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_v_provides, 0, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 763, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_v_provides, 0, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_provides, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":762 + /* "dependency_injector/providers.pyx":773 * * provides = self.provides * if isinstance(provides, Provider): # <<<<<<<<<<<<<< @@ -15246,89 +15383,89 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_2__deepcopy */ } - /* "dependency_injector/providers.pyx":765 + /* "dependency_injector/providers.pyx":776 * provides = deepcopy(provides, memo) * * copied = self.__class__(provides, # <<<<<<<<<<<<<< * *deepcopy(self.args, memo), * **deepcopy(self.kwargs, memo)) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 765, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 765, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_provides); __Pyx_GIVEREF(__pyx_v_provides); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_provides); - /* "dependency_injector/providers.pyx":766 + /* "dependency_injector/providers.pyx":777 * * copied = self.__class__(provides, * *deepcopy(self.args, memo), # <<<<<<<<<<<<<< * **deepcopy(self.kwargs, memo)) * */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 766, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 766, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 777, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 766, __pyx_L1_error) + __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":765 + /* "dependency_injector/providers.pyx":776 * provides = deepcopy(provides, memo) * * copied = self.__class__(provides, # <<<<<<<<<<<<<< * *deepcopy(self.args, memo), * **deepcopy(self.kwargs, memo)) */ - __pyx_t_3 = __Pyx_PySequence_Tuple(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 765, __pyx_L1_error) + __pyx_t_3 = __Pyx_PySequence_Tuple(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyNumber_Add(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 765, __pyx_L1_error) + __pyx_t_4 = PyNumber_Add(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":767 + /* "dependency_injector/providers.pyx":778 * copied = self.__class__(provides, * *deepcopy(self.args, memo), * **deepcopy(self.kwargs, memo)) # <<<<<<<<<<<<<< * * self._copy_overridings(copied, memo) */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 767, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 767, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 778, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_8 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_2, 0, &__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 767, __pyx_L1_error) + __pyx_t_8 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_2, 0, &__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(__pyx_t_8 == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); - __PYX_ERR(1, 767, __pyx_L1_error) + __PYX_ERR(1, 778, __pyx_L1_error) } if (likely(PyDict_CheckExact(__pyx_t_8))) { - __pyx_t_3 = PyDict_Copy(__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 767, __pyx_L1_error) + __pyx_t_3 = PyDict_Copy(__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else { - __pyx_t_3 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 765, __pyx_L1_error) + __pyx_t_3 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } - /* "dependency_injector/providers.pyx":765 + /* "dependency_injector/providers.pyx":776 * provides = deepcopy(provides, memo) * * copied = self.__class__(provides, # <<<<<<<<<<<<<< * *deepcopy(self.args, memo), * **deepcopy(self.kwargs, memo)) */ - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 765, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -15336,18 +15473,18 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_2__deepcopy __Pyx_DECREF_SET(__pyx_v_copied, __pyx_t_8); __pyx_t_8 = 0; - /* "dependency_injector/providers.pyx":769 + /* "dependency_injector/providers.pyx":780 * **deepcopy(self.kwargs, memo)) * * self._copy_overridings(copied, memo) # <<<<<<<<<<<<<< * * return copied */ - if (!(likely(((__pyx_v_copied) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_copied, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 769, __pyx_L1_error) - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 769, __pyx_L1_error) + if (!(likely(((__pyx_v_copied) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_copied, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 780, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 780, __pyx_L1_error) ((struct __pyx_vtabstruct_19dependency_injector_9providers_Callable *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._copy_overridings(((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_self), ((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_copied), ((PyObject*)__pyx_v_memo), 0); - /* "dependency_injector/providers.pyx":771 + /* "dependency_injector/providers.pyx":782 * self._copy_overridings(copied, memo) * * return copied # <<<<<<<<<<<<<< @@ -15359,7 +15496,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_2__deepcopy __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":755 + /* "dependency_injector/providers.pyx":766 * super(Callable, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -15384,7 +15521,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_2__deepcopy return __pyx_r; } -/* "dependency_injector/providers.pyx":773 +/* "dependency_injector/providers.pyx":784 * return copied * * def __str__(self): # <<<<<<<<<<<<<< @@ -15419,7 +15556,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_4__str__(st int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__str__", 0); - /* "dependency_injector/providers.pyx":778 + /* "dependency_injector/providers.pyx":789 * :rtype: str * """ * return represent_provider(provider=self, provides=self.__provides) # <<<<<<<<<<<<<< @@ -15429,14 +15566,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_4__str__(st __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_v_self->__pyx___provides; __Pyx_INCREF(__pyx_t_1); - __pyx_t_2 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 778, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":773 + /* "dependency_injector/providers.pyx":784 * return copied * * def __str__(self): # <<<<<<<<<<<<<< @@ -15456,7 +15593,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_4__str__(st return __pyx_r; } -/* "dependency_injector/providers.pyx":781 +/* "dependency_injector/providers.pyx":792 * * @property * def provides(self): # <<<<<<<<<<<<<< @@ -15482,7 +15619,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_8provides__ __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":783 + /* "dependency_injector/providers.pyx":794 * def provides(self): * """Return wrapped callable.""" * return self.__provides # <<<<<<<<<<<<<< @@ -15494,7 +15631,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_8provides__ __pyx_r = __pyx_v_self->__pyx___provides; goto __pyx_L0; - /* "dependency_injector/providers.pyx":781 + /* "dependency_injector/providers.pyx":792 * * @property * def provides(self): # <<<<<<<<<<<<<< @@ -15509,7 +15646,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_8provides__ return __pyx_r; } -/* "dependency_injector/providers.pyx":786 +/* "dependency_injector/providers.pyx":797 * * @property * def provided(self): # <<<<<<<<<<<<<< @@ -15539,7 +15676,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_8provided__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":788 + /* "dependency_injector/providers.pyx":799 * def provided(self): * """Return :py:class:`ProvidedInstance` provider.""" * return ProvidedInstance(self) # <<<<<<<<<<<<<< @@ -15547,13 +15684,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_8provided__ * @property */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ProvidedInstance), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 788, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ProvidedInstance), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":786 + /* "dependency_injector/providers.pyx":797 * * @property * def provided(self): # <<<<<<<<<<<<<< @@ -15572,7 +15709,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_8provided__ return __pyx_r; } -/* "dependency_injector/providers.pyx":791 +/* "dependency_injector/providers.pyx":802 * * @property * def args(self): # <<<<<<<<<<<<<< @@ -15609,19 +15746,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_4args___get int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":797 + /* "dependency_injector/providers.pyx":808 * cdef list args * * args = list() # <<<<<<<<<<<<<< * for index in range(self.__args_len): * arg = self.__args[index] */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 797, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_args = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":798 + /* "dependency_injector/providers.pyx":809 * * args = list() * for index in range(self.__args_len): # <<<<<<<<<<<<<< @@ -15633,7 +15770,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_4args___get for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_index = __pyx_t_4; - /* "dependency_injector/providers.pyx":799 + /* "dependency_injector/providers.pyx":810 * args = list() * for index in range(self.__args_len): * arg = self.__args[index] # <<<<<<<<<<<<<< @@ -15642,15 +15779,15 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_4args___get */ if (unlikely(__pyx_v_self->__pyx___args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 799, __pyx_L1_error) + __PYX_ERR(1, 810, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->__pyx___args, __pyx_v_index, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 799, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->__pyx___args, __pyx_v_index, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_PositionalInjection))))) __PYX_ERR(1, 799, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_PositionalInjection))))) __PYX_ERR(1, 810, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_arg, ((struct __pyx_obj_19dependency_injector_9providers_PositionalInjection *)__pyx_t_1)); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":800 + /* "dependency_injector/providers.pyx":811 * for index in range(self.__args_len): * arg = self.__args[index] * args.append(arg.__value) # <<<<<<<<<<<<<< @@ -15659,11 +15796,11 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_4args___get */ __pyx_t_1 = __pyx_v_arg->__pyx_base.__pyx___value; __Pyx_INCREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_args, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 800, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_args, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 811, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - /* "dependency_injector/providers.pyx":801 + /* "dependency_injector/providers.pyx":812 * arg = self.__args[index] * args.append(arg.__value) * return tuple(args) # <<<<<<<<<<<<<< @@ -15671,13 +15808,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_4args___get * def add_args(self, *args): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyList_AsTuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 801, __pyx_L1_error) + __pyx_t_1 = PyList_AsTuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":791 + /* "dependency_injector/providers.pyx":802 * * @property * def args(self): # <<<<<<<<<<<<<< @@ -15698,7 +15835,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_4args___get return __pyx_r; } -/* "dependency_injector/providers.pyx":803 +/* "dependency_injector/providers.pyx":814 * return tuple(args) * * def add_args(self, *args): # <<<<<<<<<<<<<< @@ -15736,16 +15873,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_6add_args(s int __pyx_clineno = 0; __Pyx_RefNannySetupContext("add_args", 0); - /* "dependency_injector/providers.pyx":808 + /* "dependency_injector/providers.pyx":819 * :return: Reference ``self`` * """ * self.__args += parse_positional_injections(args) # <<<<<<<<<<<<<< * self.__args_len = len(self.__args) * return self */ - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_positional_injections(__pyx_v_args, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 808, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_positional_injections(__pyx_v_args, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_self->__pyx___args, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 808, __pyx_L1_error) + __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_self->__pyx___args, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); @@ -15754,7 +15891,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_6add_args(s __pyx_v_self->__pyx___args = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":809 + /* "dependency_injector/providers.pyx":820 * """ * self.__args += parse_positional_injections(args) * self.__args_len = len(self.__args) # <<<<<<<<<<<<<< @@ -15765,13 +15902,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_6add_args(s __Pyx_INCREF(__pyx_t_2); if (unlikely(__pyx_t_2 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(1, 809, __pyx_L1_error) + __PYX_ERR(1, 820, __pyx_L1_error) } - __pyx_t_3 = PyTuple_GET_SIZE(__pyx_t_2); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(1, 809, __pyx_L1_error) + __pyx_t_3 = PyTuple_GET_SIZE(__pyx_t_2); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(1, 820, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->__pyx___args_len = __pyx_t_3; - /* "dependency_injector/providers.pyx":810 + /* "dependency_injector/providers.pyx":821 * self.__args += parse_positional_injections(args) * self.__args_len = len(self.__args) * return self # <<<<<<<<<<<<<< @@ -15783,7 +15920,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_6add_args(s __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":803 + /* "dependency_injector/providers.pyx":814 * return tuple(args) * * def add_args(self, *args): # <<<<<<<<<<<<<< @@ -15803,7 +15940,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_6add_args(s return __pyx_r; } -/* "dependency_injector/providers.pyx":812 +/* "dependency_injector/providers.pyx":823 * return self * * def set_args(self, *args): # <<<<<<<<<<<<<< @@ -15840,14 +15977,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_8set_args(s int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_args", 0); - /* "dependency_injector/providers.pyx":819 + /* "dependency_injector/providers.pyx":830 * :return: Reference ``self`` * """ * self.__args = parse_positional_injections(args) # <<<<<<<<<<<<<< * self.__args_len = len(self.__args) * return self */ - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_positional_injections(__pyx_v_args, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 819, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_positional_injections(__pyx_v_args, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->__pyx___args); @@ -15855,7 +15992,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_8set_args(s __pyx_v_self->__pyx___args = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":820 + /* "dependency_injector/providers.pyx":831 * """ * self.__args = parse_positional_injections(args) * self.__args_len = len(self.__args) # <<<<<<<<<<<<<< @@ -15866,13 +16003,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_8set_args(s __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(1, 820, __pyx_L1_error) + __PYX_ERR(1, 831, __pyx_L1_error) } - __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 820, __pyx_L1_error) + __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 831, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_self->__pyx___args_len = __pyx_t_2; - /* "dependency_injector/providers.pyx":821 + /* "dependency_injector/providers.pyx":832 * self.__args = parse_positional_injections(args) * self.__args_len = len(self.__args) * return self # <<<<<<<<<<<<<< @@ -15884,7 +16021,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_8set_args(s __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":812 + /* "dependency_injector/providers.pyx":823 * return self * * def set_args(self, *args): # <<<<<<<<<<<<<< @@ -15903,7 +16040,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_8set_args(s return __pyx_r; } -/* "dependency_injector/providers.pyx":823 +/* "dependency_injector/providers.pyx":834 * return self * * def clear_args(self): # <<<<<<<<<<<<<< @@ -15935,14 +16072,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_10clear_arg int __pyx_clineno = 0; __Pyx_RefNannySetupContext("clear_args", 0); - /* "dependency_injector/providers.pyx":828 + /* "dependency_injector/providers.pyx":839 * :return: Reference ``self`` * """ * self.__args = tuple() # <<<<<<<<<<<<<< * self.__args_len = len(self.__args) * return self */ - __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 828, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 839, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->__pyx___args); @@ -15950,7 +16087,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_10clear_arg __pyx_v_self->__pyx___args = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":829 + /* "dependency_injector/providers.pyx":840 * """ * self.__args = tuple() * self.__args_len = len(self.__args) # <<<<<<<<<<<<<< @@ -15961,13 +16098,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_10clear_arg __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(1, 829, __pyx_L1_error) + __PYX_ERR(1, 840, __pyx_L1_error) } - __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 829, __pyx_L1_error) + __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 840, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_self->__pyx___args_len = __pyx_t_2; - /* "dependency_injector/providers.pyx":830 + /* "dependency_injector/providers.pyx":841 * self.__args = tuple() * self.__args_len = len(self.__args) * return self # <<<<<<<<<<<<<< @@ -15979,7 +16116,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_10clear_arg __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":823 + /* "dependency_injector/providers.pyx":834 * return self * * def clear_args(self): # <<<<<<<<<<<<<< @@ -15998,7 +16135,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_10clear_arg return __pyx_r; } -/* "dependency_injector/providers.pyx":833 +/* "dependency_injector/providers.pyx":844 * * @property * def kwargs(self): # <<<<<<<<<<<<<< @@ -16034,19 +16171,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_6kwargs___g int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":839 + /* "dependency_injector/providers.pyx":850 * cdef dict kwargs * * kwargs = dict() # <<<<<<<<<<<<<< * for index in range(self.__kwargs_len): * kwarg = self.__kwargs[index] */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 839, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_kwargs = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":840 + /* "dependency_injector/providers.pyx":851 * * kwargs = dict() * for index in range(self.__kwargs_len): # <<<<<<<<<<<<<< @@ -16058,7 +16195,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_6kwargs___g for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_index = __pyx_t_4; - /* "dependency_injector/providers.pyx":841 + /* "dependency_injector/providers.pyx":852 * kwargs = dict() * for index in range(self.__kwargs_len): * kwarg = self.__kwargs[index] # <<<<<<<<<<<<<< @@ -16067,15 +16204,15 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_6kwargs___g */ if (unlikely(__pyx_v_self->__pyx___kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 841, __pyx_L1_error) + __PYX_ERR(1, 852, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->__pyx___kwargs, __pyx_v_index, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 841, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->__pyx___kwargs, __pyx_v_index, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_NamedInjection))))) __PYX_ERR(1, 841, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_NamedInjection))))) __PYX_ERR(1, 852, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_kwarg, ((struct __pyx_obj_19dependency_injector_9providers_NamedInjection *)__pyx_t_1)); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":842 + /* "dependency_injector/providers.pyx":853 * for index in range(self.__kwargs_len): * kwarg = self.__kwargs[index] * kwargs[kwarg.__name] = kwarg.__value # <<<<<<<<<<<<<< @@ -16084,11 +16221,11 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_6kwargs___g */ __pyx_t_1 = __pyx_v_kwarg->__pyx_base.__pyx___value; __Pyx_INCREF(__pyx_t_1); - if (unlikely(PyDict_SetItem(__pyx_v_kwargs, __pyx_v_kwarg->__pyx___name, __pyx_t_1) < 0)) __PYX_ERR(1, 842, __pyx_L1_error) + if (unlikely(PyDict_SetItem(__pyx_v_kwargs, __pyx_v_kwarg->__pyx___name, __pyx_t_1) < 0)) __PYX_ERR(1, 853, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - /* "dependency_injector/providers.pyx":843 + /* "dependency_injector/providers.pyx":854 * kwarg = self.__kwargs[index] * kwargs[kwarg.__name] = kwarg.__value * return kwargs # <<<<<<<<<<<<<< @@ -16100,7 +16237,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_6kwargs___g __pyx_r = __pyx_v_kwargs; goto __pyx_L0; - /* "dependency_injector/providers.pyx":833 + /* "dependency_injector/providers.pyx":844 * * @property * def kwargs(self): # <<<<<<<<<<<<<< @@ -16121,7 +16258,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_6kwargs___g return __pyx_r; } -/* "dependency_injector/providers.pyx":845 +/* "dependency_injector/providers.pyx":856 * return kwargs * * def add_kwargs(self, **kwargs): # <<<<<<<<<<<<<< @@ -16161,16 +16298,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_12add_kwarg int __pyx_clineno = 0; __Pyx_RefNannySetupContext("add_kwargs", 0); - /* "dependency_injector/providers.pyx":850 + /* "dependency_injector/providers.pyx":861 * :return: Reference ``self`` * """ * self.__kwargs += parse_named_injections(kwargs) # <<<<<<<<<<<<<< * self.__kwargs_len = len(self.__kwargs) * return self */ - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_named_injections(__pyx_v_kwargs, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 850, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_named_injections(__pyx_v_kwargs, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 861, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_self->__pyx___kwargs, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 850, __pyx_L1_error) + __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_self->__pyx___kwargs, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 861, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); @@ -16179,7 +16316,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_12add_kwarg __pyx_v_self->__pyx___kwargs = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":851 + /* "dependency_injector/providers.pyx":862 * """ * self.__kwargs += parse_named_injections(kwargs) * self.__kwargs_len = len(self.__kwargs) # <<<<<<<<<<<<<< @@ -16190,13 +16327,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_12add_kwarg __Pyx_INCREF(__pyx_t_2); if (unlikely(__pyx_t_2 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(1, 851, __pyx_L1_error) + __PYX_ERR(1, 862, __pyx_L1_error) } - __pyx_t_3 = PyTuple_GET_SIZE(__pyx_t_2); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(1, 851, __pyx_L1_error) + __pyx_t_3 = PyTuple_GET_SIZE(__pyx_t_2); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(1, 862, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->__pyx___kwargs_len = __pyx_t_3; - /* "dependency_injector/providers.pyx":852 + /* "dependency_injector/providers.pyx":863 * self.__kwargs += parse_named_injections(kwargs) * self.__kwargs_len = len(self.__kwargs) * return self # <<<<<<<<<<<<<< @@ -16208,7 +16345,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_12add_kwarg __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":845 + /* "dependency_injector/providers.pyx":856 * return kwargs * * def add_kwargs(self, **kwargs): # <<<<<<<<<<<<<< @@ -16228,7 +16365,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_12add_kwarg return __pyx_r; } -/* "dependency_injector/providers.pyx":854 +/* "dependency_injector/providers.pyx":865 * return self * * def set_kwargs(self, **kwargs): # <<<<<<<<<<<<<< @@ -16267,14 +16404,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_14set_kwarg int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_kwargs", 0); - /* "dependency_injector/providers.pyx":861 + /* "dependency_injector/providers.pyx":872 * :return: Reference ``self`` * """ * self.__kwargs = parse_named_injections(kwargs) # <<<<<<<<<<<<<< * self.__kwargs_len = len(self.__kwargs) * return self */ - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_named_injections(__pyx_v_kwargs, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 861, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_named_injections(__pyx_v_kwargs, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->__pyx___kwargs); @@ -16282,7 +16419,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_14set_kwarg __pyx_v_self->__pyx___kwargs = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":862 + /* "dependency_injector/providers.pyx":873 * """ * self.__kwargs = parse_named_injections(kwargs) * self.__kwargs_len = len(self.__kwargs) # <<<<<<<<<<<<<< @@ -16293,13 +16430,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_14set_kwarg __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(1, 862, __pyx_L1_error) + __PYX_ERR(1, 873, __pyx_L1_error) } - __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 862, __pyx_L1_error) + __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 873, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_self->__pyx___kwargs_len = __pyx_t_2; - /* "dependency_injector/providers.pyx":863 + /* "dependency_injector/providers.pyx":874 * self.__kwargs = parse_named_injections(kwargs) * self.__kwargs_len = len(self.__kwargs) * return self # <<<<<<<<<<<<<< @@ -16311,7 +16448,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_14set_kwarg __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":854 + /* "dependency_injector/providers.pyx":865 * return self * * def set_kwargs(self, **kwargs): # <<<<<<<<<<<<<< @@ -16330,7 +16467,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_14set_kwarg return __pyx_r; } -/* "dependency_injector/providers.pyx":865 +/* "dependency_injector/providers.pyx":876 * return self * * def clear_kwargs(self): # <<<<<<<<<<<<<< @@ -16362,14 +16499,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_16clear_kwa int __pyx_clineno = 0; __Pyx_RefNannySetupContext("clear_kwargs", 0); - /* "dependency_injector/providers.pyx":870 + /* "dependency_injector/providers.pyx":881 * :return: Reference ``self`` * """ * self.__kwargs = tuple() # <<<<<<<<<<<<<< * self.__kwargs_len = len(self.__kwargs) * return self */ - __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 870, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->__pyx___kwargs); @@ -16377,7 +16514,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_16clear_kwa __pyx_v_self->__pyx___kwargs = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":871 + /* "dependency_injector/providers.pyx":882 * """ * self.__kwargs = tuple() * self.__kwargs_len = len(self.__kwargs) # <<<<<<<<<<<<<< @@ -16388,13 +16525,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_16clear_kwa __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(1, 871, __pyx_L1_error) + __PYX_ERR(1, 882, __pyx_L1_error) } - __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 871, __pyx_L1_error) + __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 882, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_self->__pyx___kwargs_len = __pyx_t_2; - /* "dependency_injector/providers.pyx":872 + /* "dependency_injector/providers.pyx":883 * self.__kwargs = tuple() * self.__kwargs_len = len(self.__kwargs) * return self # <<<<<<<<<<<<<< @@ -16406,7 +16543,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_16clear_kwa __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":865 + /* "dependency_injector/providers.pyx":876 * return self * * def clear_kwargs(self): # <<<<<<<<<<<<<< @@ -16425,7 +16562,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_16clear_kwa return __pyx_r; } -/* "dependency_injector/providers.pyx":874 +/* "dependency_injector/providers.pyx":885 * return self * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -16456,7 +16593,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Callable__provide(str if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 874, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 885, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_19dependency_injector_9providers_8Callable_19_provide)) { __Pyx_XDECREF(__pyx_r); @@ -16476,7 +16613,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Callable__provide(str #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 874, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 885, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -16484,13 +16621,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Callable__provide(str #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 874, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 885, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 874, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 885, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -16501,7 +16638,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Callable__provide(str __Pyx_INCREF(__pyx_v_kwargs); __Pyx_GIVEREF(__pyx_v_kwargs); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_kwargs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 874, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 885, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -16524,7 +16661,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Callable__provide(str #endif } - /* "dependency_injector/providers.pyx":876 + /* "dependency_injector/providers.pyx":887 * cpdef object _provide(self, tuple args, dict kwargs): * """Return result of provided callable's call.""" * return __callable_call(self, args, kwargs) # <<<<<<<<<<<<<< @@ -16532,13 +16669,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Callable__provide(str * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers___callable_call(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 876, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers___callable_call(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":874 + /* "dependency_injector/providers.pyx":885 * return self * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -16596,11 +16733,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_8Callable_19_provide( case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 874, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 885, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 874, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 885, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -16613,14 +16750,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_8Callable_19_provide( } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 874, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 885, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.Callable._provide", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 874, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 874, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 885, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 885, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_8Callable_18_provide(((struct __pyx_obj_19dependency_injector_9providers_Callable *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs); /* function exit code */ @@ -16641,7 +16778,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Callable_18_provide( int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_provide", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_8Callable__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 874, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_8Callable__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 885, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -17352,7 +17489,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17DelegatedCallable_2 return __pyx_r; } -/* "dependency_injector/providers.pyx":898 +/* "dependency_injector/providers.pyx":909 * """ * * def __call__(self, *args, **kwargs): # <<<<<<<<<<<<<< @@ -17405,7 +17542,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16AbstractCallable___ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__call__", 0); - /* "dependency_injector/providers.pyx":903 + /* "dependency_injector/providers.pyx":914 * Callable interface implementation. * """ * if self.__last_overriding is None: # <<<<<<<<<<<<<< @@ -17416,16 +17553,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16AbstractCallable___ __pyx_t_2 = (__pyx_t_1 != 0); if (unlikely(__pyx_t_2)) { - /* "dependency_injector/providers.pyx":904 + /* "dependency_injector/providers.pyx":915 * """ * if self.__last_overriding is None: * raise Error('{0} must be overridden before calling'.format(self)) # <<<<<<<<<<<<<< * return self.__last_overriding(*args, **kwargs) * */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 904, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_must_be_overridden_before_cal, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 904, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_must_be_overridden_before_cal, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { @@ -17439,7 +17576,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16AbstractCallable___ } __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 904, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -17455,14 +17592,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16AbstractCallable___ __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 904, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 904, __pyx_L1_error) + __PYX_ERR(1, 915, __pyx_L1_error) - /* "dependency_injector/providers.pyx":903 + /* "dependency_injector/providers.pyx":914 * Callable interface implementation. * """ * if self.__last_overriding is None: # <<<<<<<<<<<<<< @@ -17471,7 +17608,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16AbstractCallable___ */ } - /* "dependency_injector/providers.pyx":905 + /* "dependency_injector/providers.pyx":916 * if self.__last_overriding is None: * raise Error('{0} must be overridden before calling'.format(self)) * return self.__last_overriding(*args, **kwargs) # <<<<<<<<<<<<<< @@ -17479,13 +17616,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16AbstractCallable___ * def override(self, provider): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx___last_overriding), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 905, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx___last_overriding), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":898 + /* "dependency_injector/providers.pyx":909 * """ * * def __call__(self, *args, **kwargs): # <<<<<<<<<<<<<< @@ -17508,7 +17645,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16AbstractCallable___ return __pyx_r; } -/* "dependency_injector/providers.pyx":907 +/* "dependency_injector/providers.pyx":918 * return self.__last_overriding(*args, **kwargs) * * def override(self, provider): # <<<<<<<<<<<<<< @@ -17547,7 +17684,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16AbstractCallable_2o int __pyx_clineno = 0; __Pyx_RefNannySetupContext("override", 0); - /* "dependency_injector/providers.pyx":918 + /* "dependency_injector/providers.pyx":929 * :rtype: :py:class:`OverridingContext` * """ * if not isinstance(provider, Callable): # <<<<<<<<<<<<<< @@ -17558,24 +17695,24 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16AbstractCallable_2o __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (unlikely(__pyx_t_2)) { - /* "dependency_injector/providers.pyx":919 + /* "dependency_injector/providers.pyx":930 * """ * if not isinstance(provider, Callable): * raise Error('{0} must be overridden only by ' # <<<<<<<<<<<<<< * '{1} providers'.format(self, Callable)) * return super(AbstractCallable, self).override(provider) */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 919, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - /* "dependency_injector/providers.pyx":920 + /* "dependency_injector/providers.pyx":931 * if not isinstance(provider, Callable): * raise Error('{0} must be overridden only by ' * '{1} providers'.format(self, Callable)) # <<<<<<<<<<<<<< * return super(AbstractCallable, self).override(provider) * */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_must_be_overridden_only_by_1, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 920, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_must_be_overridden_only_by_1, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; @@ -17592,7 +17729,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16AbstractCallable_2o #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, ((PyObject *)__pyx_v_self), ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Callable)}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 920, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 931, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_5); } else @@ -17600,13 +17737,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16AbstractCallable_2o #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, ((PyObject *)__pyx_v_self), ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Callable)}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 920, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 931, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { - __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 920, __pyx_L1_error) + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -17617,7 +17754,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16AbstractCallable_2o __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Callable)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Callable)); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Callable)); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 920, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } @@ -17635,14 +17772,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16AbstractCallable_2o __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 919, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 919, __pyx_L1_error) + __PYX_ERR(1, 930, __pyx_L1_error) - /* "dependency_injector/providers.pyx":918 + /* "dependency_injector/providers.pyx":929 * :rtype: :py:class:`OverridingContext` * """ * if not isinstance(provider, Callable): # <<<<<<<<<<<<<< @@ -17651,7 +17788,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16AbstractCallable_2o */ } - /* "dependency_injector/providers.pyx":921 + /* "dependency_injector/providers.pyx":932 * raise Error('{0} must be overridden only by ' * '{1} providers'.format(self, Callable)) * return super(AbstractCallable, self).override(provider) # <<<<<<<<<<<<<< @@ -17659,7 +17796,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16AbstractCallable_2o * cpdef object _provide(self, tuple args, dict kwargs): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 921, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_AbstractCallable)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_AbstractCallable)); @@ -17667,10 +17804,10 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16AbstractCallable_2o __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 921, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_override); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 921, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_override); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; @@ -17685,14 +17822,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16AbstractCallable_2o } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_provider) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_provider); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 921, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":907 + /* "dependency_injector/providers.pyx":918 * return self.__last_overriding(*args, **kwargs) * * def override(self, provider): # <<<<<<<<<<<<<< @@ -17716,7 +17853,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16AbstractCallable_2o return __pyx_r; } -/* "dependency_injector/providers.pyx":923 +/* "dependency_injector/providers.pyx":934 * return super(AbstractCallable, self).override(provider) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -17747,7 +17884,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_16AbstractCallable__pr if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 923, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_19dependency_injector_9providers_16AbstractCallable_5_provide)) { __Pyx_XDECREF(__pyx_r); @@ -17767,7 +17904,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_16AbstractCallable__pr #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 923, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 934, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -17775,13 +17912,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_16AbstractCallable__pr #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 923, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 934, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 923, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -17792,7 +17929,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_16AbstractCallable__pr __Pyx_INCREF(__pyx_v_kwargs); __Pyx_GIVEREF(__pyx_v_kwargs); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_kwargs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 923, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -17815,20 +17952,20 @@ static PyObject *__pyx_f_19dependency_injector_9providers_16AbstractCallable__pr #endif } - /* "dependency_injector/providers.pyx":925 + /* "dependency_injector/providers.pyx":936 * cpdef object _provide(self, tuple args, dict kwargs): * """Return result of provided callable's call.""" * raise NotImplementedError('Abstract provider forward providing logic ' # <<<<<<<<<<<<<< * 'to overriding provider') * */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_NotImplementedError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 925, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_NotImplementedError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 925, __pyx_L1_error) + __PYX_ERR(1, 936, __pyx_L1_error) - /* "dependency_injector/providers.pyx":923 + /* "dependency_injector/providers.pyx":934 * return super(AbstractCallable, self).override(provider) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -17886,11 +18023,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_16AbstractCallable_5_ case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 923, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 934, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 923, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 934, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -17903,14 +18040,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_16AbstractCallable_5_ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 923, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 934, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.AbstractCallable._provide", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 923, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 923, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 934, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 934, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_16AbstractCallable_4_provide(((struct __pyx_obj_19dependency_injector_9providers_AbstractCallable *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs); /* function exit code */ @@ -17931,7 +18068,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16AbstractCallable_4_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_provide", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_16AbstractCallable__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 923, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_16AbstractCallable__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -18295,7 +18432,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16AbstractCallable_8_ return __pyx_r; } -/* "dependency_injector/providers.pyx":939 +/* "dependency_injector/providers.pyx":950 * """ * * def __init__(self, callable): # <<<<<<<<<<<<<< @@ -18336,7 +18473,7 @@ static int __pyx_pw_19dependency_injector_9providers_16CallableDelegate_1__init_ else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 939, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 950, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; @@ -18347,7 +18484,7 @@ static int __pyx_pw_19dependency_injector_9providers_16CallableDelegate_1__init_ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 939, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 950, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.CallableDelegate.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -18378,7 +18515,7 @@ static int __pyx_pf_19dependency_injector_9providers_16CallableDelegate___init__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":945 + /* "dependency_injector/providers.pyx":956 * :type callable: object * """ * if isinstance(callable, Callable) is False: # <<<<<<<<<<<<<< @@ -18389,26 +18526,26 @@ static int __pyx_pf_19dependency_injector_9providers_16CallableDelegate___init__ __pyx_t_2 = ((__pyx_t_1 == 0) != 0); if (unlikely(__pyx_t_2)) { - /* "dependency_injector/providers.pyx":946 + /* "dependency_injector/providers.pyx":957 * """ * if isinstance(callable, Callable) is False: * raise Error('{0} can wrap only {1} providers'.format( # <<<<<<<<<<<<<< * self.__class__, Callable)) * super(CallableDelegate, self).__init__(callable) */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 946, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_can_wrap_only_1_providers, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 946, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_can_wrap_only_1_providers, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - /* "dependency_injector/providers.pyx":947 + /* "dependency_injector/providers.pyx":958 * if isinstance(callable, Callable) is False: * raise Error('{0} can wrap only {1} providers'.format( * self.__class__, Callable)) # <<<<<<<<<<<<<< * super(CallableDelegate, self).__init__(callable) * */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 947, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_9 = 0; @@ -18425,7 +18562,7 @@ static int __pyx_pf_19dependency_injector_9providers_16CallableDelegate___init__ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_7, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Callable)}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 946, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 957, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; @@ -18434,14 +18571,14 @@ static int __pyx_pf_19dependency_injector_9providers_16CallableDelegate___init__ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_7, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Callable)}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 946, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 957, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { - __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 946, __pyx_L1_error) + __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; @@ -18452,7 +18589,7 @@ static int __pyx_pf_19dependency_injector_9providers_16CallableDelegate___init__ __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Callable)); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Callable)); __pyx_t_7 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 946, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } @@ -18470,14 +18607,14 @@ static int __pyx_pf_19dependency_injector_9providers_16CallableDelegate___init__ __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 946, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 946, __pyx_L1_error) + __PYX_ERR(1, 957, __pyx_L1_error) - /* "dependency_injector/providers.pyx":945 + /* "dependency_injector/providers.pyx":956 * :type callable: object * """ * if isinstance(callable, Callable) is False: # <<<<<<<<<<<<<< @@ -18486,14 +18623,14 @@ static int __pyx_pf_19dependency_injector_9providers_16CallableDelegate___init__ */ } - /* "dependency_injector/providers.pyx":948 + /* "dependency_injector/providers.pyx":959 * raise Error('{0} can wrap only {1} providers'.format( * self.__class__, Callable)) * super(CallableDelegate, self).__init__(callable) # <<<<<<<<<<<<<< * * */ - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 948, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_CallableDelegate)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_CallableDelegate)); @@ -18501,10 +18638,10 @@ static int __pyx_pf_19dependency_injector_9providers_16CallableDelegate___init__ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 948, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 948, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; @@ -18519,12 +18656,12 @@ static int __pyx_pf_19dependency_injector_9providers_16CallableDelegate___init__ } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_callable) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_callable); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 948, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":939 + /* "dependency_injector/providers.pyx":950 * """ * * def __init__(self, callable): # <<<<<<<<<<<<<< @@ -18867,7 +19004,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16CallableDelegate_4_ return __pyx_r; } -/* "dependency_injector/providers.pyx":977 +/* "dependency_injector/providers.pyx":988 * _is_coroutine = _is_coroutine_marker * * def __init__(self, provides, *args, **kwargs): # <<<<<<<<<<<<<< @@ -18924,7 +19061,7 @@ static int __pyx_pw_19dependency_injector_9providers_9Coroutine_1__init__(PyObje } if (unlikely(kw_args > 0)) { const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__init__") < 0)) __PYX_ERR(1, 977, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__init__") < 0)) __PYX_ERR(1, 988, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) < 1) { goto __pyx_L5_argtuple_error; @@ -18935,7 +19072,7 @@ static int __pyx_pw_19dependency_injector_9providers_9Coroutine_1__init__(PyObje } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 977, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 988, __pyx_L3_error) __pyx_L3_error:; __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; @@ -18970,28 +19107,28 @@ static int __pyx_pf_19dependency_injector_9providers_9Coroutine___init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":983 + /* "dependency_injector/providers.pyx":994 * :type provides: callable * """ * if not asyncio: # <<<<<<<<<<<<<< * raise Error('Package asyncio is not available') * */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 983, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 983, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 994, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = ((!__pyx_t_2) != 0); if (unlikely(__pyx_t_3)) { - /* "dependency_injector/providers.pyx":984 + /* "dependency_injector/providers.pyx":995 * """ * if not asyncio: * raise Error('Package asyncio is not available') # <<<<<<<<<<<<<< * * if not asyncio.iscoroutinefunction(provides): */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 984, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -19005,14 +19142,14 @@ static int __pyx_pf_19dependency_injector_9providers_9Coroutine___init__(struct } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_kp_s_Package_asyncio_is_not_available) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_s_Package_asyncio_is_not_available); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 984, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 984, __pyx_L1_error) + __PYX_ERR(1, 995, __pyx_L1_error) - /* "dependency_injector/providers.pyx":983 + /* "dependency_injector/providers.pyx":994 * :type provides: callable * """ * if not asyncio: # <<<<<<<<<<<<<< @@ -19021,16 +19158,16 @@ static int __pyx_pf_19dependency_injector_9providers_9Coroutine___init__(struct */ } - /* "dependency_injector/providers.pyx":986 + /* "dependency_injector/providers.pyx":997 * raise Error('Package asyncio is not available') * * if not asyncio.iscoroutinefunction(provides): # <<<<<<<<<<<<<< * raise Error('Provider {0} expected to get coroutine function, ' * 'got {1}'.format('.'.join((self.__class__.__module__, */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 986, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_iscoroutinefunction); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 986, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_iscoroutinefunction); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; @@ -19045,60 +19182,60 @@ static int __pyx_pf_19dependency_injector_9providers_9Coroutine___init__(struct } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_v_provides) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_provides); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 986, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 986, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 997, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = ((!__pyx_t_3) != 0); if (unlikely(__pyx_t_2)) { - /* "dependency_injector/providers.pyx":987 + /* "dependency_injector/providers.pyx":998 * * if not asyncio.iscoroutinefunction(provides): * raise Error('Provider {0} expected to get coroutine function, ' # <<<<<<<<<<<<<< * 'got {1}'.format('.'.join((self.__class__.__module__, * self.__class__.__name__)), */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_Error); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 987, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_Error); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - /* "dependency_injector/providers.pyx":988 + /* "dependency_injector/providers.pyx":999 * if not asyncio.iscoroutinefunction(provides): * raise Error('Provider {0} expected to get coroutine function, ' * 'got {1}'.format('.'.join((self.__class__.__module__, # <<<<<<<<<<<<<< * self.__class__.__name__)), * provides)) */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Provider_0_expected_to_get_corou, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 988, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Provider_0_expected_to_get_corou, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 988, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_module); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 988, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_module); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "dependency_injector/providers.pyx":989 + /* "dependency_injector/providers.pyx":1000 * raise Error('Provider {0} expected to get coroutine function, ' * 'got {1}'.format('.'.join((self.__class__.__module__, * self.__class__.__name__)), # <<<<<<<<<<<<<< * provides)) * */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 989, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_name); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 989, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_name); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "dependency_injector/providers.pyx":988 + /* "dependency_injector/providers.pyx":999 * if not asyncio.iscoroutinefunction(provides): * raise Error('Provider {0} expected to get coroutine function, ' * 'got {1}'.format('.'.join((self.__class__.__module__, # <<<<<<<<<<<<<< * self.__class__.__name__)), * provides)) */ - __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 988, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8); @@ -19106,11 +19243,11 @@ static int __pyx_pf_19dependency_injector_9providers_9Coroutine___init__(struct PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_9); __pyx_t_8 = 0; __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyString_Join(__pyx_kp_s__4, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 988, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyString_Join(__pyx_kp_s__5, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "dependency_injector/providers.pyx":990 + /* "dependency_injector/providers.pyx":1001 * 'got {1}'.format('.'.join((self.__class__.__module__, * self.__class__.__name__)), * provides)) # <<<<<<<<<<<<<< @@ -19132,7 +19269,7 @@ static int __pyx_pf_19dependency_injector_9providers_9Coroutine___init__(struct #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_9, __pyx_v_provides}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 988, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 999, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; @@ -19141,14 +19278,14 @@ static int __pyx_pf_19dependency_injector_9providers_9Coroutine___init__(struct #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_9, __pyx_v_provides}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 988, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 999, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif { - __pyx_t_8 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 988, __pyx_L1_error) + __pyx_t_8 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -19159,7 +19296,7 @@ static int __pyx_pf_19dependency_injector_9providers_9Coroutine___init__(struct __Pyx_GIVEREF(__pyx_v_provides); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_10, __pyx_v_provides); __pyx_t_9 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 988, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } @@ -19177,14 +19314,14 @@ static int __pyx_pf_19dependency_injector_9providers_9Coroutine___init__(struct __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 987, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 987, __pyx_L1_error) + __PYX_ERR(1, 998, __pyx_L1_error) - /* "dependency_injector/providers.pyx":986 + /* "dependency_injector/providers.pyx":997 * raise Error('Package asyncio is not available') * * if not asyncio.iscoroutinefunction(provides): # <<<<<<<<<<<<<< @@ -19193,14 +19330,14 @@ static int __pyx_pf_19dependency_injector_9providers_9Coroutine___init__(struct */ } - /* "dependency_injector/providers.pyx":992 + /* "dependency_injector/providers.pyx":1003 * provides)) * * super(Coroutine, self).__init__(provides, *args, **kwargs) # <<<<<<<<<<<<<< * * */ - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 992, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Coroutine)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Coroutine)); @@ -19208,27 +19345,27 @@ static int __pyx_pf_19dependency_injector_9providers_9Coroutine___init__(struct __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 992, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 992, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 992, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_provides); __Pyx_GIVEREF(__pyx_v_provides); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_provides); - __pyx_t_4 = PyNumber_Add(__pyx_t_5, __pyx_v_args); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 992, __pyx_L1_error) + __pyx_t_4 = PyNumber_Add(__pyx_t_5, __pyx_v_args); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_v_kwargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 992, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_v_kwargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/providers.pyx":977 + /* "dependency_injector/providers.pyx":988 * _is_coroutine = _is_coroutine_marker * * def __init__(self, provides, *args, **kwargs): # <<<<<<<<<<<<<< @@ -19948,7 +20085,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_18DelegatedCoroutine_ return __pyx_r; } -/* "dependency_injector/providers.pyx":1014 +/* "dependency_injector/providers.pyx":1025 * """ * * def __call__(self, *args, **kwargs): # <<<<<<<<<<<<<< @@ -20001,7 +20138,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractCoroutine__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__call__", 0); - /* "dependency_injector/providers.pyx":1019 + /* "dependency_injector/providers.pyx":1030 * Callable interface implementation. * """ * if self.__last_overriding is None: # <<<<<<<<<<<<<< @@ -20012,16 +20149,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractCoroutine__ __pyx_t_2 = (__pyx_t_1 != 0); if (unlikely(__pyx_t_2)) { - /* "dependency_injector/providers.pyx":1020 + /* "dependency_injector/providers.pyx":1031 * """ * if self.__last_overriding is None: * raise Error('{0} must be overridden before calling'.format(self)) # <<<<<<<<<<<<<< * return self.__last_overriding(*args, **kwargs) * */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1020, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_must_be_overridden_before_cal, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1020, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_must_be_overridden_before_cal, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { @@ -20035,7 +20172,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractCoroutine__ } __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1020, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -20051,14 +20188,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractCoroutine__ __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1020, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 1020, __pyx_L1_error) + __PYX_ERR(1, 1031, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1019 + /* "dependency_injector/providers.pyx":1030 * Callable interface implementation. * """ * if self.__last_overriding is None: # <<<<<<<<<<<<<< @@ -20067,7 +20204,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractCoroutine__ */ } - /* "dependency_injector/providers.pyx":1021 + /* "dependency_injector/providers.pyx":1032 * if self.__last_overriding is None: * raise Error('{0} must be overridden before calling'.format(self)) * return self.__last_overriding(*args, **kwargs) # <<<<<<<<<<<<<< @@ -20075,13 +20212,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractCoroutine__ * def override(self, provider): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx___last_overriding), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1021, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx___last_overriding), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1032, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1014 + /* "dependency_injector/providers.pyx":1025 * """ * * def __call__(self, *args, **kwargs): # <<<<<<<<<<<<<< @@ -20104,7 +20241,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractCoroutine__ return __pyx_r; } -/* "dependency_injector/providers.pyx":1023 +/* "dependency_injector/providers.pyx":1034 * return self.__last_overriding(*args, **kwargs) * * def override(self, provider): # <<<<<<<<<<<<<< @@ -20143,7 +20280,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractCoroutine_2 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("override", 0); - /* "dependency_injector/providers.pyx":1034 + /* "dependency_injector/providers.pyx":1045 * :rtype: :py:class:`OverridingContext` * """ * if not isinstance(provider, Coroutine): # <<<<<<<<<<<<<< @@ -20154,24 +20291,24 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractCoroutine_2 __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (unlikely(__pyx_t_2)) { - /* "dependency_injector/providers.pyx":1035 + /* "dependency_injector/providers.pyx":1046 * """ * if not isinstance(provider, Coroutine): * raise Error('{0} must be overridden only by ' # <<<<<<<<<<<<<< * '{1} providers'.format(self, Coroutine)) * return super(AbstractCoroutine, self).override(provider) */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1035, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - /* "dependency_injector/providers.pyx":1036 + /* "dependency_injector/providers.pyx":1047 * if not isinstance(provider, Coroutine): * raise Error('{0} must be overridden only by ' * '{1} providers'.format(self, Coroutine)) # <<<<<<<<<<<<<< * return super(AbstractCoroutine, self).override(provider) * */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_must_be_overridden_only_by_1, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1036, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_must_be_overridden_only_by_1, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; @@ -20188,7 +20325,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractCoroutine_2 #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, ((PyObject *)__pyx_v_self), ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Coroutine)}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1036, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1047, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_5); } else @@ -20196,13 +20333,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractCoroutine_2 #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, ((PyObject *)__pyx_v_self), ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Coroutine)}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1036, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1047, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { - __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1036, __pyx_L1_error) + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -20213,7 +20350,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractCoroutine_2 __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Coroutine)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Coroutine)); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Coroutine)); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1036, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } @@ -20231,14 +20368,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractCoroutine_2 __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1035, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 1035, __pyx_L1_error) + __PYX_ERR(1, 1046, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1034 + /* "dependency_injector/providers.pyx":1045 * :rtype: :py:class:`OverridingContext` * """ * if not isinstance(provider, Coroutine): # <<<<<<<<<<<<<< @@ -20247,7 +20384,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractCoroutine_2 */ } - /* "dependency_injector/providers.pyx":1037 + /* "dependency_injector/providers.pyx":1048 * raise Error('{0} must be overridden only by ' * '{1} providers'.format(self, Coroutine)) * return super(AbstractCoroutine, self).override(provider) # <<<<<<<<<<<<<< @@ -20255,7 +20392,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractCoroutine_2 * cpdef object _provide(self, tuple args, dict kwargs): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1037, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_AbstractCoroutine)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_AbstractCoroutine)); @@ -20263,10 +20400,10 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractCoroutine_2 __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1037, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_override); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1037, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_override); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; @@ -20281,14 +20418,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractCoroutine_2 } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_provider) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_provider); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1037, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1023 + /* "dependency_injector/providers.pyx":1034 * return self.__last_overriding(*args, **kwargs) * * def override(self, provider): # <<<<<<<<<<<<<< @@ -20312,7 +20449,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractCoroutine_2 return __pyx_r; } -/* "dependency_injector/providers.pyx":1039 +/* "dependency_injector/providers.pyx":1050 * return super(AbstractCoroutine, self).override(provider) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -20343,7 +20480,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_17AbstractCoroutine__p if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1039, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_19dependency_injector_9providers_17AbstractCoroutine_5_provide)) { __Pyx_XDECREF(__pyx_r); @@ -20363,7 +20500,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_17AbstractCoroutine__p #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1039, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1050, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -20371,13 +20508,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_17AbstractCoroutine__p #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1039, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1050, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1039, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -20388,7 +20525,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_17AbstractCoroutine__p __Pyx_INCREF(__pyx_v_kwargs); __Pyx_GIVEREF(__pyx_v_kwargs); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_kwargs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1039, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -20411,20 +20548,20 @@ static PyObject *__pyx_f_19dependency_injector_9providers_17AbstractCoroutine__p #endif } - /* "dependency_injector/providers.pyx":1041 + /* "dependency_injector/providers.pyx":1052 * cpdef object _provide(self, tuple args, dict kwargs): * """Return result of provided callable's call.""" * raise NotImplementedError('Abstract provider forward providing logic ' # <<<<<<<<<<<<<< * 'to overriding provider') * */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_NotImplementedError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1041, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_NotImplementedError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 1041, __pyx_L1_error) + __PYX_ERR(1, 1052, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1039 + /* "dependency_injector/providers.pyx":1050 * return super(AbstractCoroutine, self).override(provider) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -20482,11 +20619,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_17AbstractCoroutine_5 case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 1039, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 1050, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 1039, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 1050, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -20499,14 +20636,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_17AbstractCoroutine_5 } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1039, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1050, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.AbstractCoroutine._provide", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 1039, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 1039, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 1050, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 1050, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_17AbstractCoroutine_4_provide(((struct __pyx_obj_19dependency_injector_9providers_AbstractCoroutine *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs); /* function exit code */ @@ -20527,7 +20664,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractCoroutine_4 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_provide", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_17AbstractCoroutine__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1039, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_17AbstractCoroutine__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -20891,7 +21028,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractCoroutine_8 return __pyx_r; } -/* "dependency_injector/providers.pyx":1055 +/* "dependency_injector/providers.pyx":1066 * """ * * def __init__(self, coroutine): # <<<<<<<<<<<<<< @@ -20932,7 +21069,7 @@ static int __pyx_pw_19dependency_injector_9providers_17CoroutineDelegate_1__init else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 1055, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 1066, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; @@ -20943,7 +21080,7 @@ static int __pyx_pw_19dependency_injector_9providers_17CoroutineDelegate_1__init } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1055, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1066, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.CoroutineDelegate.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -20974,7 +21111,7 @@ static int __pyx_pf_19dependency_injector_9providers_17CoroutineDelegate___init_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":1061 + /* "dependency_injector/providers.pyx":1072 * :type coroutine: object * """ * if isinstance(coroutine, Coroutine) is False: # <<<<<<<<<<<<<< @@ -20985,26 +21122,26 @@ static int __pyx_pf_19dependency_injector_9providers_17CoroutineDelegate___init_ __pyx_t_2 = ((__pyx_t_1 == 0) != 0); if (unlikely(__pyx_t_2)) { - /* "dependency_injector/providers.pyx":1062 + /* "dependency_injector/providers.pyx":1073 * """ * if isinstance(coroutine, Coroutine) is False: * raise Error('{0} can wrap only {1} providers'.format( # <<<<<<<<<<<<<< * self.__class__, Callable)) * super(CoroutineDelegate, self).__init__(coroutine) */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1062, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_can_wrap_only_1_providers, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1062, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_can_wrap_only_1_providers, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - /* "dependency_injector/providers.pyx":1063 + /* "dependency_injector/providers.pyx":1074 * if isinstance(coroutine, Coroutine) is False: * raise Error('{0} can wrap only {1} providers'.format( * self.__class__, Callable)) # <<<<<<<<<<<<<< * super(CoroutineDelegate, self).__init__(coroutine) * */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1063, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_9 = 0; @@ -21021,7 +21158,7 @@ static int __pyx_pf_19dependency_injector_9providers_17CoroutineDelegate___init_ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_7, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Callable)}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1062, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1073, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; @@ -21030,14 +21167,14 @@ static int __pyx_pf_19dependency_injector_9providers_17CoroutineDelegate___init_ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_7, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Callable)}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1062, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1073, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { - __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1062, __pyx_L1_error) + __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; @@ -21048,7 +21185,7 @@ static int __pyx_pf_19dependency_injector_9providers_17CoroutineDelegate___init_ __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Callable)); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Callable)); __pyx_t_7 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1062, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } @@ -21066,14 +21203,14 @@ static int __pyx_pf_19dependency_injector_9providers_17CoroutineDelegate___init_ __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1062, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 1062, __pyx_L1_error) + __PYX_ERR(1, 1073, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1061 + /* "dependency_injector/providers.pyx":1072 * :type coroutine: object * """ * if isinstance(coroutine, Coroutine) is False: # <<<<<<<<<<<<<< @@ -21082,14 +21219,14 @@ static int __pyx_pf_19dependency_injector_9providers_17CoroutineDelegate___init_ */ } - /* "dependency_injector/providers.pyx":1064 + /* "dependency_injector/providers.pyx":1075 * raise Error('{0} can wrap only {1} providers'.format( * self.__class__, Callable)) * super(CoroutineDelegate, self).__init__(coroutine) # <<<<<<<<<<<<<< * * */ - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1064, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_CoroutineDelegate)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_CoroutineDelegate)); @@ -21097,10 +21234,10 @@ static int __pyx_pf_19dependency_injector_9providers_17CoroutineDelegate___init_ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1064, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1064, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; @@ -21115,12 +21252,12 @@ static int __pyx_pf_19dependency_injector_9providers_17CoroutineDelegate___init_ } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_coroutine) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_coroutine); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1064, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":1055 + /* "dependency_injector/providers.pyx":1066 * """ * * def __init__(self, coroutine): # <<<<<<<<<<<<<< @@ -21463,7 +21600,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17CoroutineDelegate_4 return __pyx_r; } -/* "dependency_injector/providers.pyx":1076 +/* "dependency_injector/providers.pyx":1087 * UNDEFINED = object() * * def __init__(self, name, root): # <<<<<<<<<<<<<< @@ -21505,11 +21642,11 @@ static int __pyx_pw_19dependency_injector_9providers_19ConfigurationOption_1__in case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_root)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(1, 1076, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(1, 1087, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 1076, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 1087, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -21522,7 +21659,7 @@ static int __pyx_pw_19dependency_injector_9providers_19ConfigurationOption_1__in } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1076, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1087, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.ConfigurationOption.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -21546,14 +21683,14 @@ static int __pyx_pf_19dependency_injector_9providers_19ConfigurationOption___ini int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":1077 + /* "dependency_injector/providers.pyx":1088 * * def __init__(self, name, root): * self.__name = name # <<<<<<<<<<<<<< * self.__root_ref = weakref.ref(root) * self.__children = {} */ - if (!(likely(PyTuple_CheckExact(__pyx_v_name))||((__pyx_v_name) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v_name)->tp_name), 0))) __PYX_ERR(1, 1077, __pyx_L1_error) + if (!(likely(PyTuple_CheckExact(__pyx_v_name))||((__pyx_v_name) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v_name)->tp_name), 0))) __PYX_ERR(1, 1088, __pyx_L1_error) __pyx_t_1 = __pyx_v_name; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); @@ -21562,16 +21699,16 @@ static int __pyx_pf_19dependency_injector_9providers_19ConfigurationOption___ini __pyx_v_self->__pyx___name = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1078 + /* "dependency_injector/providers.pyx":1089 * def __init__(self, name, root): * self.__name = name * self.__root_ref = weakref.ref(root) # <<<<<<<<<<<<<< * self.__children = {} * self.__cache = self.UNDEFINED */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_weakref); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1078, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_weakref); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ref); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1078, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ref); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; @@ -21586,7 +21723,7 @@ static int __pyx_pf_19dependency_injector_9providers_19ConfigurationOption___ini } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_root) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_root); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1078, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GIVEREF(__pyx_t_1); @@ -21595,14 +21732,14 @@ static int __pyx_pf_19dependency_injector_9providers_19ConfigurationOption___ini __pyx_v_self->__pyx___root_ref = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1079 + /* "dependency_injector/providers.pyx":1090 * self.__name = name * self.__root_ref = weakref.ref(root) * self.__children = {} # <<<<<<<<<<<<<< * self.__cache = self.UNDEFINED * super().__init__() */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1079, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->__pyx___children); @@ -21610,14 +21747,14 @@ static int __pyx_pf_19dependency_injector_9providers_19ConfigurationOption___ini __pyx_v_self->__pyx___children = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1080 + /* "dependency_injector/providers.pyx":1091 * self.__root_ref = weakref.ref(root) * self.__children = {} * self.__cache = self.UNDEFINED # <<<<<<<<<<<<<< * super().__init__() * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_UNDEFINED); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1080, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_UNDEFINED); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->__pyx___cache); @@ -21625,14 +21762,14 @@ static int __pyx_pf_19dependency_injector_9providers_19ConfigurationOption___ini __pyx_v_self->__pyx___cache = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1081 + /* "dependency_injector/providers.pyx":1092 * self.__children = {} * self.__cache = self.UNDEFINED * super().__init__() # <<<<<<<<<<<<<< * * def __deepcopy__(self, memo): */ - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1081, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ConfigurationOption)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ConfigurationOption)); @@ -21640,10 +21777,10 @@ static int __pyx_pf_19dependency_injector_9providers_19ConfigurationOption___ini __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1081, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1081, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; @@ -21658,12 +21795,12 @@ static int __pyx_pf_19dependency_injector_9providers_19ConfigurationOption___ini } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1081, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1076 + /* "dependency_injector/providers.pyx":1087 * UNDEFINED = object() * * def __init__(self, name, root): # <<<<<<<<<<<<<< @@ -21685,7 +21822,7 @@ static int __pyx_pf_19dependency_injector_9providers_19ConfigurationOption___ini return __pyx_r; } -/* "dependency_injector/providers.pyx":1083 +/* "dependency_injector/providers.pyx":1094 * super().__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -21726,16 +21863,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__deepcopy__", 0); - /* "dependency_injector/providers.pyx":1086 + /* "dependency_injector/providers.pyx":1097 * cdef ConfigurationOption copied * * copied = memo.get(id(self)) # <<<<<<<<<<<<<< * if copied is not None: * return copied */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1086, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1086, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -21750,14 +21887,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1086, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_ConfigurationOption))))) __PYX_ERR(1, 1086, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_ConfigurationOption))))) __PYX_ERR(1, 1097, __pyx_L1_error) __pyx_v_copied = ((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1087 + /* "dependency_injector/providers.pyx":1098 * * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -21768,7 +21905,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":1088 + /* "dependency_injector/providers.pyx":1099 * copied = memo.get(id(self)) * if copied is not None: * return copied # <<<<<<<<<<<<<< @@ -21780,7 +21917,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_r = ((PyObject *)__pyx_v_copied); goto __pyx_L0; - /* "dependency_injector/providers.pyx":1087 + /* "dependency_injector/providers.pyx":1098 * * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -21789,7 +21926,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ } - /* "dependency_injector/providers.pyx":1090 + /* "dependency_injector/providers.pyx":1101 * return copied * * copied_name = deepcopy(self.__name, memo) # <<<<<<<<<<<<<< @@ -21798,16 +21935,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ __pyx_t_1 = __pyx_v_self->__pyx___name; __Pyx_INCREF(__pyx_t_1); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1090, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1101, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_2 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_1, 0, &__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1090, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_1, 0, &__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_copied_name = __pyx_t_2; __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1092 + /* "dependency_injector/providers.pyx":1103 * copied_name = deepcopy(self.__name, memo) * * root = self.__root_ref() # <<<<<<<<<<<<<< @@ -21827,22 +21964,22 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1092, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_root = __pyx_t_2; __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1093 + /* "dependency_injector/providers.pyx":1104 * * root = self.__root_ref() * copied_root = memo.get(id(root)) # <<<<<<<<<<<<<< * if copied_root is None: * copied_root = deepcopy(root, memo) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1093, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_v_root); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1093, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_v_root); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { @@ -21857,13 +21994,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1093, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_copied_root = __pyx_t_2; __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1094 + /* "dependency_injector/providers.pyx":1105 * root = self.__root_ref() * copied_root = memo.get(id(root)) * if copied_root is None: # <<<<<<<<<<<<<< @@ -21874,22 +22011,22 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_t_5 = (__pyx_t_6 != 0); if (__pyx_t_5) { - /* "dependency_injector/providers.pyx":1095 + /* "dependency_injector/providers.pyx":1106 * copied_root = memo.get(id(root)) * if copied_root is None: * copied_root = deepcopy(root, memo) # <<<<<<<<<<<<<< * * copied = self.__class__(copied_name, copied_root) */ - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1095, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1106, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_2 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_v_root, 0, &__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1095, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_v_root, 0, &__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF_SET(__pyx_v_copied_root, __pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1094 + /* "dependency_injector/providers.pyx":1105 * root = self.__root_ref() * copied_root = memo.get(id(root)) * if copied_root is None: # <<<<<<<<<<<<<< @@ -21898,14 +22035,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ } - /* "dependency_injector/providers.pyx":1097 + /* "dependency_injector/providers.pyx":1108 * copied_root = deepcopy(root, memo) * * copied = self.__class__(copied_name, copied_root) # <<<<<<<<<<<<<< * copied.__children = deepcopy(self.__children, memo) * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1097, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; __pyx_t_8 = 0; @@ -21922,7 +22059,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_copied_name, __pyx_v_copied_root}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1097, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1108, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -21930,13 +22067,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_copied_name, __pyx_v_copied_root}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1097, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1108, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_4 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1097, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; @@ -21947,16 +22084,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_INCREF(__pyx_v_copied_root); __Pyx_GIVEREF(__pyx_v_copied_root); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_8, __pyx_v_copied_root); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1097, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_19dependency_injector_9providers_ConfigurationOption))))) __PYX_ERR(1, 1097, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_19dependency_injector_9providers_ConfigurationOption))))) __PYX_ERR(1, 1108, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_copied, ((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_t_2)); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1098 + /* "dependency_injector/providers.pyx":1109 * * copied = self.__class__(copied_name, copied_root) * copied.__children = deepcopy(self.__children, memo) # <<<<<<<<<<<<<< @@ -21965,20 +22102,20 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ __pyx_t_2 = __pyx_v_self->__pyx___children; __Pyx_INCREF(__pyx_t_2); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1098, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1109, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_2, 0, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1098, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_2, 0, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(1, 1098, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(1, 1109, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_copied->__pyx___children); __Pyx_DECREF(__pyx_v_copied->__pyx___children); __pyx_v_copied->__pyx___children = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1100 + /* "dependency_injector/providers.pyx":1111 * copied.__children = deepcopy(self.__children, memo) * * return copied # <<<<<<<<<<<<<< @@ -21990,7 +22127,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_r = ((PyObject *)__pyx_v_copied); goto __pyx_L0; - /* "dependency_injector/providers.pyx":1083 + /* "dependency_injector/providers.pyx":1094 * super().__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -22016,7 +22153,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption return __pyx_r; } -/* "dependency_injector/providers.pyx":1102 +/* "dependency_injector/providers.pyx":1113 * return copied * * def __str__(self): # <<<<<<<<<<<<<< @@ -22048,7 +22185,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__str__", 0); - /* "dependency_injector/providers.pyx":1103 + /* "dependency_injector/providers.pyx":1114 * * def __str__(self): * return represent_provider(provider=self, provides=self.get_name()) # <<<<<<<<<<<<<< @@ -22056,7 +22193,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption * def __getattr__(self, item): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1103, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -22070,17 +22207,17 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1103, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1103, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1102 + /* "dependency_injector/providers.pyx":1113 * return copied * * def __str__(self): # <<<<<<<<<<<<<< @@ -22101,7 +22238,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption return __pyx_r; } -/* "dependency_injector/providers.pyx":1105 +/* "dependency_injector/providers.pyx":1116 * return represent_provider(provider=self, provides=self.get_name()) * * def __getattr__(self, item): # <<<<<<<<<<<<<< @@ -22138,14 +22275,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getattr__", 0); - /* "dependency_injector/providers.pyx":1106 + /* "dependency_injector/providers.pyx":1117 * * def __getattr__(self, item): * if item.startswith('__') and item.endswith('__'): # <<<<<<<<<<<<<< * raise AttributeError( * '\'{cls}\' object has no attribute ' */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s_startswith); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1106, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s_startswith); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -22157,19 +22294,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_DECREF_SET(__pyx_t_3, function); } } - __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_n_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s__3); + __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_n_s__4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s__4); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1106, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 1106, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 1117, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_5) { } else { __pyx_t_1 = __pyx_t_5; goto __pyx_L4_bool_binop_done; } - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s_endswith); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1106, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s_endswith); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -22181,72 +22318,72 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_DECREF_SET(__pyx_t_3, function); } } - __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_n_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s__3); + __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_n_s__4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s__4); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1106, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 1106, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 1117, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_1 = __pyx_t_5; __pyx_L4_bool_binop_done:; if (unlikely(__pyx_t_1)) { - /* "dependency_injector/providers.pyx":1109 + /* "dependency_injector/providers.pyx":1120 * raise AttributeError( * '\'{cls}\' object has no attribute ' * '\'{attribute_name}\''.format(cls=self.__class__.__name__, # <<<<<<<<<<<<<< * attribute_name=item)) * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_cls_object_has_no_attribute_att, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1109, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_cls_object_has_no_attribute_att, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1109, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1109, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1109, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_cls, __pyx_t_6) < 0) __PYX_ERR(1, 1109, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_cls, __pyx_t_6) < 0) __PYX_ERR(1, 1120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "dependency_injector/providers.pyx":1110 + /* "dependency_injector/providers.pyx":1121 * '\'{cls}\' object has no attribute ' * '\'{attribute_name}\''.format(cls=self.__class__.__name__, * attribute_name=item)) # <<<<<<<<<<<<<< * * child = self.__children.get(item) */ - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_attribute_name, __pyx_v_item) < 0) __PYX_ERR(1, 1109, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_attribute_name, __pyx_v_item) < 0) __PYX_ERR(1, 1120, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1109 + /* "dependency_injector/providers.pyx":1120 * raise AttributeError( * '\'{cls}\' object has no attribute ' * '\'{attribute_name}\''.format(cls=self.__class__.__name__, # <<<<<<<<<<<<<< * attribute_name=item)) * */ - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1109, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":1107 + /* "dependency_injector/providers.pyx":1118 * def __getattr__(self, item): * if item.startswith('__') and item.endswith('__'): * raise AttributeError( # <<<<<<<<<<<<<< * '\'{cls}\' object has no attribute ' * '\'{attribute_name}\''.format(cls=self.__class__.__name__, */ - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_AttributeError, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1107, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_AttributeError, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 1107, __pyx_L1_error) + __PYX_ERR(1, 1118, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1106 + /* "dependency_injector/providers.pyx":1117 * * def __getattr__(self, item): * if item.startswith('__') and item.endswith('__'): # <<<<<<<<<<<<<< @@ -22255,7 +22392,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ } - /* "dependency_injector/providers.pyx":1112 + /* "dependency_injector/providers.pyx":1123 * attribute_name=item)) * * child = self.__children.get(item) # <<<<<<<<<<<<<< @@ -22264,14 +22401,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ if (unlikely(__pyx_v_self->__pyx___children == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(1, 1112, __pyx_L1_error) + __PYX_ERR(1, 1123, __pyx_L1_error) } - __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_self->__pyx___children, __pyx_v_item, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1112, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_self->__pyx___children, __pyx_v_item, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_child = __pyx_t_3; __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":1113 + /* "dependency_injector/providers.pyx":1124 * * child = self.__children.get(item) * if child is None: # <<<<<<<<<<<<<< @@ -22282,25 +22419,25 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_t_5 = (__pyx_t_1 != 0); if (__pyx_t_5) { - /* "dependency_injector/providers.pyx":1114 + /* "dependency_injector/providers.pyx":1125 * child = self.__children.get(item) * if child is None: * child_name = self.__name + (item,) # <<<<<<<<<<<<<< * child = ConfigurationOption(child_name, self.__root_ref()) * self.__children[item] = child */ - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1114, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_item); __Pyx_GIVEREF(__pyx_v_item); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_item); - __pyx_t_6 = PyNumber_Add(__pyx_v_self->__pyx___name, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1114, __pyx_L1_error) + __pyx_t_6 = PyNumber_Add(__pyx_v_self->__pyx___name, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_child_name = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; - /* "dependency_injector/providers.pyx":1115 + /* "dependency_injector/providers.pyx":1126 * if child is None: * child_name = self.__name + (item,) * child = ConfigurationOption(child_name, self.__root_ref()) # <<<<<<<<<<<<<< @@ -22320,10 +22457,10 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_6 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1115, __pyx_L1_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1115, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_child_name); __Pyx_GIVEREF(__pyx_v_child_name); @@ -22331,13 +22468,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ConfigurationOption), __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1115, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ConfigurationOption), __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_child, __pyx_t_6); __pyx_t_6 = 0; - /* "dependency_injector/providers.pyx":1116 + /* "dependency_injector/providers.pyx":1127 * child_name = self.__name + (item,) * child = ConfigurationOption(child_name, self.__root_ref()) * self.__children[item] = child # <<<<<<<<<<<<<< @@ -22346,11 +22483,11 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ if (unlikely(__pyx_v_self->__pyx___children == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 1116, __pyx_L1_error) + __PYX_ERR(1, 1127, __pyx_L1_error) } - if (unlikely(PyDict_SetItem(__pyx_v_self->__pyx___children, __pyx_v_item, __pyx_v_child) < 0)) __PYX_ERR(1, 1116, __pyx_L1_error) + if (unlikely(PyDict_SetItem(__pyx_v_self->__pyx___children, __pyx_v_item, __pyx_v_child) < 0)) __PYX_ERR(1, 1127, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1113 + /* "dependency_injector/providers.pyx":1124 * * child = self.__children.get(item) * if child is None: # <<<<<<<<<<<<<< @@ -22359,7 +22496,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ } - /* "dependency_injector/providers.pyx":1117 + /* "dependency_injector/providers.pyx":1128 * child = ConfigurationOption(child_name, self.__root_ref()) * self.__children[item] = child * return child # <<<<<<<<<<<<<< @@ -22371,7 +22508,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_r = __pyx_v_child; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1105 + /* "dependency_injector/providers.pyx":1116 * return represent_provider(provider=self, provides=self.get_name()) * * def __getattr__(self, item): # <<<<<<<<<<<<<< @@ -22395,7 +22532,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption return __pyx_r; } -/* "dependency_injector/providers.pyx":1119 +/* "dependency_injector/providers.pyx":1130 * return child * * def __getitem__(self, item): # <<<<<<<<<<<<<< @@ -22431,7 +22568,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getitem__", 0); - /* "dependency_injector/providers.pyx":1120 + /* "dependency_injector/providers.pyx":1131 * * def __getitem__(self, item): * child = self.__children.get(item) # <<<<<<<<<<<<<< @@ -22440,14 +22577,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ if (unlikely(__pyx_v_self->__pyx___children == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(1, 1120, __pyx_L1_error) + __PYX_ERR(1, 1131, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_self->__pyx___children, __pyx_v_item, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1120, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_self->__pyx___children, __pyx_v_item, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_child = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1121 + /* "dependency_injector/providers.pyx":1132 * def __getitem__(self, item): * child = self.__children.get(item) * if child is None: # <<<<<<<<<<<<<< @@ -22458,25 +22595,25 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { - /* "dependency_injector/providers.pyx":1122 + /* "dependency_injector/providers.pyx":1133 * child = self.__children.get(item) * if child is None: * child_name = self.__name + (item,) # <<<<<<<<<<<<<< * child = ConfigurationOption(child_name, self.__root_ref()) * self.__children[item] = child */ - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1122, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_item); __Pyx_GIVEREF(__pyx_v_item); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_item); - __pyx_t_4 = PyNumber_Add(__pyx_v_self->__pyx___name, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1122, __pyx_L1_error) + __pyx_t_4 = PyNumber_Add(__pyx_v_self->__pyx___name, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_child_name = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/providers.pyx":1123 + /* "dependency_injector/providers.pyx":1134 * if child is None: * child_name = self.__name + (item,) * child = ConfigurationOption(child_name, self.__root_ref()) # <<<<<<<<<<<<<< @@ -22496,10 +22633,10 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1123, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1123, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_child_name); __Pyx_GIVEREF(__pyx_v_child_name); @@ -22507,13 +22644,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ConfigurationOption), __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1123, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ConfigurationOption), __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_child, __pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/providers.pyx":1124 + /* "dependency_injector/providers.pyx":1135 * child_name = self.__name + (item,) * child = ConfigurationOption(child_name, self.__root_ref()) * self.__children[item] = child # <<<<<<<<<<<<<< @@ -22522,11 +22659,11 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ if (unlikely(__pyx_v_self->__pyx___children == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 1124, __pyx_L1_error) + __PYX_ERR(1, 1135, __pyx_L1_error) } - if (unlikely(PyDict_SetItem(__pyx_v_self->__pyx___children, __pyx_v_item, __pyx_v_child) < 0)) __PYX_ERR(1, 1124, __pyx_L1_error) + if (unlikely(PyDict_SetItem(__pyx_v_self->__pyx___children, __pyx_v_item, __pyx_v_child) < 0)) __PYX_ERR(1, 1135, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1121 + /* "dependency_injector/providers.pyx":1132 * def __getitem__(self, item): * child = self.__children.get(item) * if child is None: # <<<<<<<<<<<<<< @@ -22535,7 +22672,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ } - /* "dependency_injector/providers.pyx":1125 + /* "dependency_injector/providers.pyx":1136 * child = ConfigurationOption(child_name, self.__root_ref()) * self.__children[item] = child * return child # <<<<<<<<<<<<<< @@ -22547,7 +22684,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_r = __pyx_v_child; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1119 + /* "dependency_injector/providers.pyx":1130 * return child * * def __getitem__(self, item): # <<<<<<<<<<<<<< @@ -22570,7 +22707,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption return __pyx_r; } -/* "dependency_injector/providers.pyx":1127 +/* "dependency_injector/providers.pyx":1138 * return child * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -22605,7 +22742,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ConfigurationOption_ if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1127, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_11_provide)) { __Pyx_XDECREF(__pyx_r); @@ -22625,7 +22762,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ConfigurationOption_ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1127, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1138, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -22633,13 +22770,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ConfigurationOption_ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1127, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1138, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1127, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -22650,7 +22787,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ConfigurationOption_ __Pyx_INCREF(__pyx_v_kwargs); __Pyx_GIVEREF(__pyx_v_kwargs); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_kwargs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1127, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -22673,21 +22810,21 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ConfigurationOption_ #endif } - /* "dependency_injector/providers.pyx":1129 + /* "dependency_injector/providers.pyx":1140 * cpdef object _provide(self, tuple args, dict kwargs): * """Return new instance.""" * if self.__cache is not self.UNDEFINED: # <<<<<<<<<<<<<< * return self.__cache * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_UNDEFINED); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1129, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_UNDEFINED); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = (__pyx_v_self->__pyx___cache != __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = (__pyx_t_7 != 0); if (__pyx_t_8) { - /* "dependency_injector/providers.pyx":1130 + /* "dependency_injector/providers.pyx":1141 * """Return new instance.""" * if self.__cache is not self.UNDEFINED: * return self.__cache # <<<<<<<<<<<<<< @@ -22699,7 +22836,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ConfigurationOption_ __pyx_r = __pyx_v_self->__pyx___cache; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1129 + /* "dependency_injector/providers.pyx":1140 * cpdef object _provide(self, tuple args, dict kwargs): * """Return new instance.""" * if self.__cache is not self.UNDEFINED: # <<<<<<<<<<<<<< @@ -22708,7 +22845,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ConfigurationOption_ */ } - /* "dependency_injector/providers.pyx":1132 + /* "dependency_injector/providers.pyx":1143 * return self.__cache * * root = self.__root_ref() # <<<<<<<<<<<<<< @@ -22728,22 +22865,22 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ConfigurationOption_ } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1132, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_root = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1133 + /* "dependency_injector/providers.pyx":1144 * * root = self.__root_ref() * value = root.get(self._get_self_name()) # <<<<<<<<<<<<<< * self.__cache = value * return value */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1133, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_self_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1133, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_self_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { @@ -22757,7 +22894,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ConfigurationOption_ } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_6); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1133, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -22773,13 +22910,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ConfigurationOption_ __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1133, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_value = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1134 + /* "dependency_injector/providers.pyx":1145 * root = self.__root_ref() * value = root.get(self._get_self_name()) * self.__cache = value # <<<<<<<<<<<<<< @@ -22792,7 +22929,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ConfigurationOption_ __Pyx_DECREF(__pyx_v_self->__pyx___cache); __pyx_v_self->__pyx___cache = __pyx_v_value; - /* "dependency_injector/providers.pyx":1135 + /* "dependency_injector/providers.pyx":1146 * value = root.get(self._get_self_name()) * self.__cache = value * return value # <<<<<<<<<<<<<< @@ -22804,7 +22941,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ConfigurationOption_ __pyx_r = __pyx_v_value; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1127 + /* "dependency_injector/providers.pyx":1138 * return child * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -22864,11 +23001,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 1127, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 1138, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 1127, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 1138, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -22881,14 +23018,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1127, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1138, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.ConfigurationOption._provide", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 1127, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 1127, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 1138, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 1138, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_10_provide(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs); /* function exit code */ @@ -22909,7 +23046,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_provide", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_19ConfigurationOption__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1127, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_19ConfigurationOption__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -22926,7 +23063,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption return __pyx_r; } -/* "dependency_injector/providers.pyx":1137 +/* "dependency_injector/providers.pyx":1148 * return value * * def _get_self_name(self): # <<<<<<<<<<<<<< @@ -22948,7 +23085,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption } static PyObject *__pyx_gb_19dependency_injector_9providers_19ConfigurationOption_14_get_self_name_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ -/* "dependency_injector/providers.pyx":1139 +/* "dependency_injector/providers.pyx":1150 * def _get_self_name(self): * return '.'.join( * segment() if is_provider(segment) else segment for segment in self.__name # <<<<<<<<<<<<<< @@ -22968,7 +23105,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_19dependency_injector_9providers___pyx_scope_struct_1_genexpr *)Py_None); __Pyx_INCREF(Py_None); - __PYX_ERR(1, 1139, __pyx_L1_error) + __PYX_ERR(1, 1150, __pyx_L1_error) } else { __Pyx_GOTREF(__pyx_cur_scope); } @@ -22976,7 +23113,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope)); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope); { - __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_19dependency_injector_9providers_19ConfigurationOption_14_get_self_name_2generator, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_get_self_name_locals_genexpr, __pyx_n_s_dependency_injector_providers); if (unlikely(!gen)) __PYX_ERR(1, 1139, __pyx_L1_error) + __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_19dependency_injector_9providers_19ConfigurationOption_14_get_self_name_2generator, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_get_self_name_locals_genexpr, __pyx_n_s_dependency_injector_providers); if (unlikely(!gen)) __PYX_ERR(1, 1150, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; @@ -23015,19 +23152,19 @@ static PyObject *__pyx_gb_19dependency_injector_9providers_19ConfigurationOption return NULL; } __pyx_L3_first_run:; - if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 1139, __pyx_L1_error) - if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(1, 1139, __pyx_L1_error) } + if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 1150, __pyx_L1_error) + if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(1, 1150, __pyx_L1_error) } if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->__pyx___name == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(1, 1139, __pyx_L1_error) + __PYX_ERR(1, 1150, __pyx_L1_error) } __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->__pyx___name; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 1139, __pyx_L1_error) + __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 1150, __pyx_L1_error) #else - __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1139, __pyx_L1_error) + __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_segment); @@ -23048,7 +23185,7 @@ static PyObject *__pyx_gb_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1139, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = __pyx_t_4; @@ -23073,7 +23210,7 @@ static PyObject *__pyx_gb_19dependency_injector_9providers_19ConfigurationOption __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; - if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 1139, __pyx_L1_error) + if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 1150, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); @@ -23099,7 +23236,7 @@ static PyObject *__pyx_gb_19dependency_injector_9providers_19ConfigurationOption return __pyx_r; } -/* "dependency_injector/providers.pyx":1137 +/* "dependency_injector/providers.pyx":1148 * return value * * def _get_self_name(self): # <<<<<<<<<<<<<< @@ -23121,7 +23258,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_19dependency_injector_9providers___pyx_scope_struct___get_self_name *)Py_None); __Pyx_INCREF(Py_None); - __PYX_ERR(1, 1137, __pyx_L1_error) + __PYX_ERR(1, 1148, __pyx_L1_error) } else { __Pyx_GOTREF(__pyx_cur_scope); } @@ -23129,7 +23266,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); - /* "dependency_injector/providers.pyx":1138 + /* "dependency_injector/providers.pyx":1149 * * def _get_self_name(self): * return '.'.join( # <<<<<<<<<<<<<< @@ -23138,31 +23275,31 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ __Pyx_XDECREF(__pyx_r); - /* "dependency_injector/providers.pyx":1139 + /* "dependency_injector/providers.pyx":1150 * def _get_self_name(self): * return '.'.join( * segment() if is_provider(segment) else segment for segment in self.__name # <<<<<<<<<<<<<< * ) * */ - __pyx_t_1 = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_14_get_self_name_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1139, __pyx_L1_error) + __pyx_t_1 = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_14_get_self_name_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - /* "dependency_injector/providers.pyx":1138 + /* "dependency_injector/providers.pyx":1149 * * def _get_self_name(self): * return '.'.join( # <<<<<<<<<<<<<< * segment() if is_provider(segment) else segment for segment in self.__name * ) */ - __pyx_t_2 = __Pyx_PyString_Join(__pyx_kp_s__4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1138, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyString_Join(__pyx_kp_s__5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1137 + /* "dependency_injector/providers.pyx":1148 * return value * * def _get_self_name(self): # <<<<<<<<<<<<<< @@ -23183,8 +23320,89 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption return __pyx_r; } -/* "dependency_injector/providers.pyx":1142 - * ) +/* "dependency_injector/providers.pyx":1154 + * + * @property + * def root(self): # <<<<<<<<<<<<<< + * return self.__root_ref() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_4root_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_4root_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_4root___get__(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_4root___get__(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "dependency_injector/providers.pyx":1155 + * @property + * def root(self): + * return self.__root_ref() # <<<<<<<<<<<<<< + * + * def get_name(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->__pyx___root_ref); + __pyx_t_2 = __pyx_v_self->__pyx___root_ref; __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "dependency_injector/providers.pyx":1154 + * + * @property + * def root(self): # <<<<<<<<<<<<<< + * return self.__root_ref() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("dependency_injector.providers.ConfigurationOption.root.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "dependency_injector/providers.pyx":1157 + * return self.__root_ref() * * def get_name(self): # <<<<<<<<<<<<<< * root = self.__root_ref() @@ -23217,7 +23435,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_name", 0); - /* "dependency_injector/providers.pyx":1143 + /* "dependency_injector/providers.pyx":1158 * * def get_name(self): * root = self.__root_ref() # <<<<<<<<<<<<<< @@ -23237,21 +23455,21 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1143, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_root = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1144 + /* "dependency_injector/providers.pyx":1159 * def get_name(self): * root = self.__root_ref() * return '.'.join((root.get_name(), self._get_self_name())) # <<<<<<<<<<<<<< * - * def as_int(self): + * def get_name_segments(self): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s_get_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1144, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s_get_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -23265,10 +23483,10 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1144, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_self_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1144, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_self_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -23282,10 +23500,10 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1144, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1144, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); @@ -23293,15 +23511,15 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyString_Join(__pyx_kp_s__4, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1144, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyString_Join(__pyx_kp_s__5, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1142 - * ) + /* "dependency_injector/providers.pyx":1157 + * return self.__root_ref() * * def get_name(self): # <<<<<<<<<<<<<< * root = self.__root_ref() @@ -23323,28 +23541,81 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption return __pyx_r; } -/* "dependency_injector/providers.pyx":1146 +/* "dependency_injector/providers.pyx":1161 * return '.'.join((root.get_name(), self._get_self_name())) * - * def as_int(self): # <<<<<<<<<<<<<< - * return Callable(int, self) + * def get_name_segments(self): # <<<<<<<<<<<<<< + * return self.__name * */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_17as_int(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_17as_int(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_17get_name_segments(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_17get_name_segments(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("as_int (wrapper)", 0); - __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_16as_int(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self)); + __Pyx_RefNannySetupContext("get_name_segments (wrapper)", 0); + __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_16get_name_segments(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_16as_int(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self) { +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_16get_name_segments(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_name_segments", 0); + + /* "dependency_injector/providers.pyx":1162 + * + * def get_name_segments(self): + * return self.__name # <<<<<<<<<<<<<< + * + * def as_int(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->__pyx___name); + __pyx_r = __pyx_v_self->__pyx___name; + goto __pyx_L0; + + /* "dependency_injector/providers.pyx":1161 + * return '.'.join((root.get_name(), self._get_self_name())) + * + * def get_name_segments(self): # <<<<<<<<<<<<<< + * return self.__name + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "dependency_injector/providers.pyx":1164 + * return self.__name + * + * def as_int(self): # <<<<<<<<<<<<<< + * return TypedConfigurationOption(int, self) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_19as_int(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_19as_int(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("as_int (wrapper)", 0); + __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_18as_int(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_18as_int(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -23354,15 +23625,15 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption int __pyx_clineno = 0; __Pyx_RefNannySetupContext("as_int", 0); - /* "dependency_injector/providers.pyx":1147 + /* "dependency_injector/providers.pyx":1165 * * def as_int(self): - * return Callable(int, self) # <<<<<<<<<<<<<< + * return TypedConfigurationOption(int, self) # <<<<<<<<<<<<<< * * def as_float(self): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1147, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)(&PyInt_Type))); __Pyx_GIVEREF(((PyObject *)(&PyInt_Type))); @@ -23370,18 +23641,18 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Callable), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1147, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_TypedConfigurationOption), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1146 - * return '.'.join((root.get_name(), self._get_self_name())) + /* "dependency_injector/providers.pyx":1164 + * return self.__name * * def as_int(self): # <<<<<<<<<<<<<< - * return Callable(int, self) + * return TypedConfigurationOption(int, self) * */ @@ -23397,28 +23668,28 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption return __pyx_r; } -/* "dependency_injector/providers.pyx":1149 - * return Callable(int, self) +/* "dependency_injector/providers.pyx":1167 + * return TypedConfigurationOption(int, self) * * def as_float(self): # <<<<<<<<<<<<<< - * return Callable(float, self) + * return TypedConfigurationOption(float, self) * */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_19as_float(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_19as_float(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_21as_float(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_21as_float(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("as_float (wrapper)", 0); - __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_18as_float(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self)); + __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_20as_float(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_18as_float(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self) { +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_20as_float(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -23428,15 +23699,15 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption int __pyx_clineno = 0; __Pyx_RefNannySetupContext("as_float", 0); - /* "dependency_injector/providers.pyx":1150 + /* "dependency_injector/providers.pyx":1168 * * def as_float(self): - * return Callable(float, self) # <<<<<<<<<<<<<< + * return TypedConfigurationOption(float, self) # <<<<<<<<<<<<<< * * def as_(self, callback, *args, **kwargs): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1150, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)(&PyFloat_Type))); __Pyx_GIVEREF(((PyObject *)(&PyFloat_Type))); @@ -23444,18 +23715,18 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Callable), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1150, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_TypedConfigurationOption), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1149 - * return Callable(int, self) + /* "dependency_injector/providers.pyx":1167 + * return TypedConfigurationOption(int, self) * * def as_float(self): # <<<<<<<<<<<<<< - * return Callable(float, self) + * return TypedConfigurationOption(float, self) * */ @@ -23471,17 +23742,17 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption return __pyx_r; } -/* "dependency_injector/providers.pyx":1152 - * return Callable(float, self) +/* "dependency_injector/providers.pyx":1170 + * return TypedConfigurationOption(float, self) * * def as_(self, callback, *args, **kwargs): # <<<<<<<<<<<<<< - * return Callable(callback, self, *args, **kwargs) + * return TypedConfigurationOption(callback, self, *args, **kwargs) * */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_21as_(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_21as_(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_23as_(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_23as_(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_callback = 0; PyObject *__pyx_v_args = 0; PyObject *__pyx_v_kwargs = 0; @@ -23524,7 +23795,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption } if (unlikely(kw_args > 0)) { const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "as_") < 0)) __PYX_ERR(1, 1152, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "as_") < 0)) __PYX_ERR(1, 1170, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) < 1) { goto __pyx_L5_argtuple_error; @@ -23535,7 +23806,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("as_", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1152, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("as_", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1170, __pyx_L3_error) __pyx_L3_error:; __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; @@ -23543,7 +23814,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_20as_(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self), __pyx_v_callback, __pyx_v_args, __pyx_v_kwargs); + __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_22as_(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self), __pyx_v_callback, __pyx_v_args, __pyx_v_kwargs); /* function exit code */ __Pyx_XDECREF(__pyx_v_args); @@ -23552,7 +23823,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_20as_(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_callback, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) { +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_22as_(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_callback, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -23562,15 +23833,15 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption int __pyx_clineno = 0; __Pyx_RefNannySetupContext("as_", 0); - /* "dependency_injector/providers.pyx":1153 + /* "dependency_injector/providers.pyx":1171 * * def as_(self, callback, *args, **kwargs): - * return Callable(callback, self, *args, **kwargs) # <<<<<<<<<<<<<< + * return TypedConfigurationOption(callback, self, *args, **kwargs) # <<<<<<<<<<<<<< * * def override(self, value): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1153, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_callback); __Pyx_GIVEREF(__pyx_v_callback); @@ -23578,21 +23849,21 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_v_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1153, __pyx_L1_error) + __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_v_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Callable), __pyx_t_2, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1153, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_TypedConfigurationOption), __pyx_t_2, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1152 - * return Callable(float, self) + /* "dependency_injector/providers.pyx":1170 + * return TypedConfigurationOption(float, self) * * def as_(self, callback, *args, **kwargs): # <<<<<<<<<<<<<< - * return Callable(callback, self, *args, **kwargs) + * return TypedConfigurationOption(callback, self, *args, **kwargs) * */ @@ -23608,8 +23879,8 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption return __pyx_r; } -/* "dependency_injector/providers.pyx":1155 - * return Callable(callback, self, *args, **kwargs) +/* "dependency_injector/providers.pyx":1173 + * return TypedConfigurationOption(callback, self, *args, **kwargs) * * def override(self, value): # <<<<<<<<<<<<<< * if isinstance(value, Provider): @@ -23617,19 +23888,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_23override(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_23override(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_25override(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_25override(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("override (wrapper)", 0); - __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_22override(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_24override(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_22override(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_value) { +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_24override(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_value) { PyObject *__pyx_v_root = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -23646,7 +23917,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption int __pyx_clineno = 0; __Pyx_RefNannySetupContext("override", 0); - /* "dependency_injector/providers.pyx":1156 + /* "dependency_injector/providers.pyx":1174 * * def override(self, value): * if isinstance(value, Provider): # <<<<<<<<<<<<<< @@ -23657,14 +23928,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_t_2 = (__pyx_t_1 != 0); if (unlikely(__pyx_t_2)) { - /* "dependency_injector/providers.pyx":1157 + /* "dependency_injector/providers.pyx":1175 * def override(self, value): * if isinstance(value, Provider): * raise Error('Configuration option can only be overridden by a value') # <<<<<<<<<<<<<< * root = self.__root_ref() * return root.set(self._get_self_name(), value) */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1157, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -23678,14 +23949,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_kp_s_Configuration_option_can_only_be) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_s_Configuration_option_can_only_be); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1157, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 1157, __pyx_L1_error) + __PYX_ERR(1, 1175, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1156 + /* "dependency_injector/providers.pyx":1174 * * def override(self, value): * if isinstance(value, Provider): # <<<<<<<<<<<<<< @@ -23694,7 +23965,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ } - /* "dependency_injector/providers.pyx":1158 + /* "dependency_injector/providers.pyx":1176 * if isinstance(value, Provider): * raise Error('Configuration option can only be overridden by a value') * root = self.__root_ref() # <<<<<<<<<<<<<< @@ -23714,13 +23985,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1158, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_root = __pyx_t_3; __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":1159 + /* "dependency_injector/providers.pyx":1177 * raise Error('Configuration option can only be overridden by a value') * root = self.__root_ref() * return root.set(self._get_self_name(), value) # <<<<<<<<<<<<<< @@ -23728,9 +23999,9 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption * def reset_last_overriding(self): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s_set); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1159, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s_set); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_self_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1159, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_self_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { @@ -23744,7 +24015,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1159, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -23762,7 +24033,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_5, __pyx_v_value}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1159, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1177, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -23771,14 +24042,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_5, __pyx_v_value}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1159, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1177, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { - __pyx_t_7 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1159, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; @@ -23789,7 +24060,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_v_value); __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1159, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } @@ -23798,8 +24069,8 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_t_3 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1155 - * return Callable(callback, self, *args, **kwargs) + /* "dependency_injector/providers.pyx":1173 + * return TypedConfigurationOption(callback, self, *args, **kwargs) * * def override(self, value): # <<<<<<<<<<<<<< * if isinstance(value, Provider): @@ -23822,7 +24093,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption return __pyx_r; } -/* "dependency_injector/providers.pyx":1161 +/* "dependency_injector/providers.pyx":1179 * return root.set(self._get_self_name(), value) * * def reset_last_overriding(self): # <<<<<<<<<<<<<< @@ -23831,19 +24102,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_25reset_last_overriding(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_25reset_last_overriding(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_27reset_last_overriding(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_27reset_last_overriding(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("reset_last_overriding (wrapper)", 0); - __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_24reset_last_overriding(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self)); + __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_26reset_last_overriding(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_24reset_last_overriding(CYTHON_UNUSED struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self) { +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_26reset_last_overriding(CYTHON_UNUSED struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -23854,14 +24125,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption int __pyx_clineno = 0; __Pyx_RefNannySetupContext("reset_last_overriding", 0); - /* "dependency_injector/providers.pyx":1162 + /* "dependency_injector/providers.pyx":1180 * * def reset_last_overriding(self): * raise Error('Configuration option does not support this method') # <<<<<<<<<<<<<< * * def reset_override(self): */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Error); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1162, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Error); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { @@ -23875,14 +24146,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_s_Configuration_option_does_not_su) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_s_Configuration_option_does_not_su); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1162, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 1162, __pyx_L1_error) + __PYX_ERR(1, 1180, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1161 + /* "dependency_injector/providers.pyx":1179 * return root.set(self._get_self_name(), value) * * def reset_last_overriding(self): # <<<<<<<<<<<<<< @@ -23902,7 +24173,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption return __pyx_r; } -/* "dependency_injector/providers.pyx":1164 +/* "dependency_injector/providers.pyx":1182 * raise Error('Configuration option does not support this method') * * def reset_override(self): # <<<<<<<<<<<<<< @@ -23911,19 +24182,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_27reset_override(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_27reset_override(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_29reset_override(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_29reset_override(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("reset_override (wrapper)", 0); - __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_26reset_override(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self)); + __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_28reset_override(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_26reset_override(CYTHON_UNUSED struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self) { +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_28reset_override(CYTHON_UNUSED struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -23934,14 +24205,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption int __pyx_clineno = 0; __Pyx_RefNannySetupContext("reset_override", 0); - /* "dependency_injector/providers.pyx":1165 + /* "dependency_injector/providers.pyx":1183 * * def reset_override(self): * raise Error('Configuration option does not support this method') # <<<<<<<<<<<<<< * * def reset_cache(self): */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Error); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1165, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Error); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { @@ -23955,14 +24226,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_s_Configuration_option_does_not_su) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_s_Configuration_option_does_not_su); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1165, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 1165, __pyx_L1_error) + __PYX_ERR(1, 1183, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1164 + /* "dependency_injector/providers.pyx":1182 * raise Error('Configuration option does not support this method') * * def reset_override(self): # <<<<<<<<<<<<<< @@ -23982,7 +24253,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption return __pyx_r; } -/* "dependency_injector/providers.pyx":1167 +/* "dependency_injector/providers.pyx":1185 * raise Error('Configuration option does not support this method') * * def reset_cache(self): # <<<<<<<<<<<<<< @@ -23991,19 +24262,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_29reset_cache(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_29reset_cache(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_31reset_cache(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_31reset_cache(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("reset_cache (wrapper)", 0); - __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_28reset_cache(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self)); + __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_30reset_cache(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_28reset_cache(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self) { +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_30reset_cache(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self) { PyObject *__pyx_v_child = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -24018,14 +24289,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption int __pyx_clineno = 0; __Pyx_RefNannySetupContext("reset_cache", 0); - /* "dependency_injector/providers.pyx":1168 + /* "dependency_injector/providers.pyx":1186 * * def reset_cache(self): * self.__cache = self.UNDEFINED # <<<<<<<<<<<<<< * for child in self.__children.values(): * child.reset_cache() */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_UNDEFINED); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1168, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_UNDEFINED); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->__pyx___cache); @@ -24033,7 +24304,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_v_self->__pyx___cache = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1169 + /* "dependency_injector/providers.pyx":1187 * def reset_cache(self): * self.__cache = self.UNDEFINED * for child in self.__children.values(): # <<<<<<<<<<<<<< @@ -24042,17 +24313,17 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ if (unlikely(__pyx_v_self->__pyx___children == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values"); - __PYX_ERR(1, 1169, __pyx_L1_error) + __PYX_ERR(1, 1187, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_self->__pyx___children); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1169, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_self->__pyx___children); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { - __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1169, __pyx_L1_error) + __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1169, __pyx_L1_error) + __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1187, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -24060,17 +24331,17 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 1169, __pyx_L1_error) + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 1187, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1169, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 1169, __pyx_L1_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 1187, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1169, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } @@ -24080,7 +24351,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(1, 1169, __pyx_L1_error) + else __PYX_ERR(1, 1187, __pyx_L1_error) } break; } @@ -24089,14 +24360,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_XDECREF_SET(__pyx_v_child, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1170 + /* "dependency_injector/providers.pyx":1188 * self.__cache = self.UNDEFINED * for child in self.__children.values(): * child.reset_cache() # <<<<<<<<<<<<<< * * def update(self, value): */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_child, __pyx_n_s_reset_cache); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1170, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_child, __pyx_n_s_reset_cache); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { @@ -24110,12 +24381,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1170, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1169 + /* "dependency_injector/providers.pyx":1187 * def reset_cache(self): * self.__cache = self.UNDEFINED * for child in self.__children.values(): # <<<<<<<<<<<<<< @@ -24125,7 +24396,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1167 + /* "dependency_injector/providers.pyx":1185 * raise Error('Configuration option does not support this method') * * def reset_cache(self): # <<<<<<<<<<<<<< @@ -24150,7 +24421,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption return __pyx_r; } -/* "dependency_injector/providers.pyx":1172 +/* "dependency_injector/providers.pyx":1190 * child.reset_cache() * * def update(self, value): # <<<<<<<<<<<<<< @@ -24159,20 +24430,20 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_31update(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ -static char __pyx_doc_19dependency_injector_9providers_19ConfigurationOption_30update[] = "Set configuration options.\n\n .. deprecated:: 3.11\n\n Use :py:meth:`Configuration.override` instead.\n\n :param value: Value of configuration option.\n :type value: object | dict\n\n :rtype: None\n "; -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_31update(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_33update(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static char __pyx_doc_19dependency_injector_9providers_19ConfigurationOption_32update[] = "Set configuration options.\n\n .. deprecated:: 3.11\n\n Use :py:meth:`Configuration.override` instead.\n\n :param value: Value of configuration option.\n :type value: object | dict\n\n :rtype: None\n "; +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_33update(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("update (wrapper)", 0); - __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_30update(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_32update(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_30update(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_value) { +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_32update(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_value) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -24183,14 +24454,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption int __pyx_clineno = 0; __Pyx_RefNannySetupContext("update", 0); - /* "dependency_injector/providers.pyx":1184 + /* "dependency_injector/providers.pyx":1202 * :rtype: None * """ * self.override(value) # <<<<<<<<<<<<<< * * def from_ini(self, filepath): */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1184, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -24204,12 +24475,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1184, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1172 + /* "dependency_injector/providers.pyx":1190 * child.reset_cache() * * def update(self, value): # <<<<<<<<<<<<<< @@ -24232,7 +24503,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption return __pyx_r; } -/* "dependency_injector/providers.pyx":1186 +/* "dependency_injector/providers.pyx":1204 * self.override(value) * * def from_ini(self, filepath): # <<<<<<<<<<<<<< @@ -24241,20 +24512,20 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_33from_ini(PyObject *__pyx_v_self, PyObject *__pyx_v_filepath); /*proto*/ -static char __pyx_doc_19dependency_injector_9providers_19ConfigurationOption_32from_ini[] = "Load configuration from the ini file.\n\n Loaded configuration is merged recursively over existing configuration.\n\n :param filepath: Path to the configuration file.\n :type filepath: str\n\n :rtype: None\n "; -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_33from_ini(PyObject *__pyx_v_self, PyObject *__pyx_v_filepath) { +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_35from_ini(PyObject *__pyx_v_self, PyObject *__pyx_v_filepath); /*proto*/ +static char __pyx_doc_19dependency_injector_9providers_19ConfigurationOption_34from_ini[] = "Load configuration from the ini file.\n\n Loaded configuration is merged recursively over existing configuration.\n\n :param filepath: Path to the configuration file.\n :type filepath: str\n\n :rtype: None\n "; +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_35from_ini(PyObject *__pyx_v_self, PyObject *__pyx_v_filepath) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("from_ini (wrapper)", 0); - __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_32from_ini(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self), ((PyObject *)__pyx_v_filepath)); + __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_34from_ini(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self), ((PyObject *)__pyx_v_filepath)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_32from_ini(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_filepath) { +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_34from_ini(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_filepath) { PyObject *__pyx_v_parser = NULL; PyObject *__pyx_v_config = NULL; PyObject *__pyx_v_section = NULL; @@ -24277,14 +24548,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption int __pyx_clineno = 0; __Pyx_RefNannySetupContext("from_ini", 0); - /* "dependency_injector/providers.pyx":1196 + /* "dependency_injector/providers.pyx":1214 * :rtype: None * """ * parser = _parse_ini_file(filepath) # <<<<<<<<<<<<<< * * config = {} */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_parse_ini_file); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1196, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_parse_ini_file); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { @@ -24298,32 +24569,32 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_filepath) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_filepath); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1196, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_parser = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1198 + /* "dependency_injector/providers.pyx":1216 * parser = _parse_ini_file(filepath) * * config = {} # <<<<<<<<<<<<<< * for section in parser.sections(): * config[section] = dict(parser.items(section)) */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1198, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_config = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1199 + /* "dependency_injector/providers.pyx":1217 * * config = {} * for section in parser.sections(): # <<<<<<<<<<<<<< * config[section] = dict(parser.items(section)) * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_parser, __pyx_n_s_sections); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1199, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_parser, __pyx_n_s_sections); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -24337,16 +24608,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1199, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { - __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1199, __pyx_L1_error) + __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1199, __pyx_L1_error) + __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1217, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -24354,17 +24625,17 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 1199, __pyx_L1_error) + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 1217, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1199, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 1199, __pyx_L1_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 1217, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1199, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } @@ -24374,7 +24645,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(1, 1199, __pyx_L1_error) + else __PYX_ERR(1, 1217, __pyx_L1_error) } break; } @@ -24383,14 +24654,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_XDECREF_SET(__pyx_v_section, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1200 + /* "dependency_injector/providers.pyx":1218 * config = {} * for section in parser.sections(): * config[section] = dict(parser.items(section)) # <<<<<<<<<<<<<< * * current_config = self.__call__() */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parser, __pyx_n_s_items); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1200, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parser, __pyx_n_s_items); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -24404,16 +24675,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_v_section) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_section); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1200, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1200, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(PyDict_SetItem(__pyx_v_config, __pyx_v_section, __pyx_t_3) < 0)) __PYX_ERR(1, 1200, __pyx_L1_error) + if (unlikely(PyDict_SetItem(__pyx_v_config, __pyx_v_section, __pyx_t_3) < 0)) __PYX_ERR(1, 1218, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":1199 + /* "dependency_injector/providers.pyx":1217 * * config = {} * for section in parser.sections(): # <<<<<<<<<<<<<< @@ -24423,14 +24694,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1202 + /* "dependency_injector/providers.pyx":1220 * config[section] = dict(parser.items(section)) * * current_config = self.__call__() # <<<<<<<<<<<<<< * if not current_config: * current_config = {} */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_call); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1202, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_call); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -24444,36 +24715,36 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1202, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_current_config = __pyx_t_2; __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1203 + /* "dependency_injector/providers.pyx":1221 * * current_config = self.__call__() * if not current_config: # <<<<<<<<<<<<<< * current_config = {} * self.override(merge_dicts(current_config, config)) */ - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_current_config); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 1203, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_current_config); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 1221, __pyx_L1_error) __pyx_t_8 = ((!__pyx_t_7) != 0); if (__pyx_t_8) { - /* "dependency_injector/providers.pyx":1204 + /* "dependency_injector/providers.pyx":1222 * current_config = self.__call__() * if not current_config: * current_config = {} # <<<<<<<<<<<<<< * self.override(merge_dicts(current_config, config)) * */ - __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1204, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF_SET(__pyx_v_current_config, __pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1203 + /* "dependency_injector/providers.pyx":1221 * * current_config = self.__call__() * if not current_config: # <<<<<<<<<<<<<< @@ -24482,16 +24753,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ } - /* "dependency_injector/providers.pyx":1205 + /* "dependency_injector/providers.pyx":1223 * if not current_config: * current_config = {} * self.override(merge_dicts(current_config, config)) # <<<<<<<<<<<<<< * * def from_yaml(self, filepath): */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1205, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_merge_dicts); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1205, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_merge_dicts); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = NULL; __pyx_t_10 = 0; @@ -24508,7 +24779,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_current_config, __pyx_v_config}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1205, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1223, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -24516,13 +24787,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_current_config, __pyx_v_config}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1205, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1223, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_11 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1205, __pyx_L1_error) + __pyx_t_11 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; @@ -24533,7 +24804,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_INCREF(__pyx_v_config); __Pyx_GIVEREF(__pyx_v_config); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_v_config); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1205, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } @@ -24551,12 +24822,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1205, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1186 + /* "dependency_injector/providers.pyx":1204 * self.override(value) * * def from_ini(self, filepath): # <<<<<<<<<<<<<< @@ -24586,7 +24857,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption return __pyx_r; } -/* "dependency_injector/providers.pyx":1207 +/* "dependency_injector/providers.pyx":1225 * self.override(merge_dicts(current_config, config)) * * def from_yaml(self, filepath): # <<<<<<<<<<<<<< @@ -24595,20 +24866,20 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_35from_yaml(PyObject *__pyx_v_self, PyObject *__pyx_v_filepath); /*proto*/ -static char __pyx_doc_19dependency_injector_9providers_19ConfigurationOption_34from_yaml[] = "Load configuration from the yaml file.\n\n Loaded configuration is merged recursively over existing configuration.\n\n :param filepath: Path to the configuration file.\n :type filepath: str\n\n :rtype: None\n "; -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_35from_yaml(PyObject *__pyx_v_self, PyObject *__pyx_v_filepath) { +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_37from_yaml(PyObject *__pyx_v_self, PyObject *__pyx_v_filepath); /*proto*/ +static char __pyx_doc_19dependency_injector_9providers_19ConfigurationOption_36from_yaml[] = "Load configuration from the yaml file.\n\n Loaded configuration is merged recursively over existing configuration.\n\n :param filepath: Path to the configuration file.\n :type filepath: str\n\n :rtype: None\n "; +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_37from_yaml(PyObject *__pyx_v_self, PyObject *__pyx_v_filepath) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("from_yaml (wrapper)", 0); - __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_34from_yaml(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self), ((PyObject *)__pyx_v_filepath)); + __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_36from_yaml(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self), ((PyObject *)__pyx_v_filepath)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_34from_yaml(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_filepath) { +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_36from_yaml(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_filepath) { PyObject *__pyx_v_opened_file = NULL; PyObject *__pyx_v_config = NULL; PyObject *__pyx_v_current_config = NULL; @@ -24636,28 +24907,28 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption int __pyx_clineno = 0; __Pyx_RefNannySetupContext("from_yaml", 0); - /* "dependency_injector/providers.pyx":1217 + /* "dependency_injector/providers.pyx":1235 * :rtype: None * """ * if yaml is None: # <<<<<<<<<<<<<< * raise Error( * 'Unable to load yaml configuration - PyYAML is not installed. ' */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1217, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__pyx_t_1 == Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_t_2 != 0); if (unlikely(__pyx_t_3)) { - /* "dependency_injector/providers.pyx":1218 + /* "dependency_injector/providers.pyx":1236 * """ * if yaml is None: * raise Error( # <<<<<<<<<<<<<< * 'Unable to load yaml configuration - PyYAML is not installed. ' * 'Install PyYAML or install Dependency Injector with yaml extras: ' */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1218, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -24671,14 +24942,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_kp_s_Unable_to_load_yaml_configuratio) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_s_Unable_to_load_yaml_configuratio); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1218, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 1218, __pyx_L1_error) + __PYX_ERR(1, 1236, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1217 + /* "dependency_injector/providers.pyx":1235 * :rtype: None * """ * if yaml is None: # <<<<<<<<<<<<<< @@ -24687,7 +24958,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ } - /* "dependency_injector/providers.pyx":1224 + /* "dependency_injector/providers.pyx":1242 * ) * * try: # <<<<<<<<<<<<<< @@ -24703,7 +24974,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_XGOTREF(__pyx_t_8); /*try:*/ { - /* "dependency_injector/providers.pyx":1225 + /* "dependency_injector/providers.pyx":1243 * * try: * with open(filepath) as opened_file: # <<<<<<<<<<<<<< @@ -24711,11 +24982,11 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption * except IOError: */ /*with:*/ { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_open, __pyx_v_filepath); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1225, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_open, __pyx_v_filepath); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1243, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1225, __pyx_L4_error) + __pyx_t_9 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1243, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1225, __pyx_L10_error) + __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1243, __pyx_L10_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { @@ -24729,7 +25000,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1225, __pyx_L10_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1243, __pyx_L10_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_t_4; @@ -24747,21 +25018,21 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_v_opened_file = __pyx_t_5; __pyx_t_5 = 0; - /* "dependency_injector/providers.pyx":1226 + /* "dependency_injector/providers.pyx":1244 * try: * with open(filepath) as opened_file: * config = yaml.load(opened_file, yaml.Loader) # <<<<<<<<<<<<<< * except IOError: * return */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1226, __pyx_L14_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1244, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_load); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1226, __pyx_L14_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_load); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1244, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1226, __pyx_L14_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1244, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Loader); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1226, __pyx_L14_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Loader); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1244, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; @@ -24779,7 +25050,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_opened_file, __pyx_t_10}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1226, __pyx_L14_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1244, __pyx_L14_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; @@ -24788,14 +25059,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_opened_file, __pyx_t_10}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1226, __pyx_L14_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1244, __pyx_L14_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif { - __pyx_t_15 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 1226, __pyx_L14_error) + __pyx_t_15 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 1244, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_1); __pyx_t_1 = NULL; @@ -24806,7 +25077,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_14, __pyx_t_10); __pyx_t_10 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1226, __pyx_L14_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1244, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } @@ -24814,7 +25085,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_v_config = __pyx_t_5; __pyx_t_5 = 0; - /* "dependency_injector/providers.pyx":1225 + /* "dependency_injector/providers.pyx":1243 * * try: * with open(filepath) as opened_file: # <<<<<<<<<<<<<< @@ -24834,20 +25105,20 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; /*except:*/ { __Pyx_AddTraceback("dependency_injector.providers.ConfigurationOption.from_yaml", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_15) < 0) __PYX_ERR(1, 1225, __pyx_L16_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_15) < 0) __PYX_ERR(1, 1243, __pyx_L16_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_15); - __pyx_t_10 = PyTuple_Pack(3, __pyx_t_5, __pyx_t_4, __pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1225, __pyx_L16_except_error) + __pyx_t_10 = PyTuple_Pack(3, __pyx_t_5, __pyx_t_4, __pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1243, __pyx_L16_except_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_10, NULL); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 1225, __pyx_L16_except_error) + if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 1243, __pyx_L16_except_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_16); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (__pyx_t_3 < 0) __PYX_ERR(1, 1225, __pyx_L16_except_error) + if (__pyx_t_3 < 0) __PYX_ERR(1, 1243, __pyx_L16_except_error) __pyx_t_2 = ((!(__pyx_t_3 != 0)) != 0); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_5); @@ -24855,7 +25126,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestoreWithState(__pyx_t_5, __pyx_t_4, __pyx_t_15); __pyx_t_5 = 0; __pyx_t_4 = 0; __pyx_t_15 = 0; - __PYX_ERR(1, 1225, __pyx_L16_except_error) + __PYX_ERR(1, 1243, __pyx_L16_except_error) } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -24881,7 +25152,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption if (__pyx_t_9) { __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_tuple__2, NULL); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1225, __pyx_L4_error) + if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1243, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } @@ -24896,7 +25167,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_L23:; } - /* "dependency_injector/providers.pyx":1224 + /* "dependency_injector/providers.pyx":1242 * ) * * try: # <<<<<<<<<<<<<< @@ -24915,7 +25186,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/providers.pyx":1227 + /* "dependency_injector/providers.pyx":1245 * with open(filepath) as opened_file: * config = yaml.load(opened_file, yaml.Loader) * except IOError: # <<<<<<<<<<<<<< @@ -24925,12 +25196,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_t_14 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_IOError); if (__pyx_t_14) { __Pyx_AddTraceback("dependency_injector.providers.ConfigurationOption.from_yaml", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_15, &__pyx_t_4, &__pyx_t_5) < 0) __PYX_ERR(1, 1227, __pyx_L6_except_error) + if (__Pyx_GetException(&__pyx_t_15, &__pyx_t_4, &__pyx_t_5) < 0) __PYX_ERR(1, 1245, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_5); - /* "dependency_injector/providers.pyx":1228 + /* "dependency_injector/providers.pyx":1246 * config = yaml.load(opened_file, yaml.Loader) * except IOError: * return # <<<<<<<<<<<<<< @@ -24947,7 +25218,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption goto __pyx_L6_except_error; __pyx_L6_except_error:; - /* "dependency_injector/providers.pyx":1224 + /* "dependency_injector/providers.pyx":1242 * ) * * try: # <<<<<<<<<<<<<< @@ -24968,14 +25239,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_L9_try_end:; } - /* "dependency_injector/providers.pyx":1230 + /* "dependency_injector/providers.pyx":1248 * return * * current_config = self.__call__() # <<<<<<<<<<<<<< * if not current_config: * current_config = {} */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_call); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1230, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_call); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { @@ -24989,36 +25260,36 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_5 = (__pyx_t_15) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_15) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1230, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_current_config = __pyx_t_5; __pyx_t_5 = 0; - /* "dependency_injector/providers.pyx":1231 + /* "dependency_injector/providers.pyx":1249 * * current_config = self.__call__() * if not current_config: # <<<<<<<<<<<<<< * current_config = {} * self.override(merge_dicts(current_config, config)) */ - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_current_config); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 1231, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_current_config); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 1249, __pyx_L1_error) __pyx_t_3 = ((!__pyx_t_2) != 0); if (__pyx_t_3) { - /* "dependency_injector/providers.pyx":1232 + /* "dependency_injector/providers.pyx":1250 * current_config = self.__call__() * if not current_config: * current_config = {} # <<<<<<<<<<<<<< * self.override(merge_dicts(current_config, config)) * */ - __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1232, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF_SET(__pyx_v_current_config, __pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/providers.pyx":1231 + /* "dependency_injector/providers.pyx":1249 * * current_config = self.__call__() * if not current_config: # <<<<<<<<<<<<<< @@ -25027,18 +25298,18 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ } - /* "dependency_injector/providers.pyx":1233 + /* "dependency_injector/providers.pyx":1251 * if not current_config: * current_config = {} * self.override(merge_dicts(current_config, config)) # <<<<<<<<<<<<<< * * def from_dict(self, options): */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1233, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_merge_dicts); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1233, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_merge_dicts); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - if (unlikely(!__pyx_v_config)) { __Pyx_RaiseUnboundLocalError("config"); __PYX_ERR(1, 1233, __pyx_L1_error) } + if (unlikely(!__pyx_v_config)) { __Pyx_RaiseUnboundLocalError("config"); __PYX_ERR(1, 1251, __pyx_L1_error) } __pyx_t_1 = NULL; __pyx_t_14 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { @@ -25054,7 +25325,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_current_config, __pyx_v_config}; - __pyx_t_15 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 1233, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 1251, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_15); } else @@ -25062,13 +25333,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_current_config, __pyx_v_config}; - __pyx_t_15 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 1233, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 1251, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_15); } else #endif { - __pyx_t_17 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 1233, __pyx_L1_error) + __pyx_t_17 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 1251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_1); __pyx_t_1 = NULL; @@ -25079,7 +25350,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_INCREF(__pyx_v_config); __Pyx_GIVEREF(__pyx_v_config); PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_14, __pyx_v_config); - __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_17, NULL); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 1233, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_17, NULL); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 1251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; } @@ -25097,12 +25368,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_t_5 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_10, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_15); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1233, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/providers.pyx":1207 + /* "dependency_injector/providers.pyx":1225 * self.override(merge_dicts(current_config, config)) * * def from_yaml(self, filepath): # <<<<<<<<<<<<<< @@ -25131,7 +25402,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption return __pyx_r; } -/* "dependency_injector/providers.pyx":1235 +/* "dependency_injector/providers.pyx":1253 * self.override(merge_dicts(current_config, config)) * * def from_dict(self, options): # <<<<<<<<<<<<<< @@ -25140,20 +25411,20 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_37from_dict(PyObject *__pyx_v_self, PyObject *__pyx_v_options); /*proto*/ -static char __pyx_doc_19dependency_injector_9providers_19ConfigurationOption_36from_dict[] = "Load configuration from the dictionary.\n\n Loaded configuration is merged recursively over existing configuration.\n\n :param options: Configuration options.\n :type options: dict\n\n :rtype: None\n "; -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_37from_dict(PyObject *__pyx_v_self, PyObject *__pyx_v_options) { +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_39from_dict(PyObject *__pyx_v_self, PyObject *__pyx_v_options); /*proto*/ +static char __pyx_doc_19dependency_injector_9providers_19ConfigurationOption_38from_dict[] = "Load configuration from the dictionary.\n\n Loaded configuration is merged recursively over existing configuration.\n\n :param options: Configuration options.\n :type options: dict\n\n :rtype: None\n "; +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_39from_dict(PyObject *__pyx_v_self, PyObject *__pyx_v_options) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("from_dict (wrapper)", 0); - __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_36from_dict(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self), ((PyObject *)__pyx_v_options)); + __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_38from_dict(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self), ((PyObject *)__pyx_v_options)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_36from_dict(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_options) { +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_38from_dict(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_options) { PyObject *__pyx_v_current_config = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -25171,14 +25442,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption int __pyx_clineno = 0; __Pyx_RefNannySetupContext("from_dict", 0); - /* "dependency_injector/providers.pyx":1245 + /* "dependency_injector/providers.pyx":1263 * :rtype: None * """ * current_config = self.__call__() # <<<<<<<<<<<<<< * if not current_config: * current_config = {} */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_call); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1245, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_call); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -25192,36 +25463,36 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1245, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_current_config = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1246 + /* "dependency_injector/providers.pyx":1264 * """ * current_config = self.__call__() * if not current_config: # <<<<<<<<<<<<<< * current_config = {} * self.override(merge_dicts(current_config, options)) */ - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_current_config); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1246, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_current_config); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1264, __pyx_L1_error) __pyx_t_5 = ((!__pyx_t_4) != 0); if (__pyx_t_5) { - /* "dependency_injector/providers.pyx":1247 + /* "dependency_injector/providers.pyx":1265 * current_config = self.__call__() * if not current_config: * current_config = {} # <<<<<<<<<<<<<< * self.override(merge_dicts(current_config, options)) * */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1247, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_current_config, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1246 + /* "dependency_injector/providers.pyx":1264 * """ * current_config = self.__call__() * if not current_config: # <<<<<<<<<<<<<< @@ -25230,16 +25501,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ } - /* "dependency_injector/providers.pyx":1248 + /* "dependency_injector/providers.pyx":1266 * if not current_config: * current_config = {} * self.override(merge_dicts(current_config, options)) # <<<<<<<<<<<<<< * * def from_env(self, name, default=None): */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1248, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_merge_dicts); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1248, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_merge_dicts); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; @@ -25256,7 +25527,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_current_config, __pyx_v_options}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1248, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1266, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_3); } else @@ -25264,13 +25535,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_current_config, __pyx_v_options}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1248, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1266, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif { - __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1248, __pyx_L1_error) + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -25281,7 +25552,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_INCREF(__pyx_v_options); __Pyx_GIVEREF(__pyx_v_options); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_options); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1248, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } @@ -25299,12 +25570,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1248, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1235 + /* "dependency_injector/providers.pyx":1253 * self.override(merge_dicts(current_config, config)) * * def from_dict(self, options): # <<<<<<<<<<<<<< @@ -25331,7 +25602,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption return __pyx_r; } -/* "dependency_injector/providers.pyx":1250 +/* "dependency_injector/providers.pyx":1268 * self.override(merge_dicts(current_config, options)) * * def from_env(self, name, default=None): # <<<<<<<<<<<<<< @@ -25340,9 +25611,9 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_39from_env(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_19dependency_injector_9providers_19ConfigurationOption_38from_env[] = "Load configuration value from the environment variable.\n\n :param name: Name of the environment variable.\n :type name: str\n\n :param default: Default value that is used if environment variable does not exist.\n :type default: str\n\n :rtype: None\n "; -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_39from_env(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_41from_env(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_19dependency_injector_9providers_19ConfigurationOption_40from_env[] = "Load configuration value from the environment variable.\n\n :param name: Name of the environment variable.\n :type name: str\n\n :param default: Default value that is used if environment variable does not exist.\n :type default: str\n\n :rtype: None\n "; +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_41from_env(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_name = 0; PyObject *__pyx_v_default = 0; int __pyx_lineno = 0; @@ -25379,7 +25650,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "from_env") < 0)) __PYX_ERR(1, 1250, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "from_env") < 0)) __PYX_ERR(1, 1268, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -25395,20 +25666,20 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("from_env", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1250, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("from_env", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1268, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.ConfigurationOption.from_env", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_38from_env(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self), __pyx_v_name, __pyx_v_default); + __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_40from_env(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self), __pyx_v_name, __pyx_v_default); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_38from_env(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_default) { +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_40from_env(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_default) { PyObject *__pyx_v_value = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -25422,16 +25693,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption int __pyx_clineno = 0; __Pyx_RefNannySetupContext("from_env", 0); - /* "dependency_injector/providers.pyx":1261 + /* "dependency_injector/providers.pyx":1279 * :rtype: None * """ * value = os.getenv(name, default) # <<<<<<<<<<<<<< * self.override(value) * */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1261, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_getenv); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1261, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_getenv); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; @@ -25449,7 +25720,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_name, __pyx_v_default}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1261, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1279, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -25457,13 +25728,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_name, __pyx_v_default}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1261, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1279, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1261, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; @@ -25474,7 +25745,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __Pyx_INCREF(__pyx_v_default); __Pyx_GIVEREF(__pyx_v_default); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_default); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1261, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } @@ -25482,14 +25753,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption __pyx_v_value = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1262 + /* "dependency_injector/providers.pyx":1280 * """ * value = os.getenv(name, default) * self.override(value) # <<<<<<<<<<<<<< * * */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1262, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -25503,12 +25774,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_value); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1262, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1250 + /* "dependency_injector/providers.pyx":1268 * self.override(merge_dicts(current_config, options)) * * def from_env(self, name, default=None): # <<<<<<<<<<<<<< @@ -25540,19 +25811,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_41__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_41__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_43__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_43__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); - __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_40__reduce_cython__(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self)); + __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_42__reduce_cython__(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_40__reduce_cython__(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self) { +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_42__reduce_cython__(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self) { PyObject *__pyx_v_state = 0; PyObject *__pyx_v__dict = 0; int __pyx_v_use_setstate; @@ -25829,19 +26100,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_43__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ -static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_43__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_45__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_45__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); - __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_42__setstate_cython__(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); + __pyx_r = __pyx_pf_19dependency_injector_9providers_19ConfigurationOption_44__setstate_cython__(((struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_42__setstate_cython__(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption_44__setstate_cython__(struct __pyx_obj_19dependency_injector_9providers_ConfigurationOption *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -25880,7 +26151,422 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ConfigurationOption return __pyx_r; } -/* "dependency_injector/providers.pyx":1287 +/* "dependency_injector/providers.pyx":1286 + * + * @property + * def option(self): # <<<<<<<<<<<<<< + * return self.args[0] + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_9providers_24TypedConfigurationOption_6option_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_24TypedConfigurationOption_6option_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_19dependency_injector_9providers_24TypedConfigurationOption_6option___get__(((struct __pyx_obj_19dependency_injector_9providers_TypedConfigurationOption *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_9providers_24TypedConfigurationOption_6option___get__(struct __pyx_obj_19dependency_injector_9providers_TypedConfigurationOption *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "dependency_injector/providers.pyx":1287 + * @property + * def option(self): + * return self.args[0] # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "dependency_injector/providers.pyx":1286 + * + * @property + * def option(self): # <<<<<<<<<<<<<< + * return self.args[0] + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("dependency_injector.providers.TypedConfigurationOption.option.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * cdef tuple state + * cdef object _dict + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_9providers_24TypedConfigurationOption_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_24TypedConfigurationOption_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf_19dependency_injector_9providers_24TypedConfigurationOption___reduce_cython__(((struct __pyx_obj_19dependency_injector_9providers_TypedConfigurationOption *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_9providers_24TypedConfigurationOption___reduce_cython__(struct __pyx_obj_19dependency_injector_9providers_TypedConfigurationOption *__pyx_v_self) { + PyObject *__pyx_v_state = 0; + PyObject *__pyx_v__dict = 0; + int __pyx_v_use_setstate; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__reduce_cython__", 0); + + /* "(tree fragment)":5 + * cdef object _dict + * cdef bint use_setstate + * state = (self.__args, self.__args_len, self.__kwargs, self.__kwargs_len, self.__last_overriding, self.__overridden, self.__provides) # <<<<<<<<<<<<<< + * _dict = getattr(self, '__dict__', None) + * if _dict is not None: + */ + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->__pyx_base.__pyx___args_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->__pyx_base.__pyx___kwargs_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(7); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx___args); + __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx___args); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->__pyx_base.__pyx___args); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); + __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx___kwargs); + __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx___kwargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_self->__pyx_base.__pyx___kwargs); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_2); + __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx___last_overriding)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx___last_overriding)); + PyTuple_SET_ITEM(__pyx_t_3, 4, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx___last_overriding)); + __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.__pyx___overridden); + __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.__pyx___overridden); + PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_v_self->__pyx_base.__pyx_base.__pyx___overridden); + __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx___provides); + __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx___provides); + PyTuple_SET_ITEM(__pyx_t_3, 6, __pyx_v_self->__pyx_base.__pyx___provides); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_v_state = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "(tree fragment)":6 + * cdef bint use_setstate + * state = (self.__args, self.__args_len, self.__kwargs, self.__kwargs_len, self.__last_overriding, self.__overridden, self.__provides) + * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<< + * if _dict is not None: + * state += (_dict,) + */ + __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v__dict = __pyx_t_3; + __pyx_t_3 = 0; + + /* "(tree fragment)":7 + * state = (self.__args, self.__args_len, self.__kwargs, self.__kwargs_len, self.__last_overriding, self.__overridden, self.__provides) + * _dict = getattr(self, '__dict__', None) + * if _dict is not None: # <<<<<<<<<<<<<< + * state += (_dict,) + * use_setstate = True + */ + __pyx_t_4 = (__pyx_v__dict != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + + /* "(tree fragment)":8 + * _dict = getattr(self, '__dict__', None) + * if _dict is not None: + * state += (_dict,) # <<<<<<<<<<<<<< + * use_setstate = True + * else: + */ + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v__dict); + __Pyx_GIVEREF(__pyx_v__dict); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict); + __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2)); + __pyx_t_2 = 0; + + /* "(tree fragment)":9 + * if _dict is not None: + * state += (_dict,) + * use_setstate = True # <<<<<<<<<<<<<< + * else: + * use_setstate = self.__args is not None or self.__kwargs is not None or self.__last_overriding is not None or self.__overridden is not None or self.__provides is not None + */ + __pyx_v_use_setstate = 1; + + /* "(tree fragment)":7 + * state = (self.__args, self.__args_len, self.__kwargs, self.__kwargs_len, self.__last_overriding, self.__overridden, self.__provides) + * _dict = getattr(self, '__dict__', None) + * if _dict is not None: # <<<<<<<<<<<<<< + * state += (_dict,) + * use_setstate = True + */ + goto __pyx_L3; + } + + /* "(tree fragment)":11 + * use_setstate = True + * else: + * use_setstate = self.__args is not None or self.__kwargs is not None or self.__last_overriding is not None or self.__overridden is not None or self.__provides is not None # <<<<<<<<<<<<<< + * if use_setstate: + * return __pyx_unpickle_TypedConfigurationOption, (type(self), 0x03251dc, None), state + */ + /*else*/ { + __pyx_t_4 = (__pyx_v_self->__pyx_base.__pyx___args != ((PyObject*)Py_None)); + __pyx_t_6 = (__pyx_t_4 != 0); + if (!__pyx_t_6) { + } else { + __pyx_t_5 = __pyx_t_6; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_6 = (__pyx_v_self->__pyx_base.__pyx___kwargs != ((PyObject*)Py_None)); + __pyx_t_4 = (__pyx_t_6 != 0); + if (!__pyx_t_4) { + } else { + __pyx_t_5 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx___last_overriding) != Py_None); + __pyx_t_6 = (__pyx_t_4 != 0); + if (!__pyx_t_6) { + } else { + __pyx_t_5 = __pyx_t_6; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_6 = (__pyx_v_self->__pyx_base.__pyx_base.__pyx___overridden != ((PyObject*)Py_None)); + __pyx_t_4 = (__pyx_t_6 != 0); + if (!__pyx_t_4) { + } else { + __pyx_t_5 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = (__pyx_v_self->__pyx_base.__pyx___provides != Py_None); + __pyx_t_6 = (__pyx_t_4 != 0); + __pyx_t_5 = __pyx_t_6; + __pyx_L4_bool_binop_done:; + __pyx_v_use_setstate = __pyx_t_5; + } + __pyx_L3:; + + /* "(tree fragment)":12 + * else: + * use_setstate = self.__args is not None or self.__kwargs is not None or self.__last_overriding is not None or self.__overridden is not None or self.__provides is not None + * if use_setstate: # <<<<<<<<<<<<<< + * return __pyx_unpickle_TypedConfigurationOption, (type(self), 0x03251dc, None), state + * else: + */ + __pyx_t_5 = (__pyx_v_use_setstate != 0); + if (__pyx_t_5) { + + /* "(tree fragment)":13 + * use_setstate = self.__args is not None or self.__kwargs is not None or self.__last_overriding is not None or self.__overridden is not None or self.__provides is not None + * if use_setstate: + * return __pyx_unpickle_TypedConfigurationOption, (type(self), 0x03251dc, None), state # <<<<<<<<<<<<<< + * else: + * return __pyx_unpickle_TypedConfigurationOption, (type(self), 0x03251dc, state) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_TypedConfiguratio); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __Pyx_INCREF(__pyx_int_3297756); + __Pyx_GIVEREF(__pyx_int_3297756); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_3297756); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3); + __Pyx_INCREF(__pyx_v_state); + __Pyx_GIVEREF(__pyx_v_state); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "(tree fragment)":12 + * else: + * use_setstate = self.__args is not None or self.__kwargs is not None or self.__last_overriding is not None or self.__overridden is not None or self.__provides is not None + * if use_setstate: # <<<<<<<<<<<<<< + * return __pyx_unpickle_TypedConfigurationOption, (type(self), 0x03251dc, None), state + * else: + */ + } + + /* "(tree fragment)":15 + * return __pyx_unpickle_TypedConfigurationOption, (type(self), 0x03251dc, None), state + * else: + * return __pyx_unpickle_TypedConfigurationOption, (type(self), 0x03251dc, state) # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * __pyx_unpickle_TypedConfigurationOption__set_state(self, __pyx_state) + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_TypedConfiguratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __Pyx_INCREF(__pyx_int_3297756); + __Pyx_GIVEREF(__pyx_int_3297756); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_3297756); + __Pyx_INCREF(__pyx_v_state); + __Pyx_GIVEREF(__pyx_v_state); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state); + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + } + + /* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * cdef tuple state + * cdef object _dict + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("dependency_injector.providers.TypedConfigurationOption.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_state); + __Pyx_XDECREF(__pyx_v__dict); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":16 + * else: + * return __pyx_unpickle_TypedConfigurationOption, (type(self), 0x03251dc, state) + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * __pyx_unpickle_TypedConfigurationOption__set_state(self, __pyx_state) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_9providers_24TypedConfigurationOption_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_24TypedConfigurationOption_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf_19dependency_injector_9providers_24TypedConfigurationOption_2__setstate_cython__(((struct __pyx_obj_19dependency_injector_9providers_TypedConfigurationOption *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_9providers_24TypedConfigurationOption_2__setstate_cython__(struct __pyx_obj_19dependency_injector_9providers_TypedConfigurationOption *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__setstate_cython__", 0); + + /* "(tree fragment)":17 + * return __pyx_unpickle_TypedConfigurationOption, (type(self), 0x03251dc, state) + * def __setstate_cython__(self, __pyx_state): + * __pyx_unpickle_TypedConfigurationOption__set_state(self, __pyx_state) # <<<<<<<<<<<<<< + */ + if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(2, 17, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers___pyx_unpickle_TypedConfigurationOption__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "(tree fragment)":16 + * else: + * return __pyx_unpickle_TypedConfigurationOption, (type(self), 0x03251dc, state) + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * __pyx_unpickle_TypedConfigurationOption__set_state(self, __pyx_state) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("dependency_injector.providers.TypedConfigurationOption.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "dependency_injector/providers.pyx":1312 * DEFAULT_NAME = 'config' * * def __init__(self, name=DEFAULT_NAME, default=None): # <<<<<<<<<<<<<< @@ -25902,7 +26588,7 @@ static int __pyx_pw_19dependency_injector_9providers_13Configuration_1__init__(P { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name_2,&__pyx_n_s_default,0}; PyObject* values[2] = {0,0}; - values[0] = __pyx_k__6; + values[0] = __pyx_k__7; values[1] = ((PyObject *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; @@ -25930,7 +26616,7 @@ static int __pyx_pw_19dependency_injector_9providers_13Configuration_1__init__(P } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 1287, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 1312, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -25947,7 +26633,7 @@ static int __pyx_pw_19dependency_injector_9providers_13Configuration_1__init__(P } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1287, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1312, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.Configuration.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -25974,14 +26660,14 @@ static int __pyx_pf_19dependency_injector_9providers_13Configuration___init__(st int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":1288 + /* "dependency_injector/providers.pyx":1313 * * def __init__(self, name=DEFAULT_NAME, default=None): * self.__name = name # <<<<<<<<<<<<<< * * value = {} */ - if (!(likely(PyString_CheckExact(__pyx_v_name))||((__pyx_v_name) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_v_name)->tp_name), 0))) __PYX_ERR(1, 1288, __pyx_L1_error) + if (!(likely(PyString_CheckExact(__pyx_v_name))||((__pyx_v_name) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_v_name)->tp_name), 0))) __PYX_ERR(1, 1313, __pyx_L1_error) __pyx_t_1 = __pyx_v_name; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); @@ -25990,19 +26676,19 @@ static int __pyx_pf_19dependency_injector_9providers_13Configuration___init__(st __pyx_v_self->__pyx___name = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1290 + /* "dependency_injector/providers.pyx":1315 * self.__name = name * * value = {} # <<<<<<<<<<<<<< * if default is not None: * assert isinstance(default, dict), default */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1290, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_value = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1291 + /* "dependency_injector/providers.pyx":1316 * * value = {} * if default is not None: # <<<<<<<<<<<<<< @@ -26013,7 +26699,7 @@ static int __pyx_pf_19dependency_injector_9providers_13Configuration___init__(st __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { - /* "dependency_injector/providers.pyx":1292 + /* "dependency_injector/providers.pyx":1317 * value = {} * if default is not None: * assert isinstance(default, dict), default # <<<<<<<<<<<<<< @@ -26024,23 +26710,23 @@ static int __pyx_pf_19dependency_injector_9providers_13Configuration___init__(st if (unlikely(!Py_OptimizeFlag)) { __pyx_t_3 = PyDict_Check(__pyx_v_default); if (unlikely(!(__pyx_t_3 != 0))) { - __pyx_t_1 = PyTuple_Pack(1, __pyx_v_default); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1292, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, __pyx_v_default); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); PyErr_SetObject(PyExc_AssertionError, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 1292, __pyx_L1_error) + __PYX_ERR(1, 1317, __pyx_L1_error) } } #endif - /* "dependency_injector/providers.pyx":1293 + /* "dependency_injector/providers.pyx":1318 * if default is not None: * assert isinstance(default, dict), default * value = default.copy() # <<<<<<<<<<<<<< * * self.__children = {} */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_default, __pyx_n_s_copy); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1293, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_default, __pyx_n_s_copy); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { @@ -26054,13 +26740,13 @@ static int __pyx_pf_19dependency_injector_9providers_13Configuration___init__(st } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1293, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1291 + /* "dependency_injector/providers.pyx":1316 * * value = {} * if default is not None: # <<<<<<<<<<<<<< @@ -26069,14 +26755,14 @@ static int __pyx_pf_19dependency_injector_9providers_13Configuration___init__(st */ } - /* "dependency_injector/providers.pyx":1295 + /* "dependency_injector/providers.pyx":1320 * value = default.copy() * * self.__children = {} # <<<<<<<<<<<<<< * * super().__init__(value) */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1295, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->__pyx___children); @@ -26084,14 +26770,14 @@ static int __pyx_pf_19dependency_injector_9providers_13Configuration___init__(st __pyx_v_self->__pyx___children = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1297 + /* "dependency_injector/providers.pyx":1322 * self.__children = {} * * super().__init__(value) # <<<<<<<<<<<<<< * * def __deepcopy__(self, memo): */ - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1297, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Configuration)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Configuration)); @@ -26099,10 +26785,10 @@ static int __pyx_pf_19dependency_injector_9providers_13Configuration___init__(st __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1297, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1297, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; @@ -26117,12 +26803,12 @@ static int __pyx_pf_19dependency_injector_9providers_13Configuration___init__(st } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_value); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1297, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1287 + /* "dependency_injector/providers.pyx":1312 * DEFAULT_NAME = 'config' * * def __init__(self, name=DEFAULT_NAME, default=None): # <<<<<<<<<<<<<< @@ -26145,7 +26831,7 @@ static int __pyx_pf_19dependency_injector_9providers_13Configuration___init__(st return __pyx_r; } -/* "dependency_injector/providers.pyx":1299 +/* "dependency_injector/providers.pyx":1324 * super().__init__(value) * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -26183,16 +26869,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_2__de int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__deepcopy__", 0); - /* "dependency_injector/providers.pyx":1302 + /* "dependency_injector/providers.pyx":1327 * cdef Configuration copied * * copied = memo.get(id(self)) # <<<<<<<<<<<<<< * if copied is not None: * return copied */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1302, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1302, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -26207,14 +26893,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_2__de __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1302, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_Configuration))))) __PYX_ERR(1, 1302, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_Configuration))))) __PYX_ERR(1, 1327, __pyx_L1_error) __pyx_v_copied = ((struct __pyx_obj_19dependency_injector_9providers_Configuration *)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1303 + /* "dependency_injector/providers.pyx":1328 * * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -26225,7 +26911,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_2__de __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":1304 + /* "dependency_injector/providers.pyx":1329 * copied = memo.get(id(self)) * if copied is not None: * return copied # <<<<<<<<<<<<<< @@ -26237,7 +26923,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_2__de __pyx_r = ((PyObject *)__pyx_v_copied); goto __pyx_L0; - /* "dependency_injector/providers.pyx":1303 + /* "dependency_injector/providers.pyx":1328 * * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -26246,14 +26932,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_2__de */ } - /* "dependency_injector/providers.pyx":1306 + /* "dependency_injector/providers.pyx":1331 * return copied * * copied = self.__class__(self.__name, self.__provides) # <<<<<<<<<<<<<< * memo[id(self)] = copied * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1306, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_7 = 0; @@ -26270,7 +26956,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_2__de #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_self->__pyx___name, __pyx_v_self->__pyx_base.__pyx___provides}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1306, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1331, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -26278,13 +26964,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_2__de #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_self->__pyx___name, __pyx_v_self->__pyx_base.__pyx___provides}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1306, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1331, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_4 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1306, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; @@ -26295,28 +26981,28 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_2__de __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx___provides); __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx___provides); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_7, __pyx_v_self->__pyx_base.__pyx___provides); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1306, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_Configuration))))) __PYX_ERR(1, 1306, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_Configuration))))) __PYX_ERR(1, 1331, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_copied, ((struct __pyx_obj_19dependency_injector_9providers_Configuration *)__pyx_t_1)); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1307 + /* "dependency_injector/providers.pyx":1332 * * copied = self.__class__(self.__name, self.__provides) * memo[id(self)] = copied # <<<<<<<<<<<<<< * * copied.__children = deepcopy(self.__children, memo) */ - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1307, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely(PyObject_SetItem(__pyx_v_memo, __pyx_t_1, ((PyObject *)__pyx_v_copied)) < 0)) __PYX_ERR(1, 1307, __pyx_L1_error) + if (unlikely(PyObject_SetItem(__pyx_v_memo, __pyx_t_1, ((PyObject *)__pyx_v_copied)) < 0)) __PYX_ERR(1, 1332, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1309 + /* "dependency_injector/providers.pyx":1334 * memo[id(self)] = copied * * copied.__children = deepcopy(self.__children, memo) # <<<<<<<<<<<<<< @@ -26325,30 +27011,30 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_2__de */ __pyx_t_1 = __pyx_v_self->__pyx___children; __Pyx_INCREF(__pyx_t_1); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1309, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1334, __pyx_L1_error) __pyx_t_8.__pyx_n = 1; __pyx_t_8.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_2 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_1, 0, &__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1309, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_1, 0, &__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1334, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(PyDict_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(1, 1309, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(1, 1334, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_copied->__pyx___children); __Pyx_DECREF(__pyx_v_copied->__pyx___children); __pyx_v_copied->__pyx___children = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1310 + /* "dependency_injector/providers.pyx":1335 * * copied.__children = deepcopy(self.__children, memo) * self._copy_overridings(copied, memo) # <<<<<<<<<<<<<< * * return copied */ - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1310, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1335, __pyx_L1_error) ((struct __pyx_vtabstruct_19dependency_injector_9providers_Configuration *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._copy_overridings(((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_self), ((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_copied), ((PyObject*)__pyx_v_memo), 0); - /* "dependency_injector/providers.pyx":1312 + /* "dependency_injector/providers.pyx":1337 * self._copy_overridings(copied, memo) * * return copied # <<<<<<<<<<<<<< @@ -26360,7 +27046,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_2__de __pyx_r = ((PyObject *)__pyx_v_copied); goto __pyx_L0; - /* "dependency_injector/providers.pyx":1299 + /* "dependency_injector/providers.pyx":1324 * super().__init__(value) * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -26383,7 +27069,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_2__de return __pyx_r; } -/* "dependency_injector/providers.pyx":1314 +/* "dependency_injector/providers.pyx":1339 * return copied * * def __str__(self): # <<<<<<<<<<<<<< @@ -26414,7 +27100,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_4__st int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__str__", 0); - /* "dependency_injector/providers.pyx":1315 + /* "dependency_injector/providers.pyx":1340 * * def __str__(self): * return represent_provider(provider=self, provides=self.__name) # <<<<<<<<<<<<<< @@ -26424,14 +27110,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_4__st __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_v_self->__pyx___name; __Pyx_INCREF(__pyx_t_1); - __pyx_t_2 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1315, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1314 + /* "dependency_injector/providers.pyx":1339 * return copied * * def __str__(self): # <<<<<<<<<<<<<< @@ -26451,7 +27137,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_4__st return __pyx_r; } -/* "dependency_injector/providers.pyx":1317 +/* "dependency_injector/providers.pyx":1342 * return represent_provider(provider=self, provides=self.__name) * * def __getattr__(self, item): # <<<<<<<<<<<<<< @@ -26487,14 +27173,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_6__ge int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getattr__", 0); - /* "dependency_injector/providers.pyx":1318 + /* "dependency_injector/providers.pyx":1343 * * def __getattr__(self, item): * if item.startswith('__') and item.endswith('__'): # <<<<<<<<<<<<<< * raise AttributeError( * '\'{cls}\' object has no attribute ' */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s_startswith); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1318, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s_startswith); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -26506,19 +27192,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_6__ge __Pyx_DECREF_SET(__pyx_t_3, function); } } - __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_n_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s__3); + __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_n_s__4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s__4); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1318, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 1318, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 1343, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_5) { } else { __pyx_t_1 = __pyx_t_5; goto __pyx_L4_bool_binop_done; } - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s_endswith); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1318, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s_endswith); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -26530,72 +27216,72 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_6__ge __Pyx_DECREF_SET(__pyx_t_3, function); } } - __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_n_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s__3); + __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_n_s__4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s__4); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1318, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 1318, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 1343, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_1 = __pyx_t_5; __pyx_L4_bool_binop_done:; if (unlikely(__pyx_t_1)) { - /* "dependency_injector/providers.pyx":1321 + /* "dependency_injector/providers.pyx":1346 * raise AttributeError( * '\'{cls}\' object has no attribute ' * '\'{attribute_name}\''.format(cls=self.__class__.__name__, # <<<<<<<<<<<<<< * attribute_name=item)) * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_cls_object_has_no_attribute_att, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1321, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_cls_object_has_no_attribute_att, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1321, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1321, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1321, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_cls, __pyx_t_6) < 0) __PYX_ERR(1, 1321, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_cls, __pyx_t_6) < 0) __PYX_ERR(1, 1346, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "dependency_injector/providers.pyx":1322 + /* "dependency_injector/providers.pyx":1347 * '\'{cls}\' object has no attribute ' * '\'{attribute_name}\''.format(cls=self.__class__.__name__, * attribute_name=item)) # <<<<<<<<<<<<<< * * child = self.__children.get(item) */ - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_attribute_name, __pyx_v_item) < 0) __PYX_ERR(1, 1321, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_attribute_name, __pyx_v_item) < 0) __PYX_ERR(1, 1346, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1321 + /* "dependency_injector/providers.pyx":1346 * raise AttributeError( * '\'{cls}\' object has no attribute ' * '\'{attribute_name}\''.format(cls=self.__class__.__name__, # <<<<<<<<<<<<<< * attribute_name=item)) * */ - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1321, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":1319 + /* "dependency_injector/providers.pyx":1344 * def __getattr__(self, item): * if item.startswith('__') and item.endswith('__'): * raise AttributeError( # <<<<<<<<<<<<<< * '\'{cls}\' object has no attribute ' * '\'{attribute_name}\''.format(cls=self.__class__.__name__, */ - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_AttributeError, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1319, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_AttributeError, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 1319, __pyx_L1_error) + __PYX_ERR(1, 1344, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1318 + /* "dependency_injector/providers.pyx":1343 * * def __getattr__(self, item): * if item.startswith('__') and item.endswith('__'): # <<<<<<<<<<<<<< @@ -26604,7 +27290,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_6__ge */ } - /* "dependency_injector/providers.pyx":1324 + /* "dependency_injector/providers.pyx":1349 * attribute_name=item)) * * child = self.__children.get(item) # <<<<<<<<<<<<<< @@ -26613,14 +27299,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_6__ge */ if (unlikely(__pyx_v_self->__pyx___children == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(1, 1324, __pyx_L1_error) + __PYX_ERR(1, 1349, __pyx_L1_error) } - __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_self->__pyx___children, __pyx_v_item, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1324, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_self->__pyx___children, __pyx_v_item, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_child = __pyx_t_3; __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":1325 + /* "dependency_injector/providers.pyx":1350 * * child = self.__children.get(item) * if child is None: # <<<<<<<<<<<<<< @@ -26631,19 +27317,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_6__ge __pyx_t_5 = (__pyx_t_1 != 0); if (__pyx_t_5) { - /* "dependency_injector/providers.pyx":1326 + /* "dependency_injector/providers.pyx":1351 * child = self.__children.get(item) * if child is None: * child = ConfigurationOption((item,), self) # <<<<<<<<<<<<<< * self.__children[item] = child * return child */ - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1326, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_item); __Pyx_GIVEREF(__pyx_v_item); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_item); - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1326, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); @@ -26651,13 +27337,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_6__ge __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_self)); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ConfigurationOption), __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1326, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ConfigurationOption), __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF_SET(__pyx_v_child, __pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":1327 + /* "dependency_injector/providers.pyx":1352 * if child is None: * child = ConfigurationOption((item,), self) * self.__children[item] = child # <<<<<<<<<<<<<< @@ -26666,11 +27352,11 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_6__ge */ if (unlikely(__pyx_v_self->__pyx___children == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 1327, __pyx_L1_error) + __PYX_ERR(1, 1352, __pyx_L1_error) } - if (unlikely(PyDict_SetItem(__pyx_v_self->__pyx___children, __pyx_v_item, __pyx_v_child) < 0)) __PYX_ERR(1, 1327, __pyx_L1_error) + if (unlikely(PyDict_SetItem(__pyx_v_self->__pyx___children, __pyx_v_item, __pyx_v_child) < 0)) __PYX_ERR(1, 1352, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1325 + /* "dependency_injector/providers.pyx":1350 * * child = self.__children.get(item) * if child is None: # <<<<<<<<<<<<<< @@ -26679,7 +27365,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_6__ge */ } - /* "dependency_injector/providers.pyx":1328 + /* "dependency_injector/providers.pyx":1353 * child = ConfigurationOption((item,), self) * self.__children[item] = child * return child # <<<<<<<<<<<<<< @@ -26691,7 +27377,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_6__ge __pyx_r = __pyx_v_child; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1317 + /* "dependency_injector/providers.pyx":1342 * return represent_provider(provider=self, provides=self.__name) * * def __getattr__(self, item): # <<<<<<<<<<<<<< @@ -26714,7 +27400,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_6__ge return __pyx_r; } -/* "dependency_injector/providers.pyx":1330 +/* "dependency_injector/providers.pyx":1355 * return child * * def __getitem__(self, item): # <<<<<<<<<<<<<< @@ -26748,7 +27434,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_8__ge int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getitem__", 0); - /* "dependency_injector/providers.pyx":1331 + /* "dependency_injector/providers.pyx":1356 * * def __getitem__(self, item): * child = self.__children.get(item) # <<<<<<<<<<<<<< @@ -26757,14 +27443,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_8__ge */ if (unlikely(__pyx_v_self->__pyx___children == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(1, 1331, __pyx_L1_error) + __PYX_ERR(1, 1356, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_self->__pyx___children, __pyx_v_item, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1331, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_self->__pyx___children, __pyx_v_item, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_child = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1332 + /* "dependency_injector/providers.pyx":1357 * def __getitem__(self, item): * child = self.__children.get(item) * if child is None: # <<<<<<<<<<<<<< @@ -26775,14 +27461,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_8__ge __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { - /* "dependency_injector/providers.pyx":1333 + /* "dependency_injector/providers.pyx":1358 * child = self.__children.get(item) * if child is None: * child = ConfigurationOption(item, self) # <<<<<<<<<<<<<< * self.__children[item] = child * return child */ - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1333, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_item); __Pyx_GIVEREF(__pyx_v_item); @@ -26790,13 +27476,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_8__ge __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ConfigurationOption), __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1333, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ConfigurationOption), __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_child, __pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/providers.pyx":1334 + /* "dependency_injector/providers.pyx":1359 * if child is None: * child = ConfigurationOption(item, self) * self.__children[item] = child # <<<<<<<<<<<<<< @@ -26805,11 +27491,11 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_8__ge */ if (unlikely(__pyx_v_self->__pyx___children == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 1334, __pyx_L1_error) + __PYX_ERR(1, 1359, __pyx_L1_error) } - if (unlikely(PyDict_SetItem(__pyx_v_self->__pyx___children, __pyx_v_item, __pyx_v_child) < 0)) __PYX_ERR(1, 1334, __pyx_L1_error) + if (unlikely(PyDict_SetItem(__pyx_v_self->__pyx___children, __pyx_v_item, __pyx_v_child) < 0)) __PYX_ERR(1, 1359, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1332 + /* "dependency_injector/providers.pyx":1357 * def __getitem__(self, item): * child = self.__children.get(item) * if child is None: # <<<<<<<<<<<<<< @@ -26818,7 +27504,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_8__ge */ } - /* "dependency_injector/providers.pyx":1335 + /* "dependency_injector/providers.pyx":1360 * child = ConfigurationOption(item, self) * self.__children[item] = child * return child # <<<<<<<<<<<<<< @@ -26830,7 +27516,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_8__ge __pyx_r = __pyx_v_child; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1330 + /* "dependency_injector/providers.pyx":1355 * return child * * def __getitem__(self, item): # <<<<<<<<<<<<<< @@ -26851,7 +27537,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_8__ge return __pyx_r; } -/* "dependency_injector/providers.pyx":1337 +/* "dependency_injector/providers.pyx":1362 * return child * * def get_name(self): # <<<<<<<<<<<<<< @@ -26877,7 +27563,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_10get __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_name", 0); - /* "dependency_injector/providers.pyx":1338 + /* "dependency_injector/providers.pyx":1363 * * def get_name(self): * return self.__name # <<<<<<<<<<<<<< @@ -26889,7 +27575,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_10get __pyx_r = __pyx_v_self->__pyx___name; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1337 + /* "dependency_injector/providers.pyx":1362 * return child * * def get_name(self): # <<<<<<<<<<<<<< @@ -26904,7 +27590,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_10get return __pyx_r; } -/* "dependency_injector/providers.pyx":1340 +/* "dependency_injector/providers.pyx":1365 * return self.__name * * def get(self, selector): # <<<<<<<<<<<<<< @@ -26943,14 +27629,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_12get int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get", 0); - /* "dependency_injector/providers.pyx":1349 + /* "dependency_injector/providers.pyx":1374 * :rtype: Any * """ * keys = selector.split('.') # <<<<<<<<<<<<<< * value = self.__call__() * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_selector, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1349, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_selector, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -26962,22 +27648,22 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_12get __Pyx_DECREF_SET(__pyx_t_2, function); } } - __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_s__4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_s__4); + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_s__5) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_s__5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1349, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_keys = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1350 + /* "dependency_injector/providers.pyx":1375 * """ * keys = selector.split('.') * value = self.__call__() # <<<<<<<<<<<<<< * * while len(keys) > 0: */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_call); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1350, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_call); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -26991,13 +27677,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_12get } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1350, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_value = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1352 + /* "dependency_injector/providers.pyx":1377 * value = self.__call__() * * while len(keys) > 0: # <<<<<<<<<<<<<< @@ -27005,30 +27691,30 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_12get * value = value.get(key) */ while (1) { - __pyx_t_4 = PyObject_Length(__pyx_v_keys); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1352, __pyx_L1_error) + __pyx_t_4 = PyObject_Length(__pyx_v_keys); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1377, __pyx_L1_error) __pyx_t_5 = ((__pyx_t_4 > 0) != 0); if (!__pyx_t_5) break; - /* "dependency_injector/providers.pyx":1353 + /* "dependency_injector/providers.pyx":1378 * * while len(keys) > 0: * key = keys.pop(0) # <<<<<<<<<<<<<< * value = value.get(key) * if value is None: */ - __pyx_t_1 = __Pyx_PyObject_PopIndex(__pyx_v_keys, __pyx_int_0, 0, 1, Py_ssize_t, PyInt_FromSsize_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1353, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_PopIndex(__pyx_v_keys, __pyx_int_0, 0, 1, Py_ssize_t, PyInt_FromSsize_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1354 + /* "dependency_injector/providers.pyx":1379 * while len(keys) > 0: * key = keys.pop(0) * value = value.get(key) # <<<<<<<<<<<<<< * if value is None: * break */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1354, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -27042,13 +27728,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_12get } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_key) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_key); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1354, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1355 + /* "dependency_injector/providers.pyx":1380 * key = keys.pop(0) * value = value.get(key) * if value is None: # <<<<<<<<<<<<<< @@ -27059,7 +27745,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_12get __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":1356 + /* "dependency_injector/providers.pyx":1381 * value = value.get(key) * if value is None: * break # <<<<<<<<<<<<<< @@ -27068,7 +27754,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_12get */ goto __pyx_L4_break; - /* "dependency_injector/providers.pyx":1355 + /* "dependency_injector/providers.pyx":1380 * key = keys.pop(0) * value = value.get(key) * if value is None: # <<<<<<<<<<<<<< @@ -27079,7 +27765,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_12get } __pyx_L4_break:; - /* "dependency_injector/providers.pyx":1358 + /* "dependency_injector/providers.pyx":1383 * break * * return value # <<<<<<<<<<<<<< @@ -27091,7 +27777,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_12get __pyx_r = __pyx_v_value; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1340 + /* "dependency_injector/providers.pyx":1365 * return self.__name * * def get(self, selector): # <<<<<<<<<<<<<< @@ -27115,7 +27801,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_12get return __pyx_r; } -/* "dependency_injector/providers.pyx":1360 +/* "dependency_injector/providers.pyx":1385 * return value * * def set(self, selector, value): # <<<<<<<<<<<<<< @@ -27158,11 +27844,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_13Configuration_15set case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("set", 1, 2, 2, 1); __PYX_ERR(1, 1360, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("set", 1, 2, 2, 1); __PYX_ERR(1, 1385, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set") < 0)) __PYX_ERR(1, 1360, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set") < 0)) __PYX_ERR(1, 1385, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -27175,7 +27861,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_13Configuration_15set } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("set", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1360, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("set", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1385, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.Configuration.set", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -27209,14 +27895,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_14set int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set", 0); - /* "dependency_injector/providers.pyx":1372 + /* "dependency_injector/providers.pyx":1397 * :rtype: :py:class:`OverridingContext` * """ * keys = selector.split('.') # <<<<<<<<<<<<<< * original_value = current_value = self.__call__() * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_selector, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1372, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_selector, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -27228,22 +27914,22 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_14set __Pyx_DECREF_SET(__pyx_t_2, function); } } - __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_s__4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_s__4); + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_s__5) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_s__5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1372, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_keys = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1373 + /* "dependency_injector/providers.pyx":1398 * """ * keys = selector.split('.') * original_value = current_value = self.__call__() # <<<<<<<<<<<<<< * * while len(keys) > 0: */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_call); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1373, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_call); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -27257,7 +27943,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_14set } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1373, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_t_1); @@ -27266,7 +27952,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_14set __pyx_v_current_value = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1375 + /* "dependency_injector/providers.pyx":1400 * original_value = current_value = self.__call__() * * while len(keys) > 0: # <<<<<<<<<<<<<< @@ -27274,43 +27960,43 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_14set * if len(keys) == 0: */ while (1) { - __pyx_t_4 = PyObject_Length(__pyx_v_keys); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1375, __pyx_L1_error) + __pyx_t_4 = PyObject_Length(__pyx_v_keys); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1400, __pyx_L1_error) __pyx_t_5 = ((__pyx_t_4 > 0) != 0); if (!__pyx_t_5) break; - /* "dependency_injector/providers.pyx":1376 + /* "dependency_injector/providers.pyx":1401 * * while len(keys) > 0: * key = keys.pop(0) # <<<<<<<<<<<<<< * if len(keys) == 0: * current_value[key] = value */ - __pyx_t_1 = __Pyx_PyObject_PopIndex(__pyx_v_keys, __pyx_int_0, 0, 1, Py_ssize_t, PyInt_FromSsize_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1376, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_PopIndex(__pyx_v_keys, __pyx_int_0, 0, 1, Py_ssize_t, PyInt_FromSsize_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1377 + /* "dependency_injector/providers.pyx":1402 * while len(keys) > 0: * key = keys.pop(0) * if len(keys) == 0: # <<<<<<<<<<<<<< * current_value[key] = value * break */ - __pyx_t_4 = PyObject_Length(__pyx_v_keys); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1377, __pyx_L1_error) + __pyx_t_4 = PyObject_Length(__pyx_v_keys); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1402, __pyx_L1_error) __pyx_t_5 = ((__pyx_t_4 == 0) != 0); if (__pyx_t_5) { - /* "dependency_injector/providers.pyx":1378 + /* "dependency_injector/providers.pyx":1403 * key = keys.pop(0) * if len(keys) == 0: * current_value[key] = value # <<<<<<<<<<<<<< * break * temp_value = current_value.get(key, {}) */ - if (unlikely(PyObject_SetItem(__pyx_v_current_value, __pyx_v_key, __pyx_v_value) < 0)) __PYX_ERR(1, 1378, __pyx_L1_error) + if (unlikely(PyObject_SetItem(__pyx_v_current_value, __pyx_v_key, __pyx_v_value) < 0)) __PYX_ERR(1, 1403, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1379 + /* "dependency_injector/providers.pyx":1404 * if len(keys) == 0: * current_value[key] = value * break # <<<<<<<<<<<<<< @@ -27319,7 +28005,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_14set */ goto __pyx_L4_break; - /* "dependency_injector/providers.pyx":1377 + /* "dependency_injector/providers.pyx":1402 * while len(keys) > 0: * key = keys.pop(0) * if len(keys) == 0: # <<<<<<<<<<<<<< @@ -27328,16 +28014,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_14set */ } - /* "dependency_injector/providers.pyx":1380 + /* "dependency_injector/providers.pyx":1405 * current_value[key] = value * break * temp_value = current_value.get(key, {}) # <<<<<<<<<<<<<< * current_value[key] = temp_value * current_value = temp_value */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_current_value, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1380, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_current_value, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1380, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = NULL; __pyx_t_7 = 0; @@ -27354,7 +28040,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_14set #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_key, __pyx_t_3}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1380, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1405, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -27363,14 +28049,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_14set #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_key, __pyx_t_3}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1380, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1405, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { - __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1380, __pyx_L1_error) + __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; @@ -27381,7 +28067,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_14set __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_3); __pyx_t_3 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1380, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } @@ -27389,16 +28075,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_14set __Pyx_XDECREF_SET(__pyx_v_temp_value, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1381 + /* "dependency_injector/providers.pyx":1406 * break * temp_value = current_value.get(key, {}) * current_value[key] = temp_value # <<<<<<<<<<<<<< * current_value = temp_value * */ - if (unlikely(PyObject_SetItem(__pyx_v_current_value, __pyx_v_key, __pyx_v_temp_value) < 0)) __PYX_ERR(1, 1381, __pyx_L1_error) + if (unlikely(PyObject_SetItem(__pyx_v_current_value, __pyx_v_key, __pyx_v_temp_value) < 0)) __PYX_ERR(1, 1406, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1382 + /* "dependency_injector/providers.pyx":1407 * temp_value = current_value.get(key, {}) * current_value[key] = temp_value * current_value = temp_value # <<<<<<<<<<<<<< @@ -27410,7 +28096,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_14set } __pyx_L4_break:; - /* "dependency_injector/providers.pyx":1384 + /* "dependency_injector/providers.pyx":1409 * current_value = temp_value * * return self.override(original_value) # <<<<<<<<<<<<<< @@ -27418,7 +28104,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_14set * def override(self, provider): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1384, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -27432,14 +28118,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_14set } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_8, __pyx_v_original_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_original_value); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1384, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1360 + /* "dependency_injector/providers.pyx":1385 * return value * * def set(self, selector, value): # <<<<<<<<<<<<<< @@ -27467,7 +28153,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_14set return __pyx_r; } -/* "dependency_injector/providers.pyx":1386 +/* "dependency_injector/providers.pyx":1411 * return self.override(original_value) * * def override(self, provider): # <<<<<<<<<<<<<< @@ -27501,14 +28187,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_16ove int __pyx_clineno = 0; __Pyx_RefNannySetupContext("override", 0); - /* "dependency_injector/providers.pyx":1397 + /* "dependency_injector/providers.pyx":1422 * :rtype: :py:class:`OverridingContext` * """ * context = super().override(provider) # <<<<<<<<<<<<<< * self.reset_cache() * return context */ - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1397, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Configuration)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Configuration)); @@ -27516,10 +28202,10 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_16ove __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1397, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1397, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -27534,20 +28220,20 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_16ove } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_provider) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_provider); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1397, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_context = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1398 + /* "dependency_injector/providers.pyx":1423 * """ * context = super().override(provider) * self.reset_cache() # <<<<<<<<<<<<<< * return context * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reset_cache); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1398, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reset_cache); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -27561,12 +28247,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_16ove } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1398, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1399 + /* "dependency_injector/providers.pyx":1424 * context = super().override(provider) * self.reset_cache() * return context # <<<<<<<<<<<<<< @@ -27578,7 +28264,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_16ove __pyx_r = __pyx_v_context; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1386 + /* "dependency_injector/providers.pyx":1411 * return self.override(original_value) * * def override(self, provider): # <<<<<<<<<<<<<< @@ -27600,7 +28286,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_16ove return __pyx_r; } -/* "dependency_injector/providers.pyx":1401 +/* "dependency_injector/providers.pyx":1426 * return context * * def reset_last_overriding(self): # <<<<<<<<<<<<<< @@ -27633,14 +28319,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_18res int __pyx_clineno = 0; __Pyx_RefNannySetupContext("reset_last_overriding", 0); - /* "dependency_injector/providers.pyx":1409 + /* "dependency_injector/providers.pyx":1434 * :rtype: None * """ * super().reset_last_overriding() # <<<<<<<<<<<<<< * self.reset_cache() * */ - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1409, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Configuration)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Configuration)); @@ -27648,10 +28334,10 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_18res __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1409, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_reset_last_overriding); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1409, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_reset_last_overriding); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -27666,19 +28352,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_18res } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1409, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1410 + /* "dependency_injector/providers.pyx":1435 * """ * super().reset_last_overriding() * self.reset_cache() # <<<<<<<<<<<<<< * * def reset_override(self): */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reset_cache); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1410, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reset_cache); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -27692,12 +28378,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_18res } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1410, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1401 + /* "dependency_injector/providers.pyx":1426 * return context * * def reset_last_overriding(self): # <<<<<<<<<<<<<< @@ -27720,7 +28406,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_18res return __pyx_r; } -/* "dependency_injector/providers.pyx":1412 +/* "dependency_injector/providers.pyx":1437 * self.reset_cache() * * def reset_override(self): # <<<<<<<<<<<<<< @@ -27753,14 +28439,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_20res int __pyx_clineno = 0; __Pyx_RefNannySetupContext("reset_override", 0); - /* "dependency_injector/providers.pyx":1417 + /* "dependency_injector/providers.pyx":1442 * :rtype: None * """ * super().reset_override() # <<<<<<<<<<<<<< * self.reset_cache() * */ - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1417, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Configuration)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Configuration)); @@ -27768,10 +28454,10 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_20res __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1417, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_reset_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1417, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_reset_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -27786,19 +28472,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_20res } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1417, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1418 + /* "dependency_injector/providers.pyx":1443 * """ * super().reset_override() * self.reset_cache() # <<<<<<<<<<<<<< * * def reset_cache(self): */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reset_cache); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1418, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reset_cache); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -27812,12 +28498,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_20res } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1418, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1412 + /* "dependency_injector/providers.pyx":1437 * self.reset_cache() * * def reset_override(self): # <<<<<<<<<<<<<< @@ -27840,7 +28526,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_20res return __pyx_r; } -/* "dependency_injector/providers.pyx":1420 +/* "dependency_injector/providers.pyx":1445 * self.reset_cache() * * def reset_cache(self): # <<<<<<<<<<<<<< @@ -27877,7 +28563,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_22res int __pyx_clineno = 0; __Pyx_RefNannySetupContext("reset_cache", 0); - /* "dependency_injector/providers.pyx":1425 + /* "dependency_injector/providers.pyx":1450 * :rtype: None * """ * for child in self.__children.values(): # <<<<<<<<<<<<<< @@ -27886,17 +28572,17 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_22res */ if (unlikely(__pyx_v_self->__pyx___children == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values"); - __PYX_ERR(1, 1425, __pyx_L1_error) + __PYX_ERR(1, 1450, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_self->__pyx___children); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1425, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_self->__pyx___children); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { - __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1425, __pyx_L1_error) + __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1425, __pyx_L1_error) + __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1450, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -27904,17 +28590,17 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_22res if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 1425, __pyx_L1_error) + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 1450, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1425, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 1425, __pyx_L1_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 1450, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1425, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } @@ -27924,7 +28610,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_22res PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(1, 1425, __pyx_L1_error) + else __PYX_ERR(1, 1450, __pyx_L1_error) } break; } @@ -27933,14 +28619,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_22res __Pyx_XDECREF_SET(__pyx_v_child, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1426 + /* "dependency_injector/providers.pyx":1451 * """ * for child in self.__children.values(): * child.reset_cache() # <<<<<<<<<<<<<< * * def update(self, value): */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_child, __pyx_n_s_reset_cache); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1426, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_child, __pyx_n_s_reset_cache); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { @@ -27954,12 +28640,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_22res } __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1426, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1425 + /* "dependency_injector/providers.pyx":1450 * :rtype: None * """ * for child in self.__children.values(): # <<<<<<<<<<<<<< @@ -27969,7 +28655,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_22res } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1420 + /* "dependency_injector/providers.pyx":1445 * self.reset_cache() * * def reset_cache(self): # <<<<<<<<<<<<<< @@ -27994,7 +28680,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_22res return __pyx_r; } -/* "dependency_injector/providers.pyx":1428 +/* "dependency_injector/providers.pyx":1453 * child.reset_cache() * * def update(self, value): # <<<<<<<<<<<<<< @@ -28027,14 +28713,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_24upd int __pyx_clineno = 0; __Pyx_RefNannySetupContext("update", 0); - /* "dependency_injector/providers.pyx":1440 + /* "dependency_injector/providers.pyx":1465 * :rtype: None * """ * self.override(value) # <<<<<<<<<<<<<< * * def from_ini(self, filepath): */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1440, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -28048,12 +28734,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_24upd } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1440, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1428 + /* "dependency_injector/providers.pyx":1453 * child.reset_cache() * * def update(self, value): # <<<<<<<<<<<<<< @@ -28076,7 +28762,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_24upd return __pyx_r; } -/* "dependency_injector/providers.pyx":1442 +/* "dependency_injector/providers.pyx":1467 * self.override(value) * * def from_ini(self, filepath): # <<<<<<<<<<<<<< @@ -28121,14 +28807,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_26fro int __pyx_clineno = 0; __Pyx_RefNannySetupContext("from_ini", 0); - /* "dependency_injector/providers.pyx":1452 + /* "dependency_injector/providers.pyx":1477 * :rtype: None * """ * parser = _parse_ini_file(filepath) # <<<<<<<<<<<<<< * * config = {} */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_parse_ini_file); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1452, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_parse_ini_file); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { @@ -28142,32 +28828,32 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_26fro } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_filepath) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_filepath); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1452, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_parser = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1454 + /* "dependency_injector/providers.pyx":1479 * parser = _parse_ini_file(filepath) * * config = {} # <<<<<<<<<<<<<< * for section in parser.sections(): * config[section] = dict(parser.items(section)) */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1454, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_config = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1455 + /* "dependency_injector/providers.pyx":1480 * * config = {} * for section in parser.sections(): # <<<<<<<<<<<<<< * config[section] = dict(parser.items(section)) * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_parser, __pyx_n_s_sections); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1455, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_parser, __pyx_n_s_sections); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -28181,16 +28867,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_26fro } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1455, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { - __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1455, __pyx_L1_error) + __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1455, __pyx_L1_error) + __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1480, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -28198,17 +28884,17 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_26fro if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 1455, __pyx_L1_error) + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 1480, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1455, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 1455, __pyx_L1_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 1480, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1455, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } @@ -28218,7 +28904,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_26fro PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(1, 1455, __pyx_L1_error) + else __PYX_ERR(1, 1480, __pyx_L1_error) } break; } @@ -28227,14 +28913,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_26fro __Pyx_XDECREF_SET(__pyx_v_section, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1456 + /* "dependency_injector/providers.pyx":1481 * config = {} * for section in parser.sections(): * config[section] = dict(parser.items(section)) # <<<<<<<<<<<<<< * * current_config = self.__call__() */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parser, __pyx_n_s_items); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1456, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parser, __pyx_n_s_items); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -28248,16 +28934,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_26fro } __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_v_section) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_section); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1456, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1456, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(PyDict_SetItem(__pyx_v_config, __pyx_v_section, __pyx_t_3) < 0)) __PYX_ERR(1, 1456, __pyx_L1_error) + if (unlikely(PyDict_SetItem(__pyx_v_config, __pyx_v_section, __pyx_t_3) < 0)) __PYX_ERR(1, 1481, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":1455 + /* "dependency_injector/providers.pyx":1480 * * config = {} * for section in parser.sections(): # <<<<<<<<<<<<<< @@ -28267,14 +28953,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_26fro } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1458 + /* "dependency_injector/providers.pyx":1483 * config[section] = dict(parser.items(section)) * * current_config = self.__call__() # <<<<<<<<<<<<<< * if not current_config: * current_config = {} */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_call); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1458, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_call); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -28288,36 +28974,36 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_26fro } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1458, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_current_config = __pyx_t_2; __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1459 + /* "dependency_injector/providers.pyx":1484 * * current_config = self.__call__() * if not current_config: # <<<<<<<<<<<<<< * current_config = {} * self.override(merge_dicts(current_config, config)) */ - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_current_config); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 1459, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_current_config); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 1484, __pyx_L1_error) __pyx_t_8 = ((!__pyx_t_7) != 0); if (__pyx_t_8) { - /* "dependency_injector/providers.pyx":1460 + /* "dependency_injector/providers.pyx":1485 * current_config = self.__call__() * if not current_config: * current_config = {} # <<<<<<<<<<<<<< * self.override(merge_dicts(current_config, config)) * */ - __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1460, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF_SET(__pyx_v_current_config, __pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1459 + /* "dependency_injector/providers.pyx":1484 * * current_config = self.__call__() * if not current_config: # <<<<<<<<<<<<<< @@ -28326,16 +29012,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_26fro */ } - /* "dependency_injector/providers.pyx":1461 + /* "dependency_injector/providers.pyx":1486 * if not current_config: * current_config = {} * self.override(merge_dicts(current_config, config)) # <<<<<<<<<<<<<< * * def from_yaml(self, filepath): */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1461, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_merge_dicts); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1461, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_merge_dicts); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = NULL; __pyx_t_10 = 0; @@ -28352,7 +29038,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_26fro #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_current_config, __pyx_v_config}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1461, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1486, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -28360,13 +29046,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_26fro #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_current_config, __pyx_v_config}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1461, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1486, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_11 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1461, __pyx_L1_error) + __pyx_t_11 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; @@ -28377,7 +29063,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_26fro __Pyx_INCREF(__pyx_v_config); __Pyx_GIVEREF(__pyx_v_config); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_v_config); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1461, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } @@ -28395,12 +29081,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_26fro __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1461, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1442 + /* "dependency_injector/providers.pyx":1467 * self.override(value) * * def from_ini(self, filepath): # <<<<<<<<<<<<<< @@ -28430,7 +29116,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_26fro return __pyx_r; } -/* "dependency_injector/providers.pyx":1463 +/* "dependency_injector/providers.pyx":1488 * self.override(merge_dicts(current_config, config)) * * def from_yaml(self, filepath): # <<<<<<<<<<<<<< @@ -28480,28 +29166,28 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro int __pyx_clineno = 0; __Pyx_RefNannySetupContext("from_yaml", 0); - /* "dependency_injector/providers.pyx":1473 + /* "dependency_injector/providers.pyx":1498 * :rtype: None * """ * if yaml is None: # <<<<<<<<<<<<<< * raise Error( * 'Unable to load yaml configuration - PyYAML is not installed. ' */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1473, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__pyx_t_1 == Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_t_2 != 0); if (unlikely(__pyx_t_3)) { - /* "dependency_injector/providers.pyx":1474 + /* "dependency_injector/providers.pyx":1499 * """ * if yaml is None: * raise Error( # <<<<<<<<<<<<<< * 'Unable to load yaml configuration - PyYAML is not installed. ' * 'Install PyYAML or install Dependency Injector with yaml extras: ' */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1474, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -28515,14 +29201,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_kp_s_Unable_to_load_yaml_configuratio) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_s_Unable_to_load_yaml_configuratio); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1474, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 1474, __pyx_L1_error) + __PYX_ERR(1, 1499, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1473 + /* "dependency_injector/providers.pyx":1498 * :rtype: None * """ * if yaml is None: # <<<<<<<<<<<<<< @@ -28531,7 +29217,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro */ } - /* "dependency_injector/providers.pyx":1480 + /* "dependency_injector/providers.pyx":1505 * ) * * try: # <<<<<<<<<<<<<< @@ -28547,7 +29233,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro __Pyx_XGOTREF(__pyx_t_8); /*try:*/ { - /* "dependency_injector/providers.pyx":1481 + /* "dependency_injector/providers.pyx":1506 * * try: * with open(filepath) as opened_file: # <<<<<<<<<<<<<< @@ -28555,11 +29241,11 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro * except IOError: */ /*with:*/ { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_open, __pyx_v_filepath); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1481, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_open, __pyx_v_filepath); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1506, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1481, __pyx_L4_error) + __pyx_t_9 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1506, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1481, __pyx_L10_error) + __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1506, __pyx_L10_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { @@ -28573,7 +29259,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro } __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1481, __pyx_L10_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1506, __pyx_L10_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_t_4; @@ -28591,21 +29277,21 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro __pyx_v_opened_file = __pyx_t_5; __pyx_t_5 = 0; - /* "dependency_injector/providers.pyx":1482 + /* "dependency_injector/providers.pyx":1507 * try: * with open(filepath) as opened_file: * config = yaml.load(opened_file, yaml.Loader) # <<<<<<<<<<<<<< * except IOError: * return */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1482, __pyx_L14_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1507, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_load); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1482, __pyx_L14_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_load); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1507, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1482, __pyx_L14_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1507, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Loader); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1482, __pyx_L14_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Loader); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1507, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; @@ -28623,7 +29309,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_opened_file, __pyx_t_10}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1482, __pyx_L14_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1507, __pyx_L14_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; @@ -28632,14 +29318,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_opened_file, __pyx_t_10}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1482, __pyx_L14_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1507, __pyx_L14_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif { - __pyx_t_15 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 1482, __pyx_L14_error) + __pyx_t_15 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 1507, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_1); __pyx_t_1 = NULL; @@ -28650,7 +29336,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_14, __pyx_t_10); __pyx_t_10 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1482, __pyx_L14_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1507, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } @@ -28658,7 +29344,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro __pyx_v_config = __pyx_t_5; __pyx_t_5 = 0; - /* "dependency_injector/providers.pyx":1481 + /* "dependency_injector/providers.pyx":1506 * * try: * with open(filepath) as opened_file: # <<<<<<<<<<<<<< @@ -28678,20 +29364,20 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; /*except:*/ { __Pyx_AddTraceback("dependency_injector.providers.Configuration.from_yaml", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_15) < 0) __PYX_ERR(1, 1481, __pyx_L16_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_15) < 0) __PYX_ERR(1, 1506, __pyx_L16_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_15); - __pyx_t_10 = PyTuple_Pack(3, __pyx_t_5, __pyx_t_4, __pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1481, __pyx_L16_except_error) + __pyx_t_10 = PyTuple_Pack(3, __pyx_t_5, __pyx_t_4, __pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1506, __pyx_L16_except_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_10, NULL); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 1481, __pyx_L16_except_error) + if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 1506, __pyx_L16_except_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_16); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (__pyx_t_3 < 0) __PYX_ERR(1, 1481, __pyx_L16_except_error) + if (__pyx_t_3 < 0) __PYX_ERR(1, 1506, __pyx_L16_except_error) __pyx_t_2 = ((!(__pyx_t_3 != 0)) != 0); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_5); @@ -28699,7 +29385,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestoreWithState(__pyx_t_5, __pyx_t_4, __pyx_t_15); __pyx_t_5 = 0; __pyx_t_4 = 0; __pyx_t_15 = 0; - __PYX_ERR(1, 1481, __pyx_L16_except_error) + __PYX_ERR(1, 1506, __pyx_L16_except_error) } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -28725,7 +29411,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro if (__pyx_t_9) { __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_tuple__2, NULL); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1481, __pyx_L4_error) + if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1506, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } @@ -28740,7 +29426,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro __pyx_L23:; } - /* "dependency_injector/providers.pyx":1480 + /* "dependency_injector/providers.pyx":1505 * ) * * try: # <<<<<<<<<<<<<< @@ -28759,7 +29445,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/providers.pyx":1483 + /* "dependency_injector/providers.pyx":1508 * with open(filepath) as opened_file: * config = yaml.load(opened_file, yaml.Loader) * except IOError: # <<<<<<<<<<<<<< @@ -28769,12 +29455,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro __pyx_t_14 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_IOError); if (__pyx_t_14) { __Pyx_AddTraceback("dependency_injector.providers.Configuration.from_yaml", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_15, &__pyx_t_4, &__pyx_t_5) < 0) __PYX_ERR(1, 1483, __pyx_L6_except_error) + if (__Pyx_GetException(&__pyx_t_15, &__pyx_t_4, &__pyx_t_5) < 0) __PYX_ERR(1, 1508, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_5); - /* "dependency_injector/providers.pyx":1484 + /* "dependency_injector/providers.pyx":1509 * config = yaml.load(opened_file, yaml.Loader) * except IOError: * return # <<<<<<<<<<<<<< @@ -28791,7 +29477,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro goto __pyx_L6_except_error; __pyx_L6_except_error:; - /* "dependency_injector/providers.pyx":1480 + /* "dependency_injector/providers.pyx":1505 * ) * * try: # <<<<<<<<<<<<<< @@ -28812,14 +29498,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro __pyx_L9_try_end:; } - /* "dependency_injector/providers.pyx":1486 + /* "dependency_injector/providers.pyx":1511 * return * * current_config = self.__call__() # <<<<<<<<<<<<<< * if not current_config: * current_config = {} */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_call); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1486, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_call); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { @@ -28833,36 +29519,36 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro } __pyx_t_5 = (__pyx_t_15) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_15) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1486, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_current_config = __pyx_t_5; __pyx_t_5 = 0; - /* "dependency_injector/providers.pyx":1487 + /* "dependency_injector/providers.pyx":1512 * * current_config = self.__call__() * if not current_config: # <<<<<<<<<<<<<< * current_config = {} * self.override(merge_dicts(current_config, config)) */ - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_current_config); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 1487, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_current_config); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 1512, __pyx_L1_error) __pyx_t_3 = ((!__pyx_t_2) != 0); if (__pyx_t_3) { - /* "dependency_injector/providers.pyx":1488 + /* "dependency_injector/providers.pyx":1513 * current_config = self.__call__() * if not current_config: * current_config = {} # <<<<<<<<<<<<<< * self.override(merge_dicts(current_config, config)) * */ - __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1488, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF_SET(__pyx_v_current_config, __pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/providers.pyx":1487 + /* "dependency_injector/providers.pyx":1512 * * current_config = self.__call__() * if not current_config: # <<<<<<<<<<<<<< @@ -28871,18 +29557,18 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro */ } - /* "dependency_injector/providers.pyx":1489 + /* "dependency_injector/providers.pyx":1514 * if not current_config: * current_config = {} * self.override(merge_dicts(current_config, config)) # <<<<<<<<<<<<<< * * def from_dict(self, options): */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1489, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_merge_dicts); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1489, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_merge_dicts); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - if (unlikely(!__pyx_v_config)) { __Pyx_RaiseUnboundLocalError("config"); __PYX_ERR(1, 1489, __pyx_L1_error) } + if (unlikely(!__pyx_v_config)) { __Pyx_RaiseUnboundLocalError("config"); __PYX_ERR(1, 1514, __pyx_L1_error) } __pyx_t_1 = NULL; __pyx_t_14 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { @@ -28898,7 +29584,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_current_config, __pyx_v_config}; - __pyx_t_15 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 1489, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 1514, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_15); } else @@ -28906,13 +29592,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_current_config, __pyx_v_config}; - __pyx_t_15 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 1489, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 1514, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_15); } else #endif { - __pyx_t_17 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 1489, __pyx_L1_error) + __pyx_t_17 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 1514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_1); __pyx_t_1 = NULL; @@ -28923,7 +29609,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro __Pyx_INCREF(__pyx_v_config); __Pyx_GIVEREF(__pyx_v_config); PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_14, __pyx_v_config); - __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_17, NULL); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 1489, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_17, NULL); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 1514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; } @@ -28941,12 +29627,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro __pyx_t_5 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_10, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_15); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1489, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/providers.pyx":1463 + /* "dependency_injector/providers.pyx":1488 * self.override(merge_dicts(current_config, config)) * * def from_yaml(self, filepath): # <<<<<<<<<<<<<< @@ -28975,7 +29661,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_28fro return __pyx_r; } -/* "dependency_injector/providers.pyx":1491 +/* "dependency_injector/providers.pyx":1516 * self.override(merge_dicts(current_config, config)) * * def from_dict(self, options): # <<<<<<<<<<<<<< @@ -29015,14 +29701,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_30fro int __pyx_clineno = 0; __Pyx_RefNannySetupContext("from_dict", 0); - /* "dependency_injector/providers.pyx":1501 + /* "dependency_injector/providers.pyx":1526 * :rtype: None * """ * current_config = self.__call__() # <<<<<<<<<<<<<< * if not current_config: * current_config = {} */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_call); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1501, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_call); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -29036,36 +29722,36 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_30fro } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1501, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_current_config = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1502 + /* "dependency_injector/providers.pyx":1527 * """ * current_config = self.__call__() * if not current_config: # <<<<<<<<<<<<<< * current_config = {} * self.override(merge_dicts(current_config, options)) */ - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_current_config); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1502, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_current_config); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1527, __pyx_L1_error) __pyx_t_5 = ((!__pyx_t_4) != 0); if (__pyx_t_5) { - /* "dependency_injector/providers.pyx":1503 + /* "dependency_injector/providers.pyx":1528 * current_config = self.__call__() * if not current_config: * current_config = {} # <<<<<<<<<<<<<< * self.override(merge_dicts(current_config, options)) * */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1503, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_current_config, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1502 + /* "dependency_injector/providers.pyx":1527 * """ * current_config = self.__call__() * if not current_config: # <<<<<<<<<<<<<< @@ -29074,16 +29760,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_30fro */ } - /* "dependency_injector/providers.pyx":1504 + /* "dependency_injector/providers.pyx":1529 * if not current_config: * current_config = {} * self.override(merge_dicts(current_config, options)) # <<<<<<<<<<<<<< * * def from_env(self, name, default=None): */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1504, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_merge_dicts); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1504, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_merge_dicts); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; @@ -29100,7 +29786,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_30fro #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_current_config, __pyx_v_options}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1504, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1529, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_3); } else @@ -29108,13 +29794,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_30fro #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_current_config, __pyx_v_options}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1504, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1529, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif { - __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1504, __pyx_L1_error) + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -29125,7 +29811,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_30fro __Pyx_INCREF(__pyx_v_options); __Pyx_GIVEREF(__pyx_v_options); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_options); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1504, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } @@ -29143,12 +29829,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_30fro __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1504, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1491 + /* "dependency_injector/providers.pyx":1516 * self.override(merge_dicts(current_config, config)) * * def from_dict(self, options): # <<<<<<<<<<<<<< @@ -29175,7 +29861,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_30fro return __pyx_r; } -/* "dependency_injector/providers.pyx":1506 +/* "dependency_injector/providers.pyx":1531 * self.override(merge_dicts(current_config, options)) * * def from_env(self, name, default=None): # <<<<<<<<<<<<<< @@ -29223,7 +29909,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_13Configuration_33fro } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "from_env") < 0)) __PYX_ERR(1, 1506, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "from_env") < 0)) __PYX_ERR(1, 1531, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -29239,7 +29925,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_13Configuration_33fro } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("from_env", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1506, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("from_env", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1531, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.Configuration.from_env", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -29266,16 +29952,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_32fro int __pyx_clineno = 0; __Pyx_RefNannySetupContext("from_env", 0); - /* "dependency_injector/providers.pyx":1517 + /* "dependency_injector/providers.pyx":1542 * :rtype: None * """ * value = os.getenv(name, default) # <<<<<<<<<<<<<< * self.override(value) * */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1517, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_getenv); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1517, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_getenv); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; @@ -29293,7 +29979,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_32fro #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_name, __pyx_v_default}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1517, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1542, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -29301,13 +29987,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_32fro #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_name, __pyx_v_default}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1517, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1542, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1517, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; @@ -29318,7 +30004,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_32fro __Pyx_INCREF(__pyx_v_default); __Pyx_GIVEREF(__pyx_v_default); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_default); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1517, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } @@ -29326,14 +30012,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_32fro __pyx_v_value = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1518 + /* "dependency_injector/providers.pyx":1543 * """ * value = os.getenv(name, default) * self.override(value) # <<<<<<<<<<<<<< * * */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1518, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_override); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -29347,12 +30033,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_32fro } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_value); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1518, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1506 + /* "dependency_injector/providers.pyx":1531 * self.override(merge_dicts(current_config, options)) * * def from_env(self, name, default=None): # <<<<<<<<<<<<<< @@ -29714,7 +30400,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13Configuration_36__s return __pyx_r; } -/* "dependency_injector/providers.pyx":1574 +/* "dependency_injector/providers.pyx":1599 * provided_type = None * * def __init__(self, provides, *args, **kwargs): # <<<<<<<<<<<<<< @@ -29771,7 +30457,7 @@ static int __pyx_pw_19dependency_injector_9providers_7Factory_1__init__(PyObject } if (unlikely(kw_args > 0)) { const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__init__") < 0)) __PYX_ERR(1, 1574, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__init__") < 0)) __PYX_ERR(1, 1599, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) < 1) { goto __pyx_L5_argtuple_error; @@ -29782,7 +30468,7 @@ static int __pyx_pw_19dependency_injector_9providers_7Factory_1__init__(PyObject } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1574, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1599, __pyx_L3_error) __pyx_L3_error:; __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; @@ -29819,19 +30505,19 @@ static int __pyx_pf_19dependency_injector_9providers_7Factory___init__(struct __ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":1580 + /* "dependency_injector/providers.pyx":1605 * :type provides: type * """ * if (self.__class__.provided_type and # <<<<<<<<<<<<<< * not issubclass(provides, self.__class__.provided_type)): * raise Error('{0} can provide only {1} instances'.format( */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1580, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_provided_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1580, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_provided_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1580, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1605, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { } else { @@ -29839,25 +30525,25 @@ static int __pyx_pf_19dependency_injector_9providers_7Factory___init__(struct __ goto __pyx_L4_bool_binop_done; } - /* "dependency_injector/providers.pyx":1581 + /* "dependency_injector/providers.pyx":1606 * """ * if (self.__class__.provided_type and * not issubclass(provides, self.__class__.provided_type)): # <<<<<<<<<<<<<< * raise Error('{0} can provide only {1} instances'.format( * self.__class__, self.__class__.provided_type)) */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1581, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_provided_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1581, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_provided_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = PyObject_IsSubclass(__pyx_v_provides, __pyx_t_2); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1581, __pyx_L1_error) + __pyx_t_4 = PyObject_IsSubclass(__pyx_v_provides, __pyx_t_2); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1606, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = ((!(__pyx_t_4 != 0)) != 0); __pyx_t_1 = __pyx_t_5; __pyx_L4_bool_binop_done:; - /* "dependency_injector/providers.pyx":1580 + /* "dependency_injector/providers.pyx":1605 * :type provides: type * """ * if (self.__class__.provided_type and # <<<<<<<<<<<<<< @@ -29866,30 +30552,30 @@ static int __pyx_pf_19dependency_injector_9providers_7Factory___init__(struct __ */ if (unlikely(__pyx_t_1)) { - /* "dependency_injector/providers.pyx":1582 + /* "dependency_injector/providers.pyx":1607 * if (self.__class__.provided_type and * not issubclass(provides, self.__class__.provided_type)): * raise Error('{0} can provide only {1} instances'.format( # <<<<<<<<<<<<<< * self.__class__, self.__class__.provided_type)) * */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Error); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1582, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Error); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_can_provide_only_1_instances, __pyx_n_s_format); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1582, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_can_provide_only_1_instances, __pyx_n_s_format); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - /* "dependency_injector/providers.pyx":1583 + /* "dependency_injector/providers.pyx":1608 * not issubclass(provides, self.__class__.provided_type)): * raise Error('{0} can provide only {1} instances'.format( * self.__class__, self.__class__.provided_type)) # <<<<<<<<<<<<<< * * self.__instantiator = Callable(provides, *args, **kwargs) */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1583, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1583, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_provided_type); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1583, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_provided_type); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; @@ -29907,7 +30593,7 @@ static int __pyx_pf_19dependency_injector_9providers_7Factory___init__(struct __ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_8, __pyx_t_10}; - __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1582, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1607, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -29917,7 +30603,7 @@ static int __pyx_pf_19dependency_injector_9providers_7Factory___init__(struct __ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_8, __pyx_t_10}; - __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1582, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1607, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -29925,7 +30611,7 @@ static int __pyx_pf_19dependency_injector_9providers_7Factory___init__(struct __ } else #endif { - __pyx_t_12 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 1582, __pyx_L1_error) + __pyx_t_12 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 1607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_9); __pyx_t_9 = NULL; @@ -29936,7 +30622,7 @@ static int __pyx_pf_19dependency_injector_9providers_7Factory___init__(struct __ PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_11, __pyx_t_10); __pyx_t_8 = 0; __pyx_t_10 = 0; - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_12, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1582, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_12, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } @@ -29954,14 +30640,14 @@ static int __pyx_pf_19dependency_injector_9providers_7Factory___init__(struct __ __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1582, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(1, 1582, __pyx_L1_error) + __PYX_ERR(1, 1607, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1580 + /* "dependency_injector/providers.pyx":1605 * :type provides: type * """ * if (self.__class__.provided_type and # <<<<<<<<<<<<<< @@ -29970,22 +30656,22 @@ static int __pyx_pf_19dependency_injector_9providers_7Factory___init__(struct __ */ } - /* "dependency_injector/providers.pyx":1585 + /* "dependency_injector/providers.pyx":1610 * self.__class__, self.__class__.provided_type)) * * self.__instantiator = Callable(provides, *args, **kwargs) # <<<<<<<<<<<<<< * * self.__attributes = tuple() */ - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1585, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_provides); __Pyx_GIVEREF(__pyx_v_provides); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_provides); - __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_v_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1585, __pyx_L1_error) + __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_v_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Callable), __pyx_t_3, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1585, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Callable), __pyx_t_3, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GIVEREF(__pyx_t_2); @@ -29994,14 +30680,14 @@ static int __pyx_pf_19dependency_injector_9providers_7Factory___init__(struct __ __pyx_v_self->__pyx___instantiator = ((struct __pyx_obj_19dependency_injector_9providers_Callable *)__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1587 + /* "dependency_injector/providers.pyx":1612 * self.__instantiator = Callable(provides, *args, **kwargs) * * self.__attributes = tuple() # <<<<<<<<<<<<<< * self.__attributes_len = 0 * */ - __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1587, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->__pyx___attributes); @@ -30009,7 +30695,7 @@ static int __pyx_pf_19dependency_injector_9providers_7Factory___init__(struct __ __pyx_v_self->__pyx___attributes = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1588 + /* "dependency_injector/providers.pyx":1613 * * self.__attributes = tuple() * self.__attributes_len = 0 # <<<<<<<<<<<<<< @@ -30018,14 +30704,14 @@ static int __pyx_pf_19dependency_injector_9providers_7Factory___init__(struct __ */ __pyx_v_self->__pyx___attributes_len = 0; - /* "dependency_injector/providers.pyx":1590 + /* "dependency_injector/providers.pyx":1615 * self.__attributes_len = 0 * * super(Factory, self).__init__() # <<<<<<<<<<<<<< * * def __deepcopy__(self, memo): */ - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1590, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Factory)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Factory)); @@ -30033,10 +30719,10 @@ static int __pyx_pf_19dependency_injector_9providers_7Factory___init__(struct __ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1590, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1590, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -30051,12 +30737,12 @@ static int __pyx_pf_19dependency_injector_9providers_7Factory___init__(struct __ } __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1590, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1574 + /* "dependency_injector/providers.pyx":1599 * provided_type = None * * def __init__(self, provides, *args, **kwargs): # <<<<<<<<<<<<<< @@ -30083,7 +30769,7 @@ static int __pyx_pf_19dependency_injector_9providers_7Factory___init__(struct __ return __pyx_r; } -/* "dependency_injector/providers.pyx":1592 +/* "dependency_injector/providers.pyx":1617 * super(Factory, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -30123,16 +30809,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_2__deepcopy_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__deepcopy__", 0); - /* "dependency_injector/providers.pyx":1594 + /* "dependency_injector/providers.pyx":1619 * def __deepcopy__(self, memo): * """Create and return full copy of provider.""" * copied = memo.get(id(self)) # <<<<<<<<<<<<<< * if copied is not None: * return copied */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1594, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1594, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -30147,13 +30833,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_2__deepcopy_ __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1594, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_copied = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1595 + /* "dependency_injector/providers.pyx":1620 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -30164,7 +30850,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_2__deepcopy_ __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":1596 + /* "dependency_injector/providers.pyx":1621 * copied = memo.get(id(self)) * if copied is not None: * return copied # <<<<<<<<<<<<<< @@ -30176,7 +30862,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_2__deepcopy_ __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1595 + /* "dependency_injector/providers.pyx":1620 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -30185,19 +30871,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_2__deepcopy_ */ } - /* "dependency_injector/providers.pyx":1598 + /* "dependency_injector/providers.pyx":1623 * return copied * * cls = self.cls # <<<<<<<<<<<<<< * if isinstance(cls, Provider): * cls = deepcopy(cls, memo) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_cls); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1598, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_cls); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_cls = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1599 + /* "dependency_injector/providers.pyx":1624 * * cls = self.cls * if isinstance(cls, Provider): # <<<<<<<<<<<<<< @@ -30208,22 +30894,22 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_2__deepcopy_ __pyx_t_5 = (__pyx_t_6 != 0); if (__pyx_t_5) { - /* "dependency_injector/providers.pyx":1600 + /* "dependency_injector/providers.pyx":1625 * cls = self.cls * if isinstance(cls, Provider): * cls = deepcopy(cls, memo) # <<<<<<<<<<<<<< * * copied = self.__class__(cls, */ - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1600, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1625, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_v_cls, 0, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1600, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_v_cls, 0, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_cls, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1599 + /* "dependency_injector/providers.pyx":1624 * * cls = self.cls * if isinstance(cls, Provider): # <<<<<<<<<<<<<< @@ -30232,89 +30918,89 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_2__deepcopy_ */ } - /* "dependency_injector/providers.pyx":1602 + /* "dependency_injector/providers.pyx":1627 * cls = deepcopy(cls, memo) * * copied = self.__class__(cls, # <<<<<<<<<<<<<< * *deepcopy(self.args, memo), * **deepcopy(self.kwargs, memo)) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1602, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1602, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_cls); __Pyx_GIVEREF(__pyx_v_cls); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_cls); - /* "dependency_injector/providers.pyx":1603 + /* "dependency_injector/providers.pyx":1628 * * copied = self.__class__(cls, * *deepcopy(self.args, memo), # <<<<<<<<<<<<<< * **deepcopy(self.kwargs, memo)) * copied.set_attributes(**deepcopy(self.attributes, memo)) */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1603, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1603, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1628, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1603, __pyx_L1_error) + __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":1602 + /* "dependency_injector/providers.pyx":1627 * cls = deepcopy(cls, memo) * * copied = self.__class__(cls, # <<<<<<<<<<<<<< * *deepcopy(self.args, memo), * **deepcopy(self.kwargs, memo)) */ - __pyx_t_3 = __Pyx_PySequence_Tuple(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1602, __pyx_L1_error) + __pyx_t_3 = __Pyx_PySequence_Tuple(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyNumber_Add(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1602, __pyx_L1_error) + __pyx_t_4 = PyNumber_Add(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":1604 + /* "dependency_injector/providers.pyx":1629 * copied = self.__class__(cls, * *deepcopy(self.args, memo), * **deepcopy(self.kwargs, memo)) # <<<<<<<<<<<<<< * copied.set_attributes(**deepcopy(self.attributes, memo)) * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1604, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1604, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1629, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_8 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_2, 0, &__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1604, __pyx_L1_error) + __pyx_t_8 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_2, 0, &__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(__pyx_t_8 == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); - __PYX_ERR(1, 1604, __pyx_L1_error) + __PYX_ERR(1, 1629, __pyx_L1_error) } if (likely(PyDict_CheckExact(__pyx_t_8))) { - __pyx_t_3 = PyDict_Copy(__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1604, __pyx_L1_error) + __pyx_t_3 = PyDict_Copy(__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else { - __pyx_t_3 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1602, __pyx_L1_error) + __pyx_t_3 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } - /* "dependency_injector/providers.pyx":1602 + /* "dependency_injector/providers.pyx":1627 * cls = deepcopy(cls, memo) * * copied = self.__class__(cls, # <<<<<<<<<<<<<< * *deepcopy(self.args, memo), * **deepcopy(self.kwargs, memo)) */ - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1602, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -30322,54 +31008,54 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_2__deepcopy_ __Pyx_DECREF_SET(__pyx_v_copied, __pyx_t_8); __pyx_t_8 = 0; - /* "dependency_injector/providers.pyx":1605 + /* "dependency_injector/providers.pyx":1630 * *deepcopy(self.args, memo), * **deepcopy(self.kwargs, memo)) * copied.set_attributes(**deepcopy(self.attributes, memo)) # <<<<<<<<<<<<<< * * self._copy_overridings(copied, memo) */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_copied, __pyx_n_s_set_attributes); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1605, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_copied, __pyx_n_s_set_attributes); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_attributes); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1605, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_attributes); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1605, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1630, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_4, 0, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1605, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_4, 0, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); - __PYX_ERR(1, 1605, __pyx_L1_error) + __PYX_ERR(1, 1630, __pyx_L1_error) } if (likely(PyDict_CheckExact(__pyx_t_1))) { - __pyx_t_3 = PyDict_Copy(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1605, __pyx_L1_error) + __pyx_t_3 = PyDict_Copy(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { - __pyx_t_3 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1605, __pyx_L1_error) + __pyx_t_3 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1605, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1607 + /* "dependency_injector/providers.pyx":1632 * copied.set_attributes(**deepcopy(self.attributes, memo)) * * self._copy_overridings(copied, memo) # <<<<<<<<<<<<<< * * return copied */ - if (!(likely(((__pyx_v_copied) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_copied, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 1607, __pyx_L1_error) - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1607, __pyx_L1_error) + if (!(likely(((__pyx_v_copied) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_copied, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 1632, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1632, __pyx_L1_error) ((struct __pyx_vtabstruct_19dependency_injector_9providers_Factory *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._copy_overridings(((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_self), ((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_copied), ((PyObject*)__pyx_v_memo), 0); - /* "dependency_injector/providers.pyx":1609 + /* "dependency_injector/providers.pyx":1634 * self._copy_overridings(copied, memo) * * return copied # <<<<<<<<<<<<<< @@ -30381,7 +31067,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_2__deepcopy_ __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1592 + /* "dependency_injector/providers.pyx":1617 * super(Factory, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -30406,7 +31092,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_2__deepcopy_ return __pyx_r; } -/* "dependency_injector/providers.pyx":1611 +/* "dependency_injector/providers.pyx":1636 * return copied * * def __str__(self): # <<<<<<<<<<<<<< @@ -30441,7 +31127,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_4__str__(str int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__str__", 0); - /* "dependency_injector/providers.pyx":1616 + /* "dependency_injector/providers.pyx":1641 * :rtype: str * """ * return represent_provider(provider=self, # <<<<<<<<<<<<<< @@ -30450,31 +31136,31 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_4__str__(str */ __Pyx_XDECREF(__pyx_r); - /* "dependency_injector/providers.pyx":1617 + /* "dependency_injector/providers.pyx":1642 * """ * return represent_provider(provider=self, * provides=self.__instantiator.provides) # <<<<<<<<<<<<<< * * @property */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_provides); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1617, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_provides); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - /* "dependency_injector/providers.pyx":1616 + /* "dependency_injector/providers.pyx":1641 * :rtype: str * """ * return represent_provider(provider=self, # <<<<<<<<<<<<<< * provides=self.__instantiator.provides) * */ - __pyx_t_2 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1616, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1611 + /* "dependency_injector/providers.pyx":1636 * return copied * * def __str__(self): # <<<<<<<<<<<<<< @@ -30494,7 +31180,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_4__str__(str return __pyx_r; } -/* "dependency_injector/providers.pyx":1620 +/* "dependency_injector/providers.pyx":1645 * * @property * def cls(self): # <<<<<<<<<<<<<< @@ -30524,7 +31210,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_3cls___get__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":1622 + /* "dependency_injector/providers.pyx":1647 * def cls(self): * """Return provided type.""" * return self.provides # <<<<<<<<<<<<<< @@ -30532,13 +31218,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_3cls___get__ * @property */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provides); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1622, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provides); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1620 + /* "dependency_injector/providers.pyx":1645 * * @property * def cls(self): # <<<<<<<<<<<<<< @@ -30557,7 +31243,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_3cls___get__ return __pyx_r; } -/* "dependency_injector/providers.pyx":1625 +/* "dependency_injector/providers.pyx":1650 * * @property * def provides(self): # <<<<<<<<<<<<<< @@ -30587,7 +31273,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_8provides___ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":1627 + /* "dependency_injector/providers.pyx":1652 * def provides(self): * """Return provided type.""" * return self.__instantiator.provides # <<<<<<<<<<<<<< @@ -30595,13 +31281,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_8provides___ * @property */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_provides); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1627, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_provides); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1625 + /* "dependency_injector/providers.pyx":1650 * * @property * def provides(self): # <<<<<<<<<<<<<< @@ -30620,7 +31306,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_8provides___ return __pyx_r; } -/* "dependency_injector/providers.pyx":1630 +/* "dependency_injector/providers.pyx":1655 * * @property * def provided(self): # <<<<<<<<<<<<<< @@ -30650,7 +31336,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_8provided___ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":1632 + /* "dependency_injector/providers.pyx":1657 * def provided(self): * """Return :py:class:`ProvidedInstance` provider.""" * return ProvidedInstance(self) # <<<<<<<<<<<<<< @@ -30658,13 +31344,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_8provided___ * @property */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ProvidedInstance), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1632, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ProvidedInstance), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1630 + /* "dependency_injector/providers.pyx":1655 * * @property * def provided(self): # <<<<<<<<<<<<<< @@ -30683,7 +31369,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_8provided___ return __pyx_r; } -/* "dependency_injector/providers.pyx":1635 +/* "dependency_injector/providers.pyx":1660 * * @property * def args(self): # <<<<<<<<<<<<<< @@ -30713,7 +31399,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_4args___get_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":1637 + /* "dependency_injector/providers.pyx":1662 * def args(self): * """Return positional argument injections.""" * return self.__instantiator.args # <<<<<<<<<<<<<< @@ -30721,13 +31407,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_4args___get_ * def add_args(self, *args): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1637, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1635 + /* "dependency_injector/providers.pyx":1660 * * @property * def args(self): # <<<<<<<<<<<<<< @@ -30746,7 +31432,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_4args___get_ return __pyx_r; } -/* "dependency_injector/providers.pyx":1639 +/* "dependency_injector/providers.pyx":1664 * return self.__instantiator.args * * def add_args(self, *args): # <<<<<<<<<<<<<< @@ -30783,21 +31469,21 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_6add_args(st int __pyx_clineno = 0; __Pyx_RefNannySetupContext("add_args", 0); - /* "dependency_injector/providers.pyx":1644 + /* "dependency_injector/providers.pyx":1669 * :return: Reference ``self`` * """ * self.__instantiator.add_args(*args) # <<<<<<<<<<<<<< * return self * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_add_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1644, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_add_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1644, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1645 + /* "dependency_injector/providers.pyx":1670 * """ * self.__instantiator.add_args(*args) * return self # <<<<<<<<<<<<<< @@ -30809,7 +31495,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_6add_args(st __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":1639 + /* "dependency_injector/providers.pyx":1664 * return self.__instantiator.args * * def add_args(self, *args): # <<<<<<<<<<<<<< @@ -30829,7 +31515,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_6add_args(st return __pyx_r; } -/* "dependency_injector/providers.pyx":1647 +/* "dependency_injector/providers.pyx":1672 * return self * * def set_args(self, *args): # <<<<<<<<<<<<<< @@ -30866,21 +31552,21 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_8set_args(st int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_args", 0); - /* "dependency_injector/providers.pyx":1654 + /* "dependency_injector/providers.pyx":1679 * :return: Reference ``self`` * """ * self.__instantiator.set_args(*args) # <<<<<<<<<<<<<< * return self * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_set_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1654, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_set_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1654, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1655 + /* "dependency_injector/providers.pyx":1680 * """ * self.__instantiator.set_args(*args) * return self # <<<<<<<<<<<<<< @@ -30892,7 +31578,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_8set_args(st __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":1647 + /* "dependency_injector/providers.pyx":1672 * return self * * def set_args(self, *args): # <<<<<<<<<<<<<< @@ -30912,7 +31598,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_8set_args(st return __pyx_r; } -/* "dependency_injector/providers.pyx":1657 +/* "dependency_injector/providers.pyx":1682 * return self * * def clear_args(self): # <<<<<<<<<<<<<< @@ -30945,14 +31631,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_10clear_args int __pyx_clineno = 0; __Pyx_RefNannySetupContext("clear_args", 0); - /* "dependency_injector/providers.pyx":1662 + /* "dependency_injector/providers.pyx":1687 * :return: Reference ``self`` * """ * self.__instantiator.clear_args() # <<<<<<<<<<<<<< * return self * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_clear_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1662, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_clear_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -30966,12 +31652,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_10clear_args } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1662, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1663 + /* "dependency_injector/providers.pyx":1688 * """ * self.__instantiator.clear_args() * return self # <<<<<<<<<<<<<< @@ -30983,7 +31669,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_10clear_args __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":1657 + /* "dependency_injector/providers.pyx":1682 * return self * * def clear_args(self): # <<<<<<<<<<<<<< @@ -31004,7 +31690,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_10clear_args return __pyx_r; } -/* "dependency_injector/providers.pyx":1666 +/* "dependency_injector/providers.pyx":1691 * * @property * def kwargs(self): # <<<<<<<<<<<<<< @@ -31034,7 +31720,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_6kwargs___ge int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":1668 + /* "dependency_injector/providers.pyx":1693 * def kwargs(self): * """Return keyword argument injections.""" * return self.__instantiator.kwargs # <<<<<<<<<<<<<< @@ -31042,13 +31728,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_6kwargs___ge * def add_kwargs(self, **kwargs): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1668, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1666 + /* "dependency_injector/providers.pyx":1691 * * @property * def kwargs(self): # <<<<<<<<<<<<<< @@ -31067,7 +31753,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_6kwargs___ge return __pyx_r; } -/* "dependency_injector/providers.pyx":1670 +/* "dependency_injector/providers.pyx":1695 * return self.__instantiator.kwargs * * def add_kwargs(self, **kwargs): # <<<<<<<<<<<<<< @@ -31110,21 +31796,21 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_12add_kwargs int __pyx_clineno = 0; __Pyx_RefNannySetupContext("add_kwargs", 0); - /* "dependency_injector/providers.pyx":1675 + /* "dependency_injector/providers.pyx":1700 * :return: Reference ``self`` * """ * self.__instantiator.add_kwargs(**kwargs) # <<<<<<<<<<<<<< * return self * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_add_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1675, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_add_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1675, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1676 + /* "dependency_injector/providers.pyx":1701 * """ * self.__instantiator.add_kwargs(**kwargs) * return self # <<<<<<<<<<<<<< @@ -31136,7 +31822,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_12add_kwargs __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":1670 + /* "dependency_injector/providers.pyx":1695 * return self.__instantiator.kwargs * * def add_kwargs(self, **kwargs): # <<<<<<<<<<<<<< @@ -31156,7 +31842,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_12add_kwargs return __pyx_r; } -/* "dependency_injector/providers.pyx":1678 +/* "dependency_injector/providers.pyx":1703 * return self * * def set_kwargs(self, **kwargs): # <<<<<<<<<<<<<< @@ -31199,21 +31885,21 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_14set_kwargs int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_kwargs", 0); - /* "dependency_injector/providers.pyx":1685 + /* "dependency_injector/providers.pyx":1710 * :return: Reference ``self`` * """ * self.__instantiator.set_kwargs(**kwargs) # <<<<<<<<<<<<<< * return self * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_set_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1685, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_set_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1685, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1686 + /* "dependency_injector/providers.pyx":1711 * """ * self.__instantiator.set_kwargs(**kwargs) * return self # <<<<<<<<<<<<<< @@ -31225,7 +31911,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_14set_kwargs __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":1678 + /* "dependency_injector/providers.pyx":1703 * return self * * def set_kwargs(self, **kwargs): # <<<<<<<<<<<<<< @@ -31245,7 +31931,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_14set_kwargs return __pyx_r; } -/* "dependency_injector/providers.pyx":1688 +/* "dependency_injector/providers.pyx":1713 * return self * * def clear_kwargs(self): # <<<<<<<<<<<<<< @@ -31278,14 +31964,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_16clear_kwar int __pyx_clineno = 0; __Pyx_RefNannySetupContext("clear_kwargs", 0); - /* "dependency_injector/providers.pyx":1693 + /* "dependency_injector/providers.pyx":1718 * :return: Reference ``self`` * """ * self.__instantiator.clear_kwargs() # <<<<<<<<<<<<<< * return self * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_clear_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1693, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_clear_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -31299,12 +31985,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_16clear_kwar } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1693, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1694 + /* "dependency_injector/providers.pyx":1719 * """ * self.__instantiator.clear_kwargs() * return self # <<<<<<<<<<<<<< @@ -31316,7 +32002,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_16clear_kwar __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":1688 + /* "dependency_injector/providers.pyx":1713 * return self * * def clear_kwargs(self): # <<<<<<<<<<<<<< @@ -31337,7 +32023,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_16clear_kwar return __pyx_r; } -/* "dependency_injector/providers.pyx":1697 +/* "dependency_injector/providers.pyx":1722 * * @property * def attributes(self): # <<<<<<<<<<<<<< @@ -31373,19 +32059,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_10attributes int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":1703 + /* "dependency_injector/providers.pyx":1728 * cdef dict attributes * * attributes = dict() # <<<<<<<<<<<<<< * for index in range(self.__attributes_len): * attribute = self.__attributes[index] */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1703, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_attributes = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1704 + /* "dependency_injector/providers.pyx":1729 * * attributes = dict() * for index in range(self.__attributes_len): # <<<<<<<<<<<<<< @@ -31397,7 +32083,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_10attributes for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_index = __pyx_t_4; - /* "dependency_injector/providers.pyx":1705 + /* "dependency_injector/providers.pyx":1730 * attributes = dict() * for index in range(self.__attributes_len): * attribute = self.__attributes[index] # <<<<<<<<<<<<<< @@ -31406,15 +32092,15 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_10attributes */ if (unlikely(__pyx_v_self->__pyx___attributes == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 1705, __pyx_L1_error) + __PYX_ERR(1, 1730, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->__pyx___attributes, __pyx_v_index, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1705, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->__pyx___attributes, __pyx_v_index, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_NamedInjection))))) __PYX_ERR(1, 1705, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_NamedInjection))))) __PYX_ERR(1, 1730, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_attribute, ((struct __pyx_obj_19dependency_injector_9providers_NamedInjection *)__pyx_t_1)); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1706 + /* "dependency_injector/providers.pyx":1731 * for index in range(self.__attributes_len): * attribute = self.__attributes[index] * attributes[attribute.__name] = attribute.__value # <<<<<<<<<<<<<< @@ -31423,11 +32109,11 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_10attributes */ __pyx_t_1 = __pyx_v_attribute->__pyx_base.__pyx___value; __Pyx_INCREF(__pyx_t_1); - if (unlikely(PyDict_SetItem(__pyx_v_attributes, __pyx_v_attribute->__pyx___name, __pyx_t_1) < 0)) __PYX_ERR(1, 1706, __pyx_L1_error) + if (unlikely(PyDict_SetItem(__pyx_v_attributes, __pyx_v_attribute->__pyx___name, __pyx_t_1) < 0)) __PYX_ERR(1, 1731, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - /* "dependency_injector/providers.pyx":1707 + /* "dependency_injector/providers.pyx":1732 * attribute = self.__attributes[index] * attributes[attribute.__name] = attribute.__value * return attributes # <<<<<<<<<<<<<< @@ -31439,7 +32125,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_10attributes __pyx_r = __pyx_v_attributes; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1697 + /* "dependency_injector/providers.pyx":1722 * * @property * def attributes(self): # <<<<<<<<<<<<<< @@ -31460,7 +32146,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_10attributes return __pyx_r; } -/* "dependency_injector/providers.pyx":1709 +/* "dependency_injector/providers.pyx":1734 * return attributes * * def add_attributes(self, **kwargs): # <<<<<<<<<<<<<< @@ -31500,16 +32186,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_18add_attrib int __pyx_clineno = 0; __Pyx_RefNannySetupContext("add_attributes", 0); - /* "dependency_injector/providers.pyx":1714 + /* "dependency_injector/providers.pyx":1739 * :return: Reference ``self`` * """ * self.__attributes += parse_named_injections(kwargs) # <<<<<<<<<<<<<< * self.__attributes_len = len(self.__attributes) * return self */ - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_named_injections(__pyx_v_kwargs, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1714, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_named_injections(__pyx_v_kwargs, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1739, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_self->__pyx___attributes, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1714, __pyx_L1_error) + __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_self->__pyx___attributes, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1739, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); @@ -31518,7 +32204,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_18add_attrib __pyx_v_self->__pyx___attributes = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1715 + /* "dependency_injector/providers.pyx":1740 * """ * self.__attributes += parse_named_injections(kwargs) * self.__attributes_len = len(self.__attributes) # <<<<<<<<<<<<<< @@ -31529,13 +32215,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_18add_attrib __Pyx_INCREF(__pyx_t_2); if (unlikely(__pyx_t_2 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(1, 1715, __pyx_L1_error) + __PYX_ERR(1, 1740, __pyx_L1_error) } - __pyx_t_3 = PyTuple_GET_SIZE(__pyx_t_2); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1715, __pyx_L1_error) + __pyx_t_3 = PyTuple_GET_SIZE(__pyx_t_2); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1740, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->__pyx___attributes_len = __pyx_t_3; - /* "dependency_injector/providers.pyx":1716 + /* "dependency_injector/providers.pyx":1741 * self.__attributes += parse_named_injections(kwargs) * self.__attributes_len = len(self.__attributes) * return self # <<<<<<<<<<<<<< @@ -31547,7 +32233,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_18add_attrib __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":1709 + /* "dependency_injector/providers.pyx":1734 * return attributes * * def add_attributes(self, **kwargs): # <<<<<<<<<<<<<< @@ -31567,7 +32253,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_18add_attrib return __pyx_r; } -/* "dependency_injector/providers.pyx":1718 +/* "dependency_injector/providers.pyx":1743 * return self * * def set_attributes(self, **kwargs): # <<<<<<<<<<<<<< @@ -31606,14 +32292,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_20set_attrib int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_attributes", 0); - /* "dependency_injector/providers.pyx":1725 + /* "dependency_injector/providers.pyx":1750 * :return: Reference ``self`` * """ * self.__attributes = parse_named_injections(kwargs) # <<<<<<<<<<<<<< * self.__attributes_len = len(self.__attributes) * return self */ - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_named_injections(__pyx_v_kwargs, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1725, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_named_injections(__pyx_v_kwargs, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->__pyx___attributes); @@ -31621,7 +32307,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_20set_attrib __pyx_v_self->__pyx___attributes = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1726 + /* "dependency_injector/providers.pyx":1751 * """ * self.__attributes = parse_named_injections(kwargs) * self.__attributes_len = len(self.__attributes) # <<<<<<<<<<<<<< @@ -31632,13 +32318,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_20set_attrib __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(1, 1726, __pyx_L1_error) + __PYX_ERR(1, 1751, __pyx_L1_error) } - __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1726, __pyx_L1_error) + __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1751, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_self->__pyx___attributes_len = __pyx_t_2; - /* "dependency_injector/providers.pyx":1727 + /* "dependency_injector/providers.pyx":1752 * self.__attributes = parse_named_injections(kwargs) * self.__attributes_len = len(self.__attributes) * return self # <<<<<<<<<<<<<< @@ -31650,7 +32336,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_20set_attrib __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":1718 + /* "dependency_injector/providers.pyx":1743 * return self * * def set_attributes(self, **kwargs): # <<<<<<<<<<<<<< @@ -31669,7 +32355,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_20set_attrib return __pyx_r; } -/* "dependency_injector/providers.pyx":1729 +/* "dependency_injector/providers.pyx":1754 * return self * * def clear_attributes(self): # <<<<<<<<<<<<<< @@ -31701,14 +32387,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_22clear_attr int __pyx_clineno = 0; __Pyx_RefNannySetupContext("clear_attributes", 0); - /* "dependency_injector/providers.pyx":1734 + /* "dependency_injector/providers.pyx":1759 * :return: Reference ``self`` * """ * self.__attributes = tuple() # <<<<<<<<<<<<<< * self.__attributes_len = len(self.__attributes) * return self */ - __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1734, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->__pyx___attributes); @@ -31716,7 +32402,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_22clear_attr __pyx_v_self->__pyx___attributes = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1735 + /* "dependency_injector/providers.pyx":1760 * """ * self.__attributes = tuple() * self.__attributes_len = len(self.__attributes) # <<<<<<<<<<<<<< @@ -31727,13 +32413,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_22clear_attr __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(1, 1735, __pyx_L1_error) + __PYX_ERR(1, 1760, __pyx_L1_error) } - __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1735, __pyx_L1_error) + __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1760, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_self->__pyx___attributes_len = __pyx_t_2; - /* "dependency_injector/providers.pyx":1736 + /* "dependency_injector/providers.pyx":1761 * self.__attributes = tuple() * self.__attributes_len = len(self.__attributes) * return self # <<<<<<<<<<<<<< @@ -31745,7 +32431,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_22clear_attr __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":1729 + /* "dependency_injector/providers.pyx":1754 * return self * * def clear_attributes(self): # <<<<<<<<<<<<<< @@ -31764,7 +32450,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_22clear_attr return __pyx_r; } -/* "dependency_injector/providers.pyx":1738 +/* "dependency_injector/providers.pyx":1763 * return self * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -31795,7 +32481,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_7Factory__provide(stru if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1738, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_19dependency_injector_9providers_7Factory_25_provide)) { __Pyx_XDECREF(__pyx_r); @@ -31815,7 +32501,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_7Factory__provide(stru #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1738, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1763, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -31823,13 +32509,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_7Factory__provide(stru #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1738, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1763, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1738, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -31840,7 +32526,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_7Factory__provide(stru __Pyx_INCREF(__pyx_v_kwargs); __Pyx_GIVEREF(__pyx_v_kwargs); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_kwargs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1738, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -31863,7 +32549,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_7Factory__provide(stru #endif } - /* "dependency_injector/providers.pyx":1740 + /* "dependency_injector/providers.pyx":1765 * cpdef object _provide(self, tuple args, dict kwargs): * """Return new instance.""" * return __factory_call(self, args, kwargs) # <<<<<<<<<<<<<< @@ -31871,13 +32557,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_7Factory__provide(stru * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers___factory_call(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1740, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers___factory_call(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1738 + /* "dependency_injector/providers.pyx":1763 * return self * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -31935,11 +32621,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_7Factory_25_provide(P case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 1738, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 1763, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 1738, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 1763, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -31952,14 +32638,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_7Factory_25_provide(P } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1738, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1763, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.Factory._provide", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 1738, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 1738, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 1763, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 1763, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_7Factory_24_provide(((struct __pyx_obj_19dependency_injector_9providers_Factory *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs); /* function exit code */ @@ -31980,7 +32666,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_7Factory_24_provide(s int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_provide", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_7Factory__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1738, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_7Factory__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -32661,7 +33347,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16DelegatedFactory_2_ return __pyx_r; } -/* "dependency_injector/providers.pyx":1775 +/* "dependency_injector/providers.pyx":1800 * """ * * def __call__(self, *args, **kwargs): # <<<<<<<<<<<<<< @@ -32714,7 +33400,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AbstractFactory___c int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__call__", 0); - /* "dependency_injector/providers.pyx":1780 + /* "dependency_injector/providers.pyx":1805 * Callable interface implementation. * """ * if self.__last_overriding is None: # <<<<<<<<<<<<<< @@ -32725,16 +33411,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AbstractFactory___c __pyx_t_2 = (__pyx_t_1 != 0); if (unlikely(__pyx_t_2)) { - /* "dependency_injector/providers.pyx":1781 + /* "dependency_injector/providers.pyx":1806 * """ * if self.__last_overriding is None: * raise Error('{0} must be overridden before calling'.format(self)) # <<<<<<<<<<<<<< * return self.__last_overriding(*args, **kwargs) * */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1781, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1806, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_must_be_overridden_before_cal, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1781, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_must_be_overridden_before_cal, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1806, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { @@ -32748,7 +33434,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AbstractFactory___c } __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1781, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1806, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -32764,14 +33450,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AbstractFactory___c __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1781, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1806, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 1781, __pyx_L1_error) + __PYX_ERR(1, 1806, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1780 + /* "dependency_injector/providers.pyx":1805 * Callable interface implementation. * """ * if self.__last_overriding is None: # <<<<<<<<<<<<<< @@ -32780,7 +33466,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AbstractFactory___c */ } - /* "dependency_injector/providers.pyx":1782 + /* "dependency_injector/providers.pyx":1807 * if self.__last_overriding is None: * raise Error('{0} must be overridden before calling'.format(self)) * return self.__last_overriding(*args, **kwargs) # <<<<<<<<<<<<<< @@ -32788,13 +33474,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AbstractFactory___c * def override(self, provider): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx___last_overriding), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1782, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx___last_overriding), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1775 + /* "dependency_injector/providers.pyx":1800 * """ * * def __call__(self, *args, **kwargs): # <<<<<<<<<<<<<< @@ -32817,7 +33503,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AbstractFactory___c return __pyx_r; } -/* "dependency_injector/providers.pyx":1784 +/* "dependency_injector/providers.pyx":1809 * return self.__last_overriding(*args, **kwargs) * * def override(self, provider): # <<<<<<<<<<<<<< @@ -32856,7 +33542,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AbstractFactory_2ov int __pyx_clineno = 0; __Pyx_RefNannySetupContext("override", 0); - /* "dependency_injector/providers.pyx":1795 + /* "dependency_injector/providers.pyx":1820 * :rtype: :py:class:`OverridingContext` * """ * if not isinstance(provider, Factory): # <<<<<<<<<<<<<< @@ -32867,24 +33553,24 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AbstractFactory_2ov __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (unlikely(__pyx_t_2)) { - /* "dependency_injector/providers.pyx":1796 + /* "dependency_injector/providers.pyx":1821 * """ * if not isinstance(provider, Factory): * raise Error('{0} must be overridden only by ' # <<<<<<<<<<<<<< * '{1} providers'.format(self, Factory)) * return super(AbstractFactory, self).override(provider) */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1796, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - /* "dependency_injector/providers.pyx":1797 + /* "dependency_injector/providers.pyx":1822 * if not isinstance(provider, Factory): * raise Error('{0} must be overridden only by ' * '{1} providers'.format(self, Factory)) # <<<<<<<<<<<<<< * return super(AbstractFactory, self).override(provider) * */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_must_be_overridden_only_by_1, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1797, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_must_be_overridden_only_by_1, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; @@ -32901,7 +33587,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AbstractFactory_2ov #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, ((PyObject *)__pyx_v_self), ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Factory)}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1797, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1822, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_5); } else @@ -32909,13 +33595,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AbstractFactory_2ov #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, ((PyObject *)__pyx_v_self), ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Factory)}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1797, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1822, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { - __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1797, __pyx_L1_error) + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -32926,7 +33612,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AbstractFactory_2ov __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Factory)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Factory)); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Factory)); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1797, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } @@ -32944,14 +33630,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AbstractFactory_2ov __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1796, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 1796, __pyx_L1_error) + __PYX_ERR(1, 1821, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1795 + /* "dependency_injector/providers.pyx":1820 * :rtype: :py:class:`OverridingContext` * """ * if not isinstance(provider, Factory): # <<<<<<<<<<<<<< @@ -32960,7 +33646,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AbstractFactory_2ov */ } - /* "dependency_injector/providers.pyx":1798 + /* "dependency_injector/providers.pyx":1823 * raise Error('{0} must be overridden only by ' * '{1} providers'.format(self, Factory)) * return super(AbstractFactory, self).override(provider) # <<<<<<<<<<<<<< @@ -32968,7 +33654,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AbstractFactory_2ov * cpdef object _provide(self, tuple args, dict kwargs): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1798, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_AbstractFactory)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_AbstractFactory)); @@ -32976,10 +33662,10 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AbstractFactory_2ov __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1798, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_override); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1798, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_override); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; @@ -32994,14 +33680,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AbstractFactory_2ov } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_provider) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_provider); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1798, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1784 + /* "dependency_injector/providers.pyx":1809 * return self.__last_overriding(*args, **kwargs) * * def override(self, provider): # <<<<<<<<<<<<<< @@ -33025,7 +33711,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AbstractFactory_2ov return __pyx_r; } -/* "dependency_injector/providers.pyx":1800 +/* "dependency_injector/providers.pyx":1825 * return super(AbstractFactory, self).override(provider) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -33056,7 +33742,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_15AbstractFactory__pro if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1800, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_19dependency_injector_9providers_15AbstractFactory_5_provide)) { __Pyx_XDECREF(__pyx_r); @@ -33076,7 +33762,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_15AbstractFactory__pro #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1800, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1825, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -33084,13 +33770,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_15AbstractFactory__pro #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1800, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1825, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1800, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -33101,7 +33787,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_15AbstractFactory__pro __Pyx_INCREF(__pyx_v_kwargs); __Pyx_GIVEREF(__pyx_v_kwargs); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_kwargs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1800, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -33124,20 +33810,20 @@ static PyObject *__pyx_f_19dependency_injector_9providers_15AbstractFactory__pro #endif } - /* "dependency_injector/providers.pyx":1802 + /* "dependency_injector/providers.pyx":1827 * cpdef object _provide(self, tuple args, dict kwargs): * """Return result of provided callable's call.""" * raise NotImplementedError('Abstract provider forward providing logic ' # <<<<<<<<<<<<<< * 'to overriding provider') * */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_NotImplementedError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1802, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_NotImplementedError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 1802, __pyx_L1_error) + __PYX_ERR(1, 1827, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1800 + /* "dependency_injector/providers.pyx":1825 * return super(AbstractFactory, self).override(provider) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -33195,11 +33881,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_15AbstractFactory_5_p case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 1800, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 1825, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 1800, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 1825, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -33212,14 +33898,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_15AbstractFactory_5_p } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1800, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1825, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.AbstractFactory._provide", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 1800, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 1800, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 1825, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 1825, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_15AbstractFactory_4_provide(((struct __pyx_obj_19dependency_injector_9providers_AbstractFactory *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs); /* function exit code */ @@ -33240,7 +33926,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AbstractFactory_4_p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_provide", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_15AbstractFactory__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1800, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_15AbstractFactory__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -33589,7 +34275,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AbstractFactory_8__ return __pyx_r; } -/* "dependency_injector/providers.pyx":1816 +/* "dependency_injector/providers.pyx":1841 * """ * * def __init__(self, factory): # <<<<<<<<<<<<<< @@ -33630,7 +34316,7 @@ static int __pyx_pw_19dependency_injector_9providers_15FactoryDelegate_1__init__ else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 1816, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 1841, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; @@ -33641,7 +34327,7 @@ static int __pyx_pw_19dependency_injector_9providers_15FactoryDelegate_1__init__ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1816, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1841, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.FactoryDelegate.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -33672,7 +34358,7 @@ static int __pyx_pf_19dependency_injector_9providers_15FactoryDelegate___init__( int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":1822 + /* "dependency_injector/providers.pyx":1847 * :type factory: object * """ * if isinstance(factory, Factory) is False: # <<<<<<<<<<<<<< @@ -33683,26 +34369,26 @@ static int __pyx_pf_19dependency_injector_9providers_15FactoryDelegate___init__( __pyx_t_2 = ((__pyx_t_1 == 0) != 0); if (unlikely(__pyx_t_2)) { - /* "dependency_injector/providers.pyx":1823 + /* "dependency_injector/providers.pyx":1848 * """ * if isinstance(factory, Factory) is False: * raise Error('{0} can wrap only {1} providers'.format( # <<<<<<<<<<<<<< * self.__class__, Factory)) * super(FactoryDelegate, self).__init__(factory) */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1823, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_can_wrap_only_1_providers, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1823, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_can_wrap_only_1_providers, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - /* "dependency_injector/providers.pyx":1824 + /* "dependency_injector/providers.pyx":1849 * if isinstance(factory, Factory) is False: * raise Error('{0} can wrap only {1} providers'.format( * self.__class__, Factory)) # <<<<<<<<<<<<<< * super(FactoryDelegate, self).__init__(factory) * */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1824, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1849, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_9 = 0; @@ -33719,7 +34405,7 @@ static int __pyx_pf_19dependency_injector_9providers_15FactoryDelegate___init__( #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_7, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Factory)}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1823, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1848, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; @@ -33728,14 +34414,14 @@ static int __pyx_pf_19dependency_injector_9providers_15FactoryDelegate___init__( #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_7, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Factory)}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1823, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1848, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { - __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1823, __pyx_L1_error) + __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; @@ -33746,7 +34432,7 @@ static int __pyx_pf_19dependency_injector_9providers_15FactoryDelegate___init__( __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Factory)); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Factory)); __pyx_t_7 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1823, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } @@ -33764,14 +34450,14 @@ static int __pyx_pf_19dependency_injector_9providers_15FactoryDelegate___init__( __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1823, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 1823, __pyx_L1_error) + __PYX_ERR(1, 1848, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1822 + /* "dependency_injector/providers.pyx":1847 * :type factory: object * """ * if isinstance(factory, Factory) is False: # <<<<<<<<<<<<<< @@ -33780,14 +34466,14 @@ static int __pyx_pf_19dependency_injector_9providers_15FactoryDelegate___init__( */ } - /* "dependency_injector/providers.pyx":1825 + /* "dependency_injector/providers.pyx":1850 * raise Error('{0} can wrap only {1} providers'.format( * self.__class__, Factory)) * super(FactoryDelegate, self).__init__(factory) # <<<<<<<<<<<<<< * * */ - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1825, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_FactoryDelegate)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_FactoryDelegate)); @@ -33795,10 +34481,10 @@ static int __pyx_pf_19dependency_injector_9providers_15FactoryDelegate___init__( __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1825, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1825, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; @@ -33813,12 +34499,12 @@ static int __pyx_pf_19dependency_injector_9providers_15FactoryDelegate___init__( } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_factory) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_factory); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1825, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":1816 + /* "dependency_injector/providers.pyx":1841 * """ * * def __init__(self, factory): # <<<<<<<<<<<<<< @@ -34161,7 +34847,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15FactoryDelegate_4__ return __pyx_r; } -/* "dependency_injector/providers.pyx":1844 +/* "dependency_injector/providers.pyx":1869 * __IS_DELEGATED__ = True * * def __init__(self, **factories): # <<<<<<<<<<<<<< @@ -34215,22 +34901,22 @@ static int __pyx_pf_19dependency_injector_9providers_16FactoryAggregate___init__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":1850 + /* "dependency_injector/providers.pyx":1875 * :type factories: dict[str, :py:class:`Factory`] * """ * for factory in factories.values(): # <<<<<<<<<<<<<< * if isinstance(factory, Factory) is False: * raise Error( */ - __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_factories); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1850, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_factories); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { - __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1850, __pyx_L1_error) + __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1850, __pyx_L1_error) + __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1875, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -34238,17 +34924,17 @@ static int __pyx_pf_19dependency_injector_9providers_16FactoryAggregate___init__ if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 1850, __pyx_L1_error) + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 1875, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1850, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 1850, __pyx_L1_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 1875, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1850, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } @@ -34258,7 +34944,7 @@ static int __pyx_pf_19dependency_injector_9providers_16FactoryAggregate___init__ PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(1, 1850, __pyx_L1_error) + else __PYX_ERR(1, 1875, __pyx_L1_error) } break; } @@ -34267,7 +34953,7 @@ static int __pyx_pf_19dependency_injector_9providers_16FactoryAggregate___init__ __Pyx_XDECREF_SET(__pyx_v_factory, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1851 + /* "dependency_injector/providers.pyx":1876 * """ * for factory in factories.values(): * if isinstance(factory, Factory) is False: # <<<<<<<<<<<<<< @@ -34278,26 +34964,26 @@ static int __pyx_pf_19dependency_injector_9providers_16FactoryAggregate___init__ __pyx_t_6 = ((__pyx_t_5 == 0) != 0); if (unlikely(__pyx_t_6)) { - /* "dependency_injector/providers.pyx":1852 + /* "dependency_injector/providers.pyx":1877 * for factory in factories.values(): * if isinstance(factory, Factory) is False: * raise Error( # <<<<<<<<<<<<<< * '{0} can aggregate only instances of {1}, given - {2}' * .format(self.__class__, Factory, factory)) */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_Error); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1852, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_Error); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - /* "dependency_injector/providers.pyx":1854 + /* "dependency_injector/providers.pyx":1879 * raise Error( * '{0} can aggregate only instances of {1}, given - {2}' * .format(self.__class__, Factory, factory)) # <<<<<<<<<<<<<< * self.__factories = factories * super(FactoryAggregate, self).__init__() */ - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_can_aggregate_only_instances, __pyx_n_s_format); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1854, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_can_aggregate_only_instances, __pyx_n_s_format); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1854, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = NULL; __pyx_t_12 = 0; @@ -34314,7 +35000,7 @@ static int __pyx_pf_19dependency_injector_9providers_16FactoryAggregate___init__ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[4] = {__pyx_t_11, __pyx_t_10, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Factory), __pyx_v_factory}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1854, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1879, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; @@ -34323,14 +35009,14 @@ static int __pyx_pf_19dependency_injector_9providers_16FactoryAggregate___init__ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[4] = {__pyx_t_11, __pyx_t_10, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_Factory), __pyx_v_factory}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1854, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1879, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif { - __pyx_t_13 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1854, __pyx_L1_error) + __pyx_t_13 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (__pyx_t_11) { __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_11); __pyx_t_11 = NULL; @@ -34344,7 +35030,7 @@ static int __pyx_pf_19dependency_injector_9providers_16FactoryAggregate___init__ __Pyx_GIVEREF(__pyx_v_factory); PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_12, __pyx_v_factory); __pyx_t_10 = 0; - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_13, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1854, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_13, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } @@ -34362,14 +35048,14 @@ static int __pyx_pf_19dependency_injector_9providers_16FactoryAggregate___init__ __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_9, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1852, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 1852, __pyx_L1_error) + __PYX_ERR(1, 1877, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1851 + /* "dependency_injector/providers.pyx":1876 * """ * for factory in factories.values(): * if isinstance(factory, Factory) is False: # <<<<<<<<<<<<<< @@ -34378,7 +35064,7 @@ static int __pyx_pf_19dependency_injector_9providers_16FactoryAggregate___init__ */ } - /* "dependency_injector/providers.pyx":1850 + /* "dependency_injector/providers.pyx":1875 * :type factories: dict[str, :py:class:`Factory`] * """ * for factory in factories.values(): # <<<<<<<<<<<<<< @@ -34388,7 +35074,7 @@ static int __pyx_pf_19dependency_injector_9providers_16FactoryAggregate___init__ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1855 + /* "dependency_injector/providers.pyx":1880 * '{0} can aggregate only instances of {1}, given - {2}' * .format(self.__class__, Factory, factory)) * self.__factories = factories # <<<<<<<<<<<<<< @@ -34401,14 +35087,14 @@ static int __pyx_pf_19dependency_injector_9providers_16FactoryAggregate___init__ __Pyx_DECREF(__pyx_v_self->__pyx___factories); __pyx_v_self->__pyx___factories = __pyx_v_factories; - /* "dependency_injector/providers.pyx":1856 + /* "dependency_injector/providers.pyx":1881 * .format(self.__class__, Factory, factory)) * self.__factories = factories * super(FactoryAggregate, self).__init__() # <<<<<<<<<<<<<< * * def __deepcopy__(self, memo): */ - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1856, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_FactoryAggregate)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_FactoryAggregate)); @@ -34416,10 +35102,10 @@ static int __pyx_pf_19dependency_injector_9providers_16FactoryAggregate___init__ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1856, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1856, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; @@ -34434,12 +35120,12 @@ static int __pyx_pf_19dependency_injector_9providers_16FactoryAggregate___init__ } __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1856, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1844 + /* "dependency_injector/providers.pyx":1869 * __IS_DELEGATED__ = True * * def __init__(self, **factories): # <<<<<<<<<<<<<< @@ -34467,7 +35153,7 @@ static int __pyx_pf_19dependency_injector_9providers_16FactoryAggregate___init__ return __pyx_r; } -/* "dependency_injector/providers.pyx":1858 +/* "dependency_injector/providers.pyx":1883 * super(FactoryAggregate, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -34505,16 +35191,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_2_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__deepcopy__", 0); - /* "dependency_injector/providers.pyx":1862 + /* "dependency_injector/providers.pyx":1887 * cdef FactoryAggregate copied * * copied = memo.get(id(self)) # <<<<<<<<<<<<<< * if copied is not None: * return copied */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1862, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1862, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -34529,14 +35215,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_2_ __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1862, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_FactoryAggregate))))) __PYX_ERR(1, 1862, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_FactoryAggregate))))) __PYX_ERR(1, 1887, __pyx_L1_error) __pyx_v_copied = ((struct __pyx_obj_19dependency_injector_9providers_FactoryAggregate *)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1863 + /* "dependency_injector/providers.pyx":1888 * * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -34547,7 +35233,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_2_ __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":1864 + /* "dependency_injector/providers.pyx":1889 * copied = memo.get(id(self)) * if copied is not None: * return copied # <<<<<<<<<<<<<< @@ -34559,7 +35245,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_2_ __pyx_r = ((PyObject *)__pyx_v_copied); goto __pyx_L0; - /* "dependency_injector/providers.pyx":1863 + /* "dependency_injector/providers.pyx":1888 * * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -34568,14 +35254,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_2_ */ } - /* "dependency_injector/providers.pyx":1866 + /* "dependency_injector/providers.pyx":1891 * return copied * * copied = self.__class__() # <<<<<<<<<<<<<< * copied.__factories = deepcopy(self.__factories, memo) * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1866, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -34589,14 +35275,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_2_ } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1866, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_FactoryAggregate))))) __PYX_ERR(1, 1866, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_FactoryAggregate))))) __PYX_ERR(1, 1891, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_copied, ((struct __pyx_obj_19dependency_injector_9providers_FactoryAggregate *)__pyx_t_1)); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1867 + /* "dependency_injector/providers.pyx":1892 * * copied = self.__class__() * copied.__factories = deepcopy(self.__factories, memo) # <<<<<<<<<<<<<< @@ -34605,30 +35291,30 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_2_ */ __pyx_t_1 = __pyx_v_self->__pyx___factories; __Pyx_INCREF(__pyx_t_1); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1867, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1892, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_2 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_1, 0, &__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1867, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_1, 0, &__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(PyDict_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(1, 1867, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(1, 1892, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_copied->__pyx___factories); __Pyx_DECREF(__pyx_v_copied->__pyx___factories); __pyx_v_copied->__pyx___factories = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1869 + /* "dependency_injector/providers.pyx":1894 * copied.__factories = deepcopy(self.__factories, memo) * * self._copy_overridings(copied, memo) # <<<<<<<<<<<<<< * * return copied */ - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1869, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1894, __pyx_L1_error) ((struct __pyx_vtabstruct_19dependency_injector_9providers_FactoryAggregate *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._copy_overridings(((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_self), ((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_copied), ((PyObject*)__pyx_v_memo), 0); - /* "dependency_injector/providers.pyx":1871 + /* "dependency_injector/providers.pyx":1896 * self._copy_overridings(copied, memo) * * return copied # <<<<<<<<<<<<<< @@ -34640,7 +35326,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_2_ __pyx_r = ((PyObject *)__pyx_v_copied); goto __pyx_L0; - /* "dependency_injector/providers.pyx":1858 + /* "dependency_injector/providers.pyx":1883 * super(FactoryAggregate, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -34663,7 +35349,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_2_ return __pyx_r; } -/* "dependency_injector/providers.pyx":1873 +/* "dependency_injector/providers.pyx":1898 * return copied * * def __call__(self, factory_name, *args, **kwargs): # <<<<<<<<<<<<<< @@ -34720,7 +35406,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_16FactoryAggregate_5_ } if (unlikely(kw_args > 0)) { const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__call__") < 0)) __PYX_ERR(1, 1873, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__call__") < 0)) __PYX_ERR(1, 1898, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) < 1) { goto __pyx_L5_argtuple_error; @@ -34731,7 +35417,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_16FactoryAggregate_5_ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1873, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1898, __pyx_L3_error) __pyx_L3_error:; __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; @@ -34758,7 +35444,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_4_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__call__", 0); - /* "dependency_injector/providers.pyx":1878 + /* "dependency_injector/providers.pyx":1903 * Callable interface implementation. * """ * return self.__get_factory(factory_name)(*args, **kwargs) # <<<<<<<<<<<<<< @@ -34766,17 +35452,17 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_4_ * def __getattr__(self, factory_name): */ __Pyx_XDECREF(__pyx_r); - if (!(likely(PyString_CheckExact(__pyx_v_factory_name))||((__pyx_v_factory_name) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_v_factory_name)->tp_name), 0))) __PYX_ERR(1, 1878, __pyx_L1_error) - __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_19dependency_injector_9providers_FactoryAggregate *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx___get_factory(__pyx_v_self, ((PyObject*)__pyx_v_factory_name))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1878, __pyx_L1_error) + if (!(likely(PyString_CheckExact(__pyx_v_factory_name))||((__pyx_v_factory_name) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_v_factory_name)->tp_name), 0))) __PYX_ERR(1, 1903, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_19dependency_injector_9providers_FactoryAggregate *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx___get_factory(__pyx_v_self, ((PyObject*)__pyx_v_factory_name))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1878, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1873 + /* "dependency_injector/providers.pyx":1898 * return copied * * def __call__(self, factory_name, *args, **kwargs): # <<<<<<<<<<<<<< @@ -34796,7 +35482,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_4_ return __pyx_r; } -/* "dependency_injector/providers.pyx":1880 +/* "dependency_injector/providers.pyx":1905 * return self.__get_factory(factory_name)(*args, **kwargs) * * def __getattr__(self, factory_name): # <<<<<<<<<<<<<< @@ -34830,7 +35516,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_6_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getattr__", 0); - /* "dependency_injector/providers.pyx":1882 + /* "dependency_injector/providers.pyx":1907 * def __getattr__(self, factory_name): * """Return aggregated factory.""" * return self.__get_factory(factory_name) # <<<<<<<<<<<<<< @@ -34838,14 +35524,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_6_ * def __str__(self): */ __Pyx_XDECREF(__pyx_r); - if (!(likely(PyString_CheckExact(__pyx_v_factory_name))||((__pyx_v_factory_name) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_v_factory_name)->tp_name), 0))) __PYX_ERR(1, 1882, __pyx_L1_error) - __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_19dependency_injector_9providers_FactoryAggregate *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx___get_factory(__pyx_v_self, ((PyObject*)__pyx_v_factory_name))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1882, __pyx_L1_error) + if (!(likely(PyString_CheckExact(__pyx_v_factory_name))||((__pyx_v_factory_name) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_v_factory_name)->tp_name), 0))) __PYX_ERR(1, 1907, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_19dependency_injector_9providers_FactoryAggregate *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx___get_factory(__pyx_v_self, ((PyObject*)__pyx_v_factory_name))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1880 + /* "dependency_injector/providers.pyx":1905 * return self.__get_factory(factory_name)(*args, **kwargs) * * def __getattr__(self, factory_name): # <<<<<<<<<<<<<< @@ -34864,7 +35550,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_6_ return __pyx_r; } -/* "dependency_injector/providers.pyx":1884 +/* "dependency_injector/providers.pyx":1909 * return self.__get_factory(factory_name) * * def __str__(self): # <<<<<<<<<<<<<< @@ -34899,7 +35585,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_8_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__str__", 0); - /* "dependency_injector/providers.pyx":1889 + /* "dependency_injector/providers.pyx":1914 * :rtype: str * """ * return represent_provider(provider=self, provides=self.factories) # <<<<<<<<<<<<<< @@ -34907,16 +35593,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_8_ * @property */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_factories); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1889, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_factories); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1889, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1884 + /* "dependency_injector/providers.pyx":1909 * return self.__get_factory(factory_name) * * def __str__(self): # <<<<<<<<<<<<<< @@ -34936,7 +35622,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_8_ return __pyx_r; } -/* "dependency_injector/providers.pyx":1892 +/* "dependency_injector/providers.pyx":1917 * * @property * def factories(self): # <<<<<<<<<<<<<< @@ -34962,7 +35648,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_9f __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":1894 + /* "dependency_injector/providers.pyx":1919 * def factories(self): * """Return dictionary of factories, read-only.""" * return self.__factories # <<<<<<<<<<<<<< @@ -34974,7 +35660,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_9f __pyx_r = __pyx_v_self->__pyx___factories; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1892 + /* "dependency_injector/providers.pyx":1917 * * @property * def factories(self): # <<<<<<<<<<<<<< @@ -34989,7 +35675,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_9f return __pyx_r; } -/* "dependency_injector/providers.pyx":1896 +/* "dependency_injector/providers.pyx":1921 * return self.__factories * * def override(self, _): # <<<<<<<<<<<<<< @@ -35025,26 +35711,26 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_10 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("override", 0); - /* "dependency_injector/providers.pyx":1904 + /* "dependency_injector/providers.pyx":1929 * :rtype: :py:class:`OverridingContext` * """ * raise Error( # <<<<<<<<<<<<<< * '{0} providers could not be overridden'.format(self.__class__)) * */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Error); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1904, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Error); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - /* "dependency_injector/providers.pyx":1905 + /* "dependency_injector/providers.pyx":1930 * """ * raise Error( * '{0} providers could not be overridden'.format(self.__class__)) # <<<<<<<<<<<<<< * * cdef Factory __get_factory(self, str factory_name): */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_providers_could_not_be_overri, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1905, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_providers_could_not_be_overri, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1905, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { @@ -35059,7 +35745,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_10 __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1905, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; @@ -35075,14 +35761,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_10 __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1904, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 1904, __pyx_L1_error) + __PYX_ERR(1, 1929, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1896 + /* "dependency_injector/providers.pyx":1921 * return self.__factories * * def override(self, _): # <<<<<<<<<<<<<< @@ -35105,7 +35791,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_10 return __pyx_r; } -/* "dependency_injector/providers.pyx":1907 +/* "dependency_injector/providers.pyx":1932 * '{0} providers could not be overridden'.format(self.__class__)) * * cdef Factory __get_factory(self, str factory_name): # <<<<<<<<<<<<<< @@ -35130,7 +35816,7 @@ static struct __pyx_obj_19dependency_injector_9providers_Factory *__pyx_f_19depe int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get_factory", 0); - /* "dependency_injector/providers.pyx":1908 + /* "dependency_injector/providers.pyx":1933 * * cdef Factory __get_factory(self, str factory_name): * if factory_name not in self.__factories: # <<<<<<<<<<<<<< @@ -35139,33 +35825,33 @@ static struct __pyx_obj_19dependency_injector_9providers_Factory *__pyx_f_19depe */ if (unlikely(__pyx_v_self->__pyx___factories == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(1, 1908, __pyx_L1_error) + __PYX_ERR(1, 1933, __pyx_L1_error) } - __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_factory_name, __pyx_v_self->__pyx___factories, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 1908, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_factory_name, __pyx_v_self->__pyx___factories, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 1933, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (unlikely(__pyx_t_2)) { - /* "dependency_injector/providers.pyx":1909 + /* "dependency_injector/providers.pyx":1934 * cdef Factory __get_factory(self, str factory_name): * if factory_name not in self.__factories: * raise NoSuchProviderError( # <<<<<<<<<<<<<< * '{0} does not contain factory with name {1}'.format( * self, factory_name)) */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_NoSuchProviderError); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1909, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_NoSuchProviderError); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - /* "dependency_injector/providers.pyx":1910 + /* "dependency_injector/providers.pyx":1935 * if factory_name not in self.__factories: * raise NoSuchProviderError( * '{0} does not contain factory with name {1}'.format( # <<<<<<<<<<<<<< * self, factory_name)) * return self.__factories[factory_name] */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_does_not_contain_factory_with, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1910, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_does_not_contain_factory_with, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - /* "dependency_injector/providers.pyx":1911 + /* "dependency_injector/providers.pyx":1936 * raise NoSuchProviderError( * '{0} does not contain factory with name {1}'.format( * self, factory_name)) # <<<<<<<<<<<<<< @@ -35187,7 +35873,7 @@ static struct __pyx_obj_19dependency_injector_9providers_Factory *__pyx_f_19depe #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, ((PyObject *)__pyx_v_self), __pyx_v_factory_name}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1910, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1935, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_5); } else @@ -35195,13 +35881,13 @@ static struct __pyx_obj_19dependency_injector_9providers_Factory *__pyx_f_19depe #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, ((PyObject *)__pyx_v_self), __pyx_v_factory_name}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1910, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1935, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { - __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1910, __pyx_L1_error) + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -35212,7 +35898,7 @@ static struct __pyx_obj_19dependency_injector_9providers_Factory *__pyx_f_19depe __Pyx_INCREF(__pyx_v_factory_name); __Pyx_GIVEREF(__pyx_v_factory_name); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_factory_name); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1910, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } @@ -35230,14 +35916,14 @@ static struct __pyx_obj_19dependency_injector_9providers_Factory *__pyx_f_19depe __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1909, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 1909, __pyx_L1_error) + __PYX_ERR(1, 1934, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1908 + /* "dependency_injector/providers.pyx":1933 * * cdef Factory __get_factory(self, str factory_name): * if factory_name not in self.__factories: # <<<<<<<<<<<<<< @@ -35246,7 +35932,7 @@ static struct __pyx_obj_19dependency_injector_9providers_Factory *__pyx_f_19depe */ } - /* "dependency_injector/providers.pyx":1912 + /* "dependency_injector/providers.pyx":1937 * '{0} does not contain factory with name {1}'.format( * self, factory_name)) * return self.__factories[factory_name] # <<<<<<<<<<<<<< @@ -35256,16 +35942,16 @@ static struct __pyx_obj_19dependency_injector_9providers_Factory *__pyx_f_19depe __Pyx_XDECREF(((PyObject *)__pyx_r)); if (unlikely(__pyx_v_self->__pyx___factories == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 1912, __pyx_L1_error) + __PYX_ERR(1, 1937, __pyx_L1_error) } - __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->__pyx___factories, __pyx_v_factory_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1912, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->__pyx___factories, __pyx_v_factory_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)((struct __pyx_obj_19dependency_injector_9providers_Factory *)__pyx_t_3))); __pyx_r = ((struct __pyx_obj_19dependency_injector_9providers_Factory *)__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1907 + /* "dependency_injector/providers.pyx":1932 * '{0} providers could not be overridden'.format(self.__class__)) * * cdef Factory __get_factory(self, str factory_name): # <<<<<<<<<<<<<< @@ -35606,7 +36292,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16FactoryAggregate_14 return __pyx_r; } -/* "dependency_injector/providers.pyx":1920 +/* "dependency_injector/providers.pyx":1945 * provided_type = None * * def __init__(self, provides, *args, **kwargs): # <<<<<<<<<<<<<< @@ -35663,7 +36349,7 @@ static int __pyx_pw_19dependency_injector_9providers_13BaseSingleton_1__init__(P } if (unlikely(kw_args > 0)) { const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__init__") < 0)) __PYX_ERR(1, 1920, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__init__") < 0)) __PYX_ERR(1, 1945, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) < 1) { goto __pyx_L5_argtuple_error; @@ -35674,7 +36360,7 @@ static int __pyx_pw_19dependency_injector_9providers_13BaseSingleton_1__init__(P } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1920, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1945, __pyx_L3_error) __pyx_L3_error:; __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; @@ -35711,19 +36397,19 @@ static int __pyx_pf_19dependency_injector_9providers_13BaseSingleton___init__(st int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":1926 + /* "dependency_injector/providers.pyx":1951 * :type provides: type * """ * if (self.__class__.provided_type and # <<<<<<<<<<<<<< * not issubclass(provides, self.__class__.provided_type)): * raise Error('{0} can provide only {1} instances'.format( */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1926, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_provided_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1926, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_provided_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1926, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1951, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { } else { @@ -35731,25 +36417,25 @@ static int __pyx_pf_19dependency_injector_9providers_13BaseSingleton___init__(st goto __pyx_L4_bool_binop_done; } - /* "dependency_injector/providers.pyx":1927 + /* "dependency_injector/providers.pyx":1952 * """ * if (self.__class__.provided_type and * not issubclass(provides, self.__class__.provided_type)): # <<<<<<<<<<<<<< * raise Error('{0} can provide only {1} instances'.format( * self.__class__, self.__class__.provided_type)) */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1927, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_provided_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1927, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_provided_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = PyObject_IsSubclass(__pyx_v_provides, __pyx_t_2); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1927, __pyx_L1_error) + __pyx_t_4 = PyObject_IsSubclass(__pyx_v_provides, __pyx_t_2); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1952, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = ((!(__pyx_t_4 != 0)) != 0); __pyx_t_1 = __pyx_t_5; __pyx_L4_bool_binop_done:; - /* "dependency_injector/providers.pyx":1926 + /* "dependency_injector/providers.pyx":1951 * :type provides: type * """ * if (self.__class__.provided_type and # <<<<<<<<<<<<<< @@ -35758,30 +36444,30 @@ static int __pyx_pf_19dependency_injector_9providers_13BaseSingleton___init__(st */ if (unlikely(__pyx_t_1)) { - /* "dependency_injector/providers.pyx":1928 + /* "dependency_injector/providers.pyx":1953 * if (self.__class__.provided_type and * not issubclass(provides, self.__class__.provided_type)): * raise Error('{0} can provide only {1} instances'.format( # <<<<<<<<<<<<<< * self.__class__, self.__class__.provided_type)) * */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Error); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1928, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Error); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_can_provide_only_1_instances, __pyx_n_s_format); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1928, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_can_provide_only_1_instances, __pyx_n_s_format); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - /* "dependency_injector/providers.pyx":1929 + /* "dependency_injector/providers.pyx":1954 * not issubclass(provides, self.__class__.provided_type)): * raise Error('{0} can provide only {1} instances'.format( * self.__class__, self.__class__.provided_type)) # <<<<<<<<<<<<<< * * self.__instantiator = Factory(provides, *args, **kwargs) */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1929, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1929, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_provided_type); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1929, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_provided_type); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; @@ -35799,7 +36485,7 @@ static int __pyx_pf_19dependency_injector_9providers_13BaseSingleton___init__(st #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_8, __pyx_t_10}; - __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1928, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1953, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -35809,7 +36495,7 @@ static int __pyx_pf_19dependency_injector_9providers_13BaseSingleton___init__(st #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_8, __pyx_t_10}; - __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1928, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1953, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -35817,7 +36503,7 @@ static int __pyx_pf_19dependency_injector_9providers_13BaseSingleton___init__(st } else #endif { - __pyx_t_12 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 1928, __pyx_L1_error) + __pyx_t_12 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 1953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_9); __pyx_t_9 = NULL; @@ -35828,7 +36514,7 @@ static int __pyx_pf_19dependency_injector_9providers_13BaseSingleton___init__(st PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_11, __pyx_t_10); __pyx_t_8 = 0; __pyx_t_10 = 0; - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_12, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1928, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_12, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } @@ -35846,14 +36532,14 @@ static int __pyx_pf_19dependency_injector_9providers_13BaseSingleton___init__(st __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1928, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(1, 1928, __pyx_L1_error) + __PYX_ERR(1, 1953, __pyx_L1_error) - /* "dependency_injector/providers.pyx":1926 + /* "dependency_injector/providers.pyx":1951 * :type provides: type * """ * if (self.__class__.provided_type and # <<<<<<<<<<<<<< @@ -35862,22 +36548,22 @@ static int __pyx_pf_19dependency_injector_9providers_13BaseSingleton___init__(st */ } - /* "dependency_injector/providers.pyx":1931 + /* "dependency_injector/providers.pyx":1956 * self.__class__, self.__class__.provided_type)) * * self.__instantiator = Factory(provides, *args, **kwargs) # <<<<<<<<<<<<<< * * super(BaseSingleton, self).__init__() */ - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1931, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_provides); __Pyx_GIVEREF(__pyx_v_provides); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_provides); - __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_v_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1931, __pyx_L1_error) + __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_v_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Factory), __pyx_t_3, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1931, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Factory), __pyx_t_3, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GIVEREF(__pyx_t_2); @@ -35886,14 +36572,14 @@ static int __pyx_pf_19dependency_injector_9providers_13BaseSingleton___init__(st __pyx_v_self->__pyx___instantiator = ((struct __pyx_obj_19dependency_injector_9providers_Factory *)__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1933 + /* "dependency_injector/providers.pyx":1958 * self.__instantiator = Factory(provides, *args, **kwargs) * * super(BaseSingleton, self).__init__() # <<<<<<<<<<<<<< * * def __str__(self): */ - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1933, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_BaseSingleton)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_BaseSingleton)); @@ -35901,10 +36587,10 @@ static int __pyx_pf_19dependency_injector_9providers_13BaseSingleton___init__(st __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1933, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1933, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -35919,12 +36605,12 @@ static int __pyx_pf_19dependency_injector_9providers_13BaseSingleton___init__(st } __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1933, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1920 + /* "dependency_injector/providers.pyx":1945 * provided_type = None * * def __init__(self, provides, *args, **kwargs): # <<<<<<<<<<<<<< @@ -35951,7 +36637,7 @@ static int __pyx_pf_19dependency_injector_9providers_13BaseSingleton___init__(st return __pyx_r; } -/* "dependency_injector/providers.pyx":1935 +/* "dependency_injector/providers.pyx":1960 * super(BaseSingleton, self).__init__() * * def __str__(self): # <<<<<<<<<<<<<< @@ -35986,7 +36672,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_2__st int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__str__", 0); - /* "dependency_injector/providers.pyx":1940 + /* "dependency_injector/providers.pyx":1965 * :rtype: str * """ * return represent_provider(provider=self, # <<<<<<<<<<<<<< @@ -35995,31 +36681,31 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_2__st */ __Pyx_XDECREF(__pyx_r); - /* "dependency_injector/providers.pyx":1941 + /* "dependency_injector/providers.pyx":1966 * """ * return represent_provider(provider=self, * provides=self.__instantiator.cls) # <<<<<<<<<<<<<< * * def __deepcopy__(self, memo): */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_cls); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1941, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_cls); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - /* "dependency_injector/providers.pyx":1940 + /* "dependency_injector/providers.pyx":1965 * :rtype: str * """ * return represent_provider(provider=self, # <<<<<<<<<<<<<< * provides=self.__instantiator.cls) * */ - __pyx_t_2 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1940, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1935 + /* "dependency_injector/providers.pyx":1960 * super(BaseSingleton, self).__init__() * * def __str__(self): # <<<<<<<<<<<<<< @@ -36039,7 +36725,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_2__st return __pyx_r; } -/* "dependency_injector/providers.pyx":1943 +/* "dependency_injector/providers.pyx":1968 * provides=self.__instantiator.cls) * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -36079,16 +36765,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_4__de int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__deepcopy__", 0); - /* "dependency_injector/providers.pyx":1945 + /* "dependency_injector/providers.pyx":1970 * def __deepcopy__(self, memo): * """Create and return full copy of provider.""" * copied = memo.get(id(self)) # <<<<<<<<<<<<<< * if copied is not None: * return copied */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1945, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1945, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -36103,13 +36789,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_4__de __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1945, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_copied = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1946 + /* "dependency_injector/providers.pyx":1971 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -36120,7 +36806,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_4__de __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":1947 + /* "dependency_injector/providers.pyx":1972 * copied = memo.get(id(self)) * if copied is not None: * return copied # <<<<<<<<<<<<<< @@ -36132,7 +36818,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_4__de __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1946 + /* "dependency_injector/providers.pyx":1971 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -36141,19 +36827,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_4__de */ } - /* "dependency_injector/providers.pyx":1949 + /* "dependency_injector/providers.pyx":1974 * return copied * * cls = self.cls # <<<<<<<<<<<<<< * if isinstance(cls, Provider): * cls = deepcopy(cls, memo) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_cls); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1949, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_cls); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_cls = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1950 + /* "dependency_injector/providers.pyx":1975 * * cls = self.cls * if isinstance(cls, Provider): # <<<<<<<<<<<<<< @@ -36164,22 +36850,22 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_4__de __pyx_t_5 = (__pyx_t_6 != 0); if (__pyx_t_5) { - /* "dependency_injector/providers.pyx":1951 + /* "dependency_injector/providers.pyx":1976 * cls = self.cls * if isinstance(cls, Provider): * cls = deepcopy(cls, memo) # <<<<<<<<<<<<<< * * copied = self.__class__(cls, */ - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1951, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1976, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_v_cls, 0, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1951, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_v_cls, 0, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_cls, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1950 + /* "dependency_injector/providers.pyx":1975 * * cls = self.cls * if isinstance(cls, Provider): # <<<<<<<<<<<<<< @@ -36188,89 +36874,89 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_4__de */ } - /* "dependency_injector/providers.pyx":1953 + /* "dependency_injector/providers.pyx":1978 * cls = deepcopy(cls, memo) * * copied = self.__class__(cls, # <<<<<<<<<<<<<< * *deepcopy(self.args, memo), * **deepcopy(self.kwargs, memo)) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1953, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1953, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_cls); __Pyx_GIVEREF(__pyx_v_cls); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_cls); - /* "dependency_injector/providers.pyx":1954 + /* "dependency_injector/providers.pyx":1979 * * copied = self.__class__(cls, * *deepcopy(self.args, memo), # <<<<<<<<<<<<<< * **deepcopy(self.kwargs, memo)) * copied.set_attributes(**deepcopy(self.attributes, memo)) */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1954, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1954, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1979, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1954, __pyx_L1_error) + __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":1953 + /* "dependency_injector/providers.pyx":1978 * cls = deepcopy(cls, memo) * * copied = self.__class__(cls, # <<<<<<<<<<<<<< * *deepcopy(self.args, memo), * **deepcopy(self.kwargs, memo)) */ - __pyx_t_3 = __Pyx_PySequence_Tuple(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1953, __pyx_L1_error) + __pyx_t_3 = __Pyx_PySequence_Tuple(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyNumber_Add(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1953, __pyx_L1_error) + __pyx_t_4 = PyNumber_Add(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":1955 + /* "dependency_injector/providers.pyx":1980 * copied = self.__class__(cls, * *deepcopy(self.args, memo), * **deepcopy(self.kwargs, memo)) # <<<<<<<<<<<<<< * copied.set_attributes(**deepcopy(self.attributes, memo)) * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1955, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1955, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1980, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_8 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_2, 0, &__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1955, __pyx_L1_error) + __pyx_t_8 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_2, 0, &__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(__pyx_t_8 == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); - __PYX_ERR(1, 1955, __pyx_L1_error) + __PYX_ERR(1, 1980, __pyx_L1_error) } if (likely(PyDict_CheckExact(__pyx_t_8))) { - __pyx_t_3 = PyDict_Copy(__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1955, __pyx_L1_error) + __pyx_t_3 = PyDict_Copy(__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else { - __pyx_t_3 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1953, __pyx_L1_error) + __pyx_t_3 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } - /* "dependency_injector/providers.pyx":1953 + /* "dependency_injector/providers.pyx":1978 * cls = deepcopy(cls, memo) * * copied = self.__class__(cls, # <<<<<<<<<<<<<< * *deepcopy(self.args, memo), * **deepcopy(self.kwargs, memo)) */ - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1953, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -36278,54 +36964,54 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_4__de __Pyx_DECREF_SET(__pyx_v_copied, __pyx_t_8); __pyx_t_8 = 0; - /* "dependency_injector/providers.pyx":1956 + /* "dependency_injector/providers.pyx":1981 * *deepcopy(self.args, memo), * **deepcopy(self.kwargs, memo)) * copied.set_attributes(**deepcopy(self.attributes, memo)) # <<<<<<<<<<<<<< * * self._copy_overridings(copied, memo) */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_copied, __pyx_n_s_set_attributes); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1956, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_copied, __pyx_n_s_set_attributes); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_attributes); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1956, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_attributes); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1956, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1981, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_4, 0, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1956, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_4, 0, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); - __PYX_ERR(1, 1956, __pyx_L1_error) + __PYX_ERR(1, 1981, __pyx_L1_error) } if (likely(PyDict_CheckExact(__pyx_t_1))) { - __pyx_t_3 = PyDict_Copy(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1956, __pyx_L1_error) + __pyx_t_3 = PyDict_Copy(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { - __pyx_t_3 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1956, __pyx_L1_error) + __pyx_t_3 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1956, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1958 + /* "dependency_injector/providers.pyx":1983 * copied.set_attributes(**deepcopy(self.attributes, memo)) * * self._copy_overridings(copied, memo) # <<<<<<<<<<<<<< * * return copied */ - if (!(likely(((__pyx_v_copied) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_copied, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 1958, __pyx_L1_error) - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1958, __pyx_L1_error) + if (!(likely(((__pyx_v_copied) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_copied, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 1983, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 1983, __pyx_L1_error) ((struct __pyx_vtabstruct_19dependency_injector_9providers_BaseSingleton *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._copy_overridings(((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_self), ((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_copied), ((PyObject*)__pyx_v_memo), 0); - /* "dependency_injector/providers.pyx":1960 + /* "dependency_injector/providers.pyx":1985 * self._copy_overridings(copied, memo) * * return copied # <<<<<<<<<<<<<< @@ -36337,7 +37023,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_4__de __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1943 + /* "dependency_injector/providers.pyx":1968 * provides=self.__instantiator.cls) * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -36362,7 +37048,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_4__de return __pyx_r; } -/* "dependency_injector/providers.pyx":1963 +/* "dependency_injector/providers.pyx":1988 * * @property * def cls(self): # <<<<<<<<<<<<<< @@ -36392,7 +37078,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_3cls_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":1965 + /* "dependency_injector/providers.pyx":1990 * def cls(self): * """Return provided type.""" * return self.__instantiator.cls # <<<<<<<<<<<<<< @@ -36400,13 +37086,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_3cls_ * @property */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_cls); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1965, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_cls); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1963 + /* "dependency_injector/providers.pyx":1988 * * @property * def cls(self): # <<<<<<<<<<<<<< @@ -36425,7 +37111,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_3cls_ return __pyx_r; } -/* "dependency_injector/providers.pyx":1968 +/* "dependency_injector/providers.pyx":1993 * * @property * def provided(self): # <<<<<<<<<<<<<< @@ -36455,7 +37141,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_8prov int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":1970 + /* "dependency_injector/providers.pyx":1995 * def provided(self): * """Return :py:class:`ProvidedInstance` provider.""" * return ProvidedInstance(self) # <<<<<<<<<<<<<< @@ -36463,13 +37149,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_8prov * @property */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ProvidedInstance), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1970, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ProvidedInstance), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1968 + /* "dependency_injector/providers.pyx":1993 * * @property * def provided(self): # <<<<<<<<<<<<<< @@ -36488,7 +37174,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_8prov return __pyx_r; } -/* "dependency_injector/providers.pyx":1973 +/* "dependency_injector/providers.pyx":1998 * * @property * def args(self): # <<<<<<<<<<<<<< @@ -36518,7 +37204,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_4args int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":1975 + /* "dependency_injector/providers.pyx":2000 * def args(self): * """Return positional argument injections.""" * return self.__instantiator.args # <<<<<<<<<<<<<< @@ -36526,13 +37212,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_4args * def add_args(self, *args): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1975, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":1973 + /* "dependency_injector/providers.pyx":1998 * * @property * def args(self): # <<<<<<<<<<<<<< @@ -36551,7 +37237,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_4args return __pyx_r; } -/* "dependency_injector/providers.pyx":1977 +/* "dependency_injector/providers.pyx":2002 * return self.__instantiator.args * * def add_args(self, *args): # <<<<<<<<<<<<<< @@ -36588,21 +37274,21 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_6add_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("add_args", 0); - /* "dependency_injector/providers.pyx":1982 + /* "dependency_injector/providers.pyx":2007 * :return: Reference ``self`` * """ * self.__instantiator.add_args(*args) # <<<<<<<<<<<<<< * return self * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_add_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1982, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_add_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1982, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1983 + /* "dependency_injector/providers.pyx":2008 * """ * self.__instantiator.add_args(*args) * return self # <<<<<<<<<<<<<< @@ -36614,7 +37300,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_6add_ __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":1977 + /* "dependency_injector/providers.pyx":2002 * return self.__instantiator.args * * def add_args(self, *args): # <<<<<<<<<<<<<< @@ -36634,7 +37320,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_6add_ return __pyx_r; } -/* "dependency_injector/providers.pyx":1985 +/* "dependency_injector/providers.pyx":2010 * return self * * def set_args(self, *args): # <<<<<<<<<<<<<< @@ -36671,21 +37357,21 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_8set_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_args", 0); - /* "dependency_injector/providers.pyx":1992 + /* "dependency_injector/providers.pyx":2017 * :return: Reference ``self`` * """ * self.__instantiator.set_args(*args) # <<<<<<<<<<<<<< * return self * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_set_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1992, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_set_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1992, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":1993 + /* "dependency_injector/providers.pyx":2018 * """ * self.__instantiator.set_args(*args) * return self # <<<<<<<<<<<<<< @@ -36697,7 +37383,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_8set_ __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":1985 + /* "dependency_injector/providers.pyx":2010 * return self * * def set_args(self, *args): # <<<<<<<<<<<<<< @@ -36717,7 +37403,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_8set_ return __pyx_r; } -/* "dependency_injector/providers.pyx":1995 +/* "dependency_injector/providers.pyx":2020 * return self * * def clear_args(self): # <<<<<<<<<<<<<< @@ -36750,14 +37436,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_10cle int __pyx_clineno = 0; __Pyx_RefNannySetupContext("clear_args", 0); - /* "dependency_injector/providers.pyx":2000 + /* "dependency_injector/providers.pyx":2025 * :return: Reference ``self`` * """ * self.__instantiator.clear_args() # <<<<<<<<<<<<<< * return self * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_clear_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2000, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_clear_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -36771,12 +37457,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_10cle } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2000, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2001 + /* "dependency_injector/providers.pyx":2026 * """ * self.__instantiator.clear_args() * return self # <<<<<<<<<<<<<< @@ -36788,7 +37474,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_10cle __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":1995 + /* "dependency_injector/providers.pyx":2020 * return self * * def clear_args(self): # <<<<<<<<<<<<<< @@ -36809,7 +37495,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_10cle return __pyx_r; } -/* "dependency_injector/providers.pyx":2004 +/* "dependency_injector/providers.pyx":2029 * * @property * def kwargs(self): # <<<<<<<<<<<<<< @@ -36839,7 +37525,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_6kwar int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":2006 + /* "dependency_injector/providers.pyx":2031 * def kwargs(self): * """Return keyword argument injections.""" * return self.__instantiator.kwargs # <<<<<<<<<<<<<< @@ -36847,13 +37533,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_6kwar * def add_kwargs(self, **kwargs): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2006, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2004 + /* "dependency_injector/providers.pyx":2029 * * @property * def kwargs(self): # <<<<<<<<<<<<<< @@ -36872,7 +37558,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_6kwar return __pyx_r; } -/* "dependency_injector/providers.pyx":2008 +/* "dependency_injector/providers.pyx":2033 * return self.__instantiator.kwargs * * def add_kwargs(self, **kwargs): # <<<<<<<<<<<<<< @@ -36915,21 +37601,21 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_12add int __pyx_clineno = 0; __Pyx_RefNannySetupContext("add_kwargs", 0); - /* "dependency_injector/providers.pyx":2013 + /* "dependency_injector/providers.pyx":2038 * :return: Reference ``self`` * """ * self.__instantiator.add_kwargs(**kwargs) # <<<<<<<<<<<<<< * return self * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_add_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2013, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_add_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2013, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":2014 + /* "dependency_injector/providers.pyx":2039 * """ * self.__instantiator.add_kwargs(**kwargs) * return self # <<<<<<<<<<<<<< @@ -36941,7 +37627,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_12add __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":2008 + /* "dependency_injector/providers.pyx":2033 * return self.__instantiator.kwargs * * def add_kwargs(self, **kwargs): # <<<<<<<<<<<<<< @@ -36961,7 +37647,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_12add return __pyx_r; } -/* "dependency_injector/providers.pyx":2016 +/* "dependency_injector/providers.pyx":2041 * return self * * def set_kwargs(self, **kwargs): # <<<<<<<<<<<<<< @@ -37004,21 +37690,21 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_14set int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_kwargs", 0); - /* "dependency_injector/providers.pyx":2023 + /* "dependency_injector/providers.pyx":2048 * :return: Reference ``self`` * """ * self.__instantiator.set_kwargs(**kwargs) # <<<<<<<<<<<<<< * return self * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_set_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2023, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_set_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2023, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":2024 + /* "dependency_injector/providers.pyx":2049 * """ * self.__instantiator.set_kwargs(**kwargs) * return self # <<<<<<<<<<<<<< @@ -37030,7 +37716,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_14set __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":2016 + /* "dependency_injector/providers.pyx":2041 * return self * * def set_kwargs(self, **kwargs): # <<<<<<<<<<<<<< @@ -37050,7 +37736,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_14set return __pyx_r; } -/* "dependency_injector/providers.pyx":2026 +/* "dependency_injector/providers.pyx":2051 * return self * * def clear_kwargs(self): # <<<<<<<<<<<<<< @@ -37083,14 +37769,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_16cle int __pyx_clineno = 0; __Pyx_RefNannySetupContext("clear_kwargs", 0); - /* "dependency_injector/providers.pyx":2031 + /* "dependency_injector/providers.pyx":2056 * :return: Reference ``self`` * """ * self.__instantiator.clear_kwargs() # <<<<<<<<<<<<<< * return self * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_clear_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2031, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_clear_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -37104,12 +37790,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_16cle } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2031, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2032 + /* "dependency_injector/providers.pyx":2057 * """ * self.__instantiator.clear_kwargs() * return self # <<<<<<<<<<<<<< @@ -37121,7 +37807,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_16cle __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":2026 + /* "dependency_injector/providers.pyx":2051 * return self * * def clear_kwargs(self): # <<<<<<<<<<<<<< @@ -37142,7 +37828,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_16cle return __pyx_r; } -/* "dependency_injector/providers.pyx":2035 +/* "dependency_injector/providers.pyx":2060 * * @property * def attributes(self): # <<<<<<<<<<<<<< @@ -37172,7 +37858,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_10att int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":2037 + /* "dependency_injector/providers.pyx":2062 * def attributes(self): * """Return attribute injections.""" * return self.__instantiator.attributes # <<<<<<<<<<<<<< @@ -37180,13 +37866,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_10att * def add_attributes(self, **kwargs): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_attributes); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2037, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_attributes); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2035 + /* "dependency_injector/providers.pyx":2060 * * @property * def attributes(self): # <<<<<<<<<<<<<< @@ -37205,7 +37891,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_10att return __pyx_r; } -/* "dependency_injector/providers.pyx":2039 +/* "dependency_injector/providers.pyx":2064 * return self.__instantiator.attributes * * def add_attributes(self, **kwargs): # <<<<<<<<<<<<<< @@ -37248,21 +37934,21 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_18add int __pyx_clineno = 0; __Pyx_RefNannySetupContext("add_attributes", 0); - /* "dependency_injector/providers.pyx":2044 + /* "dependency_injector/providers.pyx":2069 * :return: Reference ``self`` * """ * self.__instantiator.add_attributes(**kwargs) # <<<<<<<<<<<<<< * return self * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_add_attributes); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2044, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_add_attributes); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2044, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":2045 + /* "dependency_injector/providers.pyx":2070 * """ * self.__instantiator.add_attributes(**kwargs) * return self # <<<<<<<<<<<<<< @@ -37274,7 +37960,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_18add __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":2039 + /* "dependency_injector/providers.pyx":2064 * return self.__instantiator.attributes * * def add_attributes(self, **kwargs): # <<<<<<<<<<<<<< @@ -37294,7 +37980,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_18add return __pyx_r; } -/* "dependency_injector/providers.pyx":2047 +/* "dependency_injector/providers.pyx":2072 * return self * * def set_attributes(self, **kwargs): # <<<<<<<<<<<<<< @@ -37337,21 +38023,21 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_20set int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_attributes", 0); - /* "dependency_injector/providers.pyx":2054 + /* "dependency_injector/providers.pyx":2079 * :return: Reference ``self`` * """ * self.__instantiator.set_attributes(**kwargs) # <<<<<<<<<<<<<< * return self * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_set_attributes); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2054, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_set_attributes); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2054, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":2055 + /* "dependency_injector/providers.pyx":2080 * """ * self.__instantiator.set_attributes(**kwargs) * return self # <<<<<<<<<<<<<< @@ -37363,7 +38049,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_20set __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":2047 + /* "dependency_injector/providers.pyx":2072 * return self * * def set_attributes(self, **kwargs): # <<<<<<<<<<<<<< @@ -37383,7 +38069,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_20set return __pyx_r; } -/* "dependency_injector/providers.pyx":2057 +/* "dependency_injector/providers.pyx":2082 * return self * * def clear_attributes(self): # <<<<<<<<<<<<<< @@ -37416,14 +38102,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_22cle int __pyx_clineno = 0; __Pyx_RefNannySetupContext("clear_attributes", 0); - /* "dependency_injector/providers.pyx":2062 + /* "dependency_injector/providers.pyx":2087 * :return: Reference ``self`` * """ * self.__instantiator.clear_attributes() # <<<<<<<<<<<<<< * return self * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_clear_attributes); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2062, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx___instantiator), __pyx_n_s_clear_attributes); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -37437,12 +38123,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_22cle } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2062, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2063 + /* "dependency_injector/providers.pyx":2088 * """ * self.__instantiator.clear_attributes() * return self # <<<<<<<<<<<<<< @@ -37454,7 +38140,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_22cle __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":2057 + /* "dependency_injector/providers.pyx":2082 * return self * * def clear_attributes(self): # <<<<<<<<<<<<<< @@ -37475,7 +38161,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_22cle return __pyx_r; } -/* "dependency_injector/providers.pyx":2065 +/* "dependency_injector/providers.pyx":2090 * return self * * def reset(self): # <<<<<<<<<<<<<< @@ -37506,20 +38192,20 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_24res int __pyx_clineno = 0; __Pyx_RefNannySetupContext("reset", 0); - /* "dependency_injector/providers.pyx":2070 + /* "dependency_injector/providers.pyx":2095 * :rtype: None * """ * raise NotImplementedError() # <<<<<<<<<<<<<< * * */ - __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_builtin_NotImplementedError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2070, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_builtin_NotImplementedError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 2070, __pyx_L1_error) + __PYX_ERR(1, 2095, __pyx_L1_error) - /* "dependency_injector/providers.pyx":2065 + /* "dependency_injector/providers.pyx":2090 * return self * * def reset(self): # <<<<<<<<<<<<<< @@ -37854,7 +38540,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_13BaseSingleton_28__s return __pyx_r; } -/* "dependency_injector/providers.pyx":2105 +/* "dependency_injector/providers.pyx":2130 * """ * * def __init__(self, provides, *args, **kwargs): # <<<<<<<<<<<<<< @@ -37911,7 +38597,7 @@ static int __pyx_pw_19dependency_injector_9providers_9Singleton_1__init__(PyObje } if (unlikely(kw_args > 0)) { const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__init__") < 0)) __PYX_ERR(1, 2105, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__init__") < 0)) __PYX_ERR(1, 2130, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) < 1) { goto __pyx_L5_argtuple_error; @@ -37922,7 +38608,7 @@ static int __pyx_pw_19dependency_injector_9providers_9Singleton_1__init__(PyObje } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2105, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2130, __pyx_L3_error) __pyx_L3_error:; __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; @@ -37950,7 +38636,7 @@ static int __pyx_pf_19dependency_injector_9providers_9Singleton___init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":2111 + /* "dependency_injector/providers.pyx":2136 * :type provides: type * """ * self.__storage = None # <<<<<<<<<<<<<< @@ -37963,14 +38649,14 @@ static int __pyx_pf_19dependency_injector_9providers_9Singleton___init__(struct __Pyx_DECREF(__pyx_v_self->__pyx___storage); __pyx_v_self->__pyx___storage = Py_None; - /* "dependency_injector/providers.pyx":2112 + /* "dependency_injector/providers.pyx":2137 * """ * self.__storage = None * super(Singleton, self).__init__(provides, *args, **kwargs) # <<<<<<<<<<<<<< * * def reset(self): */ - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2112, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Singleton)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Singleton)); @@ -37978,27 +38664,27 @@ static int __pyx_pf_19dependency_injector_9providers_9Singleton___init__(struct __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2112, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2112, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2112, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_provides); __Pyx_GIVEREF(__pyx_v_provides); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_provides); - __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_v_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2112, __pyx_L1_error) + __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_v_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2112, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":2105 + /* "dependency_injector/providers.pyx":2130 * """ * * def __init__(self, provides, *args, **kwargs): # <<<<<<<<<<<<<< @@ -38020,7 +38706,7 @@ static int __pyx_pf_19dependency_injector_9providers_9Singleton___init__(struct return __pyx_r; } -/* "dependency_injector/providers.pyx":2114 +/* "dependency_injector/providers.pyx":2139 * super(Singleton, self).__init__(provides, *args, **kwargs) * * def reset(self): # <<<<<<<<<<<<<< @@ -38047,7 +38733,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Singleton_2reset(str __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("reset", 0); - /* "dependency_injector/providers.pyx":2119 + /* "dependency_injector/providers.pyx":2144 * :rtype: None * """ * self.__storage = None # <<<<<<<<<<<<<< @@ -38060,7 +38746,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Singleton_2reset(str __Pyx_DECREF(__pyx_v_self->__pyx___storage); __pyx_v_self->__pyx___storage = Py_None; - /* "dependency_injector/providers.pyx":2114 + /* "dependency_injector/providers.pyx":2139 * super(Singleton, self).__init__(provides, *args, **kwargs) * * def reset(self): # <<<<<<<<<<<<<< @@ -38075,7 +38761,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Singleton_2reset(str return __pyx_r; } -/* "dependency_injector/providers.pyx":2121 +/* "dependency_injector/providers.pyx":2146 * self.__storage = None * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -38108,7 +38794,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_9Singleton__provide(st if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2121, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_19dependency_injector_9providers_9Singleton_5_provide)) { __Pyx_XDECREF(__pyx_r); @@ -38128,7 +38814,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_9Singleton__provide(st #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2121, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2146, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -38136,13 +38822,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_9Singleton__provide(st #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2121, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2146, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2121, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -38153,7 +38839,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_9Singleton__provide(st __Pyx_INCREF(__pyx_v_kwargs); __Pyx_GIVEREF(__pyx_v_kwargs); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_kwargs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2121, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -38176,7 +38862,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_9Singleton__provide(st #endif } - /* "dependency_injector/providers.pyx":2123 + /* "dependency_injector/providers.pyx":2148 * cpdef object _provide(self, tuple args, dict kwargs): * """Return single instance.""" * if self.__storage is None: # <<<<<<<<<<<<<< @@ -38187,7 +38873,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_9Singleton__provide(st __pyx_t_8 = (__pyx_t_7 != 0); if (__pyx_t_8) { - /* "dependency_injector/providers.pyx":2124 + /* "dependency_injector/providers.pyx":2149 * """Return single instance.""" * if self.__storage is None: * self.__storage = __factory_call(self.__instantiator, # <<<<<<<<<<<<<< @@ -38197,18 +38883,18 @@ static PyObject *__pyx_f_19dependency_injector_9providers_9Singleton__provide(st __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx___instantiator); __Pyx_INCREF(__pyx_t_1); - /* "dependency_injector/providers.pyx":2125 + /* "dependency_injector/providers.pyx":2150 * if self.__storage is None: * self.__storage = __factory_call(self.__instantiator, * args, kwargs) # <<<<<<<<<<<<<< * return self.__storage * */ - __pyx_t_2 = __pyx_f_19dependency_injector_9providers___factory_call(((struct __pyx_obj_19dependency_injector_9providers_Factory *)__pyx_t_1), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2124, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers___factory_call(((struct __pyx_obj_19dependency_injector_9providers_Factory *)__pyx_t_1), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2124 + /* "dependency_injector/providers.pyx":2149 * """Return single instance.""" * if self.__storage is None: * self.__storage = __factory_call(self.__instantiator, # <<<<<<<<<<<<<< @@ -38221,7 +38907,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_9Singleton__provide(st __pyx_v_self->__pyx___storage = __pyx_t_2; __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":2123 + /* "dependency_injector/providers.pyx":2148 * cpdef object _provide(self, tuple args, dict kwargs): * """Return single instance.""" * if self.__storage is None: # <<<<<<<<<<<<<< @@ -38230,7 +38916,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_9Singleton__provide(st */ } - /* "dependency_injector/providers.pyx":2126 + /* "dependency_injector/providers.pyx":2151 * self.__storage = __factory_call(self.__instantiator, * args, kwargs) * return self.__storage # <<<<<<<<<<<<<< @@ -38242,7 +38928,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_9Singleton__provide(st __pyx_r = __pyx_v_self->__pyx___storage; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2121 + /* "dependency_injector/providers.pyx":2146 * self.__storage = None * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -38300,11 +38986,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_9Singleton_5_provide( case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 2121, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 2146, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 2121, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 2146, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -38317,14 +39003,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_9Singleton_5_provide( } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2121, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2146, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.Singleton._provide", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2121, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2121, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2146, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2146, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_9Singleton_4_provide(((struct __pyx_obj_19dependency_injector_9providers_Singleton *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs); /* function exit code */ @@ -38345,7 +39031,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Singleton_4_provide( int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_provide", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_9Singleton__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2121, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_9Singleton__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -39016,7 +39702,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_18DelegatedSingleton_ return __pyx_r; } -/* "dependency_injector/providers.pyx":2160 +/* "dependency_injector/providers.pyx":2185 * """ * * def __init__(self, provides, *args, **kwargs): # <<<<<<<<<<<<<< @@ -39073,7 +39759,7 @@ static int __pyx_pw_19dependency_injector_9providers_19ThreadSafeSingleton_1__in } if (unlikely(kw_args > 0)) { const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__init__") < 0)) __PYX_ERR(1, 2160, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__init__") < 0)) __PYX_ERR(1, 2185, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) < 1) { goto __pyx_L5_argtuple_error; @@ -39084,7 +39770,7 @@ static int __pyx_pw_19dependency_injector_9providers_19ThreadSafeSingleton_1__in } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2160, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2185, __pyx_L3_error) __pyx_L3_error:; __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; @@ -39112,7 +39798,7 @@ static int __pyx_pf_19dependency_injector_9providers_19ThreadSafeSingleton___ini int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":2166 + /* "dependency_injector/providers.pyx":2191 * :type provides: type * """ * self.__storage = None # <<<<<<<<<<<<<< @@ -39125,16 +39811,16 @@ static int __pyx_pf_19dependency_injector_9providers_19ThreadSafeSingleton___ini __Pyx_DECREF(__pyx_v_self->__pyx___storage); __pyx_v_self->__pyx___storage = Py_None; - /* "dependency_injector/providers.pyx":2167 + /* "dependency_injector/providers.pyx":2192 * """ * self.__storage = None * self.__storage_lock = self.__class__.storage_lock # <<<<<<<<<<<<<< * super(ThreadSafeSingleton, self).__init__(provides, *args, **kwargs) * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2167, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_storage_lock); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2167, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_storage_lock); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); @@ -39143,14 +39829,14 @@ static int __pyx_pf_19dependency_injector_9providers_19ThreadSafeSingleton___ini __pyx_v_self->__pyx___storage_lock = __pyx_t_2; __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":2168 + /* "dependency_injector/providers.pyx":2193 * self.__storage = None * self.__storage_lock = self.__class__.storage_lock * super(ThreadSafeSingleton, self).__init__(provides, *args, **kwargs) # <<<<<<<<<<<<<< * * def reset(self): */ - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2168, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ThreadSafeSingleton)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ThreadSafeSingleton)); @@ -39158,27 +39844,27 @@ static int __pyx_pf_19dependency_injector_9providers_19ThreadSafeSingleton___ini __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2168, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2168, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2168, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_provides); __Pyx_GIVEREF(__pyx_v_provides); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_provides); - __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_v_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2168, __pyx_L1_error) + __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_v_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2168, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2160 + /* "dependency_injector/providers.pyx":2185 * """ * * def __init__(self, provides, *args, **kwargs): # <<<<<<<<<<<<<< @@ -39200,7 +39886,7 @@ static int __pyx_pf_19dependency_injector_9providers_19ThreadSafeSingleton___ini return __pyx_r; } -/* "dependency_injector/providers.pyx":2170 +/* "dependency_injector/providers.pyx":2195 * super(ThreadSafeSingleton, self).__init__(provides, *args, **kwargs) * * def reset(self): # <<<<<<<<<<<<<< @@ -39227,7 +39913,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ThreadSafeSingleton __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("reset", 0); - /* "dependency_injector/providers.pyx":2175 + /* "dependency_injector/providers.pyx":2200 * :rtype: None * """ * self.__storage = None # <<<<<<<<<<<<<< @@ -39240,7 +39926,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ThreadSafeSingleton __Pyx_DECREF(__pyx_v_self->__pyx___storage); __pyx_v_self->__pyx___storage = Py_None; - /* "dependency_injector/providers.pyx":2170 + /* "dependency_injector/providers.pyx":2195 * super(ThreadSafeSingleton, self).__init__(provides, *args, **kwargs) * * def reset(self): # <<<<<<<<<<<<<< @@ -39255,7 +39941,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ThreadSafeSingleton return __pyx_r; } -/* "dependency_injector/providers.pyx":2177 +/* "dependency_injector/providers.pyx":2202 * self.__storage = None * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -39293,7 +39979,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ThreadSafeSingleton_ if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2177, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_19dependency_injector_9providers_19ThreadSafeSingleton_5_provide)) { __Pyx_XDECREF(__pyx_r); @@ -39313,7 +39999,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ThreadSafeSingleton_ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2177, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2202, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -39321,13 +40007,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ThreadSafeSingleton_ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2177, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2202, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2177, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -39338,7 +40024,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ThreadSafeSingleton_ __Pyx_INCREF(__pyx_v_kwargs); __Pyx_GIVEREF(__pyx_v_kwargs); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_kwargs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2177, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -39361,7 +40047,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ThreadSafeSingleton_ #endif } - /* "dependency_injector/providers.pyx":2179 + /* "dependency_injector/providers.pyx":2204 * cpdef object _provide(self, tuple args, dict kwargs): * """Return single instance.""" * with self.__storage_lock: # <<<<<<<<<<<<<< @@ -39369,9 +40055,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ThreadSafeSingleton_ * self.__storage = __factory_call(self.__instantiator, */ /*with:*/ { - __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->__pyx___storage_lock, __pyx_n_s_exit); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2179, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->__pyx___storage_lock, __pyx_n_s_exit); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->__pyx___storage_lock, __pyx_n_s_enter); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2179, __pyx_L3_error) + __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->__pyx___storage_lock, __pyx_n_s_enter); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2204, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -39385,7 +40071,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ThreadSafeSingleton_ } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2179, __pyx_L3_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2204, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -39399,7 +40085,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ThreadSafeSingleton_ __Pyx_XGOTREF(__pyx_t_10); /*try:*/ { - /* "dependency_injector/providers.pyx":2180 + /* "dependency_injector/providers.pyx":2205 * """Return single instance.""" * with self.__storage_lock: * if self.__storage is None: # <<<<<<<<<<<<<< @@ -39410,7 +40096,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ThreadSafeSingleton_ __pyx_t_12 = (__pyx_t_11 != 0); if (__pyx_t_12) { - /* "dependency_injector/providers.pyx":2181 + /* "dependency_injector/providers.pyx":2206 * with self.__storage_lock: * if self.__storage is None: * self.__storage = __factory_call(self.__instantiator, # <<<<<<<<<<<<<< @@ -39420,18 +40106,18 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ThreadSafeSingleton_ __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx___instantiator); __Pyx_INCREF(__pyx_t_1); - /* "dependency_injector/providers.pyx":2182 + /* "dependency_injector/providers.pyx":2207 * if self.__storage is None: * self.__storage = __factory_call(self.__instantiator, * args, kwargs) # <<<<<<<<<<<<<< * return self.__storage * */ - __pyx_t_2 = __pyx_f_19dependency_injector_9providers___factory_call(((struct __pyx_obj_19dependency_injector_9providers_Factory *)__pyx_t_1), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2181, __pyx_L7_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers___factory_call(((struct __pyx_obj_19dependency_injector_9providers_Factory *)__pyx_t_1), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2206, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2181 + /* "dependency_injector/providers.pyx":2206 * with self.__storage_lock: * if self.__storage is None: * self.__storage = __factory_call(self.__instantiator, # <<<<<<<<<<<<<< @@ -39444,7 +40130,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ThreadSafeSingleton_ __pyx_v_self->__pyx___storage = __pyx_t_2; __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":2180 + /* "dependency_injector/providers.pyx":2205 * """Return single instance.""" * with self.__storage_lock: * if self.__storage is None: # <<<<<<<<<<<<<< @@ -39453,7 +40139,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ThreadSafeSingleton_ */ } - /* "dependency_injector/providers.pyx":2179 + /* "dependency_injector/providers.pyx":2204 * cpdef object _provide(self, tuple args, dict kwargs): * """Return single instance.""" * with self.__storage_lock: # <<<<<<<<<<<<<< @@ -39473,20 +40159,20 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ThreadSafeSingleton_ __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; /*except:*/ { __Pyx_AddTraceback("dependency_injector.providers.ThreadSafeSingleton._provide", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_3) < 0) __PYX_ERR(1, 2179, __pyx_L9_except_error) + if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_3) < 0) __PYX_ERR(1, 2204, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2179, __pyx_L9_except_error) + __pyx_t_6 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2204, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 2179, __pyx_L9_except_error) + if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 2204, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_13); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (__pyx_t_12 < 0) __PYX_ERR(1, 2179, __pyx_L9_except_error) + if (__pyx_t_12 < 0) __PYX_ERR(1, 2204, __pyx_L9_except_error) __pyx_t_11 = ((!(__pyx_t_12 != 0)) != 0); if (__pyx_t_11) { __Pyx_GIVEREF(__pyx_t_2); @@ -39494,7 +40180,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ThreadSafeSingleton_ __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_1, __pyx_t_3); __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_3 = 0; - __PYX_ERR(1, 2179, __pyx_L9_except_error) + __PYX_ERR(1, 2204, __pyx_L9_except_error) } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -39520,7 +40206,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ThreadSafeSingleton_ if (__pyx_t_7) { __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__2, NULL); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2179, __pyx_L1_error) + if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } @@ -39535,7 +40221,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ThreadSafeSingleton_ __pyx_L17:; } - /* "dependency_injector/providers.pyx":2183 + /* "dependency_injector/providers.pyx":2208 * self.__storage = __factory_call(self.__instantiator, * args, kwargs) * return self.__storage # <<<<<<<<<<<<<< @@ -39547,7 +40233,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_19ThreadSafeSingleton_ __pyx_r = __pyx_v_self->__pyx___storage; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2177 + /* "dependency_injector/providers.pyx":2202 * self.__storage = None * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -39605,11 +40291,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_19ThreadSafeSingleton case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 2177, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 2202, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 2177, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 2202, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -39622,14 +40308,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_19ThreadSafeSingleton } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2177, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2202, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.ThreadSafeSingleton._provide", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2177, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2177, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2202, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2202, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_19ThreadSafeSingleton_4_provide(((struct __pyx_obj_19dependency_injector_9providers_ThreadSafeSingleton *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs); /* function exit code */ @@ -39650,7 +40336,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19ThreadSafeSingleton int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_provide", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_19ThreadSafeSingleton__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2177, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_19ThreadSafeSingleton__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -40341,7 +41027,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_28DelegatedThreadSafe return __pyx_r; } -/* "dependency_injector/providers.pyx":2227 +/* "dependency_injector/providers.pyx":2252 * """ * * def __init__(self, provides, *args, **kwargs): # <<<<<<<<<<<<<< @@ -40398,7 +41084,7 @@ static int __pyx_pw_19dependency_injector_9providers_20ThreadLocalSingleton_1__i } if (unlikely(kw_args > 0)) { const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__init__") < 0)) __PYX_ERR(1, 2227, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__init__") < 0)) __PYX_ERR(1, 2252, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) < 1) { goto __pyx_L5_argtuple_error; @@ -40409,7 +41095,7 @@ static int __pyx_pw_19dependency_injector_9providers_20ThreadLocalSingleton_1__i } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2227, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2252, __pyx_L3_error) __pyx_L3_error:; __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; @@ -40437,16 +41123,16 @@ static int __pyx_pf_19dependency_injector_9providers_20ThreadLocalSingleton___in int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":2233 + /* "dependency_injector/providers.pyx":2258 * :type provides: type * """ * self.__storage = threading.local() # <<<<<<<<<<<<<< * super(ThreadLocalSingleton, self).__init__(provides, *args, **kwargs) * */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_threading); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2233, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_threading); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_local); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2233, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_local); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; @@ -40461,7 +41147,7 @@ static int __pyx_pf_19dependency_injector_9providers_20ThreadLocalSingleton___in } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2233, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GIVEREF(__pyx_t_1); @@ -40470,14 +41156,14 @@ static int __pyx_pf_19dependency_injector_9providers_20ThreadLocalSingleton___in __pyx_v_self->__pyx___storage = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2234 + /* "dependency_injector/providers.pyx":2259 * """ * self.__storage = threading.local() * super(ThreadLocalSingleton, self).__init__(provides, *args, **kwargs) # <<<<<<<<<<<<<< * * def reset(self): */ - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2234, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ThreadLocalSingleton)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ThreadLocalSingleton)); @@ -40485,27 +41171,27 @@ static int __pyx_pf_19dependency_injector_9providers_20ThreadLocalSingleton___in __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2234, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2234, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2234, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_provides); __Pyx_GIVEREF(__pyx_v_provides); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_provides); - __pyx_t_2 = PyNumber_Add(__pyx_t_3, __pyx_v_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2234, __pyx_L1_error) + __pyx_t_2 = PyNumber_Add(__pyx_t_3, __pyx_v_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2234, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":2227 + /* "dependency_injector/providers.pyx":2252 * """ * * def __init__(self, provides, *args, **kwargs): # <<<<<<<<<<<<<< @@ -40527,7 +41213,7 @@ static int __pyx_pf_19dependency_injector_9providers_20ThreadLocalSingleton___in return __pyx_r; } -/* "dependency_injector/providers.pyx":2236 +/* "dependency_injector/providers.pyx":2261 * super(ThreadLocalSingleton, self).__init__(provides, *args, **kwargs) * * def reset(self): # <<<<<<<<<<<<<< @@ -40557,16 +41243,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_20ThreadLocalSingleto int __pyx_clineno = 0; __Pyx_RefNannySetupContext("reset", 0); - /* "dependency_injector/providers.pyx":2241 + /* "dependency_injector/providers.pyx":2266 * :rtype: None * """ * del self.__storage.instance # <<<<<<<<<<<<<< * * cpdef object _provide(self, tuple args, dict kwargs): */ - if (__Pyx_PyObject_DelAttrStr(__pyx_v_self->__pyx___storage, __pyx_n_s_instance) < 0) __PYX_ERR(1, 2241, __pyx_L1_error) + if (__Pyx_PyObject_DelAttrStr(__pyx_v_self->__pyx___storage, __pyx_n_s_instance) < 0) __PYX_ERR(1, 2266, __pyx_L1_error) - /* "dependency_injector/providers.pyx":2236 + /* "dependency_injector/providers.pyx":2261 * super(ThreadLocalSingleton, self).__init__(provides, *args, **kwargs) * * def reset(self): # <<<<<<<<<<<<<< @@ -40586,7 +41272,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_20ThreadLocalSingleto return __pyx_r; } -/* "dependency_injector/providers.pyx":2243 +/* "dependency_injector/providers.pyx":2268 * del self.__storage.instance * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -40624,7 +41310,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_20ThreadLocalSingleton if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2243, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_19dependency_injector_9providers_20ThreadLocalSingleton_5_provide)) { __Pyx_XDECREF(__pyx_r); @@ -40644,7 +41330,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_20ThreadLocalSingleton #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2243, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2268, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -40652,13 +41338,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_20ThreadLocalSingleton #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2243, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2268, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2243, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -40669,7 +41355,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_20ThreadLocalSingleton __Pyx_INCREF(__pyx_v_kwargs); __Pyx_GIVEREF(__pyx_v_kwargs); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_kwargs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2243, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -40692,7 +41378,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_20ThreadLocalSingleton #endif } - /* "dependency_injector/providers.pyx":2247 + /* "dependency_injector/providers.pyx":2272 * cdef object instance * * try: # <<<<<<<<<<<<<< @@ -40709,19 +41395,19 @@ static PyObject *__pyx_f_19dependency_injector_9providers_20ThreadLocalSingleton __Pyx_XGOTREF(__pyx_t_9); /*try:*/ { - /* "dependency_injector/providers.pyx":2248 + /* "dependency_injector/providers.pyx":2273 * * try: * instance = self.__storage.instance # <<<<<<<<<<<<<< * except AttributeError: * instance = __factory_call(self.__instantiator, args, kwargs) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->__pyx___storage, __pyx_n_s_instance); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2248, __pyx_L6_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->__pyx___storage, __pyx_n_s_instance); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2273, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_instance = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2247 + /* "dependency_injector/providers.pyx":2272 * cdef object instance * * try: # <<<<<<<<<<<<<< @@ -40740,7 +41426,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_20ThreadLocalSingleton __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "dependency_injector/providers.pyx":2249 + /* "dependency_injector/providers.pyx":2274 * try: * instance = self.__storage.instance * except AttributeError: # <<<<<<<<<<<<<< @@ -40750,12 +41436,12 @@ static PyObject *__pyx_f_19dependency_injector_9providers_20ThreadLocalSingleton __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError); if (__pyx_t_5) { __Pyx_AddTraceback("dependency_injector.providers.ThreadLocalSingleton._provide", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3) < 0) __PYX_ERR(1, 2249, __pyx_L8_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3) < 0) __PYX_ERR(1, 2274, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_3); - /* "dependency_injector/providers.pyx":2250 + /* "dependency_injector/providers.pyx":2275 * instance = self.__storage.instance * except AttributeError: * instance = __factory_call(self.__instantiator, args, kwargs) # <<<<<<<<<<<<<< @@ -40764,20 +41450,20 @@ static PyObject *__pyx_f_19dependency_injector_9providers_20ThreadLocalSingleton */ __pyx_t_6 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx___instantiator); __Pyx_INCREF(__pyx_t_6); - __pyx_t_4 = __pyx_f_19dependency_injector_9providers___factory_call(((struct __pyx_obj_19dependency_injector_9providers_Factory *)__pyx_t_6), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2250, __pyx_L8_except_error) + __pyx_t_4 = __pyx_f_19dependency_injector_9providers___factory_call(((struct __pyx_obj_19dependency_injector_9providers_Factory *)__pyx_t_6), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2275, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF_SET(__pyx_v_instance, __pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/providers.pyx":2251 + /* "dependency_injector/providers.pyx":2276 * except AttributeError: * instance = __factory_call(self.__instantiator, args, kwargs) * self.__storage.instance = instance # <<<<<<<<<<<<<< * finally: * return instance */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self->__pyx___storage, __pyx_n_s_instance, __pyx_v_instance) < 0) __PYX_ERR(1, 2251, __pyx_L8_except_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self->__pyx___storage, __pyx_n_s_instance, __pyx_v_instance) < 0) __PYX_ERR(1, 2276, __pyx_L8_except_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -40786,7 +41472,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_20ThreadLocalSingleton goto __pyx_L8_except_error; __pyx_L8_except_error:; - /* "dependency_injector/providers.pyx":2247 + /* "dependency_injector/providers.pyx":2272 * cdef object instance * * try: # <<<<<<<<<<<<<< @@ -40807,7 +41493,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_20ThreadLocalSingleton } } - /* "dependency_injector/providers.pyx":2253 + /* "dependency_injector/providers.pyx":2278 * self.__storage.instance = instance * finally: * return instance # <<<<<<<<<<<<<< @@ -40841,7 +41527,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_20ThreadLocalSingleton __Pyx_XGOTREF(__pyx_t_12); { __Pyx_XDECREF(__pyx_r); - if (unlikely(!__pyx_v_instance)) { __Pyx_RaiseUnboundLocalError("instance"); __PYX_ERR(1, 2253, __pyx_L15_error) } + if (unlikely(!__pyx_v_instance)) { __Pyx_RaiseUnboundLocalError("instance"); __PYX_ERR(1, 2278, __pyx_L15_error) } __Pyx_INCREF(__pyx_v_instance); __pyx_r = __pyx_v_instance; goto __pyx_L14_return; @@ -40873,7 +41559,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_20ThreadLocalSingleton } } - /* "dependency_injector/providers.pyx":2243 + /* "dependency_injector/providers.pyx":2268 * del self.__storage.instance * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -40932,11 +41618,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_20ThreadLocalSingleto case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 2243, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 2268, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 2243, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 2268, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -40949,14 +41635,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_20ThreadLocalSingleto } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2243, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2268, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.ThreadLocalSingleton._provide", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2243, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2243, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2268, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2268, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_20ThreadLocalSingleton_4_provide(((struct __pyx_obj_19dependency_injector_9providers_ThreadLocalSingleton *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs); /* function exit code */ @@ -40977,7 +41663,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_20ThreadLocalSingleto int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_provide", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_20ThreadLocalSingleton__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2243, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_20ThreadLocalSingleton__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -41648,7 +42334,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_29DelegatedThreadLoca return __pyx_r; } -/* "dependency_injector/providers.pyx":2288 +/* "dependency_injector/providers.pyx":2313 * """ * * def __call__(self, *args, **kwargs): # <<<<<<<<<<<<<< @@ -41701,360 +42387,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractSingleton__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__call__", 0); - /* "dependency_injector/providers.pyx":2293 - * Callable interface implementation. - * """ - * if self.__last_overriding is None: # <<<<<<<<<<<<<< - * raise Error('{0} must be overridden before calling'.format(self)) - * return self.__last_overriding(*args, **kwargs) - */ - __pyx_t_1 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx___last_overriding) == Py_None); - __pyx_t_2 = (__pyx_t_1 != 0); - if (unlikely(__pyx_t_2)) { - - /* "dependency_injector/providers.pyx":2294 - * """ - * if self.__last_overriding is None: - * raise Error('{0} must be overridden before calling'.format(self)) # <<<<<<<<<<<<<< - * return self.__last_overriding(*args, **kwargs) - * - */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_must_be_overridden_before_cal, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); - if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_6, function); - } - } - __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_self)); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_4, function); - } - } - __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 2294, __pyx_L1_error) - - /* "dependency_injector/providers.pyx":2293 - * Callable interface implementation. - * """ - * if self.__last_overriding is None: # <<<<<<<<<<<<<< - * raise Error('{0} must be overridden before calling'.format(self)) - * return self.__last_overriding(*args, **kwargs) - */ - } - - /* "dependency_injector/providers.pyx":2295 - * if self.__last_overriding is None: - * raise Error('{0} must be overridden before calling'.format(self)) - * return self.__last_overriding(*args, **kwargs) # <<<<<<<<<<<<<< - * - * def override(self, provider): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx___last_overriding), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_r = __pyx_t_3; - __pyx_t_3 = 0; - goto __pyx_L0; - - /* "dependency_injector/providers.pyx":2288 - * """ - * - * def __call__(self, *args, **kwargs): # <<<<<<<<<<<<<< - * """Return provided object. - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_AddTraceback("dependency_injector.providers.AbstractSingleton.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "dependency_injector/providers.pyx":2297 - * return self.__last_overriding(*args, **kwargs) - * - * def override(self, provider): # <<<<<<<<<<<<<< - * """Override provider with another provider. - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_17AbstractSingleton_3override(PyObject *__pyx_v_self, PyObject *__pyx_v_provider); /*proto*/ -static char __pyx_doc_19dependency_injector_9providers_17AbstractSingleton_2override[] = "Override provider with another provider.\n\n :param provider: Overriding provider.\n :type provider: :py:class:`Provider`\n\n :raise: :py:exc:`dependency_injector.errors.Error`\n\n :return: Overriding context.\n :rtype: :py:class:`OverridingContext`\n "; -static PyObject *__pyx_pw_19dependency_injector_9providers_17AbstractSingleton_3override(PyObject *__pyx_v_self, PyObject *__pyx_v_provider) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("override (wrapper)", 0); - __pyx_r = __pyx_pf_19dependency_injector_9providers_17AbstractSingleton_2override(((struct __pyx_obj_19dependency_injector_9providers_AbstractSingleton *)__pyx_v_self), ((PyObject *)__pyx_v_provider)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractSingleton_2override(struct __pyx_obj_19dependency_injector_9providers_AbstractSingleton *__pyx_v_self, PyObject *__pyx_v_provider) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - int __pyx_t_8; - PyObject *__pyx_t_9 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("override", 0); - - /* "dependency_injector/providers.pyx":2308 - * :rtype: :py:class:`OverridingContext` - * """ - * if not isinstance(provider, BaseSingleton): # <<<<<<<<<<<<<< - * raise Error('{0} must be overridden only by ' - * '{1} providers'.format(self, BaseSingleton)) - */ - __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_provider, __pyx_ptype_19dependency_injector_9providers_BaseSingleton); - __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); - if (unlikely(__pyx_t_2)) { - - /* "dependency_injector/providers.pyx":2309 - * """ - * if not isinstance(provider, BaseSingleton): - * raise Error('{0} must be overridden only by ' # <<<<<<<<<<<<<< - * '{1} providers'.format(self, BaseSingleton)) - * return super(AbstractSingleton, self).override(provider) - */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2309, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - - /* "dependency_injector/providers.pyx":2310 - * if not isinstance(provider, BaseSingleton): - * raise Error('{0} must be overridden only by ' - * '{1} providers'.format(self, BaseSingleton)) # <<<<<<<<<<<<<< - * return super(AbstractSingleton, self).override(provider) - * - */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_must_be_overridden_only_by_1, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2310, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = NULL; - __pyx_t_8 = 0; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); - if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_6, function); - __pyx_t_8 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_6)) { - PyObject *__pyx_temp[3] = {__pyx_t_7, ((PyObject *)__pyx_v_self), ((PyObject *)__pyx_ptype_19dependency_injector_9providers_BaseSingleton)}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2310, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_GOTREF(__pyx_t_5); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { - PyObject *__pyx_temp[3] = {__pyx_t_7, ((PyObject *)__pyx_v_self), ((PyObject *)__pyx_ptype_19dependency_injector_9providers_BaseSingleton)}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2310, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_GOTREF(__pyx_t_5); - } else - #endif - { - __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 2310, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (__pyx_t_7) { - __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; - } - __Pyx_INCREF(((PyObject *)__pyx_v_self)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); - PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, ((PyObject *)__pyx_v_self)); - __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_BaseSingleton)); - __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_BaseSingleton)); - PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_BaseSingleton)); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2310, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - } - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_4, function); - } - } - __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2309, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 2309, __pyx_L1_error) - - /* "dependency_injector/providers.pyx":2308 - * :rtype: :py:class:`OverridingContext` - * """ - * if not isinstance(provider, BaseSingleton): # <<<<<<<<<<<<<< - * raise Error('{0} must be overridden only by ' - * '{1} providers'.format(self, BaseSingleton)) - */ - } - - /* "dependency_injector/providers.pyx":2311 - * raise Error('{0} must be overridden only by ' - * '{1} providers'.format(self, BaseSingleton)) - * return super(AbstractSingleton, self).override(provider) # <<<<<<<<<<<<<< - * - * def reset(self): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2311, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_AbstractSingleton)); - __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_AbstractSingleton)); - PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_AbstractSingleton)); - __Pyx_INCREF(((PyObject *)__pyx_v_self)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); - PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2311, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_override); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2311, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); - if (likely(__pyx_t_5)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_4, function); - } - } - __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_provider) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_provider); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2311, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_r = __pyx_t_3; - __pyx_t_3 = 0; - goto __pyx_L0; - - /* "dependency_injector/providers.pyx":2297 - * return self.__last_overriding(*args, **kwargs) - * - * def override(self, provider): # <<<<<<<<<<<<<< - * """Override provider with another provider. - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_AddTraceback("dependency_injector.providers.AbstractSingleton.override", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "dependency_injector/providers.pyx":2313 - * return super(AbstractSingleton, self).override(provider) - * - * def reset(self): # <<<<<<<<<<<<<< - * """Reset cached instance, if any. - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_17AbstractSingleton_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static char __pyx_doc_19dependency_injector_9providers_17AbstractSingleton_4reset[] = "Reset cached instance, if any.\n\n :rtype: None\n "; -static PyObject *__pyx_pw_19dependency_injector_9providers_17AbstractSingleton_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("reset (wrapper)", 0); - __pyx_r = __pyx_pf_19dependency_injector_9providers_17AbstractSingleton_4reset(((struct __pyx_obj_19dependency_injector_9providers_AbstractSingleton *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractSingleton_4reset(struct __pyx_obj_19dependency_injector_9providers_AbstractSingleton *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("reset", 0); - /* "dependency_injector/providers.pyx":2318 - * :rtype: None + * Callable interface implementation. * """ * if self.__last_overriding is None: # <<<<<<<<<<<<<< * raise Error('{0} must be overridden before calling'.format(self)) - * return self.__last_overriding.reset() + * return self.__last_overriding(*args, **kwargs) */ __pyx_t_1 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx___last_overriding) == Py_None); __pyx_t_2 = (__pyx_t_1 != 0); @@ -42064,7 +42402,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractSingleton_4 * """ * if self.__last_overriding is None: * raise Error('{0} must be overridden before calling'.format(self)) # <<<<<<<<<<<<<< - * return self.__last_overriding.reset() + * return self.__last_overriding(*args, **kwargs) * */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2319, __pyx_L1_error) @@ -42107,6 +42445,354 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractSingleton_4 __PYX_ERR(1, 2319, __pyx_L1_error) /* "dependency_injector/providers.pyx":2318 + * Callable interface implementation. + * """ + * if self.__last_overriding is None: # <<<<<<<<<<<<<< + * raise Error('{0} must be overridden before calling'.format(self)) + * return self.__last_overriding(*args, **kwargs) + */ + } + + /* "dependency_injector/providers.pyx":2320 + * if self.__last_overriding is None: + * raise Error('{0} must be overridden before calling'.format(self)) + * return self.__last_overriding(*args, **kwargs) # <<<<<<<<<<<<<< + * + * def override(self, provider): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx___last_overriding), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2320, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "dependency_injector/providers.pyx":2313 + * """ + * + * def __call__(self, *args, **kwargs): # <<<<<<<<<<<<<< + * """Return provided object. + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("dependency_injector.providers.AbstractSingleton.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "dependency_injector/providers.pyx":2322 + * return self.__last_overriding(*args, **kwargs) + * + * def override(self, provider): # <<<<<<<<<<<<<< + * """Override provider with another provider. + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_9providers_17AbstractSingleton_3override(PyObject *__pyx_v_self, PyObject *__pyx_v_provider); /*proto*/ +static char __pyx_doc_19dependency_injector_9providers_17AbstractSingleton_2override[] = "Override provider with another provider.\n\n :param provider: Overriding provider.\n :type provider: :py:class:`Provider`\n\n :raise: :py:exc:`dependency_injector.errors.Error`\n\n :return: Overriding context.\n :rtype: :py:class:`OverridingContext`\n "; +static PyObject *__pyx_pw_19dependency_injector_9providers_17AbstractSingleton_3override(PyObject *__pyx_v_self, PyObject *__pyx_v_provider) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("override (wrapper)", 0); + __pyx_r = __pyx_pf_19dependency_injector_9providers_17AbstractSingleton_2override(((struct __pyx_obj_19dependency_injector_9providers_AbstractSingleton *)__pyx_v_self), ((PyObject *)__pyx_v_provider)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractSingleton_2override(struct __pyx_obj_19dependency_injector_9providers_AbstractSingleton *__pyx_v_self, PyObject *__pyx_v_provider) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("override", 0); + + /* "dependency_injector/providers.pyx":2333 + * :rtype: :py:class:`OverridingContext` + * """ + * if not isinstance(provider, BaseSingleton): # <<<<<<<<<<<<<< + * raise Error('{0} must be overridden only by ' + * '{1} providers'.format(self, BaseSingleton)) + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_provider, __pyx_ptype_19dependency_injector_9providers_BaseSingleton); + __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); + if (unlikely(__pyx_t_2)) { + + /* "dependency_injector/providers.pyx":2334 + * """ + * if not isinstance(provider, BaseSingleton): + * raise Error('{0} must be overridden only by ' # <<<<<<<<<<<<<< + * '{1} providers'.format(self, BaseSingleton)) + * return super(AbstractSingleton, self).override(provider) + */ + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2334, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "dependency_injector/providers.pyx":2335 + * if not isinstance(provider, BaseSingleton): + * raise Error('{0} must be overridden only by ' + * '{1} providers'.format(self, BaseSingleton)) # <<<<<<<<<<<<<< + * return super(AbstractSingleton, self).override(provider) + * + */ + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_must_be_overridden_only_by_1, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, ((PyObject *)__pyx_v_self), ((PyObject *)__pyx_ptype_19dependency_injector_9providers_BaseSingleton)}; + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2335, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_5); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, ((PyObject *)__pyx_v_self), ((PyObject *)__pyx_ptype_19dependency_injector_9providers_BaseSingleton)}; + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2335, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_5); + } else + #endif + { + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 2335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, ((PyObject *)__pyx_v_self)); + __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_BaseSingleton)); + __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_BaseSingleton)); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_BaseSingleton)); + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2334, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(1, 2334, __pyx_L1_error) + + /* "dependency_injector/providers.pyx":2333 + * :rtype: :py:class:`OverridingContext` + * """ + * if not isinstance(provider, BaseSingleton): # <<<<<<<<<<<<<< + * raise Error('{0} must be overridden only by ' + * '{1} providers'.format(self, BaseSingleton)) + */ + } + + /* "dependency_injector/providers.pyx":2336 + * raise Error('{0} must be overridden only by ' + * '{1} providers'.format(self, BaseSingleton)) + * return super(AbstractSingleton, self).override(provider) # <<<<<<<<<<<<<< + * + * def reset(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_AbstractSingleton)); + __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_AbstractSingleton)); + PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_AbstractSingleton)); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); + PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_self)); + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_override); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_provider) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_provider); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "dependency_injector/providers.pyx":2322 + * return self.__last_overriding(*args, **kwargs) + * + * def override(self, provider): # <<<<<<<<<<<<<< + * """Override provider with another provider. + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("dependency_injector.providers.AbstractSingleton.override", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "dependency_injector/providers.pyx":2338 + * return super(AbstractSingleton, self).override(provider) + * + * def reset(self): # <<<<<<<<<<<<<< + * """Reset cached instance, if any. + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_9providers_17AbstractSingleton_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static char __pyx_doc_19dependency_injector_9providers_17AbstractSingleton_4reset[] = "Reset cached instance, if any.\n\n :rtype: None\n "; +static PyObject *__pyx_pw_19dependency_injector_9providers_17AbstractSingleton_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("reset (wrapper)", 0); + __pyx_r = __pyx_pf_19dependency_injector_9providers_17AbstractSingleton_4reset(((struct __pyx_obj_19dependency_injector_9providers_AbstractSingleton *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractSingleton_4reset(struct __pyx_obj_19dependency_injector_9providers_AbstractSingleton *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("reset", 0); + + /* "dependency_injector/providers.pyx":2343 + * :rtype: None + * """ + * if self.__last_overriding is None: # <<<<<<<<<<<<<< + * raise Error('{0} must be overridden before calling'.format(self)) + * return self.__last_overriding.reset() + */ + __pyx_t_1 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx___last_overriding) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (unlikely(__pyx_t_2)) { + + /* "dependency_injector/providers.pyx":2344 + * """ + * if self.__last_overriding is None: + * raise Error('{0} must be overridden before calling'.format(self)) # <<<<<<<<<<<<<< + * return self.__last_overriding.reset() + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_must_be_overridden_before_cal, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + } + } + __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_self)); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(1, 2344, __pyx_L1_error) + + /* "dependency_injector/providers.pyx":2343 * :rtype: None * """ * if self.__last_overriding is None: # <<<<<<<<<<<<<< @@ -42115,7 +42801,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractSingleton_4 */ } - /* "dependency_injector/providers.pyx":2320 + /* "dependency_injector/providers.pyx":2345 * if self.__last_overriding is None: * raise Error('{0} must be overridden before calling'.format(self)) * return self.__last_overriding.reset() # <<<<<<<<<<<<<< @@ -42123,7 +42809,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractSingleton_4 * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx___last_overriding), __pyx_n_s_reset); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2320, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx___last_overriding), __pyx_n_s_reset); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { @@ -42137,14 +42823,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractSingleton_4 } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2320, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2313 + /* "dependency_injector/providers.pyx":2338 * return super(AbstractSingleton, self).override(provider) * * def reset(self): # <<<<<<<<<<<<<< @@ -42484,7 +43170,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17AbstractSingleton_8 return __pyx_r; } -/* "dependency_injector/providers.pyx":2333 +/* "dependency_injector/providers.pyx":2358 * """ * * def __init__(self, singleton): # <<<<<<<<<<<<<< @@ -42525,7 +43211,7 @@ static int __pyx_pw_19dependency_injector_9providers_17SingletonDelegate_1__init else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 2333, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 2358, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; @@ -42536,7 +43222,7 @@ static int __pyx_pw_19dependency_injector_9providers_17SingletonDelegate_1__init } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2333, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2358, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.SingletonDelegate.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -42567,7 +43253,7 @@ static int __pyx_pf_19dependency_injector_9providers_17SingletonDelegate___init_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":2339 + /* "dependency_injector/providers.pyx":2364 * :type singleton: py:class:`BaseSingleton` * """ * if isinstance(singleton, BaseSingleton) is False: # <<<<<<<<<<<<<< @@ -42578,26 +43264,26 @@ static int __pyx_pf_19dependency_injector_9providers_17SingletonDelegate___init_ __pyx_t_2 = ((__pyx_t_1 == 0) != 0); if (unlikely(__pyx_t_2)) { - /* "dependency_injector/providers.pyx":2340 + /* "dependency_injector/providers.pyx":2365 * """ * if isinstance(singleton, BaseSingleton) is False: * raise Error('{0} can wrap only {1} providers'.format( # <<<<<<<<<<<<<< * self.__class__, BaseSingleton)) * super(SingletonDelegate, self).__init__(singleton) */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2340, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_can_wrap_only_1_providers, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2340, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_can_wrap_only_1_providers, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - /* "dependency_injector/providers.pyx":2341 + /* "dependency_injector/providers.pyx":2366 * if isinstance(singleton, BaseSingleton) is False: * raise Error('{0} can wrap only {1} providers'.format( * self.__class__, BaseSingleton)) # <<<<<<<<<<<<<< * super(SingletonDelegate, self).__init__(singleton) * */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2341, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_9 = 0; @@ -42614,7 +43300,7 @@ static int __pyx_pf_19dependency_injector_9providers_17SingletonDelegate___init_ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_7, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_BaseSingleton)}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2340, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2365, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; @@ -42623,14 +43309,14 @@ static int __pyx_pf_19dependency_injector_9providers_17SingletonDelegate___init_ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_7, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_BaseSingleton)}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2340, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2365, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { - __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2340, __pyx_L1_error) + __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; @@ -42641,7 +43327,7 @@ static int __pyx_pf_19dependency_injector_9providers_17SingletonDelegate___init_ __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_BaseSingleton)); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, ((PyObject *)__pyx_ptype_19dependency_injector_9providers_BaseSingleton)); __pyx_t_7 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2340, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } @@ -42659,14 +43345,14 @@ static int __pyx_pf_19dependency_injector_9providers_17SingletonDelegate___init_ __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2340, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 2340, __pyx_L1_error) + __PYX_ERR(1, 2365, __pyx_L1_error) - /* "dependency_injector/providers.pyx":2339 + /* "dependency_injector/providers.pyx":2364 * :type singleton: py:class:`BaseSingleton` * """ * if isinstance(singleton, BaseSingleton) is False: # <<<<<<<<<<<<<< @@ -42675,14 +43361,14 @@ static int __pyx_pf_19dependency_injector_9providers_17SingletonDelegate___init_ */ } - /* "dependency_injector/providers.pyx":2342 + /* "dependency_injector/providers.pyx":2367 * raise Error('{0} can wrap only {1} providers'.format( * self.__class__, BaseSingleton)) * super(SingletonDelegate, self).__init__(singleton) # <<<<<<<<<<<<<< * * */ - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2342, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_SingletonDelegate)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_SingletonDelegate)); @@ -42690,10 +43376,10 @@ static int __pyx_pf_19dependency_injector_9providers_17SingletonDelegate___init_ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2342, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2342, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; @@ -42708,12 +43394,12 @@ static int __pyx_pf_19dependency_injector_9providers_17SingletonDelegate___init_ } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_singleton) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_singleton); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2342, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":2333 + /* "dependency_injector/providers.pyx":2358 * """ * * def __init__(self, singleton): # <<<<<<<<<<<<<< @@ -43056,7 +43742,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_17SingletonDelegate_4 return __pyx_r; } -/* "dependency_injector/providers.pyx":2375 +/* "dependency_injector/providers.pyx":2400 * """ * * def __init__(self, *args): # <<<<<<<<<<<<<< @@ -43097,14 +43783,14 @@ static int __pyx_pf_19dependency_injector_9providers_4List___init__(struct __pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":2377 + /* "dependency_injector/providers.pyx":2402 * def __init__(self, *args): * """Initializer.""" * self.__args = tuple() # <<<<<<<<<<<<<< * self.__args_len = 0 * self.set_args(*args) */ - __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2377, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->__pyx___args); @@ -43112,7 +43798,7 @@ static int __pyx_pf_19dependency_injector_9providers_4List___init__(struct __pyx __pyx_v_self->__pyx___args = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2378 + /* "dependency_injector/providers.pyx":2403 * """Initializer.""" * self.__args = tuple() * self.__args_len = 0 # <<<<<<<<<<<<<< @@ -43121,28 +43807,28 @@ static int __pyx_pf_19dependency_injector_9providers_4List___init__(struct __pyx */ __pyx_v_self->__pyx___args_len = 0; - /* "dependency_injector/providers.pyx":2379 + /* "dependency_injector/providers.pyx":2404 * self.__args = tuple() * self.__args_len = 0 * self.set_args(*args) # <<<<<<<<<<<<<< * super(List, self).__init__() * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2379, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2379, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":2380 + /* "dependency_injector/providers.pyx":2405 * self.__args_len = 0 * self.set_args(*args) * super(List, self).__init__() # <<<<<<<<<<<<<< * * def __deepcopy__(self, memo): */ - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2380, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_List)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_List)); @@ -43150,10 +43836,10 @@ static int __pyx_pf_19dependency_injector_9providers_4List___init__(struct __pyx __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2380, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2380, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -43168,12 +43854,12 @@ static int __pyx_pf_19dependency_injector_9providers_4List___init__(struct __pyx } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2380, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":2375 + /* "dependency_injector/providers.pyx":2400 * """ * * def __init__(self, *args): # <<<<<<<<<<<<<< @@ -43195,7 +43881,7 @@ static int __pyx_pf_19dependency_injector_9providers_4List___init__(struct __pyx return __pyx_r; } -/* "dependency_injector/providers.pyx":2382 +/* "dependency_injector/providers.pyx":2407 * super(List, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -43233,16 +43919,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_2__deepcopy__(s int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__deepcopy__", 0); - /* "dependency_injector/providers.pyx":2384 + /* "dependency_injector/providers.pyx":2409 * def __deepcopy__(self, memo): * """Create and return full copy of provider.""" * copied = memo.get(id(self)) # <<<<<<<<<<<<<< * if copied is not None: * return copied */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2384, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2384, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -43257,13 +43943,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_2__deepcopy__(s __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2384, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_copied = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2385 + /* "dependency_injector/providers.pyx":2410 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -43274,7 +43960,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_2__deepcopy__(s __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":2386 + /* "dependency_injector/providers.pyx":2411 * copied = memo.get(id(self)) * if copied is not None: * return copied # <<<<<<<<<<<<<< @@ -43286,7 +43972,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_2__deepcopy__(s __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2385 + /* "dependency_injector/providers.pyx":2410 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -43295,45 +43981,45 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_2__deepcopy__(s */ } - /* "dependency_injector/providers.pyx":2388 + /* "dependency_injector/providers.pyx":2413 * return copied * * copied = self.__class__(*deepcopy(self.args, memo)) # <<<<<<<<<<<<<< * self._copy_overridings(copied, memo) * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2388, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2388, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2388, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2413, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_3 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_2, 0, &__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2388, __pyx_L1_error) + __pyx_t_3 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_2, 0, &__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2388, __pyx_L1_error) + __pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2388, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_copied, __pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":2389 + /* "dependency_injector/providers.pyx":2414 * * copied = self.__class__(*deepcopy(self.args, memo)) * self._copy_overridings(copied, memo) # <<<<<<<<<<<<<< * * return copied */ - if (!(likely(((__pyx_v_copied) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_copied, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 2389, __pyx_L1_error) - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2389, __pyx_L1_error) + if (!(likely(((__pyx_v_copied) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_copied, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 2414, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2414, __pyx_L1_error) ((struct __pyx_vtabstruct_19dependency_injector_9providers_List *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._copy_overridings(((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_self), ((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_copied), ((PyObject*)__pyx_v_memo), 0); - /* "dependency_injector/providers.pyx":2391 + /* "dependency_injector/providers.pyx":2416 * self._copy_overridings(copied, memo) * * return copied # <<<<<<<<<<<<<< @@ -43345,7 +44031,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_2__deepcopy__(s __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2382 + /* "dependency_injector/providers.pyx":2407 * super(List, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -43368,7 +44054,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_2__deepcopy__(s return __pyx_r; } -/* "dependency_injector/providers.pyx":2393 +/* "dependency_injector/providers.pyx":2418 * return copied * * def __str__(self): # <<<<<<<<<<<<<< @@ -43403,7 +44089,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_4__str__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__str__", 0); - /* "dependency_injector/providers.pyx":2398 + /* "dependency_injector/providers.pyx":2423 * :rtype: str * """ * return represent_provider(provider=self, provides=list(self.args)) # <<<<<<<<<<<<<< @@ -43411,19 +44097,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_4__str__(struct * @property */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2398, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PySequence_List(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2398, __pyx_L1_error) + __pyx_t_2 = PySequence_List(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), __pyx_t_2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2398, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_represent_provider(((PyObject *)__pyx_v_self), __pyx_t_2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2393 + /* "dependency_injector/providers.pyx":2418 * return copied * * def __str__(self): # <<<<<<<<<<<<<< @@ -43443,7 +44129,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_4__str__(struct return __pyx_r; } -/* "dependency_injector/providers.pyx":2401 +/* "dependency_injector/providers.pyx":2426 * * @property * def provided(self): # <<<<<<<<<<<<<< @@ -43473,7 +44159,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_8provided___get int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":2403 + /* "dependency_injector/providers.pyx":2428 * def provided(self): * """Return :py:class:`ProvidedInstance` provider.""" * return ProvidedInstance(self) # <<<<<<<<<<<<<< @@ -43481,13 +44167,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_8provided___get * @property */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ProvidedInstance), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2403, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ProvidedInstance), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2428, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2401 + /* "dependency_injector/providers.pyx":2426 * * @property * def provided(self): # <<<<<<<<<<<<<< @@ -43506,7 +44192,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_8provided___get return __pyx_r; } -/* "dependency_injector/providers.pyx":2406 +/* "dependency_injector/providers.pyx":2431 * * @property * def args(self): # <<<<<<<<<<<<<< @@ -43543,19 +44229,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_4args___get__(s int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":2412 + /* "dependency_injector/providers.pyx":2437 * cdef list args * * args = list() # <<<<<<<<<<<<<< * for index in range(self.__args_len): * arg = self.__args[index] */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2412, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_args = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2413 + /* "dependency_injector/providers.pyx":2438 * * args = list() * for index in range(self.__args_len): # <<<<<<<<<<<<<< @@ -43567,7 +44253,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_4args___get__(s for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_index = __pyx_t_4; - /* "dependency_injector/providers.pyx":2414 + /* "dependency_injector/providers.pyx":2439 * args = list() * for index in range(self.__args_len): * arg = self.__args[index] # <<<<<<<<<<<<<< @@ -43576,15 +44262,15 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_4args___get__(s */ if (unlikely(__pyx_v_self->__pyx___args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 2414, __pyx_L1_error) + __PYX_ERR(1, 2439, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->__pyx___args, __pyx_v_index, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2414, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->__pyx___args, __pyx_v_index, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_PositionalInjection))))) __PYX_ERR(1, 2414, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_PositionalInjection))))) __PYX_ERR(1, 2439, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_arg, ((struct __pyx_obj_19dependency_injector_9providers_PositionalInjection *)__pyx_t_1)); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2415 + /* "dependency_injector/providers.pyx":2440 * for index in range(self.__args_len): * arg = self.__args[index] * args.append(arg.__value) # <<<<<<<<<<<<<< @@ -43593,11 +44279,11 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_4args___get__(s */ __pyx_t_1 = __pyx_v_arg->__pyx_base.__pyx___value; __Pyx_INCREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_args, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 2415, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_args, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 2440, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - /* "dependency_injector/providers.pyx":2416 + /* "dependency_injector/providers.pyx":2441 * arg = self.__args[index] * args.append(arg.__value) * return tuple(args) # <<<<<<<<<<<<<< @@ -43605,13 +44291,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_4args___get__(s * def add_args(self, *args): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyList_AsTuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2416, __pyx_L1_error) + __pyx_t_1 = PyList_AsTuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2406 + /* "dependency_injector/providers.pyx":2431 * * @property * def args(self): # <<<<<<<<<<<<<< @@ -43632,7 +44318,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_4args___get__(s return __pyx_r; } -/* "dependency_injector/providers.pyx":2418 +/* "dependency_injector/providers.pyx":2443 * return tuple(args) * * def add_args(self, *args): # <<<<<<<<<<<<<< @@ -43670,16 +44356,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_6add_args(struc int __pyx_clineno = 0; __Pyx_RefNannySetupContext("add_args", 0); - /* "dependency_injector/providers.pyx":2423 + /* "dependency_injector/providers.pyx":2448 * :return: Reference ``self`` * """ * self.__args += parse_positional_injections(args) # <<<<<<<<<<<<<< * self.__args_len = len(self.__args) * return self */ - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_positional_injections(__pyx_v_args, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2423, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_positional_injections(__pyx_v_args, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_self->__pyx___args, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2423, __pyx_L1_error) + __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_self->__pyx___args, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); @@ -43688,7 +44374,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_6add_args(struc __pyx_v_self->__pyx___args = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":2424 + /* "dependency_injector/providers.pyx":2449 * """ * self.__args += parse_positional_injections(args) * self.__args_len = len(self.__args) # <<<<<<<<<<<<<< @@ -43699,13 +44385,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_6add_args(struc __Pyx_INCREF(__pyx_t_2); if (unlikely(__pyx_t_2 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(1, 2424, __pyx_L1_error) + __PYX_ERR(1, 2449, __pyx_L1_error) } - __pyx_t_3 = PyTuple_GET_SIZE(__pyx_t_2); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2424, __pyx_L1_error) + __pyx_t_3 = PyTuple_GET_SIZE(__pyx_t_2); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2449, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->__pyx___args_len = __pyx_t_3; - /* "dependency_injector/providers.pyx":2425 + /* "dependency_injector/providers.pyx":2450 * self.__args += parse_positional_injections(args) * self.__args_len = len(self.__args) * return self # <<<<<<<<<<<<<< @@ -43717,7 +44403,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_6add_args(struc __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":2418 + /* "dependency_injector/providers.pyx":2443 * return tuple(args) * * def add_args(self, *args): # <<<<<<<<<<<<<< @@ -43737,7 +44423,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_6add_args(struc return __pyx_r; } -/* "dependency_injector/providers.pyx":2427 +/* "dependency_injector/providers.pyx":2452 * return self * * def set_args(self, *args): # <<<<<<<<<<<<<< @@ -43774,14 +44460,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_8set_args(struc int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_args", 0); - /* "dependency_injector/providers.pyx":2434 + /* "dependency_injector/providers.pyx":2459 * :return: Reference ``self`` * """ * self.__args = parse_positional_injections(args) # <<<<<<<<<<<<<< * self.__args_len = len(self.__args) * return self */ - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_positional_injections(__pyx_v_args, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2434, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_positional_injections(__pyx_v_args, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->__pyx___args); @@ -43789,7 +44475,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_8set_args(struc __pyx_v_self->__pyx___args = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2435 + /* "dependency_injector/providers.pyx":2460 * """ * self.__args = parse_positional_injections(args) * self.__args_len = len(self.__args) # <<<<<<<<<<<<<< @@ -43800,13 +44486,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_8set_args(struc __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(1, 2435, __pyx_L1_error) + __PYX_ERR(1, 2460, __pyx_L1_error) } - __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2435, __pyx_L1_error) + __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2460, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_self->__pyx___args_len = __pyx_t_2; - /* "dependency_injector/providers.pyx":2436 + /* "dependency_injector/providers.pyx":2461 * self.__args = parse_positional_injections(args) * self.__args_len = len(self.__args) * return self # <<<<<<<<<<<<<< @@ -43818,7 +44504,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_8set_args(struc __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":2427 + /* "dependency_injector/providers.pyx":2452 * return self * * def set_args(self, *args): # <<<<<<<<<<<<<< @@ -43837,7 +44523,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_8set_args(struc return __pyx_r; } -/* "dependency_injector/providers.pyx":2438 +/* "dependency_injector/providers.pyx":2463 * return self * * def clear_args(self): # <<<<<<<<<<<<<< @@ -43869,14 +44555,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_10clear_args(st int __pyx_clineno = 0; __Pyx_RefNannySetupContext("clear_args", 0); - /* "dependency_injector/providers.pyx":2443 + /* "dependency_injector/providers.pyx":2468 * :return: Reference ``self`` * """ * self.__args = tuple() # <<<<<<<<<<<<<< * self.__args_len = len(self.__args) * return self */ - __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2443, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->__pyx___args); @@ -43884,7 +44570,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_10clear_args(st __pyx_v_self->__pyx___args = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2444 + /* "dependency_injector/providers.pyx":2469 * """ * self.__args = tuple() * self.__args_len = len(self.__args) # <<<<<<<<<<<<<< @@ -43895,13 +44581,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_10clear_args(st __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(1, 2444, __pyx_L1_error) + __PYX_ERR(1, 2469, __pyx_L1_error) } - __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2444, __pyx_L1_error) + __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2469, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_self->__pyx___args_len = __pyx_t_2; - /* "dependency_injector/providers.pyx":2445 + /* "dependency_injector/providers.pyx":2470 * self.__args = tuple() * self.__args_len = len(self.__args) * return self # <<<<<<<<<<<<<< @@ -43913,7 +44599,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_10clear_args(st __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "dependency_injector/providers.pyx":2438 + /* "dependency_injector/providers.pyx":2463 * return self * * def clear_args(self): # <<<<<<<<<<<<<< @@ -43932,7 +44618,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_10clear_args(st return __pyx_r; } -/* "dependency_injector/providers.pyx":2447 +/* "dependency_injector/providers.pyx":2472 * return self * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -43963,7 +44649,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_4List__provide(struct if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2447, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_19dependency_injector_9providers_4List_13_provide)) { __Pyx_XDECREF(__pyx_r); @@ -43983,7 +44669,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_4List__provide(struct #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2447, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2472, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -43991,13 +44677,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_4List__provide(struct #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2447, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2472, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2447, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -44008,7 +44694,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_4List__provide(struct __Pyx_INCREF(__pyx_v_kwargs); __Pyx_GIVEREF(__pyx_v_kwargs); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_kwargs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2447, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -44031,7 +44717,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_4List__provide(struct #endif } - /* "dependency_injector/providers.pyx":2449 + /* "dependency_injector/providers.pyx":2474 * cpdef object _provide(self, tuple args, dict kwargs): * """Return result of provided callable's call.""" * return list(__provide_positional_args(args, self.__args, self.__args_len)) # <<<<<<<<<<<<<< @@ -44041,17 +44727,17 @@ static PyObject *__pyx_f_19dependency_injector_9providers_4List__provide(struct __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_v_self->__pyx___args; __Pyx_INCREF(__pyx_t_1); - __pyx_t_2 = __pyx_f_19dependency_injector_9providers___provide_positional_args(__pyx_v_args, ((PyObject*)__pyx_t_1), __pyx_v_self->__pyx___args_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2449, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers___provide_positional_args(__pyx_v_args, ((PyObject*)__pyx_t_1), __pyx_v_self->__pyx___args_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PySequence_List(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2449, __pyx_L1_error) + __pyx_t_1 = PySequence_List(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2447 + /* "dependency_injector/providers.pyx":2472 * return self * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -44109,11 +44795,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_4List_13_provide(PyOb case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 2447, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 2472, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 2447, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 2472, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -44126,14 +44812,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_4List_13_provide(PyOb } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2447, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2472, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.List._provide", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2447, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2447, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2472, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2472, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_4List_12_provide(((struct __pyx_obj_19dependency_injector_9providers_List *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs); /* function exit code */ @@ -44154,7 +44840,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_12_provide(stru int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_provide", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_4List__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2447, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_4List__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -44493,12 +45179,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_4List_16__setstate_cy return __pyx_r; } -/* "dependency_injector/providers.pyx":2459 +/* "dependency_injector/providers.pyx":2484 * """ * * def __init__(self, container_cls, container=None, **overriding_providers): # <<<<<<<<<<<<<< * """Initialize provider.""" - * self.container_cls = container_cls + * self.__container_cls = container_cls */ /* Python wrapper */ @@ -44547,7 +45233,7 @@ static int __pyx_pw_19dependency_injector_9providers_9Container_1__init__(PyObje } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_overriding_providers, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 2459, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_overriding_providers, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 2484, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -44563,7 +45249,7 @@ static int __pyx_pw_19dependency_injector_9providers_9Container_1__init__(PyObje } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2459, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2484, __pyx_L3_error) __pyx_L3_error:; __Pyx_DECREF(__pyx_v_overriding_providers); __pyx_v_overriding_providers = 0; __Pyx_AddTraceback("dependency_injector.providers.Container.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); @@ -44592,34 +45278,34 @@ static int __pyx_pf_19dependency_injector_9providers_9Container___init__(struct __Pyx_RefNannySetupContext("__init__", 0); __Pyx_INCREF(__pyx_v_container); - /* "dependency_injector/providers.pyx":2461 + /* "dependency_injector/providers.pyx":2486 * def __init__(self, container_cls, container=None, **overriding_providers): * """Initialize provider.""" - * self.container_cls = container_cls # <<<<<<<<<<<<<< - * self.overriding_providers = overriding_providers + * self.__container_cls = container_cls # <<<<<<<<<<<<<< + * self.__overriding_providers = overriding_providers * */ __Pyx_INCREF(__pyx_v_container_cls); __Pyx_GIVEREF(__pyx_v_container_cls); - __Pyx_GOTREF(__pyx_v_self->container_cls); - __Pyx_DECREF(__pyx_v_self->container_cls); - __pyx_v_self->container_cls = __pyx_v_container_cls; + __Pyx_GOTREF(__pyx_v_self->__pyx___container_cls); + __Pyx_DECREF(__pyx_v_self->__pyx___container_cls); + __pyx_v_self->__pyx___container_cls = __pyx_v_container_cls; - /* "dependency_injector/providers.pyx":2462 + /* "dependency_injector/providers.pyx":2487 * """Initialize provider.""" - * self.container_cls = container_cls - * self.overriding_providers = overriding_providers # <<<<<<<<<<<<<< + * self.__container_cls = container_cls + * self.__overriding_providers = overriding_providers # <<<<<<<<<<<<<< * * if container is None: */ __Pyx_INCREF(__pyx_v_overriding_providers); __Pyx_GIVEREF(__pyx_v_overriding_providers); - __Pyx_GOTREF(__pyx_v_self->overriding_providers); - __Pyx_DECREF(__pyx_v_self->overriding_providers); - __pyx_v_self->overriding_providers = __pyx_v_overriding_providers; + __Pyx_GOTREF(__pyx_v_self->__pyx___overriding_providers); + __Pyx_DECREF(__pyx_v_self->__pyx___overriding_providers); + __pyx_v_self->__pyx___overriding_providers = __pyx_v_overriding_providers; - /* "dependency_injector/providers.pyx":2464 - * self.overriding_providers = overriding_providers + /* "dependency_injector/providers.pyx":2489 + * self.__overriding_providers = overriding_providers * * if container is None: # <<<<<<<<<<<<<< * container = container_cls() @@ -44629,12 +45315,12 @@ static int __pyx_pf_19dependency_injector_9providers_9Container___init__(struct __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "dependency_injector/providers.pyx":2465 + /* "dependency_injector/providers.pyx":2490 * * if container is None: * container = container_cls() # <<<<<<<<<<<<<< * container.override_providers(**overriding_providers) - * self.container = container + * self.__container = container */ __Pyx_INCREF(__pyx_v_container_cls); __pyx_t_4 = __pyx_v_container_cls; __pyx_t_5 = NULL; @@ -44649,28 +45335,28 @@ static int __pyx_pf_19dependency_injector_9providers_9Container___init__(struct } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2465, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_container, __pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":2466 + /* "dependency_injector/providers.pyx":2491 * if container is None: * container = container_cls() * container.override_providers(**overriding_providers) # <<<<<<<<<<<<<< - * self.container = container + * self.__container = container * */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_container, __pyx_n_s_override_providers_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2466, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_container, __pyx_n_s_override_providers_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_v_overriding_providers); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2466, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_v_overriding_providers); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/providers.pyx":2464 - * self.overriding_providers = overriding_providers + /* "dependency_injector/providers.pyx":2489 + * self.__overriding_providers = overriding_providers * * if container is None: # <<<<<<<<<<<<<< * container = container_cls() @@ -44678,27 +45364,27 @@ static int __pyx_pf_19dependency_injector_9providers_9Container___init__(struct */ } - /* "dependency_injector/providers.pyx":2467 + /* "dependency_injector/providers.pyx":2492 * container = container_cls() * container.override_providers(**overriding_providers) - * self.container = container # <<<<<<<<<<<<<< + * self.__container = container # <<<<<<<<<<<<<< * * super(Container, self).__init__() */ __Pyx_INCREF(__pyx_v_container); __Pyx_GIVEREF(__pyx_v_container); - __Pyx_GOTREF(__pyx_v_self->container); - __Pyx_DECREF(__pyx_v_self->container); - __pyx_v_self->container = __pyx_v_container; + __Pyx_GOTREF(__pyx_v_self->__pyx___container); + __Pyx_DECREF(__pyx_v_self->__pyx___container); + __pyx_v_self->__pyx___container = __pyx_v_container; - /* "dependency_injector/providers.pyx":2469 - * self.container = container + /* "dependency_injector/providers.pyx":2494 + * self.__container = container * * super(Container, self).__init__() # <<<<<<<<<<<<<< * * def __deepcopy__(self, memo): */ - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2469, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Container)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Container)); @@ -44706,10 +45392,10 @@ static int __pyx_pf_19dependency_injector_9providers_9Container___init__(struct __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2469, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2469, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; @@ -44724,17 +45410,17 @@ static int __pyx_pf_19dependency_injector_9providers_9Container___init__(struct } __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2469, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "dependency_injector/providers.pyx":2459 + /* "dependency_injector/providers.pyx":2484 * """ * * def __init__(self, container_cls, container=None, **overriding_providers): # <<<<<<<<<<<<<< * """Initialize provider.""" - * self.container_cls = container_cls + * self.__container_cls = container_cls */ /* function exit code */ @@ -44752,7 +45438,7 @@ static int __pyx_pf_19dependency_injector_9providers_9Container___init__(struct return __pyx_r; } -/* "dependency_injector/providers.pyx":2471 +/* "dependency_injector/providers.pyx":2496 * super(Container, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -44791,16 +45477,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_2__deepcop int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__deepcopy__", 0); - /* "dependency_injector/providers.pyx":2473 + /* "dependency_injector/providers.pyx":2498 * def __deepcopy__(self, memo): * """Create and return full copy of provider.""" * copied = memo.get(id(self)) # <<<<<<<<<<<<<< * if copied is not None: * return copied */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2473, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2473, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -44815,13 +45501,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_2__deepcop __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2473, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_copied = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2474 + /* "dependency_injector/providers.pyx":2499 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -44832,7 +45518,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_2__deepcop __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":2475 + /* "dependency_injector/providers.pyx":2500 * copied = memo.get(id(self)) * if copied is not None: * return copied # <<<<<<<<<<<<<< @@ -44844,7 +45530,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_2__deepcop __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2474 + /* "dependency_injector/providers.pyx":2499 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -44853,85 +45539,85 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_2__deepcop */ } - /* "dependency_injector/providers.pyx":2477 + /* "dependency_injector/providers.pyx":2502 * return copied * * copied = self.__class__( # <<<<<<<<<<<<<< - * self.container_cls, - * deepcopy(self.container, memo), + * self.__container_cls, + * deepcopy(self.__container, memo), */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2477, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - /* "dependency_injector/providers.pyx":2479 + /* "dependency_injector/providers.pyx":2504 * copied = self.__class__( - * self.container_cls, - * deepcopy(self.container, memo), # <<<<<<<<<<<<<< - * **deepcopy(self.overriding_providers, memo), + * self.__container_cls, + * deepcopy(self.__container, memo), # <<<<<<<<<<<<<< + * **deepcopy(self.__overriding_providers, memo), * ) */ - __pyx_t_2 = __pyx_v_self->container; + __pyx_t_2 = __pyx_v_self->__pyx___container; __Pyx_INCREF(__pyx_t_2); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2479, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2504, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_3 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_2, 0, &__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2479, __pyx_L1_error) + __pyx_t_3 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_2, 0, &__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":2477 + /* "dependency_injector/providers.pyx":2502 * return copied * * copied = self.__class__( # <<<<<<<<<<<<<< - * self.container_cls, - * deepcopy(self.container, memo), + * self.__container_cls, + * deepcopy(self.__container, memo), */ - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2477, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_v_self->container_cls); - __Pyx_GIVEREF(__pyx_v_self->container_cls); - PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->container_cls); + __Pyx_INCREF(__pyx_v_self->__pyx___container_cls); + __Pyx_GIVEREF(__pyx_v_self->__pyx___container_cls); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->__pyx___container_cls); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":2480 - * self.container_cls, - * deepcopy(self.container, memo), - * **deepcopy(self.overriding_providers, memo), # <<<<<<<<<<<<<< + /* "dependency_injector/providers.pyx":2505 + * self.__container_cls, + * deepcopy(self.__container, memo), + * **deepcopy(self.__overriding_providers, memo), # <<<<<<<<<<<<<< * ) * */ - __pyx_t_4 = __pyx_v_self->overriding_providers; + __pyx_t_4 = __pyx_v_self->__pyx___overriding_providers; __Pyx_INCREF(__pyx_t_4); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2480, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2505, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_8 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_4, 0, &__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2480, __pyx_L1_error) + __pyx_t_8 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_4, 0, &__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_t_8 == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); - __PYX_ERR(1, 2480, __pyx_L1_error) + __PYX_ERR(1, 2505, __pyx_L1_error) } if (likely(PyDict_CheckExact(__pyx_t_8))) { - __pyx_t_3 = PyDict_Copy(__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2480, __pyx_L1_error) + __pyx_t_3 = PyDict_Copy(__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else { - __pyx_t_3 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2477, __pyx_L1_error) + __pyx_t_3 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } - /* "dependency_injector/providers.pyx":2477 + /* "dependency_injector/providers.pyx":2502 * return copied * * copied = self.__class__( # <<<<<<<<<<<<<< - * self.container_cls, - * deepcopy(self.container, memo), + * self.__container_cls, + * deepcopy(self.__container, memo), */ - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2477, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -44939,7 +45625,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_2__deepcop __Pyx_DECREF_SET(__pyx_v_copied, __pyx_t_8); __pyx_t_8 = 0; - /* "dependency_injector/providers.pyx":2483 + /* "dependency_injector/providers.pyx":2508 * ) * * return copied # <<<<<<<<<<<<<< @@ -44951,7 +45637,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_2__deepcop __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2471 + /* "dependency_injector/providers.pyx":2496 * super(Container, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -44975,7 +45661,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_2__deepcop return __pyx_r; } -/* "dependency_injector/providers.pyx":2485 +/* "dependency_injector/providers.pyx":2510 * return copied * * def __getattr__(self, name): # <<<<<<<<<<<<<< @@ -45014,14 +45700,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_4__getattr int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getattr__", 0); - /* "dependency_injector/providers.pyx":2487 + /* "dependency_injector/providers.pyx":2512 * def __getattr__(self, name): * """Return dependency provider.""" * if name.startswith('__') and name.endswith('__'): # <<<<<<<<<<<<<< * raise AttributeError( * '\'{cls}\' object has no attribute ' */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_startswith); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2487, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_startswith); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -45033,19 +45719,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_4__getattr __Pyx_DECREF_SET(__pyx_t_3, function); } } - __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_n_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s__3); + __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_n_s__4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s__4); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2487, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 2487, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 2512, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_5) { } else { __pyx_t_1 = __pyx_t_5; goto __pyx_L4_bool_binop_done; } - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_endswith); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2487, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_endswith); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -45057,72 +45743,72 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_4__getattr __Pyx_DECREF_SET(__pyx_t_3, function); } } - __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_n_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s__3); + __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_n_s__4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s__4); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2487, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 2487, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 2512, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_1 = __pyx_t_5; __pyx_L4_bool_binop_done:; if (unlikely(__pyx_t_1)) { - /* "dependency_injector/providers.pyx":2490 + /* "dependency_injector/providers.pyx":2515 * raise AttributeError( * '\'{cls}\' object has no attribute ' * '\'{attribute_name}\''.format(cls=self.__class__.__name__, # <<<<<<<<<<<<<< * attribute_name=name)) - * return getattr(self.container, name) + * return getattr(self.__container, name) */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_cls_object_has_no_attribute_att, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2490, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_cls_object_has_no_attribute_att, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2490, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2490, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2490, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_cls, __pyx_t_6) < 0) __PYX_ERR(1, 2490, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_cls, __pyx_t_6) < 0) __PYX_ERR(1, 2515, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "dependency_injector/providers.pyx":2491 + /* "dependency_injector/providers.pyx":2516 * '\'{cls}\' object has no attribute ' * '\'{attribute_name}\''.format(cls=self.__class__.__name__, * attribute_name=name)) # <<<<<<<<<<<<<< - * return getattr(self.container, name) + * return getattr(self.__container, name) * */ - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_attribute_name, __pyx_v_name) < 0) __PYX_ERR(1, 2490, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_attribute_name, __pyx_v_name) < 0) __PYX_ERR(1, 2515, __pyx_L1_error) - /* "dependency_injector/providers.pyx":2490 + /* "dependency_injector/providers.pyx":2515 * raise AttributeError( * '\'{cls}\' object has no attribute ' * '\'{attribute_name}\''.format(cls=self.__class__.__name__, # <<<<<<<<<<<<<< * attribute_name=name)) - * return getattr(self.container, name) + * return getattr(self.__container, name) */ - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2490, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":2488 + /* "dependency_injector/providers.pyx":2513 * """Return dependency provider.""" * if name.startswith('__') and name.endswith('__'): * raise AttributeError( # <<<<<<<<<<<<<< * '\'{cls}\' object has no attribute ' * '\'{attribute_name}\''.format(cls=self.__class__.__name__, */ - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_AttributeError, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2488, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_AttributeError, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 2488, __pyx_L1_error) + __PYX_ERR(1, 2513, __pyx_L1_error) - /* "dependency_injector/providers.pyx":2487 + /* "dependency_injector/providers.pyx":2512 * def __getattr__(self, name): * """Return dependency provider.""" * if name.startswith('__') and name.endswith('__'): # <<<<<<<<<<<<<< @@ -45131,24 +45817,24 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_4__getattr */ } - /* "dependency_injector/providers.pyx":2492 + /* "dependency_injector/providers.pyx":2517 * '\'{attribute_name}\''.format(cls=self.__class__.__name__, * attribute_name=name)) - * return getattr(self.container, name) # <<<<<<<<<<<<<< + * return getattr(self.__container, name) # <<<<<<<<<<<<<< * - * def override(self, provider): + * @property */ __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = __pyx_v_self->container; + __pyx_t_3 = __pyx_v_self->__pyx___container; __Pyx_INCREF(__pyx_t_3); - __pyx_t_6 = __Pyx_GetAttr(__pyx_t_3, __pyx_v_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2492, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetAttr(__pyx_t_3, __pyx_v_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2485 + /* "dependency_injector/providers.pyx":2510 * return copied * * def __getattr__(self, name): # <<<<<<<<<<<<<< @@ -45170,8 +45856,61 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_4__getattr return __pyx_r; } -/* "dependency_injector/providers.pyx":2494 - * return getattr(self.container, name) +/* "dependency_injector/providers.pyx":2520 + * + * @property + * def container(self): # <<<<<<<<<<<<<< + * return self.__container + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_9providers_9Container_9container_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_9Container_9container_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_19dependency_injector_9providers_9Container_9container___get__(((struct __pyx_obj_19dependency_injector_9providers_Container *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_9container___get__(struct __pyx_obj_19dependency_injector_9providers_Container *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + + /* "dependency_injector/providers.pyx":2521 + * @property + * def container(self): + * return self.__container # <<<<<<<<<<<<<< + * + * def override(self, provider): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->__pyx___container); + __pyx_r = __pyx_v_self->__pyx___container; + goto __pyx_L0; + + /* "dependency_injector/providers.pyx":2520 + * + * @property + * def container(self): # <<<<<<<<<<<<<< + * return self.__container + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "dependency_injector/providers.pyx":2523 + * return self.__container * * def override(self, provider): # <<<<<<<<<<<<<< * """Override provider with another provider.""" @@ -45205,16 +45944,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_6override( int __pyx_clineno = 0; __Pyx_RefNannySetupContext("override", 0); - /* "dependency_injector/providers.pyx":2496 + /* "dependency_injector/providers.pyx":2525 * def override(self, provider): * """Override provider with another provider.""" * raise Error('Provider {0} can not be overridden'.format(self)) # <<<<<<<<<<<<<< * * cpdef object _provide(self, tuple args, dict kwargs): */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Error); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2496, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Error); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Provider_0_can_not_be_overridden, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2496, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Provider_0_can_not_be_overridden, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { @@ -45228,7 +45967,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_6override( } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2496, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; @@ -45244,15 +45983,15 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_6override( __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2496, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 2496, __pyx_L1_error) + __PYX_ERR(1, 2525, __pyx_L1_error) - /* "dependency_injector/providers.pyx":2494 - * return getattr(self.container, name) + /* "dependency_injector/providers.pyx":2523 + * return self.__container * * def override(self, provider): # <<<<<<<<<<<<<< * """Override provider with another provider.""" @@ -45273,12 +46012,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_6override( return __pyx_r; } -/* "dependency_injector/providers.pyx":2498 +/* "dependency_injector/providers.pyx":2527 * raise Error('Provider {0} can not be overridden'.format(self)) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< * """Return single instance.""" - * return self.container + * return self.__container */ static PyObject *__pyx_pw_19dependency_injector_9providers_9Container_9_provide(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ @@ -45304,7 +46043,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_9Container__provide(st if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2498, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_19dependency_injector_9providers_9Container_9_provide)) { __Pyx_XDECREF(__pyx_r); @@ -45324,7 +46063,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_9Container__provide(st #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2498, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2527, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -45332,13 +46071,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_9Container__provide(st #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2498, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2527, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2498, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -45349,7 +46088,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_9Container__provide(st __Pyx_INCREF(__pyx_v_kwargs); __Pyx_GIVEREF(__pyx_v_kwargs); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_kwargs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2498, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -45372,24 +46111,24 @@ static PyObject *__pyx_f_19dependency_injector_9providers_9Container__provide(st #endif } - /* "dependency_injector/providers.pyx":2500 + /* "dependency_injector/providers.pyx":2529 * cpdef object _provide(self, tuple args, dict kwargs): * """Return single instance.""" - * return self.container # <<<<<<<<<<<<<< + * return self.__container # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_self->container); - __pyx_r = __pyx_v_self->container; + __Pyx_INCREF(__pyx_v_self->__pyx___container); + __pyx_r = __pyx_v_self->__pyx___container; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2498 + /* "dependency_injector/providers.pyx":2527 * raise Error('Provider {0} can not be overridden'.format(self)) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< * """Return single instance.""" - * return self.container + * return self.__container */ /* function exit code */ @@ -45442,11 +46181,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_9Container_9_provide( case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 2498, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 2527, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 2498, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 2527, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -45459,14 +46198,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_9Container_9_provide( } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2498, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2527, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.Container._provide", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2498, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2498, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2527, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2527, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_9Container_8_provide(((struct __pyx_obj_19dependency_injector_9providers_Container *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs); /* function exit code */ @@ -45487,7 +46226,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_8_provide( int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_provide", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_9Container__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2498, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_9Container__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -45543,33 +46282,33 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_10__reduce /* "(tree fragment)":5 * cdef object _dict * cdef bint use_setstate - * state = (self.__last_overriding, self.__overridden, self.container, self.container_cls, self.overriding_providers) # <<<<<<<<<<<<<< + * state = (self.__container, self.__container_cls, self.__last_overriding, self.__overridden, self.__overriding_providers) # <<<<<<<<<<<<<< * _dict = getattr(self, '__dict__', None) * if _dict is not None: */ __pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_self->__pyx___container); + __Pyx_GIVEREF(__pyx_v_self->__pyx___container); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->__pyx___container); + __Pyx_INCREF(__pyx_v_self->__pyx___container_cls); + __Pyx_GIVEREF(__pyx_v_self->__pyx___container_cls); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->__pyx___container_cls); __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx___last_overriding)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx___last_overriding)); - PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->__pyx_base.__pyx___last_overriding)); + PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->__pyx_base.__pyx___last_overriding)); __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx___overridden); __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx___overridden); - PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->__pyx_base.__pyx___overridden); - __Pyx_INCREF(__pyx_v_self->container); - __Pyx_GIVEREF(__pyx_v_self->container); - PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_self->container); - __Pyx_INCREF(__pyx_v_self->container_cls); - __Pyx_GIVEREF(__pyx_v_self->container_cls); - PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_self->container_cls); - __Pyx_INCREF(__pyx_v_self->overriding_providers); - __Pyx_GIVEREF(__pyx_v_self->overriding_providers); - PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_v_self->overriding_providers); + PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_self->__pyx_base.__pyx___overridden); + __Pyx_INCREF(__pyx_v_self->__pyx___overriding_providers); + __Pyx_GIVEREF(__pyx_v_self->__pyx___overriding_providers); + PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_v_self->__pyx___overriding_providers); __pyx_v_state = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":6 * cdef bint use_setstate - * state = (self.__last_overriding, self.__overridden, self.container, self.container_cls, self.overriding_providers) + * state = (self.__container, self.__container_cls, self.__last_overriding, self.__overridden, self.__overriding_providers) * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<< * if _dict is not None: * state += (_dict,) @@ -45580,7 +46319,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_10__reduce __pyx_t_1 = 0; /* "(tree fragment)":7 - * state = (self.__last_overriding, self.__overridden, self.container, self.container_cls, self.overriding_providers) + * state = (self.__container, self.__container_cls, self.__last_overriding, self.__overridden, self.__overriding_providers) * _dict = getattr(self, '__dict__', None) * if _dict is not None: # <<<<<<<<<<<<<< * state += (_dict,) @@ -45613,12 +46352,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_10__reduce * state += (_dict,) * use_setstate = True # <<<<<<<<<<<<<< * else: - * use_setstate = self.__last_overriding is not None or self.__overridden is not None or self.container is not None or self.container_cls is not None or self.overriding_providers is not None + * use_setstate = self.__container is not None or self.__container_cls is not None or self.__last_overriding is not None or self.__overridden is not None or self.__overriding_providers is not None */ __pyx_v_use_setstate = 1; /* "(tree fragment)":7 - * state = (self.__last_overriding, self.__overridden, self.container, self.container_cls, self.overriding_providers) + * state = (self.__container, self.__container_cls, self.__last_overriding, self.__overridden, self.__overriding_providers) * _dict = getattr(self, '__dict__', None) * if _dict is not None: # <<<<<<<<<<<<<< * state += (_dict,) @@ -45630,11 +46369,25 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_10__reduce /* "(tree fragment)":11 * use_setstate = True * else: - * use_setstate = self.__last_overriding is not None or self.__overridden is not None or self.container is not None or self.container_cls is not None or self.overriding_providers is not None # <<<<<<<<<<<<<< + * use_setstate = self.__container is not None or self.__container_cls is not None or self.__last_overriding is not None or self.__overridden is not None or self.__overriding_providers is not None # <<<<<<<<<<<<<< * if use_setstate: - * return __pyx_unpickle_Container, (type(self), 0x3486ddb, None), state + * return __pyx_unpickle_Container, (type(self), 0x0433d08, None), state */ /*else*/ { + __pyx_t_2 = (__pyx_v_self->__pyx___container != Py_None); + __pyx_t_5 = (__pyx_t_2 != 0); + if (!__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_5 = (__pyx_v_self->__pyx___container_cls != Py_None); + __pyx_t_2 = (__pyx_t_5 != 0); + if (!__pyx_t_2) { + } else { + __pyx_t_3 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } __pyx_t_2 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx___last_overriding) != Py_None); __pyx_t_5 = (__pyx_t_2 != 0); if (!__pyx_t_5) { @@ -45649,21 +46402,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_10__reduce __pyx_t_3 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } - __pyx_t_2 = (__pyx_v_self->container != Py_None); - __pyx_t_5 = (__pyx_t_2 != 0); - if (!__pyx_t_5) { - } else { - __pyx_t_3 = __pyx_t_5; - goto __pyx_L4_bool_binop_done; - } - __pyx_t_5 = (__pyx_v_self->container_cls != Py_None); - __pyx_t_2 = (__pyx_t_5 != 0); - if (!__pyx_t_2) { - } else { - __pyx_t_3 = __pyx_t_2; - goto __pyx_L4_bool_binop_done; - } - __pyx_t_2 = (__pyx_v_self->overriding_providers != ((PyObject*)Py_None)); + __pyx_t_2 = (__pyx_v_self->__pyx___overriding_providers != ((PyObject*)Py_None)); __pyx_t_5 = (__pyx_t_2 != 0); __pyx_t_3 = __pyx_t_5; __pyx_L4_bool_binop_done:; @@ -45673,20 +46412,20 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_10__reduce /* "(tree fragment)":12 * else: - * use_setstate = self.__last_overriding is not None or self.__overridden is not None or self.container is not None or self.container_cls is not None or self.overriding_providers is not None + * use_setstate = self.__container is not None or self.__container_cls is not None or self.__last_overriding is not None or self.__overridden is not None or self.__overriding_providers is not None * if use_setstate: # <<<<<<<<<<<<<< - * return __pyx_unpickle_Container, (type(self), 0x3486ddb, None), state + * return __pyx_unpickle_Container, (type(self), 0x0433d08, None), state * else: */ __pyx_t_3 = (__pyx_v_use_setstate != 0); if (__pyx_t_3) { /* "(tree fragment)":13 - * use_setstate = self.__last_overriding is not None or self.__overridden is not None or self.container is not None or self.container_cls is not None or self.overriding_providers is not None + * use_setstate = self.__container is not None or self.__container_cls is not None or self.__last_overriding is not None or self.__overridden is not None or self.__overriding_providers is not None * if use_setstate: - * return __pyx_unpickle_Container, (type(self), 0x3486ddb, None), state # <<<<<<<<<<<<<< + * return __pyx_unpickle_Container, (type(self), 0x0433d08, None), state # <<<<<<<<<<<<<< * else: - * return __pyx_unpickle_Container, (type(self), 0x3486ddb, state) + * return __pyx_unpickle_Container, (type(self), 0x0433d08, state) */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Container); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 13, __pyx_L1_error) @@ -45696,9 +46435,9 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_10__reduce __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); - __Pyx_INCREF(__pyx_int_55078363); - __Pyx_GIVEREF(__pyx_int_55078363); - PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_55078363); + __Pyx_INCREF(__pyx_int_4406536); + __Pyx_GIVEREF(__pyx_int_4406536); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_4406536); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None); @@ -45719,17 +46458,17 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_10__reduce /* "(tree fragment)":12 * else: - * use_setstate = self.__last_overriding is not None or self.__overridden is not None or self.container is not None or self.container_cls is not None or self.overriding_providers is not None + * use_setstate = self.__container is not None or self.__container_cls is not None or self.__last_overriding is not None or self.__overridden is not None or self.__overriding_providers is not None * if use_setstate: # <<<<<<<<<<<<<< - * return __pyx_unpickle_Container, (type(self), 0x3486ddb, None), state + * return __pyx_unpickle_Container, (type(self), 0x0433d08, None), state * else: */ } /* "(tree fragment)":15 - * return __pyx_unpickle_Container, (type(self), 0x3486ddb, None), state + * return __pyx_unpickle_Container, (type(self), 0x0433d08, None), state * else: - * return __pyx_unpickle_Container, (type(self), 0x3486ddb, state) # <<<<<<<<<<<<<< + * return __pyx_unpickle_Container, (type(self), 0x0433d08, state) # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * __pyx_unpickle_Container__set_state(self, __pyx_state) */ @@ -45742,9 +46481,9 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_10__reduce __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); - __Pyx_INCREF(__pyx_int_55078363); - __Pyx_GIVEREF(__pyx_int_55078363); - PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_55078363); + __Pyx_INCREF(__pyx_int_4406536); + __Pyx_GIVEREF(__pyx_int_4406536); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_4406536); __Pyx_INCREF(__pyx_v_state); __Pyx_GIVEREF(__pyx_v_state); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state); @@ -45784,7 +46523,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_10__reduce /* "(tree fragment)":16 * else: - * return __pyx_unpickle_Container, (type(self), 0x3486ddb, state) + * return __pyx_unpickle_Container, (type(self), 0x0433d08, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle_Container__set_state(self, __pyx_state) */ @@ -45812,7 +46551,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_12__setsta __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":17 - * return __pyx_unpickle_Container, (type(self), 0x3486ddb, state) + * return __pyx_unpickle_Container, (type(self), 0x0433d08, state) * def __setstate_cython__(self, __pyx_state): * __pyx_unpickle_Container__set_state(self, __pyx_state) # <<<<<<<<<<<<<< */ @@ -45823,7 +46562,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_12__setsta /* "(tree fragment)":16 * else: - * return __pyx_unpickle_Container, (type(self), 0x3486ddb, state) + * return __pyx_unpickle_Container, (type(self), 0x0433d08, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle_Container__set_state(self, __pyx_state) */ @@ -45841,7 +46580,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Container_12__setsta return __pyx_r; } -/* "dependency_injector/providers.pyx":2534 +/* "dependency_injector/providers.pyx":2563 * """ * * def __init__(self, selector, **providers): # <<<<<<<<<<<<<< @@ -45885,7 +46624,7 @@ static int __pyx_pw_19dependency_injector_9providers_8Selector_1__init__(PyObjec else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_providers, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 2534, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_providers, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 2563, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; @@ -45896,7 +46635,7 @@ static int __pyx_pw_19dependency_injector_9providers_8Selector_1__init__(PyObjec } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2534, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2563, __pyx_L3_error) __pyx_L3_error:; __Pyx_DECREF(__pyx_v_providers); __pyx_v_providers = 0; __Pyx_AddTraceback("dependency_injector.providers.Selector.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); @@ -45922,7 +46661,7 @@ static int __pyx_pf_19dependency_injector_9providers_8Selector___init__(struct _ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":2536 + /* "dependency_injector/providers.pyx":2565 * def __init__(self, selector, **providers): * """Initialize provider.""" * self.__selector = selector # <<<<<<<<<<<<<< @@ -45935,7 +46674,7 @@ static int __pyx_pf_19dependency_injector_9providers_8Selector___init__(struct _ __Pyx_DECREF(__pyx_v_self->__pyx___selector); __pyx_v_self->__pyx___selector = __pyx_v_selector; - /* "dependency_injector/providers.pyx":2537 + /* "dependency_injector/providers.pyx":2566 * """Initialize provider.""" * self.__selector = selector * self.__providers = providers # <<<<<<<<<<<<<< @@ -45948,14 +46687,14 @@ static int __pyx_pf_19dependency_injector_9providers_8Selector___init__(struct _ __Pyx_DECREF(__pyx_v_self->__pyx___providers); __pyx_v_self->__pyx___providers = __pyx_v_providers; - /* "dependency_injector/providers.pyx":2538 + /* "dependency_injector/providers.pyx":2567 * self.__selector = selector * self.__providers = providers * super(Selector, self).__init__() # <<<<<<<<<<<<<< * * def __deepcopy__(self, memo): */ - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2538, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Selector)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_Selector)); @@ -45963,10 +46702,10 @@ static int __pyx_pf_19dependency_injector_9providers_8Selector___init__(struct _ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2538, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2538, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -45981,12 +46720,12 @@ static int __pyx_pf_19dependency_injector_9providers_8Selector___init__(struct _ } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2538, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2534 + /* "dependency_injector/providers.pyx":2563 * """ * * def __init__(self, selector, **providers): # <<<<<<<<<<<<<< @@ -46008,7 +46747,7 @@ static int __pyx_pf_19dependency_injector_9providers_8Selector___init__(struct _ return __pyx_r; } -/* "dependency_injector/providers.pyx":2540 +/* "dependency_injector/providers.pyx":2569 * super(Selector, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -46047,16 +46786,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_2__deepcopy int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__deepcopy__", 0); - /* "dependency_injector/providers.pyx":2542 + /* "dependency_injector/providers.pyx":2571 * def __deepcopy__(self, memo): * """Create and return full copy of provider.""" * copied = memo.get(id(self)) # <<<<<<<<<<<<<< * if copied is not None: * return copied */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2542, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2542, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -46071,13 +46810,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_2__deepcopy __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2542, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_copied = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2543 + /* "dependency_injector/providers.pyx":2572 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -46088,7 +46827,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_2__deepcopy __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":2544 + /* "dependency_injector/providers.pyx":2573 * copied = memo.get(id(self)) * if copied is not None: * return copied # <<<<<<<<<<<<<< @@ -46100,7 +46839,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_2__deepcopy __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2543 + /* "dependency_injector/providers.pyx":2572 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -46109,17 +46848,17 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_2__deepcopy */ } - /* "dependency_injector/providers.pyx":2546 + /* "dependency_injector/providers.pyx":2575 * return copied * * copied = self.__class__( # <<<<<<<<<<<<<< * deepcopy(self.__selector, memo), * **deepcopy(self.__providers, memo), */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2546, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - /* "dependency_injector/providers.pyx":2547 + /* "dependency_injector/providers.pyx":2576 * * copied = self.__class__( * deepcopy(self.__selector, memo), # <<<<<<<<<<<<<< @@ -46128,27 +46867,27 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_2__deepcopy */ __pyx_t_2 = __pyx_v_self->__pyx___selector; __Pyx_INCREF(__pyx_t_2); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2547, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2576, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_3 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_2, 0, &__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2547, __pyx_L1_error) + __pyx_t_3 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_2, 0, &__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":2546 + /* "dependency_injector/providers.pyx":2575 * return copied * * copied = self.__class__( # <<<<<<<<<<<<<< * deepcopy(self.__selector, memo), * **deepcopy(self.__providers, memo), */ - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2546, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":2548 + /* "dependency_injector/providers.pyx":2577 * copied = self.__class__( * deepcopy(self.__selector, memo), * **deepcopy(self.__providers, memo), # <<<<<<<<<<<<<< @@ -46157,34 +46896,34 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_2__deepcopy */ __pyx_t_4 = __pyx_v_self->__pyx___providers; __Pyx_INCREF(__pyx_t_4); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2548, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2577, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_8 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_4, 0, &__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2548, __pyx_L1_error) + __pyx_t_8 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_4, 0, &__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_t_8 == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); - __PYX_ERR(1, 2548, __pyx_L1_error) + __PYX_ERR(1, 2577, __pyx_L1_error) } if (likely(PyDict_CheckExact(__pyx_t_8))) { - __pyx_t_3 = PyDict_Copy(__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2548, __pyx_L1_error) + __pyx_t_3 = PyDict_Copy(__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else { - __pyx_t_3 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2546, __pyx_L1_error) + __pyx_t_3 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } - /* "dependency_injector/providers.pyx":2546 + /* "dependency_injector/providers.pyx":2575 * return copied * * copied = self.__class__( # <<<<<<<<<<<<<< * deepcopy(self.__selector, memo), * **deepcopy(self.__providers, memo), */ - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2546, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -46192,18 +46931,18 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_2__deepcopy __Pyx_DECREF_SET(__pyx_v_copied, __pyx_t_8); __pyx_t_8 = 0; - /* "dependency_injector/providers.pyx":2550 + /* "dependency_injector/providers.pyx":2579 * **deepcopy(self.__providers, memo), * ) * self._copy_overridings(copied, memo) # <<<<<<<<<<<<<< * * return copied */ - if (!(likely(((__pyx_v_copied) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_copied, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 2550, __pyx_L1_error) - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2550, __pyx_L1_error) + if (!(likely(((__pyx_v_copied) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_copied, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 2579, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2579, __pyx_L1_error) ((struct __pyx_vtabstruct_19dependency_injector_9providers_Selector *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._copy_overridings(((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_self), ((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_copied), ((PyObject*)__pyx_v_memo), 0); - /* "dependency_injector/providers.pyx":2552 + /* "dependency_injector/providers.pyx":2581 * self._copy_overridings(copied, memo) * * return copied # <<<<<<<<<<<<<< @@ -46215,7 +46954,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_2__deepcopy __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2540 + /* "dependency_injector/providers.pyx":2569 * super(Selector, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -46239,7 +46978,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_2__deepcopy return __pyx_r; } -/* "dependency_injector/providers.pyx":2554 +/* "dependency_injector/providers.pyx":2583 * return copied * * def __getattr__(self, name): # <<<<<<<<<<<<<< @@ -46278,14 +47017,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_4__getattr_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getattr__", 0); - /* "dependency_injector/providers.pyx":2556 + /* "dependency_injector/providers.pyx":2585 * def __getattr__(self, name): * """Return provider.""" * if name.startswith('__') and name.endswith('__'): # <<<<<<<<<<<<<< * raise AttributeError( * '\'{cls}\' object has no attribute ' */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_startswith); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2556, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_startswith); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -46297,19 +47036,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_4__getattr_ __Pyx_DECREF_SET(__pyx_t_3, function); } } - __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_n_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s__3); + __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_n_s__4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s__4); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2556, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 2556, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 2585, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_5) { } else { __pyx_t_1 = __pyx_t_5; goto __pyx_L4_bool_binop_done; } - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_endswith); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2556, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_endswith); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -46321,72 +47060,72 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_4__getattr_ __Pyx_DECREF_SET(__pyx_t_3, function); } } - __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_n_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s__3); + __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_n_s__4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s__4); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2556, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 2556, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 2585, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_1 = __pyx_t_5; __pyx_L4_bool_binop_done:; if (unlikely(__pyx_t_1)) { - /* "dependency_injector/providers.pyx":2559 + /* "dependency_injector/providers.pyx":2588 * raise AttributeError( * '\'{cls}\' object has no attribute ' * '\'{attribute_name}\''.format(cls=self.__class__.__name__, # <<<<<<<<<<<<<< * attribute_name=name)) * if name not in self.__providers: */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_cls_object_has_no_attribute_att, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2559, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_cls_object_has_no_attribute_att, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2559, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2559, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2559, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_cls, __pyx_t_6) < 0) __PYX_ERR(1, 2559, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_cls, __pyx_t_6) < 0) __PYX_ERR(1, 2588, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "dependency_injector/providers.pyx":2560 + /* "dependency_injector/providers.pyx":2589 * '\'{cls}\' object has no attribute ' * '\'{attribute_name}\''.format(cls=self.__class__.__name__, * attribute_name=name)) # <<<<<<<<<<<<<< * if name not in self.__providers: * raise AttributeError('Selector has no "{0}" provider'.format(name)) */ - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_attribute_name, __pyx_v_name) < 0) __PYX_ERR(1, 2559, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_attribute_name, __pyx_v_name) < 0) __PYX_ERR(1, 2588, __pyx_L1_error) - /* "dependency_injector/providers.pyx":2559 + /* "dependency_injector/providers.pyx":2588 * raise AttributeError( * '\'{cls}\' object has no attribute ' * '\'{attribute_name}\''.format(cls=self.__class__.__name__, # <<<<<<<<<<<<<< * attribute_name=name)) * if name not in self.__providers: */ - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2559, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":2557 + /* "dependency_injector/providers.pyx":2586 * """Return provider.""" * if name.startswith('__') and name.endswith('__'): * raise AttributeError( # <<<<<<<<<<<<<< * '\'{cls}\' object has no attribute ' * '\'{attribute_name}\''.format(cls=self.__class__.__name__, */ - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_AttributeError, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2557, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_AttributeError, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 2557, __pyx_L1_error) + __PYX_ERR(1, 2586, __pyx_L1_error) - /* "dependency_injector/providers.pyx":2556 + /* "dependency_injector/providers.pyx":2585 * def __getattr__(self, name): * """Return provider.""" * if name.startswith('__') and name.endswith('__'): # <<<<<<<<<<<<<< @@ -46395,7 +47134,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_4__getattr_ */ } - /* "dependency_injector/providers.pyx":2561 + /* "dependency_injector/providers.pyx":2590 * '\'{attribute_name}\''.format(cls=self.__class__.__name__, * attribute_name=name)) * if name not in self.__providers: # <<<<<<<<<<<<<< @@ -46404,20 +47143,20 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_4__getattr_ */ if (unlikely(__pyx_v_self->__pyx___providers == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(1, 2561, __pyx_L1_error) + __PYX_ERR(1, 2590, __pyx_L1_error) } - __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_self->__pyx___providers, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 2561, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_self->__pyx___providers, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 2590, __pyx_L1_error) __pyx_t_5 = (__pyx_t_1 != 0); if (unlikely(__pyx_t_5)) { - /* "dependency_injector/providers.pyx":2562 + /* "dependency_injector/providers.pyx":2591 * attribute_name=name)) * if name not in self.__providers: * raise AttributeError('Selector has no "{0}" provider'.format(name)) # <<<<<<<<<<<<<< * * return self.__providers[name] */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Selector_has_no_0_provider, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2562, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Selector_has_no_0_provider, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { @@ -46431,17 +47170,17 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_4__getattr_ } __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_2, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_name); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2562, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_AttributeError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2562, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_AttributeError, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __PYX_ERR(1, 2562, __pyx_L1_error) + __PYX_ERR(1, 2591, __pyx_L1_error) - /* "dependency_injector/providers.pyx":2561 + /* "dependency_injector/providers.pyx":2590 * '\'{attribute_name}\''.format(cls=self.__class__.__name__, * attribute_name=name)) * if name not in self.__providers: # <<<<<<<<<<<<<< @@ -46450,7 +47189,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_4__getattr_ */ } - /* "dependency_injector/providers.pyx":2564 + /* "dependency_injector/providers.pyx":2593 * raise AttributeError('Selector has no "{0}" provider'.format(name)) * * return self.__providers[name] # <<<<<<<<<<<<<< @@ -46460,15 +47199,15 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_4__getattr_ __Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_self->__pyx___providers == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 2564, __pyx_L1_error) + __PYX_ERR(1, 2593, __pyx_L1_error) } - __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->__pyx___providers, __pyx_v_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2564, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->__pyx___providers, __pyx_v_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2554 + /* "dependency_injector/providers.pyx":2583 * return copied * * def __getattr__(self, name): # <<<<<<<<<<<<<< @@ -46490,7 +47229,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_4__getattr_ return __pyx_r; } -/* "dependency_injector/providers.pyx":2566 +/* "dependency_injector/providers.pyx":2595 * return self.__providers[name] * * def __str__(self): # <<<<<<<<<<<<<< @@ -46516,7 +47255,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_8Selector_7__str__(Py } static PyObject *__pyx_gb_19dependency_injector_9providers_8Selector_7__str___2generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ -/* "dependency_injector/providers.pyx":2576 +/* "dependency_injector/providers.pyx":2605 * selector=self.__selector, * providers=', '.join(( * '{0}={1}'.format(name, provider) # <<<<<<<<<<<<<< @@ -46536,7 +47275,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_7__str___ge if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_19dependency_injector_9providers___pyx_scope_struct_3_genexpr *)Py_None); __Pyx_INCREF(Py_None); - __PYX_ERR(1, 2576, __pyx_L1_error) + __PYX_ERR(1, 2605, __pyx_L1_error) } else { __Pyx_GOTREF(__pyx_cur_scope); } @@ -46544,7 +47283,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_7__str___ge __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope)); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope); { - __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_19dependency_injector_9providers_8Selector_7__str___2generator1, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_str___locals_genexpr, __pyx_n_s_dependency_injector_providers); if (unlikely(!gen)) __PYX_ERR(1, 2576, __pyx_L1_error) + __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_19dependency_injector_9providers_8Selector_7__str___2generator1, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_str___locals_genexpr, __pyx_n_s_dependency_injector_providers); if (unlikely(!gen)) __PYX_ERR(1, 2605, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; @@ -46586,29 +47325,29 @@ static PyObject *__pyx_gb_19dependency_injector_9providers_8Selector_7__str___2g return NULL; } __pyx_L3_first_run:; - if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2576, __pyx_L1_error) + if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2605, __pyx_L1_error) - /* "dependency_injector/providers.pyx":2577 + /* "dependency_injector/providers.pyx":2606 * providers=', '.join(( * '{0}={1}'.format(name, provider) * for name, provider in self.__providers.items() # <<<<<<<<<<<<<< * )), * address=hex(id(self)), */ - if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(1, 2577, __pyx_L1_error) } + if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(1, 2606, __pyx_L1_error) } if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->__pyx___providers == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); - __PYX_ERR(1, 2577, __pyx_L1_error) + __PYX_ERR(1, 2606, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyDict_Items(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->__pyx___providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2577, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_Items(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->__pyx___providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { - __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2577, __pyx_L1_error) + __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2577, __pyx_L1_error) + __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2606, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -46616,17 +47355,17 @@ static PyObject *__pyx_gb_19dependency_injector_9providers_8Selector_7__str___2g if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 2577, __pyx_L1_error) + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 2606, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2577, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 2577, __pyx_L1_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 2606, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2577, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } @@ -46636,7 +47375,7 @@ static PyObject *__pyx_gb_19dependency_injector_9providers_8Selector_7__str___2g PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(1, 2577, __pyx_L1_error) + else __PYX_ERR(1, 2606, __pyx_L1_error) } break; } @@ -46648,7 +47387,7 @@ static PyObject *__pyx_gb_19dependency_injector_9providers_8Selector_7__str___2g if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(1, 2577, __pyx_L1_error) + __PYX_ERR(1, 2606, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -46661,15 +47400,15 @@ static PyObject *__pyx_gb_19dependency_injector_9providers_8Selector_7__str___2g __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); #else - __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2577, __pyx_L1_error) + __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2577, __pyx_L1_error) + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2577, __pyx_L1_error) + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; @@ -46677,7 +47416,7 @@ static PyObject *__pyx_gb_19dependency_injector_9providers_8Selector_7__str___2g __Pyx_GOTREF(__pyx_t_5); index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(1, 2577, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(1, 2606, __pyx_L1_error) __pyx_t_8 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L7_unpacking_done; @@ -46685,7 +47424,7 @@ static PyObject *__pyx_gb_19dependency_injector_9providers_8Selector_7__str___2g __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(1, 2577, __pyx_L1_error) + __PYX_ERR(1, 2606, __pyx_L1_error) __pyx_L7_unpacking_done:; } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_name); @@ -46697,14 +47436,14 @@ static PyObject *__pyx_gb_19dependency_injector_9providers_8Selector_7__str___2g __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0; - /* "dependency_injector/providers.pyx":2576 + /* "dependency_injector/providers.pyx":2605 * selector=self.__selector, * providers=', '.join(( * '{0}={1}'.format(name, provider) # <<<<<<<<<<<<<< * for name, provider in self.__providers.items() * )), */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_1, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2576, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_1, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = NULL; __pyx_t_9 = 0; @@ -46721,7 +47460,7 @@ static PyObject *__pyx_gb_19dependency_injector_9providers_8Selector_7__str___2g #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_provider}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2576, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2605, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -46729,13 +47468,13 @@ static PyObject *__pyx_gb_19dependency_injector_9providers_8Selector_7__str___2g #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_provider}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2576, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2605, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_7 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2576, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; @@ -46746,7 +47485,7 @@ static PyObject *__pyx_gb_19dependency_injector_9providers_8Selector_7__str___2g __Pyx_INCREF(__pyx_cur_scope->__pyx_v_provider); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_provider); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_9, __pyx_cur_scope->__pyx_v_provider); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2576, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } @@ -46769,9 +47508,9 @@ static PyObject *__pyx_gb_19dependency_injector_9providers_8Selector_7__str___2g __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; - if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2576, __pyx_L1_error) + if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2605, __pyx_L1_error) - /* "dependency_injector/providers.pyx":2577 + /* "dependency_injector/providers.pyx":2606 * providers=', '.join(( * '{0}={1}'.format(name, provider) * for name, provider in self.__providers.items() # <<<<<<<<<<<<<< @@ -46782,7 +47521,7 @@ static PyObject *__pyx_gb_19dependency_injector_9providers_8Selector_7__str___2g __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); - /* "dependency_injector/providers.pyx":2576 + /* "dependency_injector/providers.pyx":2605 * selector=self.__selector, * providers=', '.join(( * '{0}={1}'.format(name, provider) # <<<<<<<<<<<<<< @@ -46811,7 +47550,7 @@ static PyObject *__pyx_gb_19dependency_injector_9providers_8Selector_7__str___2g return __pyx_r; } -/* "dependency_injector/providers.pyx":2566 +/* "dependency_injector/providers.pyx":2595 * return self.__providers[name] * * def __str__(self): # <<<<<<<<<<<<<< @@ -46836,7 +47575,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_6__str__(st if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_19dependency_injector_9providers___pyx_scope_struct_2___str__ *)Py_None); __Pyx_INCREF(Py_None); - __PYX_ERR(1, 2566, __pyx_L1_error) + __PYX_ERR(1, 2595, __pyx_L1_error) } else { __Pyx_GOTREF(__pyx_cur_scope); } @@ -46844,7 +47583,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_6__str__(st __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); - /* "dependency_injector/providers.pyx":2572 + /* "dependency_injector/providers.pyx":2601 * """ * * return '<{provider}({selector}, {providers}) at {address}>'.format( # <<<<<<<<<<<<<< @@ -46852,29 +47591,29 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_6__str__(st * selector=self.__selector, */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_provider_selector_providers_at, __pyx_n_s_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2572, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_provider_selector_providers_at, __pyx_n_s_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - /* "dependency_injector/providers.pyx":2573 + /* "dependency_injector/providers.pyx":2602 * * return '<{provider}({selector}, {providers}) at {address}>'.format( * provider='.'.join(( self.__class__.__module__, self.__class__.__name__)), # <<<<<<<<<<<<<< * selector=self.__selector, * providers=', '.join(( */ - __pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2573, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2573, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_module); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2573, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_module); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2573, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2573, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2573, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); @@ -46882,67 +47621,67 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_6__str__(st PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5); __pyx_t_4 = 0; __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyString_Join(__pyx_kp_s__4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2573, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyString_Join(__pyx_kp_s__5, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_provider, __pyx_t_5) < 0) __PYX_ERR(1, 2573, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_provider, __pyx_t_5) < 0) __PYX_ERR(1, 2602, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/providers.pyx":2574 + /* "dependency_injector/providers.pyx":2603 * return '<{provider}({selector}, {providers}) at {address}>'.format( * provider='.'.join(( self.__class__.__module__, self.__class__.__name__)), * selector=self.__selector, # <<<<<<<<<<<<<< * providers=', '.join(( * '{0}={1}'.format(name, provider) */ - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_selector, __pyx_cur_scope->__pyx_v_self->__pyx___selector) < 0) __PYX_ERR(1, 2573, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_selector, __pyx_cur_scope->__pyx_v_self->__pyx___selector) < 0) __PYX_ERR(1, 2602, __pyx_L1_error) - /* "dependency_injector/providers.pyx":2576 + /* "dependency_injector/providers.pyx":2605 * selector=self.__selector, * providers=', '.join(( * '{0}={1}'.format(name, provider) # <<<<<<<<<<<<<< * for name, provider in self.__providers.items() * )), */ - __pyx_t_5 = __pyx_pf_19dependency_injector_9providers_8Selector_7__str___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2576, __pyx_L1_error) + __pyx_t_5 = __pyx_pf_19dependency_injector_9providers_8Selector_7__str___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - /* "dependency_injector/providers.pyx":2575 + /* "dependency_injector/providers.pyx":2604 * provider='.'.join(( self.__class__.__module__, self.__class__.__name__)), * selector=self.__selector, * providers=', '.join(( # <<<<<<<<<<<<<< * '{0}={1}'.format(name, provider) * for name, provider in self.__providers.items() */ - __pyx_t_3 = __Pyx_PyString_Join(__pyx_kp_s__7, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2575, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyString_Join(__pyx_kp_s__8, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_providers, __pyx_t_3) < 0) __PYX_ERR(1, 2573, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_providers, __pyx_t_3) < 0) __PYX_ERR(1, 2602, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":2579 + /* "dependency_injector/providers.pyx":2608 * for name, provider in self.__providers.items() * )), * address=hex(id(self)), # <<<<<<<<<<<<<< * ) * */ - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_cur_scope->__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2579, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_cur_scope->__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2579, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_address, __pyx_t_5) < 0) __PYX_ERR(1, 2573, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_address, __pyx_t_5) < 0) __PYX_ERR(1, 2602, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/providers.pyx":2572 + /* "dependency_injector/providers.pyx":2601 * """ * * return '<{provider}({selector}, {providers}) at {address}>'.format( # <<<<<<<<<<<<<< * provider='.'.join(( self.__class__.__module__, self.__class__.__name__)), * selector=self.__selector, */ - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2572, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -46950,7 +47689,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_6__str__(st __pyx_t_5 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2566 + /* "dependency_injector/providers.pyx":2595 * return self.__providers[name] * * def __str__(self): # <<<<<<<<<<<<<< @@ -46974,7 +47713,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_6__str__(st return __pyx_r; } -/* "dependency_injector/providers.pyx":2583 +/* "dependency_injector/providers.pyx":2612 * * @property * def provided(self): # <<<<<<<<<<<<<< @@ -47004,7 +47743,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_8provided__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":2585 + /* "dependency_injector/providers.pyx":2614 * def provided(self): * """Return :py:class:`ProvidedInstance` provider.""" * return ProvidedInstance(self) # <<<<<<<<<<<<<< @@ -47012,13 +47751,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_8provided__ * @property */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ProvidedInstance), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2585, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ProvidedInstance), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2614, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2583 + /* "dependency_injector/providers.pyx":2612 * * @property * def provided(self): # <<<<<<<<<<<<<< @@ -47037,7 +47776,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_8provided__ return __pyx_r; } -/* "dependency_injector/providers.pyx":2588 +/* "dependency_injector/providers.pyx":2617 * * @property * def providers(self): # <<<<<<<<<<<<<< @@ -47067,7 +47806,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_9providers_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "dependency_injector/providers.pyx":2590 + /* "dependency_injector/providers.pyx":2619 * def providers(self): * """Return providers.""" * return dict(self.__providers) # <<<<<<<<<<<<<< @@ -47077,15 +47816,15 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_9providers_ __Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_self->__pyx___providers == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' is not iterable"); - __PYX_ERR(1, 2590, __pyx_L1_error) + __PYX_ERR(1, 2619, __pyx_L1_error) } - __pyx_t_1 = PyDict_Copy(__pyx_v_self->__pyx___providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2590, __pyx_L1_error) + __pyx_t_1 = PyDict_Copy(__pyx_v_self->__pyx___providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2588 + /* "dependency_injector/providers.pyx":2617 * * @property * def providers(self): # <<<<<<<<<<<<<< @@ -47104,7 +47843,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_9providers_ return __pyx_r; } -/* "dependency_injector/providers.pyx":2592 +/* "dependency_injector/providers.pyx":2621 * return dict(self.__providers) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -47138,7 +47877,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Selector__provide(str if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2592, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_19dependency_injector_9providers_8Selector_9_provide)) { __Pyx_XDECREF(__pyx_r); @@ -47158,7 +47897,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Selector__provide(str #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2592, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2621, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -47166,13 +47905,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Selector__provide(str #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2592, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2621, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2592, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -47183,7 +47922,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Selector__provide(str __Pyx_INCREF(__pyx_v_kwargs); __Pyx_GIVEREF(__pyx_v_kwargs); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_kwargs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2592, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -47206,7 +47945,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Selector__provide(str #endif } - /* "dependency_injector/providers.pyx":2594 + /* "dependency_injector/providers.pyx":2623 * cpdef object _provide(self, tuple args, dict kwargs): * """Return single instance.""" * selector_value = self.__selector() # <<<<<<<<<<<<<< @@ -47226,13 +47965,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Selector__provide(str } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2594, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_selector_value = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2596 + /* "dependency_injector/providers.pyx":2625 * selector_value = self.__selector() * * if selector_value is None: # <<<<<<<<<<<<<< @@ -47243,14 +47982,14 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Selector__provide(str __pyx_t_8 = (__pyx_t_7 != 0); if (unlikely(__pyx_t_8)) { - /* "dependency_injector/providers.pyx":2597 + /* "dependency_injector/providers.pyx":2626 * * if selector_value is None: * raise Error('Selector value is undefined') # <<<<<<<<<<<<<< * * if selector_value not in self.__providers: */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Error); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2597, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Error); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { @@ -47264,14 +48003,14 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Selector__provide(str } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_s_Selector_value_is_undefined) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_s_Selector_value_is_undefined); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2597, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 2597, __pyx_L1_error) + __PYX_ERR(1, 2626, __pyx_L1_error) - /* "dependency_injector/providers.pyx":2596 + /* "dependency_injector/providers.pyx":2625 * selector_value = self.__selector() * * if selector_value is None: # <<<<<<<<<<<<<< @@ -47280,7 +48019,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Selector__provide(str */ } - /* "dependency_injector/providers.pyx":2599 + /* "dependency_injector/providers.pyx":2628 * raise Error('Selector value is undefined') * * if selector_value not in self.__providers: # <<<<<<<<<<<<<< @@ -47289,22 +48028,22 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Selector__provide(str */ if (unlikely(__pyx_v_self->__pyx___providers == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(1, 2599, __pyx_L1_error) + __PYX_ERR(1, 2628, __pyx_L1_error) } - __pyx_t_8 = (__Pyx_PyDict_ContainsTF(__pyx_v_selector_value, __pyx_v_self->__pyx___providers, Py_NE)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(1, 2599, __pyx_L1_error) + __pyx_t_8 = (__Pyx_PyDict_ContainsTF(__pyx_v_selector_value, __pyx_v_self->__pyx___providers, Py_NE)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(1, 2628, __pyx_L1_error) __pyx_t_7 = (__pyx_t_8 != 0); if (unlikely(__pyx_t_7)) { - /* "dependency_injector/providers.pyx":2600 + /* "dependency_injector/providers.pyx":2629 * * if selector_value not in self.__providers: * raise Error('Selector has no "{0}" provider'.format(selector_value)) # <<<<<<<<<<<<<< * * return self.__providers[selector_value](*args, **kwargs) */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Error); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2600, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Error); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Selector_has_no_0_provider, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2600, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Selector_has_no_0_provider, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { @@ -47318,7 +48057,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Selector__provide(str } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_4, __pyx_v_selector_value) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_selector_value); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2600, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -47334,14 +48073,14 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Selector__provide(str __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2600, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 2600, __pyx_L1_error) + __PYX_ERR(1, 2629, __pyx_L1_error) - /* "dependency_injector/providers.pyx":2599 + /* "dependency_injector/providers.pyx":2628 * raise Error('Selector value is undefined') * * if selector_value not in self.__providers: # <<<<<<<<<<<<<< @@ -47350,7 +48089,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Selector__provide(str */ } - /* "dependency_injector/providers.pyx":2602 + /* "dependency_injector/providers.pyx":2631 * raise Error('Selector has no "{0}" provider'.format(selector_value)) * * return self.__providers[selector_value](*args, **kwargs) # <<<<<<<<<<<<<< @@ -47360,26 +48099,26 @@ static PyObject *__pyx_f_19dependency_injector_9providers_8Selector__provide(str __Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_self->__pyx___providers == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 2602, __pyx_L1_error) + __PYX_ERR(1, 2631, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->__pyx___providers, __pyx_v_selector_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2602, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->__pyx___providers, __pyx_v_selector_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(1, 2602, __pyx_L1_error) + __PYX_ERR(1, 2631, __pyx_L1_error) } if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); - __PYX_ERR(1, 2602, __pyx_L1_error) + __PYX_ERR(1, 2631, __pyx_L1_error) } - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2602, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2592 + /* "dependency_injector/providers.pyx":2621 * return dict(self.__providers) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -47438,11 +48177,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_8Selector_9_provide(P case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 2592, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 2621, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 2592, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 2621, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -47455,14 +48194,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_8Selector_9_provide(P } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2592, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2621, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.Selector._provide", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2592, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2592, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2621, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2621, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_8Selector_8_provide(((struct __pyx_obj_19dependency_injector_9providers_Selector *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs); /* function exit code */ @@ -47483,7 +48222,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_8_provide(s int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_provide", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_8Selector__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2592, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_8Selector__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -47827,7 +48566,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8Selector_12__setstat return __pyx_r; } -/* "dependency_injector/providers.pyx":2636 +/* "dependency_injector/providers.pyx":2665 * """ * * def __init__(self, provider): # <<<<<<<<<<<<<< @@ -47864,7 +48603,7 @@ static int __pyx_pw_19dependency_injector_9providers_16ProvidedInstance_1__init_ else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 2636, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 2665, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; @@ -47875,7 +48614,7 @@ static int __pyx_pw_19dependency_injector_9providers_16ProvidedInstance_1__init_ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2636, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2665, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.ProvidedInstance.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -47899,14 +48638,14 @@ static int __pyx_pf_19dependency_injector_9providers_16ProvidedInstance___init__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":2637 + /* "dependency_injector/providers.pyx":2666 * * def __init__(self, provider): * self.__provider = provider # <<<<<<<<<<<<<< * super().__init__() * */ - if (!(likely(((__pyx_v_provider) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_provider, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 2637, __pyx_L1_error) + if (!(likely(((__pyx_v_provider) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_provider, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 2666, __pyx_L1_error) __pyx_t_1 = __pyx_v_provider; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); @@ -47915,14 +48654,14 @@ static int __pyx_pf_19dependency_injector_9providers_16ProvidedInstance___init__ __pyx_v_self->__pyx___provider = ((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2638 + /* "dependency_injector/providers.pyx":2667 * def __init__(self, provider): * self.__provider = provider * super().__init__() # <<<<<<<<<<<<<< * * def __repr__(self): */ - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2638, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ProvidedInstance)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ProvidedInstance)); @@ -47930,10 +48669,10 @@ static int __pyx_pf_19dependency_injector_9providers_16ProvidedInstance___init__ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2638, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2638, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -47948,12 +48687,12 @@ static int __pyx_pf_19dependency_injector_9providers_16ProvidedInstance___init__ } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2638, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2636 + /* "dependency_injector/providers.pyx":2665 * """ * * def __init__(self, provider): # <<<<<<<<<<<<<< @@ -47975,7 +48714,7 @@ static int __pyx_pf_19dependency_injector_9providers_16ProvidedInstance___init__ return __pyx_r; } -/* "dependency_injector/providers.pyx":2640 +/* "dependency_injector/providers.pyx":2669 * super().__init__() * * def __repr__(self): # <<<<<<<<<<<<<< @@ -48009,7 +48748,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_2_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__", 0); - /* "dependency_injector/providers.pyx":2641 + /* "dependency_injector/providers.pyx":2670 * * def __repr__(self): * return f'{self.__class__.__name__}(\'{self.__provider}\')' # <<<<<<<<<<<<<< @@ -48017,16 +48756,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_2_ * def __deepcopy__(self, memo=None): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2641, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2641, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2641, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2641, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; @@ -48034,29 +48773,29 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_2_ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = 0; - __Pyx_INCREF(__pyx_kp_u__8); + __Pyx_INCREF(__pyx_kp_u__9); __pyx_t_2 += 2; - __Pyx_GIVEREF(__pyx_kp_u__8); - PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u__8); - __pyx_t_4 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx___provider), __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2641, __pyx_L1_error) + __Pyx_GIVEREF(__pyx_kp_u__9); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u__9); + __pyx_t_4 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx___provider), __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4); __pyx_t_4 = 0; - __Pyx_INCREF(__pyx_kp_u__9); + __Pyx_INCREF(__pyx_kp_u__10); __pyx_t_2 += 2; - __Pyx_GIVEREF(__pyx_kp_u__9); - PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u__9); - __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 4, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2641, __pyx_L1_error) + __Pyx_GIVEREF(__pyx_kp_u__10); + PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u__10); + __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 4, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2640 + /* "dependency_injector/providers.pyx":2669 * super().__init__() * * def __repr__(self): # <<<<<<<<<<<<<< @@ -48077,7 +48816,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_2_ return __pyx_r; } -/* "dependency_injector/providers.pyx":2643 +/* "dependency_injector/providers.pyx":2672 * return f'{self.__class__.__name__}(\'{self.__provider}\')' * * def __deepcopy__(self, memo=None): # <<<<<<<<<<<<<< @@ -48117,7 +48856,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_16ProvidedInstance_5_ } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__deepcopy__") < 0)) __PYX_ERR(1, 2643, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__deepcopy__") < 0)) __PYX_ERR(1, 2672, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -48131,7 +48870,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_16ProvidedInstance_5_ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__deepcopy__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2643, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__deepcopy__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2672, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.ProvidedInstance.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -48160,16 +48899,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_4_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__deepcopy__", 0); - /* "dependency_injector/providers.pyx":2646 + /* "dependency_injector/providers.pyx":2675 * cdef ProvidedInstance copied * * copied = memo.get(id(self)) # <<<<<<<<<<<<<< * if copied is not None: * return copied */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2646, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2646, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -48184,14 +48923,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_4_ __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2646, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_ProvidedInstance))))) __PYX_ERR(1, 2646, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_ProvidedInstance))))) __PYX_ERR(1, 2675, __pyx_L1_error) __pyx_v_copied = ((struct __pyx_obj_19dependency_injector_9providers_ProvidedInstance *)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2647 + /* "dependency_injector/providers.pyx":2676 * * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -48202,7 +48941,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_4_ __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":2648 + /* "dependency_injector/providers.pyx":2677 * copied = memo.get(id(self)) * if copied is not None: * return copied # <<<<<<<<<<<<<< @@ -48214,7 +48953,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_4_ __pyx_r = ((PyObject *)__pyx_v_copied); goto __pyx_L0; - /* "dependency_injector/providers.pyx":2647 + /* "dependency_injector/providers.pyx":2676 * * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -48223,7 +48962,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_4_ */ } - /* "dependency_injector/providers.pyx":2650 + /* "dependency_injector/providers.pyx":2679 * return copied * * return self.__class__( # <<<<<<<<<<<<<< @@ -48231,10 +48970,10 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_4_ * ) */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2650, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - /* "dependency_injector/providers.pyx":2651 + /* "dependency_injector/providers.pyx":2680 * * return self.__class__( * deepcopy(self.__provider, memo), # <<<<<<<<<<<<<< @@ -48243,10 +48982,10 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_4_ */ __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx___provider); __Pyx_INCREF(__pyx_t_3); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2651, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2680, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2651, __pyx_L1_error) + __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -48262,14 +49001,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_4_ __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2650, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2643 + /* "dependency_injector/providers.pyx":2672 * return f'{self.__class__.__name__}(\'{self.__provider}\')' * * def __deepcopy__(self, memo=None): # <<<<<<<<<<<<<< @@ -48292,7 +49031,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_4_ return __pyx_r; } -/* "dependency_injector/providers.pyx":2654 +/* "dependency_injector/providers.pyx":2683 * ) * * def __getattr__(self, item): # <<<<<<<<<<<<<< @@ -48323,7 +49062,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_6_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getattr__", 0); - /* "dependency_injector/providers.pyx":2655 + /* "dependency_injector/providers.pyx":2684 * * def __getattr__(self, item): * return AttributeGetter(self, item) # <<<<<<<<<<<<<< @@ -48331,7 +49070,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_6_ * def __getitem__(self, item): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2655, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); @@ -48339,14 +49078,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_6_ __Pyx_INCREF(__pyx_v_item); __Pyx_GIVEREF(__pyx_v_item); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_item); - __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_AttributeGetter), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2655, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_AttributeGetter), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2654 + /* "dependency_injector/providers.pyx":2683 * ) * * def __getattr__(self, item): # <<<<<<<<<<<<<< @@ -48366,7 +49105,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_6_ return __pyx_r; } -/* "dependency_injector/providers.pyx":2657 +/* "dependency_injector/providers.pyx":2686 * return AttributeGetter(self, item) * * def __getitem__(self, item): # <<<<<<<<<<<<<< @@ -48397,15 +49136,15 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_8_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getitem__", 0); - /* "dependency_injector/providers.pyx":2658 + /* "dependency_injector/providers.pyx":2687 * * def __getitem__(self, item): * return ItemGetter(self, item) # <<<<<<<<<<<<<< * - * def call(self, *args, **kwargs): + * @property */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2658, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); @@ -48413,14 +49152,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_8_ __Pyx_INCREF(__pyx_v_item); __Pyx_GIVEREF(__pyx_v_item); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_item); - __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ItemGetter), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2658, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ItemGetter), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2657 + /* "dependency_injector/providers.pyx":2686 * return AttributeGetter(self, item) * * def __getitem__(self, item): # <<<<<<<<<<<<<< @@ -48440,8 +49179,61 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_8_ return __pyx_r; } -/* "dependency_injector/providers.pyx":2660 - * return ItemGetter(self, item) +/* "dependency_injector/providers.pyx":2690 + * + * @property + * def provides(self): # <<<<<<<<<<<<<< + * """Return provider.""" + * return self.__provider + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_9providers_16ProvidedInstance_8provides_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_16ProvidedInstance_8provides_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_19dependency_injector_9providers_16ProvidedInstance_8provides___get__(((struct __pyx_obj_19dependency_injector_9providers_ProvidedInstance *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_8provides___get__(struct __pyx_obj_19dependency_injector_9providers_ProvidedInstance *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + + /* "dependency_injector/providers.pyx":2692 + * def provides(self): + * """Return provider.""" + * return self.__provider # <<<<<<<<<<<<<< + * + * def call(self, *args, **kwargs): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx___provider)); + __pyx_r = ((PyObject *)__pyx_v_self->__pyx___provider); + goto __pyx_L0; + + /* "dependency_injector/providers.pyx":2690 + * + * @property + * def provides(self): # <<<<<<<<<<<<<< + * """Return provider.""" + * return self.__provider + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "dependency_injector/providers.pyx":2694 + * return self.__provider * * def call(self, *args, **kwargs): # <<<<<<<<<<<<<< * return MethodCaller(self, *args, **kwargs) @@ -48484,7 +49276,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_10 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("call", 0); - /* "dependency_injector/providers.pyx":2661 + /* "dependency_injector/providers.pyx":2695 * * def call(self, *args, **kwargs): * return MethodCaller(self, *args, **kwargs) # <<<<<<<<<<<<<< @@ -48492,23 +49284,23 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_10 * cpdef object _provide(self, tuple args, dict kwargs): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2661, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); - __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_v_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2661, __pyx_L1_error) + __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_v_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_MethodCaller), __pyx_t_2, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2661, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_MethodCaller), __pyx_t_2, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2660 - * return ItemGetter(self, item) + /* "dependency_injector/providers.pyx":2694 + * return self.__provider * * def call(self, *args, **kwargs): # <<<<<<<<<<<<<< * return MethodCaller(self, *args, **kwargs) @@ -48527,7 +49319,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_10 return __pyx_r; } -/* "dependency_injector/providers.pyx":2663 +/* "dependency_injector/providers.pyx":2697 * return MethodCaller(self, *args, **kwargs) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -48558,7 +49350,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_16ProvidedInstance__pr if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2663, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_19dependency_injector_9providers_16ProvidedInstance_13_provide)) { __Pyx_XDECREF(__pyx_r); @@ -48578,7 +49370,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_16ProvidedInstance__pr #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2663, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2697, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -48586,13 +49378,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_16ProvidedInstance__pr #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2663, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2697, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2663, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -48603,7 +49395,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_16ProvidedInstance__pr __Pyx_INCREF(__pyx_v_kwargs); __Pyx_GIVEREF(__pyx_v_kwargs); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_kwargs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2663, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -48626,7 +49418,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_16ProvidedInstance__pr #endif } - /* "dependency_injector/providers.pyx":2664 + /* "dependency_injector/providers.pyx":2698 * * cpdef object _provide(self, tuple args, dict kwargs): * return self.__provider(*args, **kwargs) # <<<<<<<<<<<<<< @@ -48636,19 +49428,19 @@ static PyObject *__pyx_f_19dependency_injector_9providers_16ProvidedInstance__pr __Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(1, 2664, __pyx_L1_error) + __PYX_ERR(1, 2698, __pyx_L1_error) } if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); - __PYX_ERR(1, 2664, __pyx_L1_error) + __PYX_ERR(1, 2698, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_self->__pyx___provider), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2664, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_self->__pyx___provider), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2663 + /* "dependency_injector/providers.pyx":2697 * return MethodCaller(self, *args, **kwargs) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -48705,11 +49497,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_16ProvidedInstance_13 case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 2663, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 2697, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 2663, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 2697, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -48722,14 +49514,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_16ProvidedInstance_13 } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2663, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2697, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.ProvidedInstance._provide", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2663, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2663, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2697, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2697, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_16ProvidedInstance_12_provide(((struct __pyx_obj_19dependency_injector_9providers_ProvidedInstance *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs); /* function exit code */ @@ -48750,7 +49542,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_12 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_provide", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_16ProvidedInstance__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2663, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_16ProvidedInstance__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -49084,7 +49876,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_16 return __pyx_r; } -/* "dependency_injector/providers.pyx":2673 +/* "dependency_injector/providers.pyx":2707 * """ * * def __init__(self, provider, attribute): # <<<<<<<<<<<<<< @@ -49126,11 +49918,11 @@ static int __pyx_pw_19dependency_injector_9providers_15AttributeGetter_1__init__ case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attribute)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(1, 2673, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(1, 2707, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 2673, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 2707, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -49143,7 +49935,7 @@ static int __pyx_pw_19dependency_injector_9providers_15AttributeGetter_1__init__ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2673, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2707, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.AttributeGetter.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -49167,14 +49959,14 @@ static int __pyx_pf_19dependency_injector_9providers_15AttributeGetter___init__( int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":2674 + /* "dependency_injector/providers.pyx":2708 * * def __init__(self, provider, attribute): * self.__provider = provider # <<<<<<<<<<<<<< * self.__attribute = attribute * super().__init__() */ - if (!(likely(((__pyx_v_provider) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_provider, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 2674, __pyx_L1_error) + if (!(likely(((__pyx_v_provider) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_provider, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 2708, __pyx_L1_error) __pyx_t_1 = __pyx_v_provider; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); @@ -49183,7 +49975,7 @@ static int __pyx_pf_19dependency_injector_9providers_15AttributeGetter___init__( __pyx_v_self->__pyx___provider = ((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2675 + /* "dependency_injector/providers.pyx":2709 * def __init__(self, provider, attribute): * self.__provider = provider * self.__attribute = attribute # <<<<<<<<<<<<<< @@ -49196,14 +49988,14 @@ static int __pyx_pf_19dependency_injector_9providers_15AttributeGetter___init__( __Pyx_DECREF(__pyx_v_self->__pyx___attribute); __pyx_v_self->__pyx___attribute = __pyx_v_attribute; - /* "dependency_injector/providers.pyx":2676 + /* "dependency_injector/providers.pyx":2710 * self.__provider = provider * self.__attribute = attribute * super().__init__() # <<<<<<<<<<<<<< * * def __repr__(self): */ - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2676, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_AttributeGetter)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_AttributeGetter)); @@ -49211,10 +50003,10 @@ static int __pyx_pf_19dependency_injector_9providers_15AttributeGetter___init__( __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2676, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2676, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -49229,12 +50021,12 @@ static int __pyx_pf_19dependency_injector_9providers_15AttributeGetter___init__( } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2676, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2673 + /* "dependency_injector/providers.pyx":2707 * """ * * def __init__(self, provider, attribute): # <<<<<<<<<<<<<< @@ -49256,7 +50048,7 @@ static int __pyx_pf_19dependency_injector_9providers_15AttributeGetter___init__( return __pyx_r; } -/* "dependency_injector/providers.pyx":2678 +/* "dependency_injector/providers.pyx":2712 * super().__init__() * * def __repr__(self): # <<<<<<<<<<<<<< @@ -49290,7 +50082,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_2__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__", 0); - /* "dependency_injector/providers.pyx":2679 + /* "dependency_injector/providers.pyx":2713 * * def __repr__(self): * return f'{self.__class__.__name__}(\'{self.__attribute}\')' # <<<<<<<<<<<<<< @@ -49298,16 +50090,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_2__ * def __deepcopy__(self, memo=None): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2679, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2679, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2679, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2679, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; @@ -49315,29 +50107,29 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_2__ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = 0; - __Pyx_INCREF(__pyx_kp_u__8); + __Pyx_INCREF(__pyx_kp_u__9); __pyx_t_2 += 2; - __Pyx_GIVEREF(__pyx_kp_u__8); - PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u__8); - __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx___attribute, __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2679, __pyx_L1_error) + __Pyx_GIVEREF(__pyx_kp_u__9); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u__9); + __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx___attribute, __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4); __pyx_t_4 = 0; - __Pyx_INCREF(__pyx_kp_u__9); + __Pyx_INCREF(__pyx_kp_u__10); __pyx_t_2 += 2; - __Pyx_GIVEREF(__pyx_kp_u__9); - PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u__9); - __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 4, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2679, __pyx_L1_error) + __Pyx_GIVEREF(__pyx_kp_u__10); + PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u__10); + __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 4, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2678 + /* "dependency_injector/providers.pyx":2712 * super().__init__() * * def __repr__(self): # <<<<<<<<<<<<<< @@ -49358,7 +50150,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_2__ return __pyx_r; } -/* "dependency_injector/providers.pyx":2681 +/* "dependency_injector/providers.pyx":2715 * return f'{self.__class__.__name__}(\'{self.__attribute}\')' * * def __deepcopy__(self, memo=None): # <<<<<<<<<<<<<< @@ -49398,7 +50190,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_15AttributeGetter_5__ } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__deepcopy__") < 0)) __PYX_ERR(1, 2681, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__deepcopy__") < 0)) __PYX_ERR(1, 2715, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -49412,7 +50204,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_15AttributeGetter_5__ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__deepcopy__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2681, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__deepcopy__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2715, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.AttributeGetter.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -49443,16 +50235,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_4__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__deepcopy__", 0); - /* "dependency_injector/providers.pyx":2684 + /* "dependency_injector/providers.pyx":2718 * cdef AttributeGetter copied * * copied = memo.get(id(self)) # <<<<<<<<<<<<<< * if copied is not None: * return copied */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2684, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2684, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -49467,14 +50259,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_4__ __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2684, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_AttributeGetter))))) __PYX_ERR(1, 2684, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_AttributeGetter))))) __PYX_ERR(1, 2718, __pyx_L1_error) __pyx_v_copied = ((struct __pyx_obj_19dependency_injector_9providers_AttributeGetter *)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2685 + /* "dependency_injector/providers.pyx":2719 * * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -49485,7 +50277,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_4__ __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":2686 + /* "dependency_injector/providers.pyx":2720 * copied = memo.get(id(self)) * if copied is not None: * return copied # <<<<<<<<<<<<<< @@ -49497,7 +50289,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_4__ __pyx_r = ((PyObject *)__pyx_v_copied); goto __pyx_L0; - /* "dependency_injector/providers.pyx":2685 + /* "dependency_injector/providers.pyx":2719 * * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -49506,7 +50298,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_4__ */ } - /* "dependency_injector/providers.pyx":2688 + /* "dependency_injector/providers.pyx":2722 * return copied * * return self.__class__( # <<<<<<<<<<<<<< @@ -49514,10 +50306,10 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_4__ * self.__attribute, */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2688, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - /* "dependency_injector/providers.pyx":2689 + /* "dependency_injector/providers.pyx":2723 * * return self.__class__( * deepcopy(self.__provider, memo), # <<<<<<<<<<<<<< @@ -49526,14 +50318,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_4__ */ __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx___provider); __Pyx_INCREF(__pyx_t_3); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2689, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2723, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2689, __pyx_L1_error) + __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":2690 + /* "dependency_injector/providers.pyx":2724 * return self.__class__( * deepcopy(self.__provider, memo), * self.__attribute, # <<<<<<<<<<<<<< @@ -49555,7 +50347,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_4__ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_4, __pyx_v_self->__pyx___attribute}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2688, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2722, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -49564,14 +50356,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_4__ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_4, __pyx_v_self->__pyx___attribute}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2688, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2722, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { - __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 2688, __pyx_L1_error) + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 2722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_3); __pyx_t_3 = NULL; @@ -49582,7 +50374,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_4__ __Pyx_GIVEREF(__pyx_v_self->__pyx___attribute); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_self->__pyx___attribute); __pyx_t_4 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2688, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } @@ -49591,7 +50383,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_4__ __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2681 + /* "dependency_injector/providers.pyx":2715 * return f'{self.__class__.__name__}(\'{self.__attribute}\')' * * def __deepcopy__(self, memo=None): # <<<<<<<<<<<<<< @@ -49615,7 +50407,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_4__ return __pyx_r; } -/* "dependency_injector/providers.pyx":2693 +/* "dependency_injector/providers.pyx":2727 * ) * * def __getattr__(self, item): # <<<<<<<<<<<<<< @@ -49646,7 +50438,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_6__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getattr__", 0); - /* "dependency_injector/providers.pyx":2694 + /* "dependency_injector/providers.pyx":2728 * * def __getattr__(self, item): * return AttributeGetter(self, item) # <<<<<<<<<<<<<< @@ -49654,7 +50446,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_6__ * def __getitem__(self, item): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2694, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); @@ -49662,14 +50454,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_6__ __Pyx_INCREF(__pyx_v_item); __Pyx_GIVEREF(__pyx_v_item); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_item); - __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_AttributeGetter), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2694, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_AttributeGetter), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2693 + /* "dependency_injector/providers.pyx":2727 * ) * * def __getattr__(self, item): # <<<<<<<<<<<<<< @@ -49689,7 +50481,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_6__ return __pyx_r; } -/* "dependency_injector/providers.pyx":2696 +/* "dependency_injector/providers.pyx":2730 * return AttributeGetter(self, item) * * def __getitem__(self, item): # <<<<<<<<<<<<<< @@ -49720,15 +50512,15 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_8__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getitem__", 0); - /* "dependency_injector/providers.pyx":2697 + /* "dependency_injector/providers.pyx":2731 * * def __getitem__(self, item): * return ItemGetter(self, item) # <<<<<<<<<<<<<< * - * def call(self, *args, **kwargs): + * @property */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2697, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); @@ -49736,14 +50528,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_8__ __Pyx_INCREF(__pyx_v_item); __Pyx_GIVEREF(__pyx_v_item); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_item); - __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ItemGetter), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2697, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ItemGetter), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2696 + /* "dependency_injector/providers.pyx":2730 * return AttributeGetter(self, item) * * def __getitem__(self, item): # <<<<<<<<<<<<<< @@ -49763,8 +50555,114 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_8__ return __pyx_r; } -/* "dependency_injector/providers.pyx":2699 - * return ItemGetter(self, item) +/* "dependency_injector/providers.pyx":2734 + * + * @property + * def provides(self): # <<<<<<<<<<<<<< + * """Return provider.""" + * return self.__provider + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_9providers_15AttributeGetter_8provides_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_15AttributeGetter_8provides_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_19dependency_injector_9providers_15AttributeGetter_8provides___get__(((struct __pyx_obj_19dependency_injector_9providers_AttributeGetter *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_8provides___get__(struct __pyx_obj_19dependency_injector_9providers_AttributeGetter *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + + /* "dependency_injector/providers.pyx":2736 + * def provides(self): + * """Return provider.""" + * return self.__provider # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx___provider)); + __pyx_r = ((PyObject *)__pyx_v_self->__pyx___provider); + goto __pyx_L0; + + /* "dependency_injector/providers.pyx":2734 + * + * @property + * def provides(self): # <<<<<<<<<<<<<< + * """Return provider.""" + * return self.__provider + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "dependency_injector/providers.pyx":2739 + * + * @property + * def name(self): # <<<<<<<<<<<<<< + * """Return name of the attribute.""" + * return self.__attribute + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_9providers_15AttributeGetter_4name_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_15AttributeGetter_4name_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_19dependency_injector_9providers_15AttributeGetter_4name___get__(((struct __pyx_obj_19dependency_injector_9providers_AttributeGetter *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_4name___get__(struct __pyx_obj_19dependency_injector_9providers_AttributeGetter *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + + /* "dependency_injector/providers.pyx":2741 + * def name(self): + * """Return name of the attribute.""" + * return self.__attribute # <<<<<<<<<<<<<< + * + * def call(self, *args, **kwargs): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->__pyx___attribute); + __pyx_r = __pyx_v_self->__pyx___attribute; + goto __pyx_L0; + + /* "dependency_injector/providers.pyx":2739 + * + * @property + * def name(self): # <<<<<<<<<<<<<< + * """Return name of the attribute.""" + * return self.__attribute + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "dependency_injector/providers.pyx":2743 + * return self.__attribute * * def call(self, *args, **kwargs): # <<<<<<<<<<<<<< * return MethodCaller(self, *args, **kwargs) @@ -49807,7 +50705,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_10c int __pyx_clineno = 0; __Pyx_RefNannySetupContext("call", 0); - /* "dependency_injector/providers.pyx":2700 + /* "dependency_injector/providers.pyx":2744 * * def call(self, *args, **kwargs): * return MethodCaller(self, *args, **kwargs) # <<<<<<<<<<<<<< @@ -49815,23 +50713,23 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_10c * cpdef object _provide(self, tuple args, dict kwargs): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2700, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); - __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_v_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2700, __pyx_L1_error) + __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_v_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_MethodCaller), __pyx_t_2, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2700, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_MethodCaller), __pyx_t_2, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2699 - * return ItemGetter(self, item) + /* "dependency_injector/providers.pyx":2743 + * return self.__attribute * * def call(self, *args, **kwargs): # <<<<<<<<<<<<<< * return MethodCaller(self, *args, **kwargs) @@ -49850,7 +50748,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_10c return __pyx_r; } -/* "dependency_injector/providers.pyx":2702 +/* "dependency_injector/providers.pyx":2746 * return MethodCaller(self, *args, **kwargs) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -49882,7 +50780,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_15AttributeGetter__pro if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2702, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_19dependency_injector_9providers_15AttributeGetter_13_provide)) { __Pyx_XDECREF(__pyx_r); @@ -49902,7 +50800,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_15AttributeGetter__pro #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2702, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2746, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -49910,13 +50808,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_15AttributeGetter__pro #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2702, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2746, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2702, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -49927,7 +50825,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_15AttributeGetter__pro __Pyx_INCREF(__pyx_v_kwargs); __Pyx_GIVEREF(__pyx_v_kwargs); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_kwargs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2702, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -49950,7 +50848,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_15AttributeGetter__pro #endif } - /* "dependency_injector/providers.pyx":2703 + /* "dependency_injector/providers.pyx":2747 * * cpdef object _provide(self, tuple args, dict kwargs): * provided = self.__provider(*args, **kwargs) # <<<<<<<<<<<<<< @@ -49959,18 +50857,18 @@ static PyObject *__pyx_f_19dependency_injector_9providers_15AttributeGetter__pro */ if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(1, 2703, __pyx_L1_error) + __PYX_ERR(1, 2747, __pyx_L1_error) } if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); - __PYX_ERR(1, 2703, __pyx_L1_error) + __PYX_ERR(1, 2747, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_self->__pyx___provider), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2703, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_self->__pyx___provider), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_provided = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2704 + /* "dependency_injector/providers.pyx":2748 * cpdef object _provide(self, tuple args, dict kwargs): * provided = self.__provider(*args, **kwargs) * return getattr(provided, self.__attribute) # <<<<<<<<<<<<<< @@ -49980,14 +50878,14 @@ static PyObject *__pyx_f_19dependency_injector_9providers_15AttributeGetter__pro __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_v_self->__pyx___attribute; __Pyx_INCREF(__pyx_t_1); - __pyx_t_2 = __Pyx_GetAttr(__pyx_v_provided, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2704, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetAttr(__pyx_v_provided, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2702 + /* "dependency_injector/providers.pyx":2746 * return MethodCaller(self, *args, **kwargs) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -50045,11 +50943,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_15AttributeGetter_13_ case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 2702, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 2746, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 2702, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 2746, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -50062,14 +50960,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_15AttributeGetter_13_ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2702, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2746, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.AttributeGetter._provide", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2702, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2702, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2746, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2746, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_15AttributeGetter_12_provide(((struct __pyx_obj_19dependency_injector_9providers_AttributeGetter *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs); /* function exit code */ @@ -50090,7 +50988,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_12_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_provide", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_15AttributeGetter__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2702, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_15AttributeGetter__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -50434,7 +51332,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_16_ return __pyx_r; } -/* "dependency_injector/providers.pyx":2713 +/* "dependency_injector/providers.pyx":2757 * """ * * def __init__(self, Provider provider, object item): # <<<<<<<<<<<<<< @@ -50476,11 +51374,11 @@ static int __pyx_pw_19dependency_injector_9providers_10ItemGetter_1__init__(PyOb case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_item)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(1, 2713, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(1, 2757, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 2713, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 2757, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -50493,13 +51391,13 @@ static int __pyx_pw_19dependency_injector_9providers_10ItemGetter_1__init__(PyOb } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2713, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2757, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.ItemGetter.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_provider), __pyx_ptype_19dependency_injector_9providers_Provider, 1, "provider", 0))) __PYX_ERR(1, 2713, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_provider), __pyx_ptype_19dependency_injector_9providers_Provider, 1, "provider", 0))) __PYX_ERR(1, 2757, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_10ItemGetter___init__(((struct __pyx_obj_19dependency_injector_9providers_ItemGetter *)__pyx_v_self), __pyx_v_provider, __pyx_v_item); /* function exit code */ @@ -50522,7 +51420,7 @@ static int __pyx_pf_19dependency_injector_9providers_10ItemGetter___init__(struc int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":2714 + /* "dependency_injector/providers.pyx":2758 * * def __init__(self, Provider provider, object item): * self.__provider = provider # <<<<<<<<<<<<<< @@ -50535,7 +51433,7 @@ static int __pyx_pf_19dependency_injector_9providers_10ItemGetter___init__(struc __Pyx_DECREF(((PyObject *)__pyx_v_self->__pyx___provider)); __pyx_v_self->__pyx___provider = __pyx_v_provider; - /* "dependency_injector/providers.pyx":2715 + /* "dependency_injector/providers.pyx":2759 * def __init__(self, Provider provider, object item): * self.__provider = provider * self.__item = item # <<<<<<<<<<<<<< @@ -50548,14 +51446,14 @@ static int __pyx_pf_19dependency_injector_9providers_10ItemGetter___init__(struc __Pyx_DECREF(__pyx_v_self->__pyx___item); __pyx_v_self->__pyx___item = __pyx_v_item; - /* "dependency_injector/providers.pyx":2716 + /* "dependency_injector/providers.pyx":2760 * self.__provider = provider * self.__item = item * super().__init__() # <<<<<<<<<<<<<< * * def __repr__(self): */ - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2716, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ItemGetter)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ItemGetter)); @@ -50563,10 +51461,10 @@ static int __pyx_pf_19dependency_injector_9providers_10ItemGetter___init__(struc __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2716, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2716, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -50581,12 +51479,12 @@ static int __pyx_pf_19dependency_injector_9providers_10ItemGetter___init__(struc } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2716, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2713 + /* "dependency_injector/providers.pyx":2757 * """ * * def __init__(self, Provider provider, object item): # <<<<<<<<<<<<<< @@ -50608,7 +51506,7 @@ static int __pyx_pf_19dependency_injector_9providers_10ItemGetter___init__(struc return __pyx_r; } -/* "dependency_injector/providers.pyx":2718 +/* "dependency_injector/providers.pyx":2762 * super().__init__() * * def __repr__(self): # <<<<<<<<<<<<<< @@ -50642,7 +51540,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_2__repr_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__", 0); - /* "dependency_injector/providers.pyx":2719 + /* "dependency_injector/providers.pyx":2763 * * def __repr__(self): * return f'{self.__class__.__name__}(\'{self.__item}\')' # <<<<<<<<<<<<<< @@ -50650,16 +51548,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_2__repr_ * def __deepcopy__(self, memo=None): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2719, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2719, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2719, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2719, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; @@ -50667,29 +51565,29 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_2__repr_ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = 0; - __Pyx_INCREF(__pyx_kp_u__8); + __Pyx_INCREF(__pyx_kp_u__9); __pyx_t_2 += 2; - __Pyx_GIVEREF(__pyx_kp_u__8); - PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u__8); - __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx___item, __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2719, __pyx_L1_error) + __Pyx_GIVEREF(__pyx_kp_u__9); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u__9); + __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx___item, __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4); __pyx_t_4 = 0; - __Pyx_INCREF(__pyx_kp_u__9); + __Pyx_INCREF(__pyx_kp_u__10); __pyx_t_2 += 2; - __Pyx_GIVEREF(__pyx_kp_u__9); - PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u__9); - __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 4, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2719, __pyx_L1_error) + __Pyx_GIVEREF(__pyx_kp_u__10); + PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u__10); + __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 4, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2718 + /* "dependency_injector/providers.pyx":2762 * super().__init__() * * def __repr__(self): # <<<<<<<<<<<<<< @@ -50710,7 +51608,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_2__repr_ return __pyx_r; } -/* "dependency_injector/providers.pyx":2721 +/* "dependency_injector/providers.pyx":2765 * return f'{self.__class__.__name__}(\'{self.__item}\')' * * def __deepcopy__(self, memo=None): # <<<<<<<<<<<<<< @@ -50750,7 +51648,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_10ItemGetter_5__deepc } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__deepcopy__") < 0)) __PYX_ERR(1, 2721, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__deepcopy__") < 0)) __PYX_ERR(1, 2765, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -50764,7 +51662,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_10ItemGetter_5__deepc } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__deepcopy__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2721, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__deepcopy__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2765, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.ItemGetter.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -50795,16 +51693,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_4__deepc int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__deepcopy__", 0); - /* "dependency_injector/providers.pyx":2724 + /* "dependency_injector/providers.pyx":2768 * cdef ItemGetter copied * * copied = memo.get(id(self)) # <<<<<<<<<<<<<< * if copied is not None: * return copied */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2724, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2724, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -50819,14 +51717,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_4__deepc __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2724, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_ItemGetter))))) __PYX_ERR(1, 2724, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_ItemGetter))))) __PYX_ERR(1, 2768, __pyx_L1_error) __pyx_v_copied = ((struct __pyx_obj_19dependency_injector_9providers_ItemGetter *)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2725 + /* "dependency_injector/providers.pyx":2769 * * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -50837,7 +51735,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_4__deepc __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":2726 + /* "dependency_injector/providers.pyx":2770 * copied = memo.get(id(self)) * if copied is not None: * return copied # <<<<<<<<<<<<<< @@ -50849,7 +51747,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_4__deepc __pyx_r = ((PyObject *)__pyx_v_copied); goto __pyx_L0; - /* "dependency_injector/providers.pyx":2725 + /* "dependency_injector/providers.pyx":2769 * * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -50858,7 +51756,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_4__deepc */ } - /* "dependency_injector/providers.pyx":2728 + /* "dependency_injector/providers.pyx":2772 * return copied * * return self.__class__( # <<<<<<<<<<<<<< @@ -50866,10 +51764,10 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_4__deepc * self.__item, */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2728, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - /* "dependency_injector/providers.pyx":2729 + /* "dependency_injector/providers.pyx":2773 * * return self.__class__( * deepcopy(self.__provider, memo), # <<<<<<<<<<<<<< @@ -50878,14 +51776,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_4__deepc */ __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx___provider); __Pyx_INCREF(__pyx_t_3); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2729, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2773, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2729, __pyx_L1_error) + __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":2730 + /* "dependency_injector/providers.pyx":2774 * return self.__class__( * deepcopy(self.__provider, memo), * self.__item, # <<<<<<<<<<<<<< @@ -50907,7 +51805,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_4__deepc #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_4, __pyx_v_self->__pyx___item}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2728, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2772, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -50916,14 +51814,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_4__deepc #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_4, __pyx_v_self->__pyx___item}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2728, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2772, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { - __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 2728, __pyx_L1_error) + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 2772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_3); __pyx_t_3 = NULL; @@ -50934,7 +51832,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_4__deepc __Pyx_GIVEREF(__pyx_v_self->__pyx___item); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_self->__pyx___item); __pyx_t_4 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2728, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } @@ -50943,7 +51841,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_4__deepc __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2721 + /* "dependency_injector/providers.pyx":2765 * return f'{self.__class__.__name__}(\'{self.__item}\')' * * def __deepcopy__(self, memo=None): # <<<<<<<<<<<<<< @@ -50967,7 +51865,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_4__deepc return __pyx_r; } -/* "dependency_injector/providers.pyx":2733 +/* "dependency_injector/providers.pyx":2777 * ) * * def __getattr__(self, item): # <<<<<<<<<<<<<< @@ -50998,7 +51896,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_6__getat int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getattr__", 0); - /* "dependency_injector/providers.pyx":2734 + /* "dependency_injector/providers.pyx":2778 * * def __getattr__(self, item): * return AttributeGetter(self, item) # <<<<<<<<<<<<<< @@ -51006,7 +51904,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_6__getat * def __getitem__(self, item): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2734, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); @@ -51014,14 +51912,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_6__getat __Pyx_INCREF(__pyx_v_item); __Pyx_GIVEREF(__pyx_v_item); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_item); - __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_AttributeGetter), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2734, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_AttributeGetter), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2733 + /* "dependency_injector/providers.pyx":2777 * ) * * def __getattr__(self, item): # <<<<<<<<<<<<<< @@ -51041,7 +51939,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_6__getat return __pyx_r; } -/* "dependency_injector/providers.pyx":2736 +/* "dependency_injector/providers.pyx":2780 * return AttributeGetter(self, item) * * def __getitem__(self, item): # <<<<<<<<<<<<<< @@ -51072,15 +51970,15 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_8__getit int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getitem__", 0); - /* "dependency_injector/providers.pyx":2737 + /* "dependency_injector/providers.pyx":2781 * * def __getitem__(self, item): * return ItemGetter(self, item) # <<<<<<<<<<<<<< * - * def call(self, *args, **kwargs): + * @property */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2737, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); @@ -51088,14 +51986,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_8__getit __Pyx_INCREF(__pyx_v_item); __Pyx_GIVEREF(__pyx_v_item); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_item); - __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ItemGetter), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2737, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ItemGetter), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2736 + /* "dependency_injector/providers.pyx":2780 * return AttributeGetter(self, item) * * def __getitem__(self, item): # <<<<<<<<<<<<<< @@ -51115,8 +52013,114 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_8__getit return __pyx_r; } -/* "dependency_injector/providers.pyx":2739 - * return ItemGetter(self, item) +/* "dependency_injector/providers.pyx":2784 + * + * @property + * def provides(self): # <<<<<<<<<<<<<< + * """Return provider.""" + * return self.__provider + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_9providers_10ItemGetter_8provides_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_10ItemGetter_8provides_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_19dependency_injector_9providers_10ItemGetter_8provides___get__(((struct __pyx_obj_19dependency_injector_9providers_ItemGetter *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_8provides___get__(struct __pyx_obj_19dependency_injector_9providers_ItemGetter *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + + /* "dependency_injector/providers.pyx":2786 + * def provides(self): + * """Return provider.""" + * return self.__provider # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx___provider)); + __pyx_r = ((PyObject *)__pyx_v_self->__pyx___provider); + goto __pyx_L0; + + /* "dependency_injector/providers.pyx":2784 + * + * @property + * def provides(self): # <<<<<<<<<<<<<< + * """Return provider.""" + * return self.__provider + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "dependency_injector/providers.pyx":2789 + * + * @property + * def name(self): # <<<<<<<<<<<<<< + * """Return name of the item.""" + * return self.__item + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_9providers_10ItemGetter_4name_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_10ItemGetter_4name_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_19dependency_injector_9providers_10ItemGetter_4name___get__(((struct __pyx_obj_19dependency_injector_9providers_ItemGetter *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_4name___get__(struct __pyx_obj_19dependency_injector_9providers_ItemGetter *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + + /* "dependency_injector/providers.pyx":2791 + * def name(self): + * """Return name of the item.""" + * return self.__item # <<<<<<<<<<<<<< + * + * def call(self, *args, **kwargs): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->__pyx___item); + __pyx_r = __pyx_v_self->__pyx___item; + goto __pyx_L0; + + /* "dependency_injector/providers.pyx":2789 + * + * @property + * def name(self): # <<<<<<<<<<<<<< + * """Return name of the item.""" + * return self.__item + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "dependency_injector/providers.pyx":2793 + * return self.__item * * def call(self, *args, **kwargs): # <<<<<<<<<<<<<< * return MethodCaller(self, *args, **kwargs) @@ -51159,7 +52163,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_10call(s int __pyx_clineno = 0; __Pyx_RefNannySetupContext("call", 0); - /* "dependency_injector/providers.pyx":2740 + /* "dependency_injector/providers.pyx":2794 * * def call(self, *args, **kwargs): * return MethodCaller(self, *args, **kwargs) # <<<<<<<<<<<<<< @@ -51167,23 +52171,23 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_10call(s * cpdef object _provide(self, tuple args, dict kwargs): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2740, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); - __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_v_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2740, __pyx_L1_error) + __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_v_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_MethodCaller), __pyx_t_2, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2740, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_MethodCaller), __pyx_t_2, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2739 - * return ItemGetter(self, item) + /* "dependency_injector/providers.pyx":2793 + * return self.__item * * def call(self, *args, **kwargs): # <<<<<<<<<<<<<< * return MethodCaller(self, *args, **kwargs) @@ -51202,7 +52206,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_10call(s return __pyx_r; } -/* "dependency_injector/providers.pyx":2742 +/* "dependency_injector/providers.pyx":2796 * return MethodCaller(self, *args, **kwargs) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -51234,7 +52238,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_10ItemGetter__provide( if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2742, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_19dependency_injector_9providers_10ItemGetter_13_provide)) { __Pyx_XDECREF(__pyx_r); @@ -51254,7 +52258,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_10ItemGetter__provide( #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2742, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2796, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -51262,13 +52266,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_10ItemGetter__provide( #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2742, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2796, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2742, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -51279,7 +52283,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_10ItemGetter__provide( __Pyx_INCREF(__pyx_v_kwargs); __Pyx_GIVEREF(__pyx_v_kwargs); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_kwargs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2742, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -51302,7 +52306,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_10ItemGetter__provide( #endif } - /* "dependency_injector/providers.pyx":2743 + /* "dependency_injector/providers.pyx":2797 * * cpdef object _provide(self, tuple args, dict kwargs): * provided = self.__provider(*args, **kwargs) # <<<<<<<<<<<<<< @@ -51311,18 +52315,18 @@ static PyObject *__pyx_f_19dependency_injector_9providers_10ItemGetter__provide( */ if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(1, 2743, __pyx_L1_error) + __PYX_ERR(1, 2797, __pyx_L1_error) } if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); - __PYX_ERR(1, 2743, __pyx_L1_error) + __PYX_ERR(1, 2797, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_self->__pyx___provider), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2743, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_self->__pyx___provider), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2797, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_provided = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2744 + /* "dependency_injector/providers.pyx":2798 * cpdef object _provide(self, tuple args, dict kwargs): * provided = self.__provider(*args, **kwargs) * return provided[self.__item] # <<<<<<<<<<<<<< @@ -51330,13 +52334,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_10ItemGetter__provide( * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_provided, __pyx_v_self->__pyx___item); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2744, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_provided, __pyx_v_self->__pyx___item); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2742 + /* "dependency_injector/providers.pyx":2796 * return MethodCaller(self, *args, **kwargs) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -51394,11 +52398,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_10ItemGetter_13_provi case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 2742, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 2796, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 2742, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 2796, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -51411,14 +52415,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_10ItemGetter_13_provi } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2742, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2796, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.ItemGetter._provide", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2742, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2742, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2796, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2796, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_10ItemGetter_12_provide(((struct __pyx_obj_19dependency_injector_9providers_ItemGetter *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs); /* function exit code */ @@ -51439,7 +52443,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_12_provi int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_provide", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_10ItemGetter__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2742, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_10ItemGetter__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -51783,7 +52787,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_16__sets return __pyx_r; } -/* "dependency_injector/providers.pyx":2753 +/* "dependency_injector/providers.pyx":2807 * """ * * def __init__(self, provider, *args, **kwargs): # <<<<<<<<<<<<<< @@ -51836,7 +52840,7 @@ static int __pyx_pw_19dependency_injector_9providers_12MethodCaller_1__init__(Py } if (unlikely(kw_args > 0)) { const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__init__") < 0)) __PYX_ERR(1, 2753, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__init__") < 0)) __PYX_ERR(1, 2807, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) < 1) { goto __pyx_L5_argtuple_error; @@ -51847,7 +52851,7 @@ static int __pyx_pw_19dependency_injector_9providers_12MethodCaller_1__init__(Py } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2753, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2807, __pyx_L3_error) __pyx_L3_error:; __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; @@ -51876,14 +52880,14 @@ static int __pyx_pf_19dependency_injector_9providers_12MethodCaller___init__(str int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":2754 + /* "dependency_injector/providers.pyx":2808 * * def __init__(self, provider, *args, **kwargs): * self.__provider = provider # <<<<<<<<<<<<<< * * self.__args = parse_positional_injections(args) */ - if (!(likely(((__pyx_v_provider) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_provider, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 2754, __pyx_L1_error) + if (!(likely(((__pyx_v_provider) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_provider, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(1, 2808, __pyx_L1_error) __pyx_t_1 = __pyx_v_provider; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); @@ -51892,14 +52896,14 @@ static int __pyx_pf_19dependency_injector_9providers_12MethodCaller___init__(str __pyx_v_self->__pyx___provider = ((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2756 + /* "dependency_injector/providers.pyx":2810 * self.__provider = provider * * self.__args = parse_positional_injections(args) # <<<<<<<<<<<<<< * self.__args_len = len(self.__args) * */ - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_positional_injections(__pyx_v_args, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2756, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_positional_injections(__pyx_v_args, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->__pyx___args); @@ -51907,7 +52911,7 @@ static int __pyx_pf_19dependency_injector_9providers_12MethodCaller___init__(str __pyx_v_self->__pyx___args = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2757 + /* "dependency_injector/providers.pyx":2811 * * self.__args = parse_positional_injections(args) * self.__args_len = len(self.__args) # <<<<<<<<<<<<<< @@ -51918,20 +52922,20 @@ static int __pyx_pf_19dependency_injector_9providers_12MethodCaller___init__(str __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(1, 2757, __pyx_L1_error) + __PYX_ERR(1, 2811, __pyx_L1_error) } - __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2757, __pyx_L1_error) + __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2811, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_self->__pyx___args_len = __pyx_t_2; - /* "dependency_injector/providers.pyx":2759 + /* "dependency_injector/providers.pyx":2813 * self.__args_len = len(self.__args) * * self.__kwargs = parse_named_injections(kwargs) # <<<<<<<<<<<<<< * self.__kwargs_len = len(self.__kwargs) * */ - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_named_injections(__pyx_v_kwargs, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2759, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_named_injections(__pyx_v_kwargs, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->__pyx___kwargs); @@ -51939,7 +52943,7 @@ static int __pyx_pf_19dependency_injector_9providers_12MethodCaller___init__(str __pyx_v_self->__pyx___kwargs = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2760 + /* "dependency_injector/providers.pyx":2814 * * self.__kwargs = parse_named_injections(kwargs) * self.__kwargs_len = len(self.__kwargs) # <<<<<<<<<<<<<< @@ -51950,20 +52954,20 @@ static int __pyx_pf_19dependency_injector_9providers_12MethodCaller___init__(str __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(1, 2760, __pyx_L1_error) + __PYX_ERR(1, 2814, __pyx_L1_error) } - __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2760, __pyx_L1_error) + __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2814, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_self->__pyx___kwargs_len = __pyx_t_2; - /* "dependency_injector/providers.pyx":2762 + /* "dependency_injector/providers.pyx":2816 * self.__kwargs_len = len(self.__kwargs) * * super().__init__() # <<<<<<<<<<<<<< * * def __repr__(self): */ - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2762, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_MethodCaller)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_MethodCaller)); @@ -51971,10 +52975,10 @@ static int __pyx_pf_19dependency_injector_9providers_12MethodCaller___init__(str __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2762, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2762, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; @@ -51989,12 +52993,12 @@ static int __pyx_pf_19dependency_injector_9providers_12MethodCaller___init__(str } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2762, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2753 + /* "dependency_injector/providers.pyx":2807 * """ * * def __init__(self, provider, *args, **kwargs): # <<<<<<<<<<<<<< @@ -52016,7 +53020,7 @@ static int __pyx_pf_19dependency_injector_9providers_12MethodCaller___init__(str return __pyx_r; } -/* "dependency_injector/providers.pyx":2764 +/* "dependency_injector/providers.pyx":2818 * super().__init__() * * def __repr__(self): # <<<<<<<<<<<<<< @@ -52050,7 +53054,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_2__rep int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__", 0); - /* "dependency_injector/providers.pyx":2765 + /* "dependency_injector/providers.pyx":2819 * * def __repr__(self): * return f'{self.__class__.__name__}({self.__provider})' # <<<<<<<<<<<<<< @@ -52058,16 +53062,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_2__rep * def __deepcopy__(self, memo=None): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2765, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2765, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2765, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2765, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; @@ -52075,29 +53079,29 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_2__rep __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = 0; - __Pyx_INCREF(__pyx_kp_u__10); + __Pyx_INCREF(__pyx_kp_u__11); __pyx_t_2 += 1; - __Pyx_GIVEREF(__pyx_kp_u__10); - PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u__10); - __pyx_t_4 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx___provider), __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2765, __pyx_L1_error) + __Pyx_GIVEREF(__pyx_kp_u__11); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u__11); + __pyx_t_4 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx___provider), __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4); __pyx_t_4 = 0; - __Pyx_INCREF(__pyx_kp_u__11); + __Pyx_INCREF(__pyx_kp_u__12); __pyx_t_2 += 1; - __Pyx_GIVEREF(__pyx_kp_u__11); - PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u__11); - __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 4, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2765, __pyx_L1_error) + __Pyx_GIVEREF(__pyx_kp_u__12); + PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u__12); + __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 4, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2764 + /* "dependency_injector/providers.pyx":2818 * super().__init__() * * def __repr__(self): # <<<<<<<<<<<<<< @@ -52118,7 +53122,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_2__rep return __pyx_r; } -/* "dependency_injector/providers.pyx":2767 +/* "dependency_injector/providers.pyx":2821 * return f'{self.__class__.__name__}({self.__provider})' * * def __deepcopy__(self, memo=None): # <<<<<<<<<<<<<< @@ -52158,7 +53162,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_12MethodCaller_5__dee } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__deepcopy__") < 0)) __PYX_ERR(1, 2767, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__deepcopy__") < 0)) __PYX_ERR(1, 2821, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -52172,7 +53176,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_12MethodCaller_5__dee } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__deepcopy__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2767, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__deepcopy__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2821, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.MethodCaller.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -52202,16 +53206,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_4__dee int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__deepcopy__", 0); - /* "dependency_injector/providers.pyx":2770 + /* "dependency_injector/providers.pyx":2824 * cdef MethodCaller copied * * copied = memo.get(id(self)) # <<<<<<<<<<<<<< * if copied is not None: * return copied */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2770, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2824, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2770, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2824, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -52226,14 +53230,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_4__dee __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2770, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2824, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_MethodCaller))))) __PYX_ERR(1, 2770, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_MethodCaller))))) __PYX_ERR(1, 2824, __pyx_L1_error) __pyx_v_copied = ((struct __pyx_obj_19dependency_injector_9providers_MethodCaller *)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2771 + /* "dependency_injector/providers.pyx":2825 * * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -52244,7 +53248,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_4__dee __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":2772 + /* "dependency_injector/providers.pyx":2826 * copied = memo.get(id(self)) * if copied is not None: * return copied # <<<<<<<<<<<<<< @@ -52256,7 +53260,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_4__dee __pyx_r = ((PyObject *)__pyx_v_copied); goto __pyx_L0; - /* "dependency_injector/providers.pyx":2771 + /* "dependency_injector/providers.pyx":2825 * * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -52265,21 +53269,21 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_4__dee */ } - /* "dependency_injector/providers.pyx":2774 + /* "dependency_injector/providers.pyx":2828 * return copied * * copied = self.__class__(deepcopy(self.__provider, memo)) # <<<<<<<<<<<<<< * copied.__args = deepcopy(self.__args, memo) * copied.__args_len = self.__args_len */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2774, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx___provider); __Pyx_INCREF(__pyx_t_3); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2774, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2828, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2774, __pyx_L1_error) + __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -52295,14 +53299,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_4__dee __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2774, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_MethodCaller))))) __PYX_ERR(1, 2774, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_MethodCaller))))) __PYX_ERR(1, 2828, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_copied, ((struct __pyx_obj_19dependency_injector_9providers_MethodCaller *)__pyx_t_1)); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2775 + /* "dependency_injector/providers.pyx":2829 * * copied = self.__class__(deepcopy(self.__provider, memo)) * copied.__args = deepcopy(self.__args, memo) # <<<<<<<<<<<<<< @@ -52311,20 +53315,20 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_4__dee */ __pyx_t_1 = __pyx_v_self->__pyx___args; __Pyx_INCREF(__pyx_t_1); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2775, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2829, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_2 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_1, 0, &__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2775, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_1, 0, &__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(1, 2775, __pyx_L1_error) + if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(1, 2829, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_copied->__pyx___args); __Pyx_DECREF(__pyx_v_copied->__pyx___args); __pyx_v_copied->__pyx___args = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":2776 + /* "dependency_injector/providers.pyx":2830 * copied = self.__class__(deepcopy(self.__provider, memo)) * copied.__args = deepcopy(self.__args, memo) * copied.__args_len = self.__args_len # <<<<<<<<<<<<<< @@ -52334,7 +53338,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_4__dee __pyx_t_8 = __pyx_v_self->__pyx___args_len; __pyx_v_copied->__pyx___args_len = __pyx_t_8; - /* "dependency_injector/providers.pyx":2777 + /* "dependency_injector/providers.pyx":2831 * copied.__args = deepcopy(self.__args, memo) * copied.__args_len = self.__args_len * copied.__kwargs = deepcopy(self.__kwargs, memo) # <<<<<<<<<<<<<< @@ -52343,20 +53347,20 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_4__dee */ __pyx_t_2 = __pyx_v_self->__pyx___kwargs; __Pyx_INCREF(__pyx_t_2); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2777, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2831, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_2, 0, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2777, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_2, 0, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(1, 2777, __pyx_L1_error) + if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(1, 2831, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_copied->__pyx___kwargs); __Pyx_DECREF(__pyx_v_copied->__pyx___kwargs); __pyx_v_copied->__pyx___kwargs = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2778 + /* "dependency_injector/providers.pyx":2832 * copied.__args_len = self.__args_len * copied.__kwargs = deepcopy(self.__kwargs, memo) * copied.__kwargs_len = self.__kwargs_len # <<<<<<<<<<<<<< @@ -52366,17 +53370,17 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_4__dee __pyx_t_8 = __pyx_v_self->__pyx___kwargs_len; __pyx_v_copied->__pyx___kwargs_len = __pyx_t_8; - /* "dependency_injector/providers.pyx":2780 + /* "dependency_injector/providers.pyx":2834 * copied.__kwargs_len = self.__kwargs_len * * self._copy_overridings(copied, memo) # <<<<<<<<<<<<<< * * return copied */ - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2780, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2834, __pyx_L1_error) ((struct __pyx_vtabstruct_19dependency_injector_9providers_MethodCaller *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._copy_overridings(((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_self), ((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_v_copied), ((PyObject*)__pyx_v_memo), 0); - /* "dependency_injector/providers.pyx":2782 + /* "dependency_injector/providers.pyx":2836 * self._copy_overridings(copied, memo) * * return copied # <<<<<<<<<<<<<< @@ -52388,7 +53392,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_4__dee __pyx_r = ((PyObject *)__pyx_v_copied); goto __pyx_L0; - /* "dependency_injector/providers.pyx":2767 + /* "dependency_injector/providers.pyx":2821 * return f'{self.__class__.__name__}({self.__provider})' * * def __deepcopy__(self, memo=None): # <<<<<<<<<<<<<< @@ -52411,7 +53415,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_4__dee return __pyx_r; } -/* "dependency_injector/providers.pyx":2784 +/* "dependency_injector/providers.pyx":2838 * return copied * * def __getattr__(self, item): # <<<<<<<<<<<<<< @@ -52442,7 +53446,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_6__get int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getattr__", 0); - /* "dependency_injector/providers.pyx":2785 + /* "dependency_injector/providers.pyx":2839 * * def __getattr__(self, item): * return AttributeGetter(self, item) # <<<<<<<<<<<<<< @@ -52450,7 +53454,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_6__get * def __getitem__(self, item): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2785, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2839, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); @@ -52458,14 +53462,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_6__get __Pyx_INCREF(__pyx_v_item); __Pyx_GIVEREF(__pyx_v_item); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_item); - __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_AttributeGetter), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2785, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_AttributeGetter), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2839, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2784 + /* "dependency_injector/providers.pyx":2838 * return copied * * def __getattr__(self, item): # <<<<<<<<<<<<<< @@ -52485,7 +53489,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_6__get return __pyx_r; } -/* "dependency_injector/providers.pyx":2787 +/* "dependency_injector/providers.pyx":2841 * return AttributeGetter(self, item) * * def __getitem__(self, item): # <<<<<<<<<<<<<< @@ -52516,15 +53520,15 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_8__get int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getitem__", 0); - /* "dependency_injector/providers.pyx":2788 + /* "dependency_injector/providers.pyx":2842 * * def __getitem__(self, item): * return ItemGetter(self, item) # <<<<<<<<<<<<<< * - * def call(self, *args, **kwargs): + * @property */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2788, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); @@ -52532,14 +53536,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_8__get __Pyx_INCREF(__pyx_v_item); __Pyx_GIVEREF(__pyx_v_item); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_item); - __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ItemGetter), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2788, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_ItemGetter), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2787 + /* "dependency_injector/providers.pyx":2841 * return AttributeGetter(self, item) * * def __getitem__(self, item): # <<<<<<<<<<<<<< @@ -52559,8 +53563,310 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_8__get return __pyx_r; } -/* "dependency_injector/providers.pyx":2790 - * return ItemGetter(self, item) +/* "dependency_injector/providers.pyx":2845 + * + * @property + * def provides(self): # <<<<<<<<<<<<<< + * """Return provider.""" + * return self.__provider + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_9providers_12MethodCaller_8provides_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_12MethodCaller_8provides_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_19dependency_injector_9providers_12MethodCaller_8provides___get__(((struct __pyx_obj_19dependency_injector_9providers_MethodCaller *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_8provides___get__(struct __pyx_obj_19dependency_injector_9providers_MethodCaller *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + + /* "dependency_injector/providers.pyx":2847 + * def provides(self): + * """Return provider.""" + * return self.__provider # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx___provider)); + __pyx_r = ((PyObject *)__pyx_v_self->__pyx___provider); + goto __pyx_L0; + + /* "dependency_injector/providers.pyx":2845 + * + * @property + * def provides(self): # <<<<<<<<<<<<<< + * """Return provider.""" + * return self.__provider + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "dependency_injector/providers.pyx":2850 + * + * @property + * def args(self): # <<<<<<<<<<<<<< + * """Return positional argument injections.""" + * cdef int index + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_9providers_12MethodCaller_4args_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_12MethodCaller_4args_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_19dependency_injector_9providers_12MethodCaller_4args___get__(((struct __pyx_obj_19dependency_injector_9providers_MethodCaller *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_4args___get__(struct __pyx_obj_19dependency_injector_9providers_MethodCaller *__pyx_v_self) { + int __pyx_v_index; + struct __pyx_obj_19dependency_injector_9providers_PositionalInjection *__pyx_v_arg = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "dependency_injector/providers.pyx":2856 + * cdef list args + * + * args = list() # <<<<<<<<<<<<<< + * for index in range(self.__args_len): + * arg = self.__args[index] + */ + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2856, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_args = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "dependency_injector/providers.pyx":2857 + * + * args = list() + * for index in range(self.__args_len): # <<<<<<<<<<<<<< + * arg = self.__args[index] + * args.append(arg.__value) + */ + __pyx_t_2 = __pyx_v_self->__pyx___args_len; + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_index = __pyx_t_4; + + /* "dependency_injector/providers.pyx":2858 + * args = list() + * for index in range(self.__args_len): + * arg = self.__args[index] # <<<<<<<<<<<<<< + * args.append(arg.__value) + * return tuple(args) + */ + if (unlikely(__pyx_v_self->__pyx___args == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(1, 2858, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->__pyx___args, __pyx_v_index, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2858, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_PositionalInjection))))) __PYX_ERR(1, 2858, __pyx_L1_error) + __Pyx_XDECREF_SET(__pyx_v_arg, ((struct __pyx_obj_19dependency_injector_9providers_PositionalInjection *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "dependency_injector/providers.pyx":2859 + * for index in range(self.__args_len): + * arg = self.__args[index] + * args.append(arg.__value) # <<<<<<<<<<<<<< + * return tuple(args) + * + */ + __pyx_t_1 = __pyx_v_arg->__pyx_base.__pyx___value; + __Pyx_INCREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_args, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 2859, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + + /* "dependency_injector/providers.pyx":2860 + * arg = self.__args[index] + * args.append(arg.__value) + * return tuple(args) # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyList_AsTuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2860, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "dependency_injector/providers.pyx":2850 + * + * @property + * def args(self): # <<<<<<<<<<<<<< + * """Return positional argument injections.""" + * cdef int index + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("dependency_injector.providers.MethodCaller.args.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_arg); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "dependency_injector/providers.pyx":2863 + * + * @property + * def kwargs(self): # <<<<<<<<<<<<<< + * """Return keyword argument injections.""" + * cdef int index + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_9providers_12MethodCaller_6kwargs_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_19dependency_injector_9providers_12MethodCaller_6kwargs_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_19dependency_injector_9providers_12MethodCaller_6kwargs___get__(((struct __pyx_obj_19dependency_injector_9providers_MethodCaller *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_6kwargs___get__(struct __pyx_obj_19dependency_injector_9providers_MethodCaller *__pyx_v_self) { + int __pyx_v_index; + struct __pyx_obj_19dependency_injector_9providers_NamedInjection *__pyx_v_kwarg = 0; + PyObject *__pyx_v_kwargs = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "dependency_injector/providers.pyx":2869 + * cdef dict kwargs + * + * kwargs = dict() # <<<<<<<<<<<<<< + * for index in range(self.__kwargs_len): + * kwarg = self.__kwargs[index] + */ + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_kwargs = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "dependency_injector/providers.pyx":2870 + * + * kwargs = dict() + * for index in range(self.__kwargs_len): # <<<<<<<<<<<<<< + * kwarg = self.__kwargs[index] + * kwargs[kwarg.__name] = kwarg.__value + */ + __pyx_t_2 = __pyx_v_self->__pyx___kwargs_len; + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_index = __pyx_t_4; + + /* "dependency_injector/providers.pyx":2871 + * kwargs = dict() + * for index in range(self.__kwargs_len): + * kwarg = self.__kwargs[index] # <<<<<<<<<<<<<< + * kwargs[kwarg.__name] = kwarg.__value + * return kwargs + */ + if (unlikely(__pyx_v_self->__pyx___kwargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(1, 2871, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->__pyx___kwargs, __pyx_v_index, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2871, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_NamedInjection))))) __PYX_ERR(1, 2871, __pyx_L1_error) + __Pyx_XDECREF_SET(__pyx_v_kwarg, ((struct __pyx_obj_19dependency_injector_9providers_NamedInjection *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "dependency_injector/providers.pyx":2872 + * for index in range(self.__kwargs_len): + * kwarg = self.__kwargs[index] + * kwargs[kwarg.__name] = kwarg.__value # <<<<<<<<<<<<<< + * return kwargs + * + */ + __pyx_t_1 = __pyx_v_kwarg->__pyx_base.__pyx___value; + __Pyx_INCREF(__pyx_t_1); + if (unlikely(PyDict_SetItem(__pyx_v_kwargs, __pyx_v_kwarg->__pyx___name, __pyx_t_1) < 0)) __PYX_ERR(1, 2872, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + + /* "dependency_injector/providers.pyx":2873 + * kwarg = self.__kwargs[index] + * kwargs[kwarg.__name] = kwarg.__value + * return kwargs # <<<<<<<<<<<<<< + * + * def call(self, *args, **kwargs): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_kwargs); + __pyx_r = __pyx_v_kwargs; + goto __pyx_L0; + + /* "dependency_injector/providers.pyx":2863 + * + * @property + * def kwargs(self): # <<<<<<<<<<<<<< + * """Return keyword argument injections.""" + * cdef int index + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("dependency_injector.providers.MethodCaller.kwargs.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_kwarg); + __Pyx_XDECREF(__pyx_v_kwargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "dependency_injector/providers.pyx":2875 + * return kwargs * * def call(self, *args, **kwargs): # <<<<<<<<<<<<<< * return MethodCaller(self, *args, **kwargs) @@ -52603,7 +53909,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_10call int __pyx_clineno = 0; __Pyx_RefNannySetupContext("call", 0); - /* "dependency_injector/providers.pyx":2791 + /* "dependency_injector/providers.pyx":2876 * * def call(self, *args, **kwargs): * return MethodCaller(self, *args, **kwargs) # <<<<<<<<<<<<<< @@ -52611,23 +53917,23 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_10call * cpdef object _provide(self, tuple args, dict kwargs): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2791, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); - __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_v_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2791, __pyx_L1_error) + __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_v_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_MethodCaller), __pyx_t_2, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2791, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_MethodCaller), __pyx_t_2, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2790 - * return ItemGetter(self, item) + /* "dependency_injector/providers.pyx":2875 + * return kwargs * * def call(self, *args, **kwargs): # <<<<<<<<<<<<<< * return MethodCaller(self, *args, **kwargs) @@ -52646,7 +53952,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_10call return __pyx_r; } -/* "dependency_injector/providers.pyx":2793 +/* "dependency_injector/providers.pyx":2878 * return MethodCaller(self, *args, **kwargs) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -52678,7 +53984,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_12MethodCaller__provid if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2793, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_provide); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_19dependency_injector_9providers_12MethodCaller_13_provide)) { __Pyx_XDECREF(__pyx_r); @@ -52698,7 +54004,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_12MethodCaller__provid #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2793, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2878, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -52706,13 +54012,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_12MethodCaller__provid #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_args, __pyx_v_kwargs}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2793, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2878, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2793, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -52723,7 +54029,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_12MethodCaller__provid __Pyx_INCREF(__pyx_v_kwargs); __Pyx_GIVEREF(__pyx_v_kwargs); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_kwargs); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2793, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -52746,7 +54052,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_12MethodCaller__provid #endif } - /* "dependency_injector/providers.pyx":2794 + /* "dependency_injector/providers.pyx":2879 * * cpdef object _provide(self, tuple args, dict kwargs): * call = self.__provider() # <<<<<<<<<<<<<< @@ -52766,13 +54072,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_12MethodCaller__provid } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2794, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_call = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2795 + /* "dependency_injector/providers.pyx":2880 * cpdef object _provide(self, tuple args, dict kwargs): * call = self.__provider() * return __call( # <<<<<<<<<<<<<< @@ -52781,7 +54087,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_12MethodCaller__provid */ __Pyx_XDECREF(__pyx_r); - /* "dependency_injector/providers.pyx":2798 + /* "dependency_injector/providers.pyx":2883 * call, * args, * self.__args, # <<<<<<<<<<<<<< @@ -52791,7 +54097,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_12MethodCaller__provid __pyx_t_1 = __pyx_v_self->__pyx___args; __Pyx_INCREF(__pyx_t_1); - /* "dependency_injector/providers.pyx":2801 + /* "dependency_injector/providers.pyx":2886 * self.__args_len, * kwargs, * self.__kwargs, # <<<<<<<<<<<<<< @@ -52801,14 +54107,14 @@ static PyObject *__pyx_f_19dependency_injector_9providers_12MethodCaller__provid __pyx_t_2 = __pyx_v_self->__pyx___kwargs; __Pyx_INCREF(__pyx_t_2); - /* "dependency_injector/providers.pyx":2795 + /* "dependency_injector/providers.pyx":2880 * cpdef object _provide(self, tuple args, dict kwargs): * call = self.__provider() * return __call( # <<<<<<<<<<<<<< * call, * args, */ - __pyx_t_3 = __pyx_f_19dependency_injector_9providers___call(__pyx_v_call, __pyx_v_args, ((PyObject*)__pyx_t_1), __pyx_v_self->__pyx___args_len, __pyx_v_kwargs, ((PyObject*)__pyx_t_2), __pyx_v_self->__pyx___kwargs_len); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2795, __pyx_L1_error) + __pyx_t_3 = __pyx_f_19dependency_injector_9providers___call(__pyx_v_call, __pyx_v_args, ((PyObject*)__pyx_t_1), __pyx_v_self->__pyx___args_len, __pyx_v_kwargs, ((PyObject*)__pyx_t_2), __pyx_v_self->__pyx___kwargs_len); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -52816,7 +54122,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_12MethodCaller__provid __pyx_t_3 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2793 + /* "dependency_injector/providers.pyx":2878 * return MethodCaller(self, *args, **kwargs) * * cpdef object _provide(self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -52874,11 +54180,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_12MethodCaller_13_pro case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 2793, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, 1); __PYX_ERR(1, 2878, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 2793, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_provide") < 0)) __PYX_ERR(1, 2878, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -52891,14 +54197,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_12MethodCaller_13_pro } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2793, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_provide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2878, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.MethodCaller._provide", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2793, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2793, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2878, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2878, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_12MethodCaller_12_provide(((struct __pyx_obj_19dependency_injector_9providers_MethodCaller *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs); /* function exit code */ @@ -52919,7 +54225,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12MethodCaller_12_pro int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_provide", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_12MethodCaller__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2793, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_12MethodCaller__provide(__pyx_v_self, __pyx_v_args, __pyx_v_kwargs, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -53593,7 +54899,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_9Injection_2__setstat return __pyx_r; } -/* "dependency_injector/providers.pyx":2813 +/* "dependency_injector/providers.pyx":2898 * """Positional injection class.""" * * def __init__(self, value): # <<<<<<<<<<<<<< @@ -53634,7 +54940,7 @@ static int __pyx_pw_19dependency_injector_9providers_19PositionalInjection_1__in else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 2813, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 2898, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; @@ -53645,7 +54951,7 @@ static int __pyx_pw_19dependency_injector_9providers_19PositionalInjection_1__in } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2813, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2898, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.PositionalInjection.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -53671,7 +54977,7 @@ static int __pyx_pf_19dependency_injector_9providers_19PositionalInjection___ini int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":2815 + /* "dependency_injector/providers.pyx":2900 * def __init__(self, value): * """Initializer.""" * self.__value = value # <<<<<<<<<<<<<< @@ -53684,7 +54990,7 @@ static int __pyx_pf_19dependency_injector_9providers_19PositionalInjection___ini __Pyx_DECREF(__pyx_v_self->__pyx_base.__pyx___value); __pyx_v_self->__pyx_base.__pyx___value = __pyx_v_value; - /* "dependency_injector/providers.pyx":2816 + /* "dependency_injector/providers.pyx":2901 * """Initializer.""" * self.__value = value * self.__is_provider = is_provider(value) # <<<<<<<<<<<<<< @@ -53693,7 +54999,7 @@ static int __pyx_pf_19dependency_injector_9providers_19PositionalInjection___ini */ __pyx_v_self->__pyx_base.__pyx___is_provider = ((int)__pyx_f_19dependency_injector_9providers_is_provider(__pyx_v_value, 0)); - /* "dependency_injector/providers.pyx":2817 + /* "dependency_injector/providers.pyx":2902 * self.__value = value * self.__is_provider = is_provider(value) * self.__is_delegated = is_delegated(value) # <<<<<<<<<<<<<< @@ -53702,7 +55008,7 @@ static int __pyx_pf_19dependency_injector_9providers_19PositionalInjection___ini */ __pyx_v_self->__pyx_base.__pyx___is_delegated = ((int)__pyx_f_19dependency_injector_9providers_is_delegated(__pyx_v_value, 0)); - /* "dependency_injector/providers.pyx":2818 + /* "dependency_injector/providers.pyx":2903 * self.__is_provider = is_provider(value) * self.__is_delegated = is_delegated(value) * self.__call = (self.__is_provider == 1 and # <<<<<<<<<<<<<< @@ -53716,7 +55022,7 @@ static int __pyx_pf_19dependency_injector_9providers_19PositionalInjection___ini goto __pyx_L3_bool_binop_done; } - /* "dependency_injector/providers.pyx":2819 + /* "dependency_injector/providers.pyx":2904 * self.__is_delegated = is_delegated(value) * self.__call = (self.__is_provider == 1 and * self.__is_delegated == 0) # <<<<<<<<<<<<<< @@ -53727,7 +55033,7 @@ static int __pyx_pf_19dependency_injector_9providers_19PositionalInjection___ini __pyx_t_1 = __pyx_t_2; __pyx_L3_bool_binop_done:; - /* "dependency_injector/providers.pyx":2818 + /* "dependency_injector/providers.pyx":2903 * self.__is_provider = is_provider(value) * self.__is_delegated = is_delegated(value) * self.__call = (self.__is_provider == 1 and # <<<<<<<<<<<<<< @@ -53736,14 +55042,14 @@ static int __pyx_pf_19dependency_injector_9providers_19PositionalInjection___ini */ __pyx_v_self->__pyx_base.__pyx___call = ((int)__pyx_t_1); - /* "dependency_injector/providers.pyx":2820 + /* "dependency_injector/providers.pyx":2905 * self.__call = (self.__is_provider == 1 and * self.__is_delegated == 0) * super(PositionalInjection, self).__init__() # <<<<<<<<<<<<<< * * def __deepcopy__(self, memo): */ - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2820, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_PositionalInjection)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_PositionalInjection)); @@ -53751,10 +55057,10 @@ static int __pyx_pf_19dependency_injector_9providers_19PositionalInjection___ini __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2820, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2820, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; @@ -53769,12 +55075,12 @@ static int __pyx_pf_19dependency_injector_9providers_19PositionalInjection___ini } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2820, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":2813 + /* "dependency_injector/providers.pyx":2898 * """Positional injection class.""" * * def __init__(self, value): # <<<<<<<<<<<<<< @@ -53796,7 +55102,7 @@ static int __pyx_pf_19dependency_injector_9providers_19PositionalInjection___ini return __pyx_r; } -/* "dependency_injector/providers.pyx":2822 +/* "dependency_injector/providers.pyx":2907 * super(PositionalInjection, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -53834,16 +55140,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19PositionalInjection int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__deepcopy__", 0); - /* "dependency_injector/providers.pyx":2824 + /* "dependency_injector/providers.pyx":2909 * def __deepcopy__(self, memo): * """Create and return full copy of provider.""" * copied = memo.get(id(self)) # <<<<<<<<<<<<<< * if copied is not None: * return copied */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2824, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2824, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -53858,13 +55164,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19PositionalInjection __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2824, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_copied = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2825 + /* "dependency_injector/providers.pyx":2910 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -53875,7 +55181,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19PositionalInjection __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":2826 + /* "dependency_injector/providers.pyx":2911 * copied = memo.get(id(self)) * if copied is not None: * return copied # <<<<<<<<<<<<<< @@ -53887,7 +55193,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19PositionalInjection __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2825 + /* "dependency_injector/providers.pyx":2910 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -53896,7 +55202,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19PositionalInjection */ } - /* "dependency_injector/providers.pyx":2827 + /* "dependency_injector/providers.pyx":2912 * if copied is not None: * return copied * return self.__class__(deepcopy(self.__value, memo)) # <<<<<<<<<<<<<< @@ -53904,14 +55210,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19PositionalInjection * def get_value(self): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2827, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __pyx_v_self->__pyx_base.__pyx___value; __Pyx_INCREF(__pyx_t_3); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2827, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2912, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2827, __pyx_L1_error) + __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -53927,14 +55233,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19PositionalInjection __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2827, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2822 + /* "dependency_injector/providers.pyx":2907 * super(PositionalInjection, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -53957,7 +55263,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19PositionalInjection return __pyx_r; } -/* "dependency_injector/providers.pyx":2829 +/* "dependency_injector/providers.pyx":2914 * return self.__class__(deepcopy(self.__value, memo)) * * def get_value(self): # <<<<<<<<<<<<<< @@ -53988,7 +55294,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19PositionalInjection int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_value", 0); - /* "dependency_injector/providers.pyx":2831 + /* "dependency_injector/providers.pyx":2916 * def get_value(self): * """Return injection value.""" * return __get_value(self) # <<<<<<<<<<<<<< @@ -53996,13 +55302,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19PositionalInjection * def get_original_value(self): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers___get_value(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2831, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers___get_value(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2829 + /* "dependency_injector/providers.pyx":2914 * return self.__class__(deepcopy(self.__value, memo)) * * def get_value(self): # <<<<<<<<<<<<<< @@ -54021,7 +55327,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19PositionalInjection return __pyx_r; } -/* "dependency_injector/providers.pyx":2833 +/* "dependency_injector/providers.pyx":2918 * return __get_value(self) * * def get_original_value(self): # <<<<<<<<<<<<<< @@ -54048,7 +55354,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19PositionalInjection __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_original_value", 0); - /* "dependency_injector/providers.pyx":2835 + /* "dependency_injector/providers.pyx":2920 * def get_original_value(self): * """Return original value.""" * return self.__value # <<<<<<<<<<<<<< @@ -54060,7 +55366,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19PositionalInjection __pyx_r = __pyx_v_self->__pyx_base.__pyx___value; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2833 + /* "dependency_injector/providers.pyx":2918 * return __get_value(self) * * def get_original_value(self): # <<<<<<<<<<<<<< @@ -54385,7 +55691,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_19PositionalInjection return __pyx_r; } -/* "dependency_injector/providers.pyx":2841 +/* "dependency_injector/providers.pyx":2926 * """Keyword injection class.""" * * def __init__(self, name, value): # <<<<<<<<<<<<<< @@ -54431,11 +55737,11 @@ static int __pyx_pw_19dependency_injector_9providers_14NamedInjection_1__init__( case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(1, 2841, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(1, 2926, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 2841, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 2926, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -54448,7 +55754,7 @@ static int __pyx_pw_19dependency_injector_9providers_14NamedInjection_1__init__( } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2841, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2926, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.NamedInjection.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -54474,7 +55780,7 @@ static int __pyx_pf_19dependency_injector_9providers_14NamedInjection___init__(s int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "dependency_injector/providers.pyx":2843 + /* "dependency_injector/providers.pyx":2928 * def __init__(self, name, value): * """Initializer.""" * self.__name = name # <<<<<<<<<<<<<< @@ -54487,7 +55793,7 @@ static int __pyx_pf_19dependency_injector_9providers_14NamedInjection___init__(s __Pyx_DECREF(__pyx_v_self->__pyx___name); __pyx_v_self->__pyx___name = __pyx_v_name; - /* "dependency_injector/providers.pyx":2844 + /* "dependency_injector/providers.pyx":2929 * """Initializer.""" * self.__name = name * self.__value = value # <<<<<<<<<<<<<< @@ -54500,7 +55806,7 @@ static int __pyx_pf_19dependency_injector_9providers_14NamedInjection___init__(s __Pyx_DECREF(__pyx_v_self->__pyx_base.__pyx___value); __pyx_v_self->__pyx_base.__pyx___value = __pyx_v_value; - /* "dependency_injector/providers.pyx":2845 + /* "dependency_injector/providers.pyx":2930 * self.__name = name * self.__value = value * self.__is_provider = is_provider(value) # <<<<<<<<<<<<<< @@ -54509,7 +55815,7 @@ static int __pyx_pf_19dependency_injector_9providers_14NamedInjection___init__(s */ __pyx_v_self->__pyx_base.__pyx___is_provider = ((int)__pyx_f_19dependency_injector_9providers_is_provider(__pyx_v_value, 0)); - /* "dependency_injector/providers.pyx":2846 + /* "dependency_injector/providers.pyx":2931 * self.__value = value * self.__is_provider = is_provider(value) * self.__is_delegated = is_delegated(value) # <<<<<<<<<<<<<< @@ -54518,7 +55824,7 @@ static int __pyx_pf_19dependency_injector_9providers_14NamedInjection___init__(s */ __pyx_v_self->__pyx_base.__pyx___is_delegated = ((int)__pyx_f_19dependency_injector_9providers_is_delegated(__pyx_v_value, 0)); - /* "dependency_injector/providers.pyx":2847 + /* "dependency_injector/providers.pyx":2932 * self.__is_provider = is_provider(value) * self.__is_delegated = is_delegated(value) * self.__call = (self.__is_provider == 1 and # <<<<<<<<<<<<<< @@ -54532,7 +55838,7 @@ static int __pyx_pf_19dependency_injector_9providers_14NamedInjection___init__(s goto __pyx_L3_bool_binop_done; } - /* "dependency_injector/providers.pyx":2848 + /* "dependency_injector/providers.pyx":2933 * self.__is_delegated = is_delegated(value) * self.__call = (self.__is_provider == 1 and * self.__is_delegated == 0) # <<<<<<<<<<<<<< @@ -54543,7 +55849,7 @@ static int __pyx_pf_19dependency_injector_9providers_14NamedInjection___init__(s __pyx_t_1 = __pyx_t_2; __pyx_L3_bool_binop_done:; - /* "dependency_injector/providers.pyx":2847 + /* "dependency_injector/providers.pyx":2932 * self.__is_provider = is_provider(value) * self.__is_delegated = is_delegated(value) * self.__call = (self.__is_provider == 1 and # <<<<<<<<<<<<<< @@ -54552,14 +55858,14 @@ static int __pyx_pf_19dependency_injector_9providers_14NamedInjection___init__(s */ __pyx_v_self->__pyx_base.__pyx___call = ((int)__pyx_t_1); - /* "dependency_injector/providers.pyx":2849 + /* "dependency_injector/providers.pyx":2934 * self.__call = (self.__is_provider == 1 and * self.__is_delegated == 0) * super(NamedInjection, self).__init__() # <<<<<<<<<<<<<< * * def __deepcopy__(self, memo): */ - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2849, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_NamedInjection)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_19dependency_injector_9providers_NamedInjection)); @@ -54567,10 +55873,10 @@ static int __pyx_pf_19dependency_injector_9providers_14NamedInjection___init__(s __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_self)); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2849, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2849, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; @@ -54585,12 +55891,12 @@ static int __pyx_pf_19dependency_injector_9providers_14NamedInjection___init__(s } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2849, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":2841 + /* "dependency_injector/providers.pyx":2926 * """Keyword injection class.""" * * def __init__(self, name, value): # <<<<<<<<<<<<<< @@ -54612,7 +55918,7 @@ static int __pyx_pf_19dependency_injector_9providers_14NamedInjection___init__(s return __pyx_r; } -/* "dependency_injector/providers.pyx":2851 +/* "dependency_injector/providers.pyx":2936 * super(NamedInjection, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -54653,16 +55959,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_2__d int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__deepcopy__", 0); - /* "dependency_injector/providers.pyx":2853 + /* "dependency_injector/providers.pyx":2938 * def __deepcopy__(self, memo): * """Create and return full copy of provider.""" * copied = memo.get(id(self)) # <<<<<<<<<<<<<< * if copied is not None: * return copied */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2853, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_memo, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2853, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -54677,13 +55983,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_2__d __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2853, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_copied = __pyx_t_1; __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2854 + /* "dependency_injector/providers.pyx":2939 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -54694,7 +56000,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_2__d __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":2855 + /* "dependency_injector/providers.pyx":2940 * copied = memo.get(id(self)) * if copied is not None: * return copied # <<<<<<<<<<<<<< @@ -54706,7 +56012,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_2__d __pyx_r = __pyx_v_copied; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2854 + /* "dependency_injector/providers.pyx":2939 * """Create and return full copy of provider.""" * copied = memo.get(id(self)) * if copied is not None: # <<<<<<<<<<<<<< @@ -54715,7 +56021,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_2__d */ } - /* "dependency_injector/providers.pyx":2856 + /* "dependency_injector/providers.pyx":2941 * if copied is not None: * return copied * return self.__class__(deepcopy(self.__name, memo), # <<<<<<<<<<<<<< @@ -54723,18 +56029,18 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_2__d * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2856, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __pyx_v_self->__pyx___name; __Pyx_INCREF(__pyx_t_3); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2856, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2941, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2856, __pyx_L1_error) + __pyx_t_4 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":2857 + /* "dependency_injector/providers.pyx":2942 * return copied * return self.__class__(deepcopy(self.__name, memo), * deepcopy(self.__value, memo)) # <<<<<<<<<<<<<< @@ -54743,10 +56049,10 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_2__d */ __pyx_t_3 = __pyx_v_self->__pyx_base.__pyx___value; __Pyx_INCREF(__pyx_t_3); - if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2857, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_v_memo))||((__pyx_v_memo) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_memo)->tp_name), 0))) __PYX_ERR(1, 2942, __pyx_L1_error) __pyx_t_7.__pyx_n = 1; __pyx_t_7.memo = ((PyObject*)__pyx_v_memo); - __pyx_t_8 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2857, __pyx_L1_error) + __pyx_t_8 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_t_3, 0, &__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2942, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -54764,7 +56070,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_2__d #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_4, __pyx_t_8}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2856, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2941, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -54774,7 +56080,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_2__d #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_4, __pyx_t_8}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2856, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2941, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -54782,7 +56088,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_2__d } else #endif { - __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2856, __pyx_L1_error) + __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_3); __pyx_t_3 = NULL; @@ -54793,7 +56099,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_2__d PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_8); __pyx_t_4 = 0; __pyx_t_8 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2856, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } @@ -54802,7 +56108,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_2__d __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2851 + /* "dependency_injector/providers.pyx":2936 * super(NamedInjection, self).__init__() * * def __deepcopy__(self, memo): # <<<<<<<<<<<<<< @@ -54827,7 +56133,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_2__d return __pyx_r; } -/* "dependency_injector/providers.pyx":2859 +/* "dependency_injector/providers.pyx":2944 * deepcopy(self.__value, memo)) * * def get_name(self): # <<<<<<<<<<<<<< @@ -54858,7 +56164,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_4get int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_name", 0); - /* "dependency_injector/providers.pyx":2861 + /* "dependency_injector/providers.pyx":2946 * def get_name(self): * """Return injection value.""" * return __get_name(self) # <<<<<<<<<<<<<< @@ -54866,13 +56172,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_4get * def get_value(self): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers___get_name(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2861, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers___get_name(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2946, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2859 + /* "dependency_injector/providers.pyx":2944 * deepcopy(self.__value, memo)) * * def get_name(self): # <<<<<<<<<<<<<< @@ -54891,7 +56197,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_4get return __pyx_r; } -/* "dependency_injector/providers.pyx":2863 +/* "dependency_injector/providers.pyx":2948 * return __get_name(self) * * def get_value(self): # <<<<<<<<<<<<<< @@ -54922,7 +56228,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_6get int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_value", 0); - /* "dependency_injector/providers.pyx":2865 + /* "dependency_injector/providers.pyx":2950 * def get_value(self): * """Return injection value.""" * return __get_value(self) # <<<<<<<<<<<<<< @@ -54930,13 +56236,13 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_6get * def get_original_value(self): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers___get_value(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2865, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers___get_value(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2863 + /* "dependency_injector/providers.pyx":2948 * return __get_name(self) * * def get_value(self): # <<<<<<<<<<<<<< @@ -54955,7 +56261,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_6get return __pyx_r; } -/* "dependency_injector/providers.pyx":2867 +/* "dependency_injector/providers.pyx":2952 * return __get_value(self) * * def get_original_value(self): # <<<<<<<<<<<<<< @@ -54982,7 +56288,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_8get __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_original_value", 0); - /* "dependency_injector/providers.pyx":2869 + /* "dependency_injector/providers.pyx":2954 * def get_original_value(self): * """Return original value.""" * return self.__value # <<<<<<<<<<<<<< @@ -54994,7 +56300,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_8get __pyx_r = __pyx_v_self->__pyx_base.__pyx___value; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2867 + /* "dependency_injector/providers.pyx":2952 * return __get_value(self) * * def get_original_value(self): # <<<<<<<<<<<<<< @@ -55333,7 +56639,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14NamedInjection_12__ return __pyx_r; } -/* "dependency_injector/providers.pyx":2874 +/* "dependency_injector/providers.pyx":2959 * @cython.boundscheck(False) * @cython.wraparound(False) * cpdef tuple parse_positional_injections(tuple args): # <<<<<<<<<<<<<< @@ -55361,19 +56667,19 @@ static PyObject *__pyx_f_19dependency_injector_9providers_parse_positional_injec int __pyx_clineno = 0; __Pyx_RefNannySetupContext("parse_positional_injections", 0); - /* "dependency_injector/providers.pyx":2876 + /* "dependency_injector/providers.pyx":2961 * cpdef tuple parse_positional_injections(tuple args): * """Parse positional injections.""" * cdef list injections = list() # <<<<<<<<<<<<<< * cdef int args_len = len(args) * */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2876, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_injections = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2877 + /* "dependency_injector/providers.pyx":2962 * """Parse positional injections.""" * cdef list injections = list() * cdef int args_len = len(args) # <<<<<<<<<<<<<< @@ -55382,12 +56688,12 @@ static PyObject *__pyx_f_19dependency_injector_9providers_parse_positional_injec */ if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(1, 2877, __pyx_L1_error) + __PYX_ERR(1, 2962, __pyx_L1_error) } - __pyx_t_2 = PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2877, __pyx_L1_error) + __pyx_t_2 = PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2962, __pyx_L1_error) __pyx_v_args_len = __pyx_t_2; - /* "dependency_injector/providers.pyx":2883 + /* "dependency_injector/providers.pyx":2968 * cdef PositionalInjection injection * * for index in range(args_len): # <<<<<<<<<<<<<< @@ -55399,7 +56705,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_parse_positional_injec for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_index = __pyx_t_5; - /* "dependency_injector/providers.pyx":2884 + /* "dependency_injector/providers.pyx":2969 * * for index in range(args_len): * arg = args[index] # <<<<<<<<<<<<<< @@ -55408,36 +56714,36 @@ static PyObject *__pyx_f_19dependency_injector_9providers_parse_positional_injec */ if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 2884, __pyx_L1_error) + __PYX_ERR(1, 2969, __pyx_L1_error) } __pyx_t_1 = PyTuple_GET_ITEM(__pyx_v_args, __pyx_v_index); __Pyx_INCREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2885 + /* "dependency_injector/providers.pyx":2970 * for index in range(args_len): * arg = args[index] * injection = PositionalInjection(arg) # <<<<<<<<<<<<<< * injections.append(injection) * */ - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_PositionalInjection), __pyx_v_arg); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2885, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_19dependency_injector_9providers_PositionalInjection), __pyx_v_arg); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_injection, ((struct __pyx_obj_19dependency_injector_9providers_PositionalInjection *)__pyx_t_1)); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2886 + /* "dependency_injector/providers.pyx":2971 * arg = args[index] * injection = PositionalInjection(arg) * injections.append(injection) # <<<<<<<<<<<<<< * * return tuple(injections) */ - __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_injections, ((PyObject *)__pyx_v_injection)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 2886, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_injections, ((PyObject *)__pyx_v_injection)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 2971, __pyx_L1_error) } - /* "dependency_injector/providers.pyx":2888 + /* "dependency_injector/providers.pyx":2973 * injections.append(injection) * * return tuple(injections) # <<<<<<<<<<<<<< @@ -55445,13 +56751,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_parse_positional_injec * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyList_AsTuple(__pyx_v_injections); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2888, __pyx_L1_error) + __pyx_t_1 = PyList_AsTuple(__pyx_v_injections); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2874 + /* "dependency_injector/providers.pyx":2959 * @cython.boundscheck(False) * @cython.wraparound(False) * cpdef tuple parse_positional_injections(tuple args): # <<<<<<<<<<<<<< @@ -55483,7 +56789,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_7parse_positional_inj PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("parse_positional_injections (wrapper)", 0); - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2874, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(1, 2959, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_6parse_positional_injections(__pyx_self, ((PyObject*)__pyx_v_args)); /* function exit code */ @@ -55504,7 +56810,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6parse_positional_inj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("parse_positional_injections", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_positional_injections(__pyx_v_args, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2874, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_positional_injections(__pyx_v_args, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -55521,7 +56827,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_6parse_positional_inj return __pyx_r; } -/* "dependency_injector/providers.pyx":2893 +/* "dependency_injector/providers.pyx":2978 * @cython.boundscheck(False) * @cython.wraparound(False) * cpdef tuple parse_named_injections(dict kwargs): # <<<<<<<<<<<<<< @@ -55551,19 +56857,19 @@ static PyObject *__pyx_f_19dependency_injector_9providers_parse_named_injections int __pyx_clineno = 0; __Pyx_RefNannySetupContext("parse_named_injections", 0); - /* "dependency_injector/providers.pyx":2895 + /* "dependency_injector/providers.pyx":2980 * cpdef tuple parse_named_injections(dict kwargs): * """Parse named injections.""" * cdef list injections = list() # <<<<<<<<<<<<<< * * cdef object name */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2895, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_injections = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2901 + /* "dependency_injector/providers.pyx":2986 * cdef NamedInjection injection * * for name, arg in kwargs.items(): # <<<<<<<<<<<<<< @@ -55572,17 +56878,17 @@ static PyObject *__pyx_f_19dependency_injector_9providers_parse_named_injections */ if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); - __PYX_ERR(1, 2901, __pyx_L1_error) + __PYX_ERR(1, 2986, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyDict_Items(__pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2901, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_Items(__pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { - __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2901, __pyx_L1_error) + __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2901, __pyx_L1_error) + __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2986, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -55590,17 +56896,17 @@ static PyObject *__pyx_f_19dependency_injector_9providers_parse_named_injections if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 2901, __pyx_L1_error) + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 2986, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2901, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 2901, __pyx_L1_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 2986, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2901, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } @@ -55610,7 +56916,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_parse_named_injections PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(1, 2901, __pyx_L1_error) + else __PYX_ERR(1, 2986, __pyx_L1_error) } break; } @@ -55622,7 +56928,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_parse_named_injections if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(1, 2901, __pyx_L1_error) + __PYX_ERR(1, 2986, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -55635,15 +56941,15 @@ static PyObject *__pyx_f_19dependency_injector_9providers_parse_named_injections __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); #else - __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2901, __pyx_L1_error) + __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2901, __pyx_L1_error) + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2901, __pyx_L1_error) + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; @@ -55651,7 +56957,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_parse_named_injections __Pyx_GOTREF(__pyx_t_5); index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(1, 2901, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(1, 2986, __pyx_L1_error) __pyx_t_8 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L6_unpacking_done; @@ -55659,7 +56965,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_parse_named_injections __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(1, 2901, __pyx_L1_error) + __PYX_ERR(1, 2986, __pyx_L1_error) __pyx_L6_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_5); @@ -55667,14 +56973,14 @@ static PyObject *__pyx_f_19dependency_injector_9providers_parse_named_injections __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_6); __pyx_t_6 = 0; - /* "dependency_injector/providers.pyx":2902 + /* "dependency_injector/providers.pyx":2987 * * for name, arg in kwargs.items(): * injection = NamedInjection(name, arg) # <<<<<<<<<<<<<< * injections.append(injection) * */ - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2902, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); @@ -55682,22 +56988,22 @@ static PyObject *__pyx_f_19dependency_injector_9providers_parse_named_injections __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_arg); - __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_NamedInjection), __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2902, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_19dependency_injector_9providers_NamedInjection), __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_injection, ((struct __pyx_obj_19dependency_injector_9providers_NamedInjection *)__pyx_t_6)); __pyx_t_6 = 0; - /* "dependency_injector/providers.pyx":2903 + /* "dependency_injector/providers.pyx":2988 * for name, arg in kwargs.items(): * injection = NamedInjection(name, arg) * injections.append(injection) # <<<<<<<<<<<<<< * * return tuple(injections) */ - __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_injections, ((PyObject *)__pyx_v_injection)); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 2903, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_injections, ((PyObject *)__pyx_v_injection)); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 2988, __pyx_L1_error) - /* "dependency_injector/providers.pyx":2901 + /* "dependency_injector/providers.pyx":2986 * cdef NamedInjection injection * * for name, arg in kwargs.items(): # <<<<<<<<<<<<<< @@ -55707,7 +57013,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_parse_named_injections } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":2905 + /* "dependency_injector/providers.pyx":2990 * injections.append(injection) * * return tuple(injections) # <<<<<<<<<<<<<< @@ -55715,13 +57021,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_parse_named_injections * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyList_AsTuple(__pyx_v_injections); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2905, __pyx_L1_error) + __pyx_t_2 = PyList_AsTuple(__pyx_v_injections); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2893 + /* "dependency_injector/providers.pyx":2978 * @cython.boundscheck(False) * @cython.wraparound(False) * cpdef tuple parse_named_injections(dict kwargs): # <<<<<<<<<<<<<< @@ -55758,7 +57064,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_9parse_named_injectio PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("parse_named_injections (wrapper)", 0); - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2893, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_kwargs), (&PyDict_Type), 1, "kwargs", 1))) __PYX_ERR(1, 2978, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_8parse_named_injections(__pyx_self, ((PyObject*)__pyx_v_kwargs)); /* function exit code */ @@ -55779,7 +57085,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8parse_named_injectio int __pyx_clineno = 0; __Pyx_RefNannySetupContext("parse_named_injections", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_named_injections(__pyx_v_kwargs, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2893, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_parse_named_injections(__pyx_v_kwargs, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -55796,7 +57102,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_8parse_named_injectio return __pyx_r; } -/* "dependency_injector/providers.pyx":2908 +/* "dependency_injector/providers.pyx":2993 * * * cpdef bint is_provider(object instance): # <<<<<<<<<<<<<< @@ -55817,7 +57123,7 @@ static int __pyx_f_19dependency_injector_9providers_is_provider(PyObject *__pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("is_provider", 0); - /* "dependency_injector/providers.pyx":2916 + /* "dependency_injector/providers.pyx":3001 * :rtype: bool * """ * return (not isinstance(instance, CLASS_TYPES) and # <<<<<<<<<<<<<< @@ -55826,7 +57132,7 @@ static int __pyx_f_19dependency_injector_9providers_is_provider(PyObject *__pyx_ */ __pyx_t_2 = __pyx_v_19dependency_injector_9providers_CLASS_TYPES; __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = PyObject_IsInstance(__pyx_v_instance, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 2916, __pyx_L1_error) + __pyx_t_3 = PyObject_IsInstance(__pyx_v_instance, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 3001, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = ((!(__pyx_t_3 != 0)) != 0); if (__pyx_t_4) { @@ -55835,14 +57141,14 @@ static int __pyx_f_19dependency_injector_9providers_is_provider(PyObject *__pyx_ goto __pyx_L3_bool_binop_done; } - /* "dependency_injector/providers.pyx":2917 + /* "dependency_injector/providers.pyx":3002 * """ * return (not isinstance(instance, CLASS_TYPES) and * getattr(instance, '__IS_PROVIDER__', False) is True) # <<<<<<<<<<<<<< * * */ - __pyx_t_2 = __Pyx_GetAttr3(__pyx_v_instance, __pyx_n_s_IS_PROVIDER, Py_False); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2917, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetAttr3(__pyx_v_instance, __pyx_n_s_IS_PROVIDER, Py_False); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__pyx_t_2 == Py_True); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -55852,7 +57158,7 @@ static int __pyx_f_19dependency_injector_9providers_is_provider(PyObject *__pyx_ __pyx_r = __pyx_t_1; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2908 + /* "dependency_injector/providers.pyx":2993 * * * cpdef bint is_provider(object instance): # <<<<<<<<<<<<<< @@ -55893,7 +57199,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10is_provider(CYTHON_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("is_provider", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_f_19dependency_injector_9providers_is_provider(__pyx_v_instance, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2908, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_f_19dependency_injector_9providers_is_provider(__pyx_v_instance, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -55910,7 +57216,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10is_provider(CYTHON_ return __pyx_r; } -/* "dependency_injector/providers.pyx":2920 +/* "dependency_injector/providers.pyx":3005 * * * cpdef object ensure_is_provider(object instance): # <<<<<<<<<<<<<< @@ -55934,7 +57240,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_ensure_is_provider(PyO int __pyx_clineno = 0; __Pyx_RefNannySetupContext("ensure_is_provider", 0); - /* "dependency_injector/providers.pyx":2931 + /* "dependency_injector/providers.pyx":3016 * :rtype: :py:class:`dependency_injector.providers.Provider` * """ * if not is_provider(instance): # <<<<<<<<<<<<<< @@ -55944,26 +57250,26 @@ static PyObject *__pyx_f_19dependency_injector_9providers_ensure_is_provider(PyO __pyx_t_1 = ((!(__pyx_f_19dependency_injector_9providers_is_provider(__pyx_v_instance, 0) != 0)) != 0); if (unlikely(__pyx_t_1)) { - /* "dependency_injector/providers.pyx":2932 + /* "dependency_injector/providers.pyx":3017 * """ * if not is_provider(instance): * raise Error('Expected provider instance, ' # <<<<<<<<<<<<<< * 'got {0}'.format(str(instance))) * return instance */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Error); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2932, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Error); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - /* "dependency_injector/providers.pyx":2933 + /* "dependency_injector/providers.pyx":3018 * if not is_provider(instance): * raise Error('Expected provider instance, ' * 'got {0}'.format(str(instance))) # <<<<<<<<<<<<<< * return instance * */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Expected_provider_instance_got_0, __pyx_n_s_format); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2933, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Expected_provider_instance_got_0, __pyx_n_s_format); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_v_instance); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2933, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_v_instance); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { @@ -55978,7 +57284,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_ensure_is_provider(PyO __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2933, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; @@ -55994,14 +57300,14 @@ static PyObject *__pyx_f_19dependency_injector_9providers_ensure_is_provider(PyO __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2932, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(1, 2932, __pyx_L1_error) + __PYX_ERR(1, 3017, __pyx_L1_error) - /* "dependency_injector/providers.pyx":2931 + /* "dependency_injector/providers.pyx":3016 * :rtype: :py:class:`dependency_injector.providers.Provider` * """ * if not is_provider(instance): # <<<<<<<<<<<<<< @@ -56010,7 +57316,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_ensure_is_provider(PyO */ } - /* "dependency_injector/providers.pyx":2934 + /* "dependency_injector/providers.pyx":3019 * raise Error('Expected provider instance, ' * 'got {0}'.format(str(instance))) * return instance # <<<<<<<<<<<<<< @@ -56022,7 +57328,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_ensure_is_provider(PyO __pyx_r = __pyx_v_instance; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2920 + /* "dependency_injector/providers.pyx":3005 * * * cpdef object ensure_is_provider(object instance): # <<<<<<<<<<<<<< @@ -56069,7 +57375,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12ensure_is_provider( int __pyx_clineno = 0; __Pyx_RefNannySetupContext("ensure_is_provider", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_ensure_is_provider(__pyx_v_instance, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2920, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_ensure_is_provider(__pyx_v_instance, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -56086,7 +57392,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_12ensure_is_provider( return __pyx_r; } -/* "dependency_injector/providers.pyx":2937 +/* "dependency_injector/providers.pyx":3022 * * * cpdef bint is_delegated(object instance): # <<<<<<<<<<<<<< @@ -56107,7 +57413,7 @@ static int __pyx_f_19dependency_injector_9providers_is_delegated(PyObject *__pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("is_delegated", 0); - /* "dependency_injector/providers.pyx":2945 + /* "dependency_injector/providers.pyx":3030 * :rtype: bool * """ * return (not isinstance(instance, CLASS_TYPES) and # <<<<<<<<<<<<<< @@ -56116,7 +57422,7 @@ static int __pyx_f_19dependency_injector_9providers_is_delegated(PyObject *__pyx */ __pyx_t_2 = __pyx_v_19dependency_injector_9providers_CLASS_TYPES; __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = PyObject_IsInstance(__pyx_v_instance, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 2945, __pyx_L1_error) + __pyx_t_3 = PyObject_IsInstance(__pyx_v_instance, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 3030, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = ((!(__pyx_t_3 != 0)) != 0); if (__pyx_t_4) { @@ -56125,14 +57431,14 @@ static int __pyx_f_19dependency_injector_9providers_is_delegated(PyObject *__pyx goto __pyx_L3_bool_binop_done; } - /* "dependency_injector/providers.pyx":2946 + /* "dependency_injector/providers.pyx":3031 * """ * return (not isinstance(instance, CLASS_TYPES) and * getattr(instance, '__IS_DELEGATED__', False) is True) # <<<<<<<<<<<<<< * * */ - __pyx_t_2 = __Pyx_GetAttr3(__pyx_v_instance, __pyx_n_s_IS_DELEGATED, Py_False); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2946, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetAttr3(__pyx_v_instance, __pyx_n_s_IS_DELEGATED, Py_False); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__pyx_t_2 == Py_True); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -56142,7 +57448,7 @@ static int __pyx_f_19dependency_injector_9providers_is_delegated(PyObject *__pyx __pyx_r = __pyx_t_1; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2937 + /* "dependency_injector/providers.pyx":3022 * * * cpdef bint is_delegated(object instance): # <<<<<<<<<<<<<< @@ -56183,7 +57489,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14is_delegated(CYTHON int __pyx_clineno = 0; __Pyx_RefNannySetupContext("is_delegated", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_f_19dependency_injector_9providers_is_delegated(__pyx_v_instance, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2937, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_f_19dependency_injector_9providers_is_delegated(__pyx_v_instance, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -56200,7 +57506,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_14is_delegated(CYTHON return __pyx_r; } -/* "dependency_injector/providers.pyx":2949 +/* "dependency_injector/providers.pyx":3034 * * * cpdef str represent_provider(object provider, object provides): # <<<<<<<<<<<<<< @@ -56223,7 +57529,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_represent_provider(PyO int __pyx_clineno = 0; __Pyx_RefNannySetupContext("represent_provider", 0); - /* "dependency_injector/providers.pyx":2961 + /* "dependency_injector/providers.pyx":3046 * :rtype: str * """ * return '<{provider}({provides}) at {address}>'.format( # <<<<<<<<<<<<<< @@ -56231,45 +57537,45 @@ static PyObject *__pyx_f_19dependency_injector_9providers_represent_provider(PyO * provider.__class__.__name__)), */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_provider_provides_at_address, __pyx_n_s_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2961, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_provider_provides_at_address, __pyx_n_s_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - /* "dependency_injector/providers.pyx":2962 + /* "dependency_injector/providers.pyx":3047 * """ * return '<{provider}({provides}) at {address}>'.format( * provider='.'.join((provider.__class__.__module__, # <<<<<<<<<<<<<< * provider.__class__.__name__)), * provides=repr(provides) if provides is not None else '', */ - __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2962, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_provider, __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2962, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_provider, __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_module); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2962, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_module); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":2963 + /* "dependency_injector/providers.pyx":3048 * return '<{provider}({provides}) at {address}>'.format( * provider='.'.join((provider.__class__.__module__, * provider.__class__.__name__)), # <<<<<<<<<<<<<< * provides=repr(provides) if provides is not None else '', * address=hex(id(provider))) */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_provider, __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2963, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_provider, __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2963, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":2962 + /* "dependency_injector/providers.pyx":3047 * """ * return '<{provider}({provides}) at {address}>'.format( * provider='.'.join((provider.__class__.__module__, # <<<<<<<<<<<<<< * provider.__class__.__name__)), * provides=repr(provides) if provides is not None else '', */ - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2962, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); @@ -56277,13 +57583,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_represent_provider(PyO PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5); __pyx_t_4 = 0; __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyString_Join(__pyx_kp_s__4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2962, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyString_Join(__pyx_kp_s__5, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_provider, __pyx_t_5) < 0) __PYX_ERR(1, 2962, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_provider, __pyx_t_5) < 0) __PYX_ERR(1, 3047, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/providers.pyx":2964 + /* "dependency_injector/providers.pyx":3049 * provider='.'.join((provider.__class__.__module__, * provider.__class__.__name__)), * provides=repr(provides) if provides is not None else '', # <<<<<<<<<<<<<< @@ -56292,49 +57598,49 @@ static PyObject *__pyx_f_19dependency_injector_9providers_represent_provider(PyO */ __pyx_t_6 = (__pyx_v_provides != Py_None); if ((__pyx_t_6 != 0)) { - __pyx_t_3 = PyObject_Repr(__pyx_v_provides); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2964, __pyx_L1_error) + __pyx_t_3 = PyObject_Repr(__pyx_v_provides); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __pyx_t_3; __pyx_t_3 = 0; } else { - __Pyx_INCREF(__pyx_kp_s__12); - __pyx_t_5 = __pyx_kp_s__12; + __Pyx_INCREF(__pyx_kp_s__13); + __pyx_t_5 = __pyx_kp_s__13; } - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_provides, __pyx_t_5) < 0) __PYX_ERR(1, 2962, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_provides, __pyx_t_5) < 0) __PYX_ERR(1, 3047, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/providers.pyx":2965 + /* "dependency_injector/providers.pyx":3050 * provider.__class__.__name__)), * provides=repr(provides) if provides is not None else '', * address=hex(id(provider))) # <<<<<<<<<<<<<< * * */ - __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_v_provider); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2965, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_v_provider); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2965, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_hex, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_address, __pyx_t_3) < 0) __PYX_ERR(1, 2962, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_address, __pyx_t_3) < 0) __PYX_ERR(1, 3047, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":2961 + /* "dependency_injector/providers.pyx":3046 * :rtype: str * """ * return '<{provider}({provides}) at {address}>'.format( # <<<<<<<<<<<<<< * provider='.'.join((provider.__class__.__module__, * provider.__class__.__name__)), */ - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2961, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(PyString_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(1, 2961, __pyx_L1_error) + if (!(likely(PyString_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(1, 3046, __pyx_L1_error) __pyx_r = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2949 + /* "dependency_injector/providers.pyx":3034 * * * cpdef str represent_provider(object provider, object provides): # <<<<<<<<<<<<<< @@ -56392,11 +57698,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_17represent_provider( case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_provides)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("represent_provider", 1, 2, 2, 1); __PYX_ERR(1, 2949, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("represent_provider", 1, 2, 2, 1); __PYX_ERR(1, 3034, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "represent_provider") < 0)) __PYX_ERR(1, 2949, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "represent_provider") < 0)) __PYX_ERR(1, 3034, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -56409,7 +57715,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_17represent_provider( } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("represent_provider", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2949, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("represent_provider", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3034, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.represent_provider", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -56431,7 +57737,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16represent_provider( int __pyx_clineno = 0; __Pyx_RefNannySetupContext("represent_provider", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_represent_provider(__pyx_v_provider, __pyx_v_provides, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2949, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_represent_provider(__pyx_v_provider, __pyx_v_provides, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -56448,7 +57754,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16represent_provider( return __pyx_r; } -/* "dependency_injector/providers.pyx":2968 +/* "dependency_injector/providers.pyx":3053 * * * cpdef object deepcopy(object instance, dict memo=None): # <<<<<<<<<<<<<< @@ -56479,7 +57785,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_deepcopy(PyObject *__p } __Pyx_INCREF(__pyx_v_memo); - /* "dependency_injector/providers.pyx":2970 + /* "dependency_injector/providers.pyx":3055 * cpdef object deepcopy(object instance, dict memo=None): * """Return full copy of provider or container with providers.""" * if memo is None: # <<<<<<<<<<<<<< @@ -56490,19 +57796,19 @@ static PyObject *__pyx_f_19dependency_injector_9providers_deepcopy(PyObject *__p __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "dependency_injector/providers.pyx":2971 + /* "dependency_injector/providers.pyx":3056 * """Return full copy of provider or container with providers.""" * if memo is None: * memo = dict() # <<<<<<<<<<<<<< * * __add_sys_streams(memo) */ - __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2971, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF_SET(__pyx_v_memo, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":2970 + /* "dependency_injector/providers.pyx":3055 * cpdef object deepcopy(object instance, dict memo=None): * """Return full copy of provider or container with providers.""" * if memo is None: # <<<<<<<<<<<<<< @@ -56511,14 +57817,14 @@ static PyObject *__pyx_f_19dependency_injector_9providers_deepcopy(PyObject *__p */ } - /* "dependency_injector/providers.pyx":2973 + /* "dependency_injector/providers.pyx":3058 * memo = dict() * * __add_sys_streams(memo) # <<<<<<<<<<<<<< * * return copy.deepcopy(instance, memo) */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_add_sys_streams); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2973, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_add_sys_streams); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -56532,12 +57838,12 @@ static PyObject *__pyx_f_19dependency_injector_9providers_deepcopy(PyObject *__p } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_memo) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_memo); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2973, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "dependency_injector/providers.pyx":2975 + /* "dependency_injector/providers.pyx":3060 * __add_sys_streams(memo) * * return copy.deepcopy(instance, memo) # <<<<<<<<<<<<<< @@ -56545,9 +57851,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers_deepcopy(PyObject *__p * def __add_sys_streams(memo): */ __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_copy); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2975, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_copy); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_deepcopy); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2975, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_deepcopy); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; @@ -56565,7 +57871,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_deepcopy(PyObject *__p #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_instance, __pyx_v_memo}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2975, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3060, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); } else @@ -56573,13 +57879,13 @@ static PyObject *__pyx_f_19dependency_injector_9providers_deepcopy(PyObject *__p #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_instance, __pyx_v_memo}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2975, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3060, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif { - __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2975, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 3060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -56590,7 +57896,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_deepcopy(PyObject *__p __Pyx_INCREF(__pyx_v_memo); __Pyx_GIVEREF(__pyx_v_memo); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_memo); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2975, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } @@ -56599,7 +57905,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers_deepcopy(PyObject *__p __pyx_t_3 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2968 + /* "dependency_injector/providers.pyx":3053 * * * cpdef object deepcopy(object instance, dict memo=None): # <<<<<<<<<<<<<< @@ -56662,7 +57968,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_19deepcopy(PyObject * } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "deepcopy") < 0)) __PYX_ERR(1, 2968, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "deepcopy") < 0)) __PYX_ERR(1, 3053, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -56678,13 +57984,13 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_19deepcopy(PyObject * } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("deepcopy", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2968, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("deepcopy", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3053, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.deepcopy", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_memo), (&PyDict_Type), 1, "memo", 1))) __PYX_ERR(1, 2968, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_memo), (&PyDict_Type), 1, "memo", 1))) __PYX_ERR(1, 3053, __pyx_L1_error) __pyx_r = __pyx_pf_19dependency_injector_9providers_18deepcopy(__pyx_self, __pyx_v_instance, __pyx_v_memo); /* function exit code */ @@ -56708,7 +58014,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_18deepcopy(CYTHON_UNU __Pyx_XDECREF(__pyx_r); __pyx_t_2.__pyx_n = 1; __pyx_t_2.memo = __pyx_v_memo; - __pyx_t_1 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_v_instance, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2968, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers_deepcopy(__pyx_v_instance, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -56725,7 +58031,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_18deepcopy(CYTHON_UNU return __pyx_r; } -/* "dependency_injector/providers.pyx":2977 +/* "dependency_injector/providers.pyx":3062 * return copy.deepcopy(instance, memo) * * def __add_sys_streams(memo): # <<<<<<<<<<<<<< @@ -56759,79 +58065,79 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_20__add_sys_streams(C int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__add_sys_streams", 0); - /* "dependency_injector/providers.pyx":2983 + /* "dependency_injector/providers.pyx":3068 * objects graph. * """ * memo[id(sys.stdin)] = sys.stdin # <<<<<<<<<<<<<< * memo[id(sys.stdout)] = sys.stdout * memo[id(sys.stderr)] = sys.stderr */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sys); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2983, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sys); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_stdin); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2983, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_stdin); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sys); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2983, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sys); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_stdin); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2983, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_stdin); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2983, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(PyObject_SetItem(__pyx_v_memo, __pyx_t_1, __pyx_t_2) < 0)) __PYX_ERR(1, 2983, __pyx_L1_error) + if (unlikely(PyObject_SetItem(__pyx_v_memo, __pyx_t_1, __pyx_t_2) < 0)) __PYX_ERR(1, 3068, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":2984 + /* "dependency_injector/providers.pyx":3069 * """ * memo[id(sys.stdin)] = sys.stdin * memo[id(sys.stdout)] = sys.stdout # <<<<<<<<<<<<<< * memo[id(sys.stderr)] = sys.stderr * */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sys); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2984, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sys); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_stdout); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2984, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_stdout); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sys); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2984, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sys); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_stdout); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2984, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_stdout); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2984, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(PyObject_SetItem(__pyx_v_memo, __pyx_t_2, __pyx_t_1) < 0)) __PYX_ERR(1, 2984, __pyx_L1_error) + if (unlikely(PyObject_SetItem(__pyx_v_memo, __pyx_t_2, __pyx_t_1) < 0)) __PYX_ERR(1, 3069, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2985 + /* "dependency_injector/providers.pyx":3070 * memo[id(sys.stdin)] = sys.stdin * memo[id(sys.stdout)] = sys.stdout * memo[id(sys.stderr)] = sys.stderr # <<<<<<<<<<<<<< * * */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sys); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2985, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sys); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_stderr); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2985, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_stderr); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sys); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2985, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sys); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_stderr); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2985, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_stderr); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2985, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(PyObject_SetItem(__pyx_v_memo, __pyx_t_1, __pyx_t_2) < 0)) __PYX_ERR(1, 2985, __pyx_L1_error) + if (unlikely(PyObject_SetItem(__pyx_v_memo, __pyx_t_1, __pyx_t_2) < 0)) __PYX_ERR(1, 3070, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":2977 + /* "dependency_injector/providers.pyx":3062 * return copy.deepcopy(instance, memo) * * def __add_sys_streams(memo): # <<<<<<<<<<<<<< @@ -56854,7 +58160,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_20__add_sys_streams(C return __pyx_r; } -/* "dependency_injector/providers.pyx":2988 +/* "dependency_injector/providers.pyx":3073 * * * def merge_dicts(dict1, dict2): # <<<<<<<<<<<<<< @@ -56898,11 +58204,11 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_23merge_dicts(PyObjec case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dict2)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("merge_dicts", 1, 2, 2, 1); __PYX_ERR(1, 2988, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("merge_dicts", 1, 2, 2, 1); __PYX_ERR(1, 3073, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "merge_dicts") < 0)) __PYX_ERR(1, 2988, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "merge_dicts") < 0)) __PYX_ERR(1, 3073, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -56915,7 +58221,7 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_23merge_dicts(PyObjec } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("merge_dicts", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2988, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("merge_dicts", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3073, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dependency_injector.providers.merge_dicts", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -56952,14 +58258,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_22merge_dicts(CYTHON_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("merge_dicts", 0); - /* "dependency_injector/providers.pyx":3000 + /* "dependency_injector/providers.pyx":3085 * :rtype: dict * """ * for key, value in dict1.items(): # <<<<<<<<<<<<<< * if key in dict2: * if isinstance(value, dict) and isinstance(dict2[key], dict): */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_dict1, __pyx_n_s_items); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3000, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_dict1, __pyx_n_s_items); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -56973,16 +58279,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_22merge_dicts(CYTHON_ } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3000, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { - __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3000, __pyx_L1_error) + __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3000, __pyx_L1_error) + __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3085, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -56990,17 +58296,17 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_22merge_dicts(CYTHON_ if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 3000, __pyx_L1_error) + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 3085, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3000, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 3000, __pyx_L1_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 3085, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3000, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } @@ -57010,7 +58316,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_22merge_dicts(CYTHON_ PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(1, 3000, __pyx_L1_error) + else __PYX_ERR(1, 3085, __pyx_L1_error) } break; } @@ -57022,7 +58328,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_22merge_dicts(CYTHON_ if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(1, 3000, __pyx_L1_error) + __PYX_ERR(1, 3085, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -57035,15 +58341,15 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_22merge_dicts(CYTHON_ __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_6); #else - __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3000, __pyx_L1_error) + __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3000, __pyx_L1_error) + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 3000, __pyx_L1_error) + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 3085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; @@ -57051,7 +58357,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_22merge_dicts(CYTHON_ __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(1, 3000, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(1, 3085, __pyx_L1_error) __pyx_t_8 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L6_unpacking_done; @@ -57059,7 +58365,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_22merge_dicts(CYTHON_ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(1, 3000, __pyx_L1_error) + __PYX_ERR(1, 3085, __pyx_L1_error) __pyx_L6_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_3); @@ -57067,18 +58373,18 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_22merge_dicts(CYTHON_ __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_6); __pyx_t_6 = 0; - /* "dependency_injector/providers.pyx":3001 + /* "dependency_injector/providers.pyx":3086 * """ * for key, value in dict1.items(): * if key in dict2: # <<<<<<<<<<<<<< * if isinstance(value, dict) and isinstance(dict2[key], dict): * dict2[key] = merge_dicts(value, dict2[key]) */ - __pyx_t_9 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_v_dict2, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(1, 3001, __pyx_L1_error) + __pyx_t_9 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_v_dict2, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(1, 3086, __pyx_L1_error) __pyx_t_10 = (__pyx_t_9 != 0); if (__pyx_t_10) { - /* "dependency_injector/providers.pyx":3002 + /* "dependency_injector/providers.pyx":3087 * for key, value in dict1.items(): * if key in dict2: * if isinstance(value, dict) and isinstance(dict2[key], dict): # <<<<<<<<<<<<<< @@ -57092,7 +58398,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_22merge_dicts(CYTHON_ __pyx_t_10 = __pyx_t_11; goto __pyx_L9_bool_binop_done; } - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_dict2, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3002, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_dict2, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_11 = PyDict_Check(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -57101,16 +58407,16 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_22merge_dicts(CYTHON_ __pyx_L9_bool_binop_done:; if (__pyx_t_10) { - /* "dependency_injector/providers.pyx":3003 + /* "dependency_injector/providers.pyx":3088 * if key in dict2: * if isinstance(value, dict) and isinstance(dict2[key], dict): * dict2[key] = merge_dicts(value, dict2[key]) # <<<<<<<<<<<<<< * result = dict1.copy() * result.update(dict2) */ - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_merge_dicts); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3003, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_merge_dicts); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_dict2, __pyx_v_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3003, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_dict2, __pyx_v_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = NULL; __pyx_t_12 = 0; @@ -57127,7 +58433,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_22merge_dicts(CYTHON_ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_value, __pyx_t_3}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3003, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3088, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -57136,14 +58442,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_22merge_dicts(CYTHON_ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_value, __pyx_t_3}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3003, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3088, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { - __pyx_t_13 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 3003, __pyx_L1_error) + __pyx_t_13 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 3088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -57154,15 +58460,15 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_22merge_dicts(CYTHON_ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_12, __pyx_t_3); __pyx_t_3 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_13, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3003, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_13, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(PyObject_SetItem(__pyx_v_dict2, __pyx_v_key, __pyx_t_1) < 0)) __PYX_ERR(1, 3003, __pyx_L1_error) + if (unlikely(PyObject_SetItem(__pyx_v_dict2, __pyx_v_key, __pyx_t_1) < 0)) __PYX_ERR(1, 3088, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":3002 + /* "dependency_injector/providers.pyx":3087 * for key, value in dict1.items(): * if key in dict2: * if isinstance(value, dict) and isinstance(dict2[key], dict): # <<<<<<<<<<<<<< @@ -57171,7 +58477,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_22merge_dicts(CYTHON_ */ } - /* "dependency_injector/providers.pyx":3001 + /* "dependency_injector/providers.pyx":3086 * """ * for key, value in dict1.items(): * if key in dict2: # <<<<<<<<<<<<<< @@ -57180,7 +58486,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_22merge_dicts(CYTHON_ */ } - /* "dependency_injector/providers.pyx":3000 + /* "dependency_injector/providers.pyx":3085 * :rtype: dict * """ * for key, value in dict1.items(): # <<<<<<<<<<<<<< @@ -57190,14 +58496,14 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_22merge_dicts(CYTHON_ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":3004 + /* "dependency_injector/providers.pyx":3089 * if isinstance(value, dict) and isinstance(dict2[key], dict): * dict2[key] = merge_dicts(value, dict2[key]) * result = dict1.copy() # <<<<<<<<<<<<<< * result.update(dict2) * return result */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dict1, __pyx_n_s_copy); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3004, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dict1, __pyx_n_s_copy); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { @@ -57211,19 +58517,19 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_22merge_dicts(CYTHON_ } __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3004, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_result = __pyx_t_2; __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":3005 + /* "dependency_injector/providers.pyx":3090 * dict2[key] = merge_dicts(value, dict2[key]) * result = dict1.copy() * result.update(dict2) # <<<<<<<<<<<<<< * return result */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_result, __pyx_n_s_update); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3005, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_result, __pyx_n_s_update); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { @@ -57237,12 +58543,12 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_22merge_dicts(CYTHON_ } __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_v_dict2) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_dict2); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3005, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pyx":3006 + /* "dependency_injector/providers.pyx":3091 * result = dict1.copy() * result.update(dict2) * return result # <<<<<<<<<<<<<< @@ -57252,7 +58558,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_22merge_dicts(CYTHON_ __pyx_r = __pyx_v_result; goto __pyx_L0; - /* "dependency_injector/providers.pyx":2988 + /* "dependency_injector/providers.pyx":3073 * * * def merge_dicts(dict1, dict2): # <<<<<<<<<<<<<< @@ -64298,6 +65604,470 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Configu return __pyx_r; } +/* "(tree fragment)":1 + * def __pyx_unpickle_TypedConfigurationOption(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_19dependency_injector_9providers_58__pyx_unpickle_TypedConfigurationOption(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_58__pyx_unpickle_TypedConfigurationOption = {"__pyx_unpickle_TypedConfigurationOption", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_58__pyx_unpickle_TypedConfigurationOption, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_58__pyx_unpickle_TypedConfigurationOption(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v___pyx_type = 0; + long __pyx_v___pyx_checksum; + PyObject *__pyx_v___pyx_state = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__pyx_unpickle_TypedConfigurationOption (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_TypedConfigurationOption", 1, 3, 3, 1); __PYX_ERR(2, 1, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_TypedConfigurationOption", 1, 3, 3, 2); __PYX_ERR(2, 1, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_TypedConfigurationOption") < 0)) __PYX_ERR(2, 1, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v___pyx_type = values[0]; + __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 1, __pyx_L3_error) + __pyx_v___pyx_state = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_TypedConfigurationOption", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("dependency_injector.providers.__pyx_unpickle_TypedConfigurationOption", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_19dependency_injector_9providers_57__pyx_unpickle_TypedConfigurationOption(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_19dependency_injector_9providers_57__pyx_unpickle_TypedConfigurationOption(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_v___pyx_PickleError = 0; + PyObject *__pyx_v___pyx_result = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__pyx_unpickle_TypedConfigurationOption", 0); + + /* "(tree fragment)":4 + * cdef object __pyx_PickleError + * cdef object __pyx_result + * if __pyx_checksum != 0x03251dc: # <<<<<<<<<<<<<< + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError("Incompatible checksums (%s vs 0x03251dc = (__args, __args_len, __kwargs, __kwargs_len, __last_overriding, __overridden, __provides))" % __pyx_checksum) + */ + __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x03251dc) != 0); + if (__pyx_t_1) { + + /* "(tree fragment)":5 + * cdef object __pyx_result + * if __pyx_checksum != 0x03251dc: + * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<< + * raise __pyx_PickleError("Incompatible checksums (%s vs 0x03251dc = (__args, __args_len, __kwargs, __kwargs_len, __last_overriding, __overridden, __provides))" % __pyx_checksum) + * __pyx_result = TypedConfigurationOption.__new__(__pyx_type) + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_PickleError); + __Pyx_GIVEREF(__pyx_n_s_PickleError); + PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_2); + __pyx_v___pyx_PickleError = __pyx_t_2; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "(tree fragment)":6 + * if __pyx_checksum != 0x03251dc: + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError("Incompatible checksums (%s vs 0x03251dc = (__args, __args_len, __kwargs, __kwargs_len, __last_overriding, __overridden, __provides))" % __pyx_checksum) # <<<<<<<<<<<<<< + * __pyx_result = TypedConfigurationOption.__new__(__pyx_type) + * if __pyx_state is not None: + */ + __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x03, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_INCREF(__pyx_v___pyx_PickleError); + __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(2, 6, __pyx_L1_error) + + /* "(tree fragment)":4 + * cdef object __pyx_PickleError + * cdef object __pyx_result + * if __pyx_checksum != 0x03251dc: # <<<<<<<<<<<<<< + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError("Incompatible checksums (%s vs 0x03251dc = (__args, __args_len, __kwargs, __kwargs_len, __last_overriding, __overridden, __provides))" % __pyx_checksum) + */ + } + + /* "(tree fragment)":7 + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError("Incompatible checksums (%s vs 0x03251dc = (__args, __args_len, __kwargs, __kwargs_len, __last_overriding, __overridden, __provides))" % __pyx_checksum) + * __pyx_result = TypedConfigurationOption.__new__(__pyx_type) # <<<<<<<<<<<<<< + * if __pyx_state is not None: + * __pyx_unpickle_TypedConfigurationOption__set_state( __pyx_result, __pyx_state) + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_19dependency_injector_9providers_TypedConfigurationOption), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v___pyx_result = __pyx_t_3; + __pyx_t_3 = 0; + + /* "(tree fragment)":8 + * raise __pyx_PickleError("Incompatible checksums (%s vs 0x03251dc = (__args, __args_len, __kwargs, __kwargs_len, __last_overriding, __overridden, __provides))" % __pyx_checksum) + * __pyx_result = TypedConfigurationOption.__new__(__pyx_type) + * if __pyx_state is not None: # <<<<<<<<<<<<<< + * __pyx_unpickle_TypedConfigurationOption__set_state( __pyx_result, __pyx_state) + * return __pyx_result + */ + __pyx_t_1 = (__pyx_v___pyx_state != Py_None); + __pyx_t_6 = (__pyx_t_1 != 0); + if (__pyx_t_6) { + + /* "(tree fragment)":9 + * __pyx_result = TypedConfigurationOption.__new__(__pyx_type) + * if __pyx_state is not None: + * __pyx_unpickle_TypedConfigurationOption__set_state( __pyx_result, __pyx_state) # <<<<<<<<<<<<<< + * return __pyx_result + * cdef __pyx_unpickle_TypedConfigurationOption__set_state(TypedConfigurationOption __pyx_result, tuple __pyx_state): + */ + if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(2, 9, __pyx_L1_error) + __pyx_t_3 = __pyx_f_19dependency_injector_9providers___pyx_unpickle_TypedConfigurationOption__set_state(((struct __pyx_obj_19dependency_injector_9providers_TypedConfigurationOption *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "(tree fragment)":8 + * raise __pyx_PickleError("Incompatible checksums (%s vs 0x03251dc = (__args, __args_len, __kwargs, __kwargs_len, __last_overriding, __overridden, __provides))" % __pyx_checksum) + * __pyx_result = TypedConfigurationOption.__new__(__pyx_type) + * if __pyx_state is not None: # <<<<<<<<<<<<<< + * __pyx_unpickle_TypedConfigurationOption__set_state( __pyx_result, __pyx_state) + * return __pyx_result + */ + } + + /* "(tree fragment)":10 + * if __pyx_state is not None: + * __pyx_unpickle_TypedConfigurationOption__set_state( __pyx_result, __pyx_state) + * return __pyx_result # <<<<<<<<<<<<<< + * cdef __pyx_unpickle_TypedConfigurationOption__set_state(TypedConfigurationOption __pyx_result, tuple __pyx_state): + * __pyx_result.__args = __pyx_state[0]; __pyx_result.__args_len = __pyx_state[1]; __pyx_result.__kwargs = __pyx_state[2]; __pyx_result.__kwargs_len = __pyx_state[3]; __pyx_result.__last_overriding = __pyx_state[4]; __pyx_result.__overridden = __pyx_state[5]; __pyx_result.__provides = __pyx_state[6] + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v___pyx_result); + __pyx_r = __pyx_v___pyx_result; + goto __pyx_L0; + + /* "(tree fragment)":1 + * def __pyx_unpickle_TypedConfigurationOption(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("dependency_injector.providers.__pyx_unpickle_TypedConfigurationOption", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v___pyx_PickleError); + __Pyx_XDECREF(__pyx_v___pyx_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":11 + * __pyx_unpickle_TypedConfigurationOption__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_TypedConfigurationOption__set_state(TypedConfigurationOption __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.__args = __pyx_state[0]; __pyx_result.__args_len = __pyx_state[1]; __pyx_result.__kwargs = __pyx_state[2]; __pyx_result.__kwargs_len = __pyx_state[3]; __pyx_result.__last_overriding = __pyx_state[4]; __pyx_result.__overridden = __pyx_state[5]; __pyx_result.__provides = __pyx_state[6] + * if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'): + */ + +static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_TypedConfigurationOption__set_state(struct __pyx_obj_19dependency_injector_9providers_TypedConfigurationOption *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + Py_ssize_t __pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__pyx_unpickle_TypedConfigurationOption__set_state", 0); + + /* "(tree fragment)":12 + * return __pyx_result + * cdef __pyx_unpickle_TypedConfigurationOption__set_state(TypedConfigurationOption __pyx_result, tuple __pyx_state): + * __pyx_result.__args = __pyx_state[0]; __pyx_result.__args_len = __pyx_state[1]; __pyx_result.__kwargs = __pyx_state[2]; __pyx_result.__kwargs_len = __pyx_state[3]; __pyx_result.__last_overriding = __pyx_state[4]; __pyx_result.__overridden = __pyx_state[5]; __pyx_result.__provides = __pyx_state[6] # <<<<<<<<<<<<<< + * if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'): + * __pyx_result.__dict__.update(__pyx_state[7]) + */ + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(2, 12, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(2, 12, __pyx_L1_error) + __Pyx_GIVEREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx___args); + __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx___args); + __pyx_v___pyx_result->__pyx_base.__pyx___args = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(2, 12, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v___pyx_result->__pyx_base.__pyx___args_len = __pyx_t_2; + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(2, 12, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(2, 12, __pyx_L1_error) + __Pyx_GIVEREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx___kwargs); + __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx___kwargs); + __pyx_v___pyx_result->__pyx_base.__pyx___kwargs = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(2, 12, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v___pyx_result->__pyx_base.__pyx___kwargs_len = __pyx_t_2; + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(2, 12, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(2, 12, __pyx_L1_error) + __Pyx_GIVEREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx___last_overriding); + __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx___last_overriding)); + __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx___last_overriding = ((struct __pyx_obj_19dependency_injector_9providers_Provider *)__pyx_t_1); + __pyx_t_1 = 0; + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(2, 12, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(2, 12, __pyx_L1_error) + __Pyx_GIVEREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx___overridden); + __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx___overridden); + __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx___overridden = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(2, 12, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx___provides); + __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx___provides); + __pyx_v___pyx_result->__pyx_base.__pyx___provides = __pyx_t_1; + __pyx_t_1 = 0; + + /* "(tree fragment)":13 + * cdef __pyx_unpickle_TypedConfigurationOption__set_state(TypedConfigurationOption __pyx_result, tuple __pyx_state): + * __pyx_result.__args = __pyx_state[0]; __pyx_result.__args_len = __pyx_state[1]; __pyx_result.__kwargs = __pyx_state[2]; __pyx_result.__kwargs_len = __pyx_state[3]; __pyx_result.__last_overriding = __pyx_state[4]; __pyx_result.__overridden = __pyx_state[5]; __pyx_result.__provides = __pyx_state[6] + * if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< + * __pyx_result.__dict__.update(__pyx_state[7]) + */ + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); + __PYX_ERR(2, 13, __pyx_L1_error) + } + __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(2, 13, __pyx_L1_error) + __pyx_t_5 = ((__pyx_t_4 > 7) != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(2, 13, __pyx_L1_error) + __pyx_t_6 = (__pyx_t_5 != 0); + __pyx_t_3 = __pyx_t_6; + __pyx_L4_bool_binop_done:; + if (__pyx_t_3) { + + /* "(tree fragment)":14 + * __pyx_result.__args = __pyx_state[0]; __pyx_result.__args_len = __pyx_state[1]; __pyx_result.__kwargs = __pyx_state[2]; __pyx_result.__kwargs_len = __pyx_state[3]; __pyx_result.__last_overriding = __pyx_state[4]; __pyx_result.__overridden = __pyx_state[5]; __pyx_result.__provides = __pyx_state[6] + * if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'): + * __pyx_result.__dict__.update(__pyx_state[7]) # <<<<<<<<<<<<<< + */ + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(2, 14, __pyx_L1_error) + } + __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_9 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + } + } + __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "(tree fragment)":13 + * cdef __pyx_unpickle_TypedConfigurationOption__set_state(TypedConfigurationOption __pyx_result, tuple __pyx_state): + * __pyx_result.__args = __pyx_state[0]; __pyx_result.__args_len = __pyx_state[1]; __pyx_result.__kwargs = __pyx_state[2]; __pyx_result.__kwargs_len = __pyx_state[3]; __pyx_result.__last_overriding = __pyx_state[4]; __pyx_result.__overridden = __pyx_state[5]; __pyx_result.__provides = __pyx_state[6] + * if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< + * __pyx_result.__dict__.update(__pyx_state[7]) + */ + } + + /* "(tree fragment)":11 + * __pyx_unpickle_TypedConfigurationOption__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_TypedConfigurationOption__set_state(TypedConfigurationOption __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.__args = __pyx_state[0]; __pyx_result.__args_len = __pyx_state[1]; __pyx_result.__kwargs = __pyx_state[2]; __pyx_result.__kwargs_len = __pyx_state[3]; __pyx_result.__last_overriding = __pyx_state[4]; __pyx_result.__overridden = __pyx_state[5]; __pyx_result.__provides = __pyx_state[6] + * if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'): + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("dependency_injector.providers.__pyx_unpickle_TypedConfigurationOption__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + /* "(tree fragment)":1 * def __pyx_unpickle_Configuration(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError @@ -64305,9 +66075,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Configu */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_58__pyx_unpickle_Configuration(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_58__pyx_unpickle_Configuration = {"__pyx_unpickle_Configuration", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_58__pyx_unpickle_Configuration, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_58__pyx_unpickle_Configuration(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_60__pyx_unpickle_Configuration(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_60__pyx_unpickle_Configuration = {"__pyx_unpickle_Configuration", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_60__pyx_unpickle_Configuration, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_60__pyx_unpickle_Configuration(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -64373,14 +66143,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_58__pyx_unpickle_Conf __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_57__pyx_unpickle_Configuration(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_59__pyx_unpickle_Configuration(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_57__pyx_unpickle_Configuration(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_59__pyx_unpickle_Configuration(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -64750,9 +66520,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Configu */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_60__pyx_unpickle_Factory(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_60__pyx_unpickle_Factory = {"__pyx_unpickle_Factory", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_60__pyx_unpickle_Factory, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_60__pyx_unpickle_Factory(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_62__pyx_unpickle_Factory(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_62__pyx_unpickle_Factory = {"__pyx_unpickle_Factory", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_62__pyx_unpickle_Factory, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_62__pyx_unpickle_Factory(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -64818,14 +66588,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_60__pyx_unpickle_Fact __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_59__pyx_unpickle_Factory(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_61__pyx_unpickle_Factory(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_59__pyx_unpickle_Factory(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_61__pyx_unpickle_Factory(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -65194,9 +66964,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Factory */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_62__pyx_unpickle_DelegatedFactory(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_62__pyx_unpickle_DelegatedFactory = {"__pyx_unpickle_DelegatedFactory", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_62__pyx_unpickle_DelegatedFactory, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_62__pyx_unpickle_DelegatedFactory(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_64__pyx_unpickle_DelegatedFactory(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_64__pyx_unpickle_DelegatedFactory = {"__pyx_unpickle_DelegatedFactory", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_64__pyx_unpickle_DelegatedFactory, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_64__pyx_unpickle_DelegatedFactory(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -65262,14 +67032,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_62__pyx_unpickle_Dele __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_61__pyx_unpickle_DelegatedFactory(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_63__pyx_unpickle_DelegatedFactory(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_61__pyx_unpickle_DelegatedFactory(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_63__pyx_unpickle_DelegatedFactory(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -65638,9 +67408,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Delegat */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_64__pyx_unpickle_AbstractFactory(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_64__pyx_unpickle_AbstractFactory = {"__pyx_unpickle_AbstractFactory", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_64__pyx_unpickle_AbstractFactory, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_64__pyx_unpickle_AbstractFactory(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_66__pyx_unpickle_AbstractFactory(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_66__pyx_unpickle_AbstractFactory = {"__pyx_unpickle_AbstractFactory", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_66__pyx_unpickle_AbstractFactory, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_66__pyx_unpickle_AbstractFactory(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -65706,14 +67476,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_64__pyx_unpickle_Abst __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_63__pyx_unpickle_AbstractFactory(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_65__pyx_unpickle_AbstractFactory(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_63__pyx_unpickle_AbstractFactory(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_65__pyx_unpickle_AbstractFactory(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -66082,9 +67852,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Abstrac */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_66__pyx_unpickle_FactoryDelegate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_66__pyx_unpickle_FactoryDelegate = {"__pyx_unpickle_FactoryDelegate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_66__pyx_unpickle_FactoryDelegate, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_66__pyx_unpickle_FactoryDelegate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_68__pyx_unpickle_FactoryDelegate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_68__pyx_unpickle_FactoryDelegate = {"__pyx_unpickle_FactoryDelegate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_68__pyx_unpickle_FactoryDelegate, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_68__pyx_unpickle_FactoryDelegate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -66150,14 +67920,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_66__pyx_unpickle_Fact __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_65__pyx_unpickle_FactoryDelegate(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_67__pyx_unpickle_FactoryDelegate(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_65__pyx_unpickle_FactoryDelegate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_67__pyx_unpickle_FactoryDelegate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -66503,9 +68273,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Factory */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_68__pyx_unpickle_FactoryAggregate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_68__pyx_unpickle_FactoryAggregate = {"__pyx_unpickle_FactoryAggregate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_68__pyx_unpickle_FactoryAggregate, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_68__pyx_unpickle_FactoryAggregate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_70__pyx_unpickle_FactoryAggregate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_70__pyx_unpickle_FactoryAggregate = {"__pyx_unpickle_FactoryAggregate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_70__pyx_unpickle_FactoryAggregate, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_70__pyx_unpickle_FactoryAggregate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -66571,14 +68341,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_68__pyx_unpickle_Fact __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_67__pyx_unpickle_FactoryAggregate(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_69__pyx_unpickle_FactoryAggregate(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_67__pyx_unpickle_FactoryAggregate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_69__pyx_unpickle_FactoryAggregate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -66925,9 +68695,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Factory */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_70__pyx_unpickle_BaseSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_70__pyx_unpickle_BaseSingleton = {"__pyx_unpickle_BaseSingleton", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_70__pyx_unpickle_BaseSingleton, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_70__pyx_unpickle_BaseSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_72__pyx_unpickle_BaseSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_72__pyx_unpickle_BaseSingleton = {"__pyx_unpickle_BaseSingleton", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_72__pyx_unpickle_BaseSingleton, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_72__pyx_unpickle_BaseSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -66993,14 +68763,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_70__pyx_unpickle_Base __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_69__pyx_unpickle_BaseSingleton(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_71__pyx_unpickle_BaseSingleton(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_69__pyx_unpickle_BaseSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_71__pyx_unpickle_BaseSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -67347,9 +69117,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_BaseSin */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_72__pyx_unpickle_Singleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_72__pyx_unpickle_Singleton = {"__pyx_unpickle_Singleton", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_72__pyx_unpickle_Singleton, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_72__pyx_unpickle_Singleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_74__pyx_unpickle_Singleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_74__pyx_unpickle_Singleton = {"__pyx_unpickle_Singleton", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_74__pyx_unpickle_Singleton, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_74__pyx_unpickle_Singleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -67415,14 +69185,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_72__pyx_unpickle_Sing __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_71__pyx_unpickle_Singleton(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_73__pyx_unpickle_Singleton(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_71__pyx_unpickle_Singleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_73__pyx_unpickle_Singleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -67780,9 +69550,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Singlet */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_74__pyx_unpickle_DelegatedSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_74__pyx_unpickle_DelegatedSingleton = {"__pyx_unpickle_DelegatedSingleton", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_74__pyx_unpickle_DelegatedSingleton, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_74__pyx_unpickle_DelegatedSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_76__pyx_unpickle_DelegatedSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_76__pyx_unpickle_DelegatedSingleton = {"__pyx_unpickle_DelegatedSingleton", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_76__pyx_unpickle_DelegatedSingleton, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_76__pyx_unpickle_DelegatedSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -67848,14 +69618,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_74__pyx_unpickle_Dele __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_73__pyx_unpickle_DelegatedSingleton(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_75__pyx_unpickle_DelegatedSingleton(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_73__pyx_unpickle_DelegatedSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_75__pyx_unpickle_DelegatedSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -68213,9 +69983,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Delegat */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_76__pyx_unpickle_ThreadSafeSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_76__pyx_unpickle_ThreadSafeSingleton = {"__pyx_unpickle_ThreadSafeSingleton", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_76__pyx_unpickle_ThreadSafeSingleton, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_76__pyx_unpickle_ThreadSafeSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_78__pyx_unpickle_ThreadSafeSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_78__pyx_unpickle_ThreadSafeSingleton = {"__pyx_unpickle_ThreadSafeSingleton", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_78__pyx_unpickle_ThreadSafeSingleton, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_78__pyx_unpickle_ThreadSafeSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -68281,14 +70051,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_76__pyx_unpickle_Thre __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_75__pyx_unpickle_ThreadSafeSingleton(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_77__pyx_unpickle_ThreadSafeSingleton(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_75__pyx_unpickle_ThreadSafeSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_77__pyx_unpickle_ThreadSafeSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -68657,9 +70427,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_ThreadS */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_78__pyx_unpickle_DelegatedThreadSafeSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_78__pyx_unpickle_DelegatedThreadSafeSingleton = {"__pyx_unpickle_DelegatedThreadSafeSingleton", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_78__pyx_unpickle_DelegatedThreadSafeSingleton, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_78__pyx_unpickle_DelegatedThreadSafeSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_80__pyx_unpickle_DelegatedThreadSafeSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_80__pyx_unpickle_DelegatedThreadSafeSingleton = {"__pyx_unpickle_DelegatedThreadSafeSingleton", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_80__pyx_unpickle_DelegatedThreadSafeSingleton, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_80__pyx_unpickle_DelegatedThreadSafeSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -68725,14 +70495,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_78__pyx_unpickle_Dele __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_77__pyx_unpickle_DelegatedThreadSafeSingleton(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_79__pyx_unpickle_DelegatedThreadSafeSingleton(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_77__pyx_unpickle_DelegatedThreadSafeSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_79__pyx_unpickle_DelegatedThreadSafeSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -69101,9 +70871,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Delegat */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_80__pyx_unpickle_ThreadLocalSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_80__pyx_unpickle_ThreadLocalSingleton = {"__pyx_unpickle_ThreadLocalSingleton", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_80__pyx_unpickle_ThreadLocalSingleton, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_80__pyx_unpickle_ThreadLocalSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_82__pyx_unpickle_ThreadLocalSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_82__pyx_unpickle_ThreadLocalSingleton = {"__pyx_unpickle_ThreadLocalSingleton", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_82__pyx_unpickle_ThreadLocalSingleton, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_82__pyx_unpickle_ThreadLocalSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -69169,14 +70939,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_80__pyx_unpickle_Thre __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_79__pyx_unpickle_ThreadLocalSingleton(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_81__pyx_unpickle_ThreadLocalSingleton(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_79__pyx_unpickle_ThreadLocalSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_81__pyx_unpickle_ThreadLocalSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -69534,9 +71304,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_ThreadL */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_82__pyx_unpickle_DelegatedThreadLocalSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_82__pyx_unpickle_DelegatedThreadLocalSingleton = {"__pyx_unpickle_DelegatedThreadLocalSingleton", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_82__pyx_unpickle_DelegatedThreadLocalSingleton, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_82__pyx_unpickle_DelegatedThreadLocalSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_84__pyx_unpickle_DelegatedThreadLocalSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_84__pyx_unpickle_DelegatedThreadLocalSingleton = {"__pyx_unpickle_DelegatedThreadLocalSingleton", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_84__pyx_unpickle_DelegatedThreadLocalSingleton, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_84__pyx_unpickle_DelegatedThreadLocalSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -69602,14 +71372,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_82__pyx_unpickle_Dele __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_81__pyx_unpickle_DelegatedThreadLocalSingleton(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_83__pyx_unpickle_DelegatedThreadLocalSingleton(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_81__pyx_unpickle_DelegatedThreadLocalSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_83__pyx_unpickle_DelegatedThreadLocalSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -69967,9 +71737,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Delegat */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_84__pyx_unpickle_AbstractSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_84__pyx_unpickle_AbstractSingleton = {"__pyx_unpickle_AbstractSingleton", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_84__pyx_unpickle_AbstractSingleton, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_84__pyx_unpickle_AbstractSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_86__pyx_unpickle_AbstractSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_86__pyx_unpickle_AbstractSingleton = {"__pyx_unpickle_AbstractSingleton", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_86__pyx_unpickle_AbstractSingleton, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_86__pyx_unpickle_AbstractSingleton(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -70035,14 +71805,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_84__pyx_unpickle_Abst __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_83__pyx_unpickle_AbstractSingleton(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_85__pyx_unpickle_AbstractSingleton(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_83__pyx_unpickle_AbstractSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_85__pyx_unpickle_AbstractSingleton(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -70389,9 +72159,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Abstrac */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_86__pyx_unpickle_SingletonDelegate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_86__pyx_unpickle_SingletonDelegate = {"__pyx_unpickle_SingletonDelegate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_86__pyx_unpickle_SingletonDelegate, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_86__pyx_unpickle_SingletonDelegate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_88__pyx_unpickle_SingletonDelegate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_88__pyx_unpickle_SingletonDelegate = {"__pyx_unpickle_SingletonDelegate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_88__pyx_unpickle_SingletonDelegate, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_88__pyx_unpickle_SingletonDelegate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -70457,14 +72227,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_86__pyx_unpickle_Sing __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_85__pyx_unpickle_SingletonDelegate(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_87__pyx_unpickle_SingletonDelegate(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_85__pyx_unpickle_SingletonDelegate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_87__pyx_unpickle_SingletonDelegate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -70810,9 +72580,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Singlet */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_88__pyx_unpickle_List(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_88__pyx_unpickle_List = {"__pyx_unpickle_List", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_88__pyx_unpickle_List, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_88__pyx_unpickle_List(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_90__pyx_unpickle_List(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_90__pyx_unpickle_List = {"__pyx_unpickle_List", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_90__pyx_unpickle_List, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_90__pyx_unpickle_List(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -70878,14 +72648,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_88__pyx_unpickle_List __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_87__pyx_unpickle_List(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_89__pyx_unpickle_List(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_87__pyx_unpickle_List(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_89__pyx_unpickle_List(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -71242,9 +73012,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_List__s */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_90__pyx_unpickle_Container(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_90__pyx_unpickle_Container = {"__pyx_unpickle_Container", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_90__pyx_unpickle_Container, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_90__pyx_unpickle_Container(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_92__pyx_unpickle_Container(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_92__pyx_unpickle_Container = {"__pyx_unpickle_Container", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_92__pyx_unpickle_Container, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_92__pyx_unpickle_Container(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -71310,14 +73080,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_90__pyx_unpickle_Cont __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_89__pyx_unpickle_Container(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_91__pyx_unpickle_Container(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_89__pyx_unpickle_Container(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_91__pyx_unpickle_Container(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -71336,18 +73106,18 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_89__pyx_unpickle_Cont /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result - * if __pyx_checksum != 0x3486ddb: # <<<<<<<<<<<<<< + * if __pyx_checksum != 0x0433d08: # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x3486ddb = (__last_overriding, __overridden, container, container_cls, overriding_providers))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (%s vs 0x0433d08 = (__container, __container_cls, __last_overriding, __overridden, __overriding_providers))" % __pyx_checksum) */ - __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x3486ddb) != 0); + __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x0433d08) != 0); if (__pyx_t_1) { /* "(tree fragment)":5 * cdef object __pyx_result - * if __pyx_checksum != 0x3486ddb: + * if __pyx_checksum != 0x0433d08: * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<< - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x3486ddb = (__last_overriding, __overridden, container, container_cls, overriding_providers))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (%s vs 0x0433d08 = (__container, __container_cls, __last_overriding, __overridden, __overriding_providers))" % __pyx_checksum) * __pyx_result = Container.__new__(__pyx_type) */ __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error) @@ -71366,15 +73136,15 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_89__pyx_unpickle_Cont __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "(tree fragment)":6 - * if __pyx_checksum != 0x3486ddb: + * if __pyx_checksum != 0x0433d08: * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x3486ddb = (__last_overriding, __overridden, container, container_cls, overriding_providers))" % __pyx_checksum) # <<<<<<<<<<<<<< + * raise __pyx_PickleError("Incompatible checksums (%s vs 0x0433d08 = (__container, __container_cls, __last_overriding, __overridden, __overriding_providers))" % __pyx_checksum) # <<<<<<<<<<<<<< * __pyx_result = Container.__new__(__pyx_type) * if __pyx_state is not None: */ __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x34, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 6, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x04, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_v___pyx_PickleError); @@ -71401,15 +73171,15 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_89__pyx_unpickle_Cont /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result - * if __pyx_checksum != 0x3486ddb: # <<<<<<<<<<<<<< + * if __pyx_checksum != 0x0433d08: # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x3486ddb = (__last_overriding, __overridden, container, container_cls, overriding_providers))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (%s vs 0x0433d08 = (__container, __container_cls, __last_overriding, __overridden, __overriding_providers))" % __pyx_checksum) */ } /* "(tree fragment)":7 * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x3486ddb = (__last_overriding, __overridden, container, container_cls, overriding_providers))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (%s vs 0x0433d08 = (__container, __container_cls, __last_overriding, __overridden, __overriding_providers))" % __pyx_checksum) * __pyx_result = Container.__new__(__pyx_type) # <<<<<<<<<<<<<< * if __pyx_state is not None: * __pyx_unpickle_Container__set_state( __pyx_result, __pyx_state) @@ -71435,7 +73205,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_89__pyx_unpickle_Cont __pyx_t_3 = 0; /* "(tree fragment)":8 - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x3486ddb = (__last_overriding, __overridden, container, container_cls, overriding_providers))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (%s vs 0x0433d08 = (__container, __container_cls, __last_overriding, __overridden, __overriding_providers))" % __pyx_checksum) * __pyx_result = Container.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_Container__set_state( __pyx_result, __pyx_state) @@ -71458,7 +73228,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_89__pyx_unpickle_Cont __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "(tree fragment)":8 - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x3486ddb = (__last_overriding, __overridden, container, container_cls, overriding_providers))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (%s vs 0x0433d08 = (__container, __container_cls, __last_overriding, __overridden, __overriding_providers))" % __pyx_checksum) * __pyx_result = Container.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_Container__set_state( __pyx_result, __pyx_state) @@ -71471,7 +73241,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_89__pyx_unpickle_Cont * __pyx_unpickle_Container__set_state( __pyx_result, __pyx_state) * return __pyx_result # <<<<<<<<<<<<<< * cdef __pyx_unpickle_Container__set_state(Container __pyx_result, tuple __pyx_state): - * __pyx_result.__last_overriding = __pyx_state[0]; __pyx_result.__overridden = __pyx_state[1]; __pyx_result.container = __pyx_state[2]; __pyx_result.container_cls = __pyx_state[3]; __pyx_result.overriding_providers = __pyx_state[4] + * __pyx_result.__container = __pyx_state[0]; __pyx_result.__container_cls = __pyx_state[1]; __pyx_result.__last_overriding = __pyx_state[2]; __pyx_result.__overridden = __pyx_state[3]; __pyx_result.__overriding_providers = __pyx_state[4] */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v___pyx_result); @@ -71504,7 +73274,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_89__pyx_unpickle_Cont * __pyx_unpickle_Container__set_state( __pyx_result, __pyx_state) * return __pyx_result * cdef __pyx_unpickle_Container__set_state(Container __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result.__last_overriding = __pyx_state[0]; __pyx_result.__overridden = __pyx_state[1]; __pyx_result.container = __pyx_state[2]; __pyx_result.container_cls = __pyx_state[3]; __pyx_result.overriding_providers = __pyx_state[4] + * __pyx_result.__container = __pyx_state[0]; __pyx_result.__container_cls = __pyx_state[1]; __pyx_result.__last_overriding = __pyx_state[2]; __pyx_result.__overridden = __pyx_state[3]; __pyx_result.__overriding_providers = __pyx_state[4] * if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'): */ @@ -71527,7 +73297,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Contain /* "(tree fragment)":12 * return __pyx_result * cdef __pyx_unpickle_Container__set_state(Container __pyx_result, tuple __pyx_state): - * __pyx_result.__last_overriding = __pyx_state[0]; __pyx_result.__overridden = __pyx_state[1]; __pyx_result.container = __pyx_state[2]; __pyx_result.container_cls = __pyx_state[3]; __pyx_result.overriding_providers = __pyx_state[4] # <<<<<<<<<<<<<< + * __pyx_result.__container = __pyx_state[0]; __pyx_result.__container_cls = __pyx_state[1]; __pyx_result.__last_overriding = __pyx_state[2]; __pyx_result.__overridden = __pyx_state[3]; __pyx_result.__overriding_providers = __pyx_state[4] # <<<<<<<<<<<<<< * if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'): * __pyx_result.__dict__.update(__pyx_state[5]) */ @@ -71537,6 +73307,28 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Contain } __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_v___pyx_result->__pyx___container); + __Pyx_DECREF(__pyx_v___pyx_result->__pyx___container); + __pyx_v___pyx_result->__pyx___container = __pyx_t_1; + __pyx_t_1 = 0; + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(2, 12, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_v___pyx_result->__pyx___container_cls); + __Pyx_DECREF(__pyx_v___pyx_result->__pyx___container_cls); + __pyx_v___pyx_result->__pyx___container_cls = __pyx_t_1; + __pyx_t_1 = 0; + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(2, 12, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_19dependency_injector_9providers_Provider))))) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx___last_overriding); @@ -71547,7 +73339,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Contain PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(2, 12, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_1); @@ -71559,40 +73351,18 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Contain PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(2, 12, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __Pyx_GOTREF(__pyx_v___pyx_result->container); - __Pyx_DECREF(__pyx_v___pyx_result->container); - __pyx_v___pyx_result->container = __pyx_t_1; - __pyx_t_1 = 0; - if (unlikely(__pyx_v___pyx_state == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(2, 12, __pyx_L1_error) - } - __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __Pyx_GOTREF(__pyx_v___pyx_result->container_cls); - __Pyx_DECREF(__pyx_v___pyx_result->container_cls); - __pyx_v___pyx_result->container_cls = __pyx_t_1; - __pyx_t_1 = 0; - if (unlikely(__pyx_v___pyx_state == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(2, 12, __pyx_L1_error) - } __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_1); - __Pyx_GOTREF(__pyx_v___pyx_result->overriding_providers); - __Pyx_DECREF(__pyx_v___pyx_result->overriding_providers); - __pyx_v___pyx_result->overriding_providers = ((PyObject*)__pyx_t_1); + __Pyx_GOTREF(__pyx_v___pyx_result->__pyx___overriding_providers); + __Pyx_DECREF(__pyx_v___pyx_result->__pyx___overriding_providers); + __pyx_v___pyx_result->__pyx___overriding_providers = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":13 * cdef __pyx_unpickle_Container__set_state(Container __pyx_result, tuple __pyx_state): - * __pyx_result.__last_overriding = __pyx_state[0]; __pyx_result.__overridden = __pyx_state[1]; __pyx_result.container = __pyx_state[2]; __pyx_result.container_cls = __pyx_state[3]; __pyx_result.overriding_providers = __pyx_state[4] + * __pyx_result.__container = __pyx_state[0]; __pyx_result.__container_cls = __pyx_state[1]; __pyx_result.__last_overriding = __pyx_state[2]; __pyx_result.__overridden = __pyx_state[3]; __pyx_result.__overriding_providers = __pyx_state[4] * if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< * __pyx_result.__dict__.update(__pyx_state[5]) */ @@ -71614,7 +73384,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Contain if (__pyx_t_2) { /* "(tree fragment)":14 - * __pyx_result.__last_overriding = __pyx_state[0]; __pyx_result.__overridden = __pyx_state[1]; __pyx_result.container = __pyx_state[2]; __pyx_result.container_cls = __pyx_state[3]; __pyx_result.overriding_providers = __pyx_state[4] + * __pyx_result.__container = __pyx_state[0]; __pyx_result.__container_cls = __pyx_state[1]; __pyx_result.__last_overriding = __pyx_state[2]; __pyx_result.__overridden = __pyx_state[3]; __pyx_result.__overriding_providers = __pyx_state[4] * if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'): * __pyx_result.__dict__.update(__pyx_state[5]) # <<<<<<<<<<<<<< */ @@ -71649,7 +73419,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Contain /* "(tree fragment)":13 * cdef __pyx_unpickle_Container__set_state(Container __pyx_result, tuple __pyx_state): - * __pyx_result.__last_overriding = __pyx_state[0]; __pyx_result.__overridden = __pyx_state[1]; __pyx_result.container = __pyx_state[2]; __pyx_result.container_cls = __pyx_state[3]; __pyx_result.overriding_providers = __pyx_state[4] + * __pyx_result.__container = __pyx_state[0]; __pyx_result.__container_cls = __pyx_state[1]; __pyx_result.__last_overriding = __pyx_state[2]; __pyx_result.__overridden = __pyx_state[3]; __pyx_result.__overriding_providers = __pyx_state[4] * if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< * __pyx_result.__dict__.update(__pyx_state[5]) */ @@ -71659,7 +73429,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Contain * __pyx_unpickle_Container__set_state( __pyx_result, __pyx_state) * return __pyx_result * cdef __pyx_unpickle_Container__set_state(Container __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result.__last_overriding = __pyx_state[0]; __pyx_result.__overridden = __pyx_state[1]; __pyx_result.container = __pyx_state[2]; __pyx_result.container_cls = __pyx_state[3]; __pyx_result.overriding_providers = __pyx_state[4] + * __pyx_result.__container = __pyx_state[0]; __pyx_result.__container_cls = __pyx_state[1]; __pyx_result.__last_overriding = __pyx_state[2]; __pyx_result.__overridden = __pyx_state[3]; __pyx_result.__overriding_providers = __pyx_state[4] * if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'): */ @@ -71686,9 +73456,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Contain */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_92__pyx_unpickle_Selector(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_92__pyx_unpickle_Selector = {"__pyx_unpickle_Selector", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_92__pyx_unpickle_Selector, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_92__pyx_unpickle_Selector(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_94__pyx_unpickle_Selector(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_94__pyx_unpickle_Selector = {"__pyx_unpickle_Selector", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_94__pyx_unpickle_Selector, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_94__pyx_unpickle_Selector(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -71754,14 +73524,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_92__pyx_unpickle_Sele __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_91__pyx_unpickle_Selector(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_93__pyx_unpickle_Selector(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_91__pyx_unpickle_Selector(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_93__pyx_unpickle_Selector(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -72119,9 +73889,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Selecto */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_94__pyx_unpickle_ProvidedInstance(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_94__pyx_unpickle_ProvidedInstance = {"__pyx_unpickle_ProvidedInstance", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_94__pyx_unpickle_ProvidedInstance, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_94__pyx_unpickle_ProvidedInstance(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_96__pyx_unpickle_ProvidedInstance(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_96__pyx_unpickle_ProvidedInstance = {"__pyx_unpickle_ProvidedInstance", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_96__pyx_unpickle_ProvidedInstance, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_96__pyx_unpickle_ProvidedInstance(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -72187,14 +73957,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_94__pyx_unpickle_Prov __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_93__pyx_unpickle_ProvidedInstance(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_95__pyx_unpickle_ProvidedInstance(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_93__pyx_unpickle_ProvidedInstance(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_95__pyx_unpickle_ProvidedInstance(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -72541,9 +74311,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Provide */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_96__pyx_unpickle_AttributeGetter(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_96__pyx_unpickle_AttributeGetter = {"__pyx_unpickle_AttributeGetter", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_96__pyx_unpickle_AttributeGetter, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_96__pyx_unpickle_AttributeGetter(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_98__pyx_unpickle_AttributeGetter(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_98__pyx_unpickle_AttributeGetter = {"__pyx_unpickle_AttributeGetter", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_98__pyx_unpickle_AttributeGetter, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_98__pyx_unpickle_AttributeGetter(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -72609,14 +74379,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_96__pyx_unpickle_Attr __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_95__pyx_unpickle_AttributeGetter(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_97__pyx_unpickle_AttributeGetter(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_95__pyx_unpickle_AttributeGetter(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_97__pyx_unpickle_AttributeGetter(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -72974,9 +74744,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Attribu */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_98__pyx_unpickle_ItemGetter(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_98__pyx_unpickle_ItemGetter = {"__pyx_unpickle_ItemGetter", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_98__pyx_unpickle_ItemGetter, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_98__pyx_unpickle_ItemGetter(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_100__pyx_unpickle_ItemGetter(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_100__pyx_unpickle_ItemGetter = {"__pyx_unpickle_ItemGetter", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_100__pyx_unpickle_ItemGetter, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_100__pyx_unpickle_ItemGetter(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -73042,14 +74812,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_98__pyx_unpickle_Item __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_97__pyx_unpickle_ItemGetter(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_99__pyx_unpickle_ItemGetter(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_97__pyx_unpickle_ItemGetter(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_99__pyx_unpickle_ItemGetter(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -73407,9 +75177,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_ItemGet */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_100__pyx_unpickle_MethodCaller(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_100__pyx_unpickle_MethodCaller = {"__pyx_unpickle_MethodCaller", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_100__pyx_unpickle_MethodCaller, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_100__pyx_unpickle_MethodCaller(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_102__pyx_unpickle_MethodCaller(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_102__pyx_unpickle_MethodCaller = {"__pyx_unpickle_MethodCaller", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_102__pyx_unpickle_MethodCaller, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_102__pyx_unpickle_MethodCaller(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -73475,14 +75245,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_100__pyx_unpickle_Met __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_99__pyx_unpickle_MethodCaller(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_101__pyx_unpickle_MethodCaller(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_99__pyx_unpickle_MethodCaller(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_101__pyx_unpickle_MethodCaller(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -73872,9 +75642,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_MethodC */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_102__pyx_unpickle_Injection(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_102__pyx_unpickle_Injection = {"__pyx_unpickle_Injection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_102__pyx_unpickle_Injection, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_102__pyx_unpickle_Injection(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_104__pyx_unpickle_Injection(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_104__pyx_unpickle_Injection = {"__pyx_unpickle_Injection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_104__pyx_unpickle_Injection, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_104__pyx_unpickle_Injection(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -73940,14 +75710,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_102__pyx_unpickle_Inj __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_101__pyx_unpickle_Injection(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_103__pyx_unpickle_Injection(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_101__pyx_unpickle_Injection(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_103__pyx_unpickle_Injection(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -74297,9 +76067,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Injecti */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_104__pyx_unpickle_PositionalInjection(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_104__pyx_unpickle_PositionalInjection = {"__pyx_unpickle_PositionalInjection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_104__pyx_unpickle_PositionalInjection, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_104__pyx_unpickle_PositionalInjection(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_106__pyx_unpickle_PositionalInjection(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_106__pyx_unpickle_PositionalInjection = {"__pyx_unpickle_PositionalInjection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_106__pyx_unpickle_PositionalInjection, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_106__pyx_unpickle_PositionalInjection(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -74365,14 +76135,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_104__pyx_unpickle_Pos __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_103__pyx_unpickle_PositionalInjection(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_105__pyx_unpickle_PositionalInjection(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_103__pyx_unpickle_PositionalInjection(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_105__pyx_unpickle_PositionalInjection(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -74722,9 +76492,9 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_Positio */ /* Python wrapper */ -static PyObject *__pyx_pw_19dependency_injector_9providers_106__pyx_unpickle_NamedInjection(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_19dependency_injector_9providers_106__pyx_unpickle_NamedInjection = {"__pyx_unpickle_NamedInjection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_106__pyx_unpickle_NamedInjection, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_19dependency_injector_9providers_106__pyx_unpickle_NamedInjection(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_19dependency_injector_9providers_108__pyx_unpickle_NamedInjection(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_19dependency_injector_9providers_108__pyx_unpickle_NamedInjection = {"__pyx_unpickle_NamedInjection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_108__pyx_unpickle_NamedInjection, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_19dependency_injector_9providers_108__pyx_unpickle_NamedInjection(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -74790,14 +76560,14 @@ static PyObject *__pyx_pw_19dependency_injector_9providers_106__pyx_unpickle_Nam __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_19dependency_injector_9providers_105__pyx_unpickle_NamedInjection(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_19dependency_injector_9providers_107__pyx_unpickle_NamedInjection(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_19dependency_injector_9providers_105__pyx_unpickle_NamedInjection(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_19dependency_injector_9providers_107__pyx_unpickle_NamedInjection(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; @@ -75151,7 +76921,7 @@ static PyObject *__pyx_f_19dependency_injector_9providers___pyx_unpickle_NamedIn return __pyx_r; } -/* "dependency_injector/providers.pxd":271 +/* "dependency_injector/providers.pxd":275 * * # Inline helper functions * cdef inline object __get_name(NamedInjection self): # <<<<<<<<<<<<<< @@ -75164,7 +76934,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_na __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get_name", 0); - /* "dependency_injector/providers.pxd":272 + /* "dependency_injector/providers.pxd":276 * # Inline helper functions * cdef inline object __get_name(NamedInjection self): * return self.__name # <<<<<<<<<<<<<< @@ -75176,7 +76946,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_na __pyx_r = __pyx_v_self->__pyx___name; goto __pyx_L0; - /* "dependency_injector/providers.pxd":271 + /* "dependency_injector/providers.pxd":275 * * # Inline helper functions * cdef inline object __get_name(NamedInjection self): # <<<<<<<<<<<<<< @@ -75191,7 +76961,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_na return __pyx_r; } -/* "dependency_injector/providers.pxd":275 +/* "dependency_injector/providers.pxd":279 * * * cdef inline object __get_value(Injection self): # <<<<<<<<<<<<<< @@ -75211,7 +76981,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get_value", 0); - /* "dependency_injector/providers.pxd":276 + /* "dependency_injector/providers.pxd":280 * * cdef inline object __get_value(Injection self): * if self.__call == 0: # <<<<<<<<<<<<<< @@ -75221,7 +76991,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va __pyx_t_1 = ((__pyx_v_self->__pyx___call == 0) != 0); if (__pyx_t_1) { - /* "dependency_injector/providers.pxd":277 + /* "dependency_injector/providers.pxd":281 * cdef inline object __get_value(Injection self): * if self.__call == 0: * return self.__value # <<<<<<<<<<<<<< @@ -75233,7 +77003,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va __pyx_r = __pyx_v_self->__pyx___value; goto __pyx_L0; - /* "dependency_injector/providers.pxd":276 + /* "dependency_injector/providers.pxd":280 * * cdef inline object __get_value(Injection self): * if self.__call == 0: # <<<<<<<<<<<<<< @@ -75242,7 +77012,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va */ } - /* "dependency_injector/providers.pxd":278 + /* "dependency_injector/providers.pxd":282 * if self.__call == 0: * return self.__value * return self.__value() # <<<<<<<<<<<<<< @@ -75263,14 +77033,14 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 278, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pxd":275 + /* "dependency_injector/providers.pxd":279 * * * cdef inline object __get_value(Injection self): # <<<<<<<<<<<<<< @@ -75291,7 +77061,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va return __pyx_r; } -/* "dependency_injector/providers.pxd":281 +/* "dependency_injector/providers.pxd":285 * * * cdef inline object __get_value_kwargs(Injection self, dict kwargs): # <<<<<<<<<<<<<< @@ -75309,7 +77079,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get_value_kwargs", 0); - /* "dependency_injector/providers.pxd":282 + /* "dependency_injector/providers.pxd":286 * * cdef inline object __get_value_kwargs(Injection self, dict kwargs): * if self.__call == 0: # <<<<<<<<<<<<<< @@ -75319,7 +77089,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va __pyx_t_1 = ((__pyx_v_self->__pyx___call == 0) != 0); if (__pyx_t_1) { - /* "dependency_injector/providers.pxd":283 + /* "dependency_injector/providers.pxd":287 * cdef inline object __get_value_kwargs(Injection self, dict kwargs): * if self.__call == 0: * return self.__value # <<<<<<<<<<<<<< @@ -75331,7 +77101,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va __pyx_r = __pyx_v_self->__pyx___value; goto __pyx_L0; - /* "dependency_injector/providers.pxd":282 + /* "dependency_injector/providers.pxd":286 * * cdef inline object __get_value_kwargs(Injection self, dict kwargs): * if self.__call == 0: # <<<<<<<<<<<<<< @@ -75340,7 +77110,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va */ } - /* "dependency_injector/providers.pxd":284 + /* "dependency_injector/providers.pxd":288 * if self.__call == 0: * return self.__value * return self.__value(**kwargs) # <<<<<<<<<<<<<< @@ -75350,15 +77120,15 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va __Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); - __PYX_ERR(0, 284, __pyx_L1_error) + __PYX_ERR(0, 288, __pyx_L1_error) } - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_self->__pyx___value, __pyx_empty_tuple, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 284, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_self->__pyx___value, __pyx_empty_tuple, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pxd":281 + /* "dependency_injector/providers.pxd":285 * * * cdef inline object __get_value_kwargs(Injection self, dict kwargs): # <<<<<<<<<<<<<< @@ -75377,7 +77147,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___get_va return __pyx_r; } -/* "dependency_injector/providers.pxd":287 +/* "dependency_injector/providers.pxd":291 * * * cdef inline tuple __separate_prefixed_kwargs(dict kwargs): # <<<<<<<<<<<<<< @@ -75410,31 +77180,31 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__separate_prefixed_kwargs", 0); - /* "dependency_injector/providers.pxd":288 + /* "dependency_injector/providers.pxd":292 * * cdef inline tuple __separate_prefixed_kwargs(dict kwargs): * cdef dict plain_kwargs = {} # <<<<<<<<<<<<<< * cdef dict prefixed_kwargs = {} * */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 288, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_plain_kwargs = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pxd":289 + /* "dependency_injector/providers.pxd":293 * cdef inline tuple __separate_prefixed_kwargs(dict kwargs): * cdef dict plain_kwargs = {} * cdef dict prefixed_kwargs = {} # <<<<<<<<<<<<<< * * for key, value in kwargs.items(): */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 289, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_prefixed_kwargs = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pxd":291 + /* "dependency_injector/providers.pxd":295 * cdef dict prefixed_kwargs = {} * * for key, value in kwargs.items(): # <<<<<<<<<<<<<< @@ -75443,17 +77213,17 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa */ if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); - __PYX_ERR(0, 291, __pyx_L1_error) + __PYX_ERR(0, 295, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyDict_Items(__pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_Items(__pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { - __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 295, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -75461,17 +77231,17 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 295, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 295, __pyx_L1_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } @@ -75481,7 +77251,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 291, __pyx_L1_error) + else __PYX_ERR(0, 295, __pyx_L1_error) } break; } @@ -75493,7 +77263,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 291, __pyx_L1_error) + __PYX_ERR(0, 295, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -75506,15 +77276,15 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); #else - __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; @@ -75522,7 +77292,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa __Pyx_GOTREF(__pyx_t_5); index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 291, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 295, __pyx_L1_error) __pyx_t_8 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L6_unpacking_done; @@ -75530,7 +77300,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 291, __pyx_L1_error) + __PYX_ERR(0, 295, __pyx_L1_error) __pyx_L6_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_5); @@ -75538,27 +77308,27 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_6); __pyx_t_6 = 0; - /* "dependency_injector/providers.pxd":292 + /* "dependency_injector/providers.pxd":296 * * for key, value in kwargs.items(): * if '__' not in key: # <<<<<<<<<<<<<< * plain_kwargs[key] = value * continue */ - __pyx_t_9 = (__Pyx_PySequence_ContainsTF(__pyx_n_s__3, __pyx_v_key, Py_NE)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 292, __pyx_L1_error) + __pyx_t_9 = (__Pyx_PySequence_ContainsTF(__pyx_n_s__4, __pyx_v_key, Py_NE)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 296, __pyx_L1_error) __pyx_t_10 = (__pyx_t_9 != 0); if (__pyx_t_10) { - /* "dependency_injector/providers.pxd":293 + /* "dependency_injector/providers.pxd":297 * for key, value in kwargs.items(): * if '__' not in key: * plain_kwargs[key] = value # <<<<<<<<<<<<<< * continue * */ - if (unlikely(PyDict_SetItem(__pyx_v_plain_kwargs, __pyx_v_key, __pyx_v_value) < 0)) __PYX_ERR(0, 293, __pyx_L1_error) + if (unlikely(PyDict_SetItem(__pyx_v_plain_kwargs, __pyx_v_key, __pyx_v_value) < 0)) __PYX_ERR(0, 297, __pyx_L1_error) - /* "dependency_injector/providers.pxd":294 + /* "dependency_injector/providers.pxd":298 * if '__' not in key: * plain_kwargs[key] = value * continue # <<<<<<<<<<<<<< @@ -75567,7 +77337,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa */ goto __pyx_L3_continue; - /* "dependency_injector/providers.pxd":292 + /* "dependency_injector/providers.pxd":296 * * for key, value in kwargs.items(): * if '__' not in key: # <<<<<<<<<<<<<< @@ -75576,14 +77346,14 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa */ } - /* "dependency_injector/providers.pxd":296 + /* "dependency_injector/providers.pxd":300 * continue * * index = key.index('__') # <<<<<<<<<<<<<< * prefix, name = key[:index], key[index+2:] * */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_key, __pyx_n_s_index); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 296, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_key, __pyx_n_s_index); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { @@ -75595,26 +77365,26 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa __Pyx_DECREF_SET(__pyx_t_6, function); } } - __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_n_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_s__3); + __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_n_s__4) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_s__4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pxd":297 + /* "dependency_injector/providers.pxd":301 * * index = key.index('__') * prefix, name = key[:index], key[index+2:] # <<<<<<<<<<<<<< * * if prefix not in prefixed_kwargs: */ - __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_key, 0, 0, NULL, &__pyx_v_index, NULL, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 297, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_key, 0, 0, NULL, &__pyx_v_index, NULL, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_v_index, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 297, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_v_index, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_key, 0, 0, &__pyx_t_6, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 297, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_key, 0, 0, &__pyx_t_6, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_1); @@ -75622,30 +77392,30 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/providers.pxd":299 + /* "dependency_injector/providers.pxd":303 * prefix, name = key[:index], key[index+2:] * * if prefix not in prefixed_kwargs: # <<<<<<<<<<<<<< * prefixed_kwargs[prefix] = {} * prefixed_kwargs[prefix][name] = value */ - __pyx_t_10 = (__Pyx_PyDict_ContainsTF(__pyx_v_prefix, __pyx_v_prefixed_kwargs, Py_NE)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 299, __pyx_L1_error) + __pyx_t_10 = (__Pyx_PyDict_ContainsTF(__pyx_v_prefix, __pyx_v_prefixed_kwargs, Py_NE)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 303, __pyx_L1_error) __pyx_t_9 = (__pyx_t_10 != 0); if (__pyx_t_9) { - /* "dependency_injector/providers.pxd":300 + /* "dependency_injector/providers.pxd":304 * * if prefix not in prefixed_kwargs: * prefixed_kwargs[prefix] = {} # <<<<<<<<<<<<<< * prefixed_kwargs[prefix][name] = value * */ - __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 300, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (unlikely(PyDict_SetItem(__pyx_v_prefixed_kwargs, __pyx_v_prefix, __pyx_t_5) < 0)) __PYX_ERR(0, 300, __pyx_L1_error) + if (unlikely(PyDict_SetItem(__pyx_v_prefixed_kwargs, __pyx_v_prefix, __pyx_t_5) < 0)) __PYX_ERR(0, 304, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/providers.pxd":299 + /* "dependency_injector/providers.pxd":303 * prefix, name = key[:index], key[index+2:] * * if prefix not in prefixed_kwargs: # <<<<<<<<<<<<<< @@ -75654,19 +77424,19 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa */ } - /* "dependency_injector/providers.pxd":301 + /* "dependency_injector/providers.pxd":305 * if prefix not in prefixed_kwargs: * prefixed_kwargs[prefix] = {} * prefixed_kwargs[prefix][name] = value # <<<<<<<<<<<<<< * * return plain_kwargs, prefixed_kwargs */ - __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_prefixed_kwargs, __pyx_v_prefix); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 301, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_prefixed_kwargs, __pyx_v_prefix); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_name, __pyx_v_value) < 0)) __PYX_ERR(0, 301, __pyx_L1_error) + if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_name, __pyx_v_value) < 0)) __PYX_ERR(0, 305, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/providers.pxd":291 + /* "dependency_injector/providers.pxd":295 * cdef dict prefixed_kwargs = {} * * for key, value in kwargs.items(): # <<<<<<<<<<<<<< @@ -75677,7 +77447,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pxd":303 + /* "dependency_injector/providers.pxd":307 * prefixed_kwargs[prefix][name] = value * * return plain_kwargs, prefixed_kwargs # <<<<<<<<<<<<<< @@ -75685,7 +77455,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 303, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_plain_kwargs); __Pyx_GIVEREF(__pyx_v_plain_kwargs); @@ -75697,7 +77467,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pxd":287 + /* "dependency_injector/providers.pxd":291 * * * cdef inline tuple __separate_prefixed_kwargs(dict kwargs): # <<<<<<<<<<<<<< @@ -75727,7 +77497,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___separa return __pyx_r; } -/* "dependency_injector/providers.pxd":308 +/* "dependency_injector/providers.pxd":312 * @cython.boundscheck(False) * @cython.wraparound(False) * cdef inline tuple __provide_positional_args( # <<<<<<<<<<<<<< @@ -75752,7 +77522,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__provide_positional_args", 0); - /* "dependency_injector/providers.pxd":317 + /* "dependency_injector/providers.pxd":321 * cdef PositionalInjection injection * * if inj_args_len == 0: # <<<<<<<<<<<<<< @@ -75762,7 +77532,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid __pyx_t_1 = ((__pyx_v_inj_args_len == 0) != 0); if (__pyx_t_1) { - /* "dependency_injector/providers.pxd":318 + /* "dependency_injector/providers.pxd":322 * * if inj_args_len == 0: * return args # <<<<<<<<<<<<<< @@ -75774,7 +77544,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid __pyx_r = __pyx_v_args; goto __pyx_L0; - /* "dependency_injector/providers.pxd":317 + /* "dependency_injector/providers.pxd":321 * cdef PositionalInjection injection * * if inj_args_len == 0: # <<<<<<<<<<<<<< @@ -75783,19 +77553,19 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ } - /* "dependency_injector/providers.pxd":320 + /* "dependency_injector/providers.pxd":324 * return args * * positional_args = list() # <<<<<<<<<<<<<< * for index in range(inj_args_len): * injection = inj_args[index] */ - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 320, __pyx_L1_error) + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_positional_args = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "dependency_injector/providers.pxd":321 + /* "dependency_injector/providers.pxd":325 * * positional_args = list() * for index in range(inj_args_len): # <<<<<<<<<<<<<< @@ -75807,7 +77577,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_index = __pyx_t_5; - /* "dependency_injector/providers.pxd":322 + /* "dependency_injector/providers.pxd":326 * positional_args = list() * for index in range(inj_args_len): * injection = inj_args[index] # <<<<<<<<<<<<<< @@ -75816,36 +77586,36 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ if (unlikely(__pyx_v_inj_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 322, __pyx_L1_error) + __PYX_ERR(0, 326, __pyx_L1_error) } __pyx_t_2 = PyTuple_GET_ITEM(__pyx_v_inj_args, __pyx_v_index); __Pyx_INCREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_injection, ((struct __pyx_obj_19dependency_injector_9providers_PositionalInjection *)__pyx_t_2)); __pyx_t_2 = 0; - /* "dependency_injector/providers.pxd":323 + /* "dependency_injector/providers.pxd":327 * for index in range(inj_args_len): * injection = inj_args[index] * positional_args.append(__get_value(injection)) # <<<<<<<<<<<<<< * positional_args.extend(args) * */ - __pyx_t_2 = __pyx_f_19dependency_injector_9providers___get_value(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_injection)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 323, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers___get_value(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_injection)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_positional_args, __pyx_t_2); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 323, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_positional_args, __pyx_t_2); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 327, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - /* "dependency_injector/providers.pxd":324 + /* "dependency_injector/providers.pxd":328 * injection = inj_args[index] * positional_args.append(__get_value(injection)) * positional_args.extend(args) # <<<<<<<<<<<<<< * * return tuple(positional_args) */ - __pyx_t_6 = __Pyx_PyList_Extend(__pyx_v_positional_args, __pyx_v_args); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 324, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyList_Extend(__pyx_v_positional_args, __pyx_v_args); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 328, __pyx_L1_error) - /* "dependency_injector/providers.pxd":326 + /* "dependency_injector/providers.pxd":330 * positional_args.extend(args) * * return tuple(positional_args) # <<<<<<<<<<<<<< @@ -75853,13 +77623,13 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyList_AsTuple(__pyx_v_positional_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 326, __pyx_L1_error) + __pyx_t_2 = PyList_AsTuple(__pyx_v_positional_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pxd":308 + /* "dependency_injector/providers.pxd":312 * @cython.boundscheck(False) * @cython.wraparound(False) * cdef inline tuple __provide_positional_args( # <<<<<<<<<<<<<< @@ -75880,7 +77650,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid return __pyx_r; } -/* "dependency_injector/providers.pxd":331 +/* "dependency_injector/providers.pxd":335 * @cython.boundscheck(False) * @cython.wraparound(False) * cdef inline dict __provide_keyword_args( # <<<<<<<<<<<<<< @@ -75911,7 +77681,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid __Pyx_RefNannySetupContext("__provide_keyword_args", 0); __Pyx_INCREF(__pyx_v_kwargs); - /* "dependency_injector/providers.pxd":342 + /* "dependency_injector/providers.pxd":346 * cdef NamedInjection kw_injection * * if len(kwargs) == 0: # <<<<<<<<<<<<<< @@ -75920,13 +77690,13 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 342, __pyx_L1_error) + __PYX_ERR(0, 346, __pyx_L1_error) } - __pyx_t_1 = PyDict_Size(__pyx_v_kwargs); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 342, __pyx_L1_error) + __pyx_t_1 = PyDict_Size(__pyx_v_kwargs); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 346, __pyx_L1_error) __pyx_t_2 = ((__pyx_t_1 == 0) != 0); if (__pyx_t_2) { - /* "dependency_injector/providers.pxd":343 + /* "dependency_injector/providers.pxd":347 * * if len(kwargs) == 0: * for index in range(inj_kwargs_len): # <<<<<<<<<<<<<< @@ -75938,7 +77708,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_index = __pyx_t_5; - /* "dependency_injector/providers.pxd":344 + /* "dependency_injector/providers.pxd":348 * if len(kwargs) == 0: * for index in range(inj_kwargs_len): * kw_injection = inj_kwargs[index] # <<<<<<<<<<<<<< @@ -75947,43 +77717,43 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ if (unlikely(__pyx_v_inj_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 344, __pyx_L1_error) + __PYX_ERR(0, 348, __pyx_L1_error) } __pyx_t_6 = PyTuple_GET_ITEM(__pyx_v_inj_kwargs, __pyx_v_index); __Pyx_INCREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_kw_injection, ((struct __pyx_obj_19dependency_injector_9providers_NamedInjection *)__pyx_t_6)); __pyx_t_6 = 0; - /* "dependency_injector/providers.pxd":345 + /* "dependency_injector/providers.pxd":349 * for index in range(inj_kwargs_len): * kw_injection = inj_kwargs[index] * name = __get_name(kw_injection) # <<<<<<<<<<<<<< * kwargs[name] = __get_value(kw_injection) * else: */ - __pyx_t_6 = __pyx_f_19dependency_injector_9providers___get_name(__pyx_v_kw_injection); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 345, __pyx_L1_error) + __pyx_t_6 = __pyx_f_19dependency_injector_9providers___get_name(__pyx_v_kw_injection); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_6); __pyx_t_6 = 0; - /* "dependency_injector/providers.pxd":346 + /* "dependency_injector/providers.pxd":350 * kw_injection = inj_kwargs[index] * name = __get_name(kw_injection) * kwargs[name] = __get_value(kw_injection) # <<<<<<<<<<<<<< * else: * kwargs, prefixed = __separate_prefixed_kwargs(kwargs) */ - __pyx_t_6 = __pyx_f_19dependency_injector_9providers___get_value(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_kw_injection)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 346, __pyx_L1_error) + __pyx_t_6 = __pyx_f_19dependency_injector_9providers___get_value(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_kw_injection)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 346, __pyx_L1_error) + __PYX_ERR(0, 350, __pyx_L1_error) } - if (unlikely(PyDict_SetItem(__pyx_v_kwargs, __pyx_v_name, __pyx_t_6) < 0)) __PYX_ERR(0, 346, __pyx_L1_error) + if (unlikely(PyDict_SetItem(__pyx_v_kwargs, __pyx_v_name, __pyx_t_6) < 0)) __PYX_ERR(0, 350, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } - /* "dependency_injector/providers.pxd":342 + /* "dependency_injector/providers.pxd":346 * cdef NamedInjection kw_injection * * if len(kwargs) == 0: # <<<<<<<<<<<<<< @@ -75993,7 +77763,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid goto __pyx_L3; } - /* "dependency_injector/providers.pxd":348 + /* "dependency_injector/providers.pxd":352 * kwargs[name] = __get_value(kw_injection) * else: * kwargs, prefixed = __separate_prefixed_kwargs(kwargs) # <<<<<<<<<<<<<< @@ -76001,7 +77771,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid * */ /*else*/ { - __pyx_t_6 = __pyx_f_19dependency_injector_9providers___separate_prefixed_kwargs(__pyx_v_kwargs); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 348, __pyx_L1_error) + __pyx_t_6 = __pyx_f_19dependency_injector_9providers___separate_prefixed_kwargs(__pyx_v_kwargs); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (likely(__pyx_t_6 != Py_None)) { PyObject* sequence = __pyx_t_6; @@ -76009,7 +77779,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 348, __pyx_L1_error) + __PYX_ERR(0, 352, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); @@ -76017,23 +77787,23 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); #else - __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 348, __pyx_L1_error) + __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 348, __pyx_L1_error) + __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); #endif __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 348, __pyx_L1_error) + __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 352, __pyx_L1_error) } - if (!(likely(PyDict_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 348, __pyx_L1_error) - if (!(likely(PyDict_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 348, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 352, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_kwargs, ((PyObject*)__pyx_t_7)); __pyx_t_7 = 0; __pyx_v_prefixed = ((PyObject*)__pyx_t_8); __pyx_t_8 = 0; - /* "dependency_injector/providers.pxd":351 + /* "dependency_injector/providers.pxd":355 * * * for index in range(inj_kwargs_len): # <<<<<<<<<<<<<< @@ -76045,7 +77815,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_index = __pyx_t_5; - /* "dependency_injector/providers.pxd":352 + /* "dependency_injector/providers.pxd":356 * * for index in range(inj_kwargs_len): * kw_injection = inj_kwargs[index] # <<<<<<<<<<<<<< @@ -76054,26 +77824,26 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ if (unlikely(__pyx_v_inj_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 352, __pyx_L1_error) + __PYX_ERR(0, 356, __pyx_L1_error) } __pyx_t_6 = PyTuple_GET_ITEM(__pyx_v_inj_kwargs, __pyx_v_index); __Pyx_INCREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_kw_injection, ((struct __pyx_obj_19dependency_injector_9providers_NamedInjection *)__pyx_t_6)); __pyx_t_6 = 0; - /* "dependency_injector/providers.pxd":353 + /* "dependency_injector/providers.pxd":357 * for index in range(inj_kwargs_len): * kw_injection = inj_kwargs[index] * name = __get_name(kw_injection) # <<<<<<<<<<<<<< * * if name in kwargs: */ - __pyx_t_6 = __pyx_f_19dependency_injector_9providers___get_name(__pyx_v_kw_injection); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 353, __pyx_L1_error) + __pyx_t_6 = __pyx_f_19dependency_injector_9providers___get_name(__pyx_v_kw_injection); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_6); __pyx_t_6 = 0; - /* "dependency_injector/providers.pxd":355 + /* "dependency_injector/providers.pxd":359 * name = __get_name(kw_injection) * * if name in kwargs: # <<<<<<<<<<<<<< @@ -76082,13 +77852,13 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 355, __pyx_L1_error) + __PYX_ERR(0, 359, __pyx_L1_error) } - __pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_kwargs, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 355, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_kwargs, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 359, __pyx_L1_error) __pyx_t_9 = (__pyx_t_2 != 0); if (__pyx_t_9) { - /* "dependency_injector/providers.pxd":356 + /* "dependency_injector/providers.pxd":360 * * if name in kwargs: * continue # <<<<<<<<<<<<<< @@ -76097,7 +77867,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ goto __pyx_L6_continue; - /* "dependency_injector/providers.pxd":355 + /* "dependency_injector/providers.pxd":359 * name = __get_name(kw_injection) * * if name in kwargs: # <<<<<<<<<<<<<< @@ -76106,7 +77876,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ } - /* "dependency_injector/providers.pxd":358 + /* "dependency_injector/providers.pxd":362 * continue * * if name in prefixed: # <<<<<<<<<<<<<< @@ -76115,13 +77885,13 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ if (unlikely(__pyx_v_prefixed == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 358, __pyx_L1_error) + __PYX_ERR(0, 362, __pyx_L1_error) } - __pyx_t_9 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_prefixed, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 358, __pyx_L1_error) + __pyx_t_9 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_prefixed, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 362, __pyx_L1_error) __pyx_t_2 = (__pyx_t_9 != 0); if (__pyx_t_2) { - /* "dependency_injector/providers.pxd":359 + /* "dependency_injector/providers.pxd":363 * * if name in prefixed: * value = __get_value_kwargs(kw_injection, prefixed[name]) # <<<<<<<<<<<<<< @@ -76130,18 +77900,18 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ if (unlikely(__pyx_v_prefixed == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 359, __pyx_L1_error) + __PYX_ERR(0, 363, __pyx_L1_error) } - __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_prefixed, __pyx_v_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 359, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_prefixed, __pyx_v_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - if (!(likely(PyDict_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 359, __pyx_L1_error) - __pyx_t_8 = __pyx_f_19dependency_injector_9providers___get_value_kwargs(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_kw_injection), ((PyObject*)__pyx_t_6)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 359, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 363, __pyx_L1_error) + __pyx_t_8 = __pyx_f_19dependency_injector_9providers___get_value_kwargs(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_kw_injection), ((PyObject*)__pyx_t_6)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_8); __pyx_t_8 = 0; - /* "dependency_injector/providers.pxd":358 + /* "dependency_injector/providers.pxd":362 * continue * * if name in prefixed: # <<<<<<<<<<<<<< @@ -76151,7 +77921,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid goto __pyx_L9; } - /* "dependency_injector/providers.pxd":361 + /* "dependency_injector/providers.pxd":365 * value = __get_value_kwargs(kw_injection, prefixed[name]) * else: * value = __get_value(kw_injection) # <<<<<<<<<<<<<< @@ -76159,14 +77929,14 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid * kwargs[name] = value */ /*else*/ { - __pyx_t_8 = __pyx_f_19dependency_injector_9providers___get_value(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_kw_injection)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 361, __pyx_L1_error) + __pyx_t_8 = __pyx_f_19dependency_injector_9providers___get_value(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_kw_injection)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_8); __pyx_t_8 = 0; } __pyx_L9:; - /* "dependency_injector/providers.pxd":363 + /* "dependency_injector/providers.pxd":367 * value = __get_value(kw_injection) * * kwargs[name] = value # <<<<<<<<<<<<<< @@ -76175,15 +77945,15 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid */ if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 363, __pyx_L1_error) + __PYX_ERR(0, 367, __pyx_L1_error) } - if (unlikely(PyDict_SetItem(__pyx_v_kwargs, __pyx_v_name, __pyx_v_value) < 0)) __PYX_ERR(0, 363, __pyx_L1_error) + if (unlikely(PyDict_SetItem(__pyx_v_kwargs, __pyx_v_name, __pyx_v_value) < 0)) __PYX_ERR(0, 367, __pyx_L1_error) __pyx_L6_continue:; } } __pyx_L3:; - /* "dependency_injector/providers.pxd":365 + /* "dependency_injector/providers.pxd":369 * kwargs[name] = value * * return kwargs # <<<<<<<<<<<<<< @@ -76195,7 +77965,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid __pyx_r = __pyx_v_kwargs; goto __pyx_L0; - /* "dependency_injector/providers.pxd":331 + /* "dependency_injector/providers.pxd":335 * @cython.boundscheck(False) * @cython.wraparound(False) * cdef inline dict __provide_keyword_args( # <<<<<<<<<<<<<< @@ -76221,7 +77991,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___provid return __pyx_r; } -/* "dependency_injector/providers.pxd":370 +/* "dependency_injector/providers.pxd":374 * @cython.boundscheck(False) * @cython.wraparound(False) * cdef inline object __inject_attributes( # <<<<<<<<<<<<<< @@ -76245,7 +78015,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___inject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__inject_attributes", 0); - /* "dependency_injector/providers.pxd":376 + /* "dependency_injector/providers.pxd":380 * ): * cdef NamedInjection attr_injection * for index in range(attributes_len): # <<<<<<<<<<<<<< @@ -76257,7 +78027,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___inject for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_index = __pyx_t_3; - /* "dependency_injector/providers.pxd":377 + /* "dependency_injector/providers.pxd":381 * cdef NamedInjection attr_injection * for index in range(attributes_len): * attr_injection = attributes[index] # <<<<<<<<<<<<<< @@ -76266,46 +78036,46 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___inject */ if (unlikely(__pyx_v_attributes == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 377, __pyx_L1_error) + __PYX_ERR(0, 381, __pyx_L1_error) } __pyx_t_4 = PyTuple_GET_ITEM(__pyx_v_attributes, __pyx_v_index); __Pyx_INCREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_attr_injection, ((struct __pyx_obj_19dependency_injector_9providers_NamedInjection *)__pyx_t_4)); __pyx_t_4 = 0; - /* "dependency_injector/providers.pxd":379 + /* "dependency_injector/providers.pxd":383 * attr_injection = attributes[index] * setattr(instance, * __get_name(attr_injection), # <<<<<<<<<<<<<< * __get_value(attr_injection)) * */ - __pyx_t_4 = __pyx_f_19dependency_injector_9providers___get_name(__pyx_v_attr_injection); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 379, __pyx_L1_error) + __pyx_t_4 = __pyx_f_19dependency_injector_9providers___get_name(__pyx_v_attr_injection); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - /* "dependency_injector/providers.pxd":380 + /* "dependency_injector/providers.pxd":384 * setattr(instance, * __get_name(attr_injection), * __get_value(attr_injection)) # <<<<<<<<<<<<<< * * */ - __pyx_t_5 = __pyx_f_19dependency_injector_9providers___get_value(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_attr_injection)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 380, __pyx_L1_error) + __pyx_t_5 = __pyx_f_19dependency_injector_9providers___get_value(((struct __pyx_obj_19dependency_injector_9providers_Injection *)__pyx_v_attr_injection)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - /* "dependency_injector/providers.pxd":378 + /* "dependency_injector/providers.pxd":382 * for index in range(attributes_len): * attr_injection = attributes[index] * setattr(instance, # <<<<<<<<<<<<<< * __get_name(attr_injection), * __get_value(attr_injection)) */ - __pyx_t_6 = PyObject_SetAttr(__pyx_v_instance, __pyx_t_4, __pyx_t_5); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 378, __pyx_L1_error) + __pyx_t_6 = PyObject_SetAttr(__pyx_v_instance, __pyx_t_4, __pyx_t_5); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 382, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } - /* "dependency_injector/providers.pxd":370 + /* "dependency_injector/providers.pxd":374 * @cython.boundscheck(False) * @cython.wraparound(False) * cdef inline object __inject_attributes( # <<<<<<<<<<<<<< @@ -76328,7 +78098,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___inject return __pyx_r; } -/* "dependency_injector/providers.pxd":383 +/* "dependency_injector/providers.pxd":387 * * * cdef inline object __call( # <<<<<<<<<<<<<< @@ -76347,31 +78117,31 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___call(P int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__call", 0); - /* "dependency_injector/providers.pxd":395 + /* "dependency_injector/providers.pxd":399 * cdef dict keyword_args * * positional_args = __provide_positional_args( # <<<<<<<<<<<<<< * context_args, * injection_args, */ - __pyx_t_1 = __pyx_f_19dependency_injector_9providers___provide_positional_args(__pyx_v_context_args, __pyx_v_injection_args, __pyx_v_injection_args_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 395, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers___provide_positional_args(__pyx_v_context_args, __pyx_v_injection_args, __pyx_v_injection_args_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_positional_args = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pxd":400 + /* "dependency_injector/providers.pxd":404 * injection_args_len, * ) * keyword_args = __provide_keyword_args( # <<<<<<<<<<<<<< * kwargs, * injection_kwargs, */ - __pyx_t_1 = __pyx_f_19dependency_injector_9providers___provide_keyword_args(__pyx_v_kwargs, __pyx_v_injection_kwargs, __pyx_v_injection_kwargs_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 400, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers___provide_keyword_args(__pyx_v_kwargs, __pyx_v_injection_kwargs, __pyx_v_injection_kwargs_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_keyword_args = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pxd":406 + /* "dependency_injector/providers.pxd":410 * ) * * return call(*positional_args, **keyword_args) # <<<<<<<<<<<<<< @@ -76381,19 +78151,19 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___call(P __Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_positional_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 406, __pyx_L1_error) + __PYX_ERR(0, 410, __pyx_L1_error) } if (unlikely(__pyx_v_keyword_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); - __PYX_ERR(0, 406, __pyx_L1_error) + __PYX_ERR(0, 410, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_call, __pyx_v_positional_args, __pyx_v_keyword_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 406, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_call, __pyx_v_positional_args, __pyx_v_keyword_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pxd":383 + /* "dependency_injector/providers.pxd":387 * * * cdef inline object __call( # <<<<<<<<<<<<<< @@ -76414,7 +78184,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___call(P return __pyx_r; } -/* "dependency_injector/providers.pxd":409 +/* "dependency_injector/providers.pxd":413 * * * cdef inline object __callable_call(Callable self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -76434,7 +78204,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___callab int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__callable_call", 0); - /* "dependency_injector/providers.pxd":410 + /* "dependency_injector/providers.pxd":414 * * cdef inline object __callable_call(Callable self, tuple args, dict kwargs): * return __call( # <<<<<<<<<<<<<< @@ -76443,7 +78213,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___callab */ __Pyx_XDECREF(__pyx_r); - /* "dependency_injector/providers.pxd":411 + /* "dependency_injector/providers.pxd":415 * cdef inline object __callable_call(Callable self, tuple args, dict kwargs): * return __call( * self.__provides, # <<<<<<<<<<<<<< @@ -76453,7 +78223,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___callab __pyx_t_1 = __pyx_v_self->__pyx___provides; __Pyx_INCREF(__pyx_t_1); - /* "dependency_injector/providers.pxd":413 + /* "dependency_injector/providers.pxd":417 * self.__provides, * args, * self.__args, # <<<<<<<<<<<<<< @@ -76463,7 +78233,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___callab __pyx_t_2 = __pyx_v_self->__pyx___args; __Pyx_INCREF(__pyx_t_2); - /* "dependency_injector/providers.pxd":416 + /* "dependency_injector/providers.pxd":420 * self.__args_len, * kwargs, * self.__kwargs, # <<<<<<<<<<<<<< @@ -76473,14 +78243,14 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___callab __pyx_t_3 = __pyx_v_self->__pyx___kwargs; __Pyx_INCREF(__pyx_t_3); - /* "dependency_injector/providers.pxd":410 + /* "dependency_injector/providers.pxd":414 * * cdef inline object __callable_call(Callable self, tuple args, dict kwargs): * return __call( # <<<<<<<<<<<<<< * self.__provides, * args, */ - __pyx_t_4 = __pyx_f_19dependency_injector_9providers___call(__pyx_t_1, __pyx_v_args, ((PyObject*)__pyx_t_2), __pyx_v_self->__pyx___args_len, __pyx_v_kwargs, ((PyObject*)__pyx_t_3), __pyx_v_self->__pyx___kwargs_len); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 410, __pyx_L1_error) + __pyx_t_4 = __pyx_f_19dependency_injector_9providers___call(__pyx_t_1, __pyx_v_args, ((PyObject*)__pyx_t_2), __pyx_v_self->__pyx___args_len, __pyx_v_kwargs, ((PyObject*)__pyx_t_3), __pyx_v_self->__pyx___kwargs_len); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -76489,7 +78259,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___callab __pyx_t_4 = 0; goto __pyx_L0; - /* "dependency_injector/providers.pxd":409 + /* "dependency_injector/providers.pxd":413 * * * cdef inline object __callable_call(Callable self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -76511,7 +78281,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___callab return __pyx_r; } -/* "dependency_injector/providers.pxd":421 +/* "dependency_injector/providers.pxd":425 * * * cdef inline object __factory_call(Factory self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -76531,7 +78301,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___factor int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__factory_call", 0); - /* "dependency_injector/providers.pxd":424 + /* "dependency_injector/providers.pxd":428 * cdef object instance * * instance = __callable_call(self.__instantiator, args, kwargs) # <<<<<<<<<<<<<< @@ -76540,13 +78310,13 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___factor */ __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx___instantiator); __Pyx_INCREF(__pyx_t_1); - __pyx_t_2 = __pyx_f_19dependency_injector_9providers___callable_call(((struct __pyx_obj_19dependency_injector_9providers_Callable *)__pyx_t_1), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 424, __pyx_L1_error) + __pyx_t_2 = __pyx_f_19dependency_injector_9providers___callable_call(((struct __pyx_obj_19dependency_injector_9providers_Callable *)__pyx_t_1), __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 428, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_instance = __pyx_t_2; __pyx_t_2 = 0; - /* "dependency_injector/providers.pxd":426 + /* "dependency_injector/providers.pxd":430 * instance = __callable_call(self.__instantiator, args, kwargs) * * if self.__attributes_len > 0: # <<<<<<<<<<<<<< @@ -76556,7 +78326,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___factor __pyx_t_3 = ((__pyx_v_self->__pyx___attributes_len > 0) != 0); if (__pyx_t_3) { - /* "dependency_injector/providers.pxd":428 + /* "dependency_injector/providers.pxd":432 * if self.__attributes_len > 0: * __inject_attributes(instance, * self.__attributes, # <<<<<<<<<<<<<< @@ -76566,19 +78336,19 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___factor __pyx_t_2 = __pyx_v_self->__pyx___attributes; __Pyx_INCREF(__pyx_t_2); - /* "dependency_injector/providers.pxd":427 + /* "dependency_injector/providers.pxd":431 * * if self.__attributes_len > 0: * __inject_attributes(instance, # <<<<<<<<<<<<<< * self.__attributes, * self.__attributes_len) */ - __pyx_t_1 = __pyx_f_19dependency_injector_9providers___inject_attributes(__pyx_v_instance, ((PyObject*)__pyx_t_2), __pyx_v_self->__pyx___attributes_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 427, __pyx_L1_error) + __pyx_t_1 = __pyx_f_19dependency_injector_9providers___inject_attributes(__pyx_v_instance, ((PyObject*)__pyx_t_2), __pyx_v_self->__pyx___attributes_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pxd":426 + /* "dependency_injector/providers.pxd":430 * instance = __callable_call(self.__instantiator, args, kwargs) * * if self.__attributes_len > 0: # <<<<<<<<<<<<<< @@ -76587,7 +78357,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___factor */ } - /* "dependency_injector/providers.pxd":431 + /* "dependency_injector/providers.pxd":435 * self.__attributes_len) * * return instance # <<<<<<<<<<<<<< @@ -76597,7 +78367,7 @@ static CYTHON_INLINE PyObject *__pyx_f_19dependency_injector_9providers___factor __pyx_r = __pyx_v_instance; goto __pyx_L0; - /* "dependency_injector/providers.pxd":421 + /* "dependency_injector/providers.pxd":425 * * * cdef inline object __factory_call(Factory self, tuple args, dict kwargs): # <<<<<<<<<<<<<< @@ -76952,6 +78722,10 @@ static int __pyx_tp_clear_19dependency_injector_9providers_Delegate(PyObject *o) return 0; } +static PyObject *__pyx_getprop_19dependency_injector_9providers_8Delegate_provides(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_19dependency_injector_9providers_8Delegate_8provides_1__get__(o); +} + static PyMethodDef __pyx_methods_19dependency_injector_9providers_Delegate[] = { {"__deepcopy__", (PyCFunction)__pyx_pw_19dependency_injector_9providers_8Delegate_3__deepcopy__, METH_O, __pyx_doc_19dependency_injector_9providers_8Delegate_2__deepcopy__}, {"_provide", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_8Delegate_9_provide, METH_VARARGS|METH_KEYWORDS, __pyx_doc_19dependency_injector_9providers_8Delegate_8_provide}, @@ -76960,6 +78734,11 @@ static PyMethodDef __pyx_methods_19dependency_injector_9providers_Delegate[] = { {0, 0, 0, 0} }; +static struct PyGetSetDef __pyx_getsets_19dependency_injector_9providers_Delegate[] = { + {(char *)"provides", __pyx_getprop_19dependency_injector_9providers_8Delegate_provides, 0, (char *)"Return provider.", 0}, + {0, 0, 0, 0, 0} +}; + static PyTypeObject __pyx_type_19dependency_injector_9providers_Delegate = { PyVarObject_HEAD_INIT(0, 0) "dependency_injector.providers.Delegate", /*tp_name*/ @@ -77004,7 +78783,7 @@ static PyTypeObject __pyx_type_19dependency_injector_9providers_Delegate = { 0, /*tp_iternext*/ __pyx_methods_19dependency_injector_9providers_Delegate, /*tp_methods*/ 0, /*tp_members*/ - 0, /*tp_getset*/ + __pyx_getsets_19dependency_injector_9providers_Delegate, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ @@ -78503,29 +80282,39 @@ static PyObject *__pyx_tp_getattro_19dependency_injector_9providers_Configuratio return v; } +static PyObject *__pyx_getprop_19dependency_injector_9providers_19ConfigurationOption_root(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_19dependency_injector_9providers_19ConfigurationOption_4root_1__get__(o); +} + static PyMethodDef __pyx_methods_19dependency_injector_9providers_ConfigurationOption[] = { {"__deepcopy__", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_3__deepcopy__, METH_O, 0}, {"__getattr__", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_7__getattr__, METH_O|METH_COEXIST, 0}, {"_provide", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_11_provide, METH_VARARGS|METH_KEYWORDS, __pyx_doc_19dependency_injector_9providers_19ConfigurationOption_10_provide}, {"_get_self_name", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_13_get_self_name, METH_NOARGS, 0}, {"get_name", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_15get_name, METH_NOARGS, 0}, - {"as_int", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_17as_int, METH_NOARGS, 0}, - {"as_float", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_19as_float, METH_NOARGS, 0}, - {"as_", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_21as_, METH_VARARGS|METH_KEYWORDS, 0}, - {"override", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_23override, METH_O, 0}, - {"reset_last_overriding", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_25reset_last_overriding, METH_NOARGS, 0}, - {"reset_override", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_27reset_override, METH_NOARGS, 0}, - {"reset_cache", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_29reset_cache, METH_NOARGS, 0}, - {"update", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_31update, METH_O, __pyx_doc_19dependency_injector_9providers_19ConfigurationOption_30update}, - {"from_ini", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_33from_ini, METH_O, __pyx_doc_19dependency_injector_9providers_19ConfigurationOption_32from_ini}, - {"from_yaml", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_35from_yaml, METH_O, __pyx_doc_19dependency_injector_9providers_19ConfigurationOption_34from_yaml}, - {"from_dict", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_37from_dict, METH_O, __pyx_doc_19dependency_injector_9providers_19ConfigurationOption_36from_dict}, - {"from_env", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_39from_env, METH_VARARGS|METH_KEYWORDS, __pyx_doc_19dependency_injector_9providers_19ConfigurationOption_38from_env}, - {"__reduce_cython__", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_41__reduce_cython__, METH_NOARGS, 0}, - {"__setstate_cython__", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_43__setstate_cython__, METH_O, 0}, + {"get_name_segments", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_17get_name_segments, METH_NOARGS, 0}, + {"as_int", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_19as_int, METH_NOARGS, 0}, + {"as_float", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_21as_float, METH_NOARGS, 0}, + {"as_", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_23as_, METH_VARARGS|METH_KEYWORDS, 0}, + {"override", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_25override, METH_O, 0}, + {"reset_last_overriding", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_27reset_last_overriding, METH_NOARGS, 0}, + {"reset_override", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_29reset_override, METH_NOARGS, 0}, + {"reset_cache", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_31reset_cache, METH_NOARGS, 0}, + {"update", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_33update, METH_O, __pyx_doc_19dependency_injector_9providers_19ConfigurationOption_32update}, + {"from_ini", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_35from_ini, METH_O, __pyx_doc_19dependency_injector_9providers_19ConfigurationOption_34from_ini}, + {"from_yaml", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_37from_yaml, METH_O, __pyx_doc_19dependency_injector_9providers_19ConfigurationOption_36from_yaml}, + {"from_dict", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_39from_dict, METH_O, __pyx_doc_19dependency_injector_9providers_19ConfigurationOption_38from_dict}, + {"from_env", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_41from_env, METH_VARARGS|METH_KEYWORDS, __pyx_doc_19dependency_injector_9providers_19ConfigurationOption_40from_env}, + {"__reduce_cython__", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_43__reduce_cython__, METH_NOARGS, 0}, + {"__setstate_cython__", (PyCFunction)__pyx_pw_19dependency_injector_9providers_19ConfigurationOption_45__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; +static struct PyGetSetDef __pyx_getsets_19dependency_injector_9providers_ConfigurationOption[] = { + {(char *)"root", __pyx_getprop_19dependency_injector_9providers_19ConfigurationOption_root, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + static PySequenceMethods __pyx_tp_as_sequence_ConfigurationOption = { 0, /*sq_length*/ 0, /*sq_concat*/ @@ -78593,7 +80382,7 @@ static PyTypeObject __pyx_type_19dependency_injector_9providers_ConfigurationOpt 0, /*tp_iternext*/ __pyx_methods_19dependency_injector_9providers_ConfigurationOption, /*tp_methods*/ 0, /*tp_members*/ - 0, /*tp_getset*/ + __pyx_getsets_19dependency_injector_9providers_ConfigurationOption, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ @@ -78621,6 +80410,116 @@ static PyTypeObject __pyx_type_19dependency_injector_9providers_ConfigurationOpt 0, /*tp_print*/ #endif }; +static struct __pyx_vtabstruct_19dependency_injector_9providers_TypedConfigurationOption __pyx_vtable_19dependency_injector_9providers_TypedConfigurationOption; + +static PyObject *__pyx_tp_new_19dependency_injector_9providers_TypedConfigurationOption(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_obj_19dependency_injector_9providers_TypedConfigurationOption *p; + PyObject *o = __pyx_tp_new_19dependency_injector_9providers_Callable(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_19dependency_injector_9providers_TypedConfigurationOption *)o); + p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_19dependency_injector_9providers_Provider*)__pyx_vtabptr_19dependency_injector_9providers_TypedConfigurationOption; + return o; +} + +static PyObject *__pyx_getprop_19dependency_injector_9providers_24TypedConfigurationOption_option(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_19dependency_injector_9providers_24TypedConfigurationOption_6option_1__get__(o); +} + +static PyMethodDef __pyx_methods_19dependency_injector_9providers_TypedConfigurationOption[] = { + {"__reduce_cython__", (PyCFunction)__pyx_pw_19dependency_injector_9providers_24TypedConfigurationOption_1__reduce_cython__, METH_NOARGS, 0}, + {"__setstate_cython__", (PyCFunction)__pyx_pw_19dependency_injector_9providers_24TypedConfigurationOption_3__setstate_cython__, METH_O, 0}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_19dependency_injector_9providers_TypedConfigurationOption[] = { + {(char *)"option", __pyx_getprop_19dependency_injector_9providers_24TypedConfigurationOption_option, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_19dependency_injector_9providers_TypedConfigurationOption = { + PyVarObject_HEAD_INIT(0, 0) + "dependency_injector.providers.TypedConfigurationOption", /*tp_name*/ + sizeof(struct __pyx_obj_19dependency_injector_9providers_TypedConfigurationOption), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_19dependency_injector_9providers_Callable, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + #if CYTHON_COMPILING_IN_PYPY + __pyx_pw_19dependency_injector_9providers_8Provider_11__repr__, /*tp_repr*/ + #else + 0, /*tp_repr*/ + #endif + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + #if CYTHON_COMPILING_IN_PYPY + __pyx_pw_19dependency_injector_9providers_8Provider_3__call__, /*tp_call*/ + #else + 0, /*tp_call*/ + #endif + #if CYTHON_COMPILING_IN_PYPY + __pyx_pw_19dependency_injector_9providers_8Callable_5__str__, /*tp_str*/ + #else + 0, /*tp_str*/ + #endif + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_19dependency_injector_9providers_Callable, /*tp_traverse*/ + __pyx_tp_clear_19dependency_injector_9providers_Callable, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_19dependency_injector_9providers_TypedConfigurationOption, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_19dependency_injector_9providers_TypedConfigurationOption, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + #if CYTHON_COMPILING_IN_PYPY + __pyx_pw_19dependency_injector_9providers_8Callable_1__init__, /*tp_init*/ + #else + 0, /*tp_init*/ + #endif + 0, /*tp_alloc*/ + __pyx_tp_new_19dependency_injector_9providers_TypedConfigurationOption, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif +}; static struct __pyx_vtabstruct_19dependency_injector_9providers_Configuration __pyx_vtable_19dependency_injector_9providers_Configuration; static PyObject *__pyx_tp_new_19dependency_injector_9providers_Configuration(PyTypeObject *t, PyObject *a, PyObject *k) { @@ -80648,9 +82547,9 @@ static PyObject *__pyx_tp_new_19dependency_injector_9providers_Container(PyTypeO if (unlikely(!o)) return 0; p = ((struct __pyx_obj_19dependency_injector_9providers_Container *)o); p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_19dependency_injector_9providers_Provider*)__pyx_vtabptr_19dependency_injector_9providers_Container; - p->container_cls = Py_None; Py_INCREF(Py_None); - p->overriding_providers = ((PyObject*)Py_None); Py_INCREF(Py_None); - p->container = Py_None; Py_INCREF(Py_None); + p->__pyx___container_cls = Py_None; Py_INCREF(Py_None); + p->__pyx___overriding_providers = ((PyObject*)Py_None); Py_INCREF(Py_None); + p->__pyx___container = Py_None; Py_INCREF(Py_None); return o; } @@ -80662,9 +82561,9 @@ static void __pyx_tp_dealloc_19dependency_injector_9providers_Container(PyObject } #endif PyObject_GC_UnTrack(o); - Py_CLEAR(p->container_cls); - Py_CLEAR(p->overriding_providers); - Py_CLEAR(p->container); + Py_CLEAR(p->__pyx___container_cls); + Py_CLEAR(p->__pyx___overriding_providers); + Py_CLEAR(p->__pyx___container); PyObject_GC_Track(o); __pyx_tp_dealloc_19dependency_injector_9providers_Provider(o); } @@ -80673,14 +82572,14 @@ static int __pyx_tp_traverse_19dependency_injector_9providers_Container(PyObject int e; struct __pyx_obj_19dependency_injector_9providers_Container *p = (struct __pyx_obj_19dependency_injector_9providers_Container *)o; e = __pyx_tp_traverse_19dependency_injector_9providers_Provider(o, v, a); if (e) return e; - if (p->container_cls) { - e = (*v)(p->container_cls, a); if (e) return e; + if (p->__pyx___container_cls) { + e = (*v)(p->__pyx___container_cls, a); if (e) return e; } - if (p->overriding_providers) { - e = (*v)(p->overriding_providers, a); if (e) return e; + if (p->__pyx___overriding_providers) { + e = (*v)(p->__pyx___overriding_providers, a); if (e) return e; } - if (p->container) { - e = (*v)(p->container, a); if (e) return e; + if (p->__pyx___container) { + e = (*v)(p->__pyx___container, a); if (e) return e; } return 0; } @@ -80689,14 +82588,14 @@ static int __pyx_tp_clear_19dependency_injector_9providers_Container(PyObject *o PyObject* tmp; struct __pyx_obj_19dependency_injector_9providers_Container *p = (struct __pyx_obj_19dependency_injector_9providers_Container *)o; __pyx_tp_clear_19dependency_injector_9providers_Provider(o); - tmp = ((PyObject*)p->container_cls); - p->container_cls = Py_None; Py_INCREF(Py_None); + tmp = ((PyObject*)p->__pyx___container_cls); + p->__pyx___container_cls = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); - tmp = ((PyObject*)p->overriding_providers); - p->overriding_providers = ((PyObject*)Py_None); Py_INCREF(Py_None); + tmp = ((PyObject*)p->__pyx___overriding_providers); + p->__pyx___overriding_providers = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); - tmp = ((PyObject*)p->container); - p->container = Py_None; Py_INCREF(Py_None); + tmp = ((PyObject*)p->__pyx___container); + p->__pyx___container = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } @@ -80710,6 +82609,10 @@ static PyObject *__pyx_tp_getattro_19dependency_injector_9providers_Container(Py return v; } +static PyObject *__pyx_getprop_19dependency_injector_9providers_9Container_container(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_19dependency_injector_9providers_9Container_9container_1__get__(o); +} + static PyMethodDef __pyx_methods_19dependency_injector_9providers_Container[] = { {"__deepcopy__", (PyCFunction)__pyx_pw_19dependency_injector_9providers_9Container_3__deepcopy__, METH_O, __pyx_doc_19dependency_injector_9providers_9Container_2__deepcopy__}, {"__getattr__", (PyCFunction)__pyx_pw_19dependency_injector_9providers_9Container_5__getattr__, METH_O|METH_COEXIST, __pyx_doc_19dependency_injector_9providers_9Container_4__getattr__}, @@ -80720,6 +82623,11 @@ static PyMethodDef __pyx_methods_19dependency_injector_9providers_Container[] = {0, 0, 0, 0} }; +static struct PyGetSetDef __pyx_getsets_19dependency_injector_9providers_Container[] = { + {(char *)"container", __pyx_getprop_19dependency_injector_9providers_9Container_container, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + static PyTypeObject __pyx_type_19dependency_injector_9providers_Container = { PyVarObject_HEAD_INIT(0, 0) "dependency_injector.providers.Container", /*tp_name*/ @@ -80772,7 +82680,7 @@ static PyTypeObject __pyx_type_19dependency_injector_9providers_Container = { 0, /*tp_iternext*/ __pyx_methods_19dependency_injector_9providers_Container, /*tp_methods*/ 0, /*tp_members*/ - 0, /*tp_getset*/ + __pyx_getsets_19dependency_injector_9providers_Container, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ @@ -81022,6 +82930,10 @@ static PyObject *__pyx_tp_getattro_19dependency_injector_9providers_ProvidedInst return v; } +static PyObject *__pyx_getprop_19dependency_injector_9providers_16ProvidedInstance_provides(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_19dependency_injector_9providers_16ProvidedInstance_8provides_1__get__(o); +} + static PyMethodDef __pyx_methods_19dependency_injector_9providers_ProvidedInstance[] = { {"__deepcopy__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_16ProvidedInstance_5__deepcopy__, METH_VARARGS|METH_KEYWORDS, 0}, {"__getattr__", (PyCFunction)__pyx_pw_19dependency_injector_9providers_16ProvidedInstance_7__getattr__, METH_O|METH_COEXIST, 0}, @@ -81032,6 +82944,11 @@ static PyMethodDef __pyx_methods_19dependency_injector_9providers_ProvidedInstan {0, 0, 0, 0} }; +static struct PyGetSetDef __pyx_getsets_19dependency_injector_9providers_ProvidedInstance[] = { + {(char *)"provides", __pyx_getprop_19dependency_injector_9providers_16ProvidedInstance_provides, 0, (char *)"Return provider.", 0}, + {0, 0, 0, 0, 0} +}; + static PySequenceMethods __pyx_tp_as_sequence_ProvidedInstance = { 0, /*sq_length*/ 0, /*sq_concat*/ @@ -81099,7 +83016,7 @@ static PyTypeObject __pyx_type_19dependency_injector_9providers_ProvidedInstance 0, /*tp_iternext*/ __pyx_methods_19dependency_injector_9providers_ProvidedInstance, /*tp_methods*/ 0, /*tp_members*/ - 0, /*tp_getset*/ + __pyx_getsets_19dependency_injector_9providers_ProvidedInstance, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ @@ -81196,6 +83113,14 @@ static PyObject *__pyx_tp_getattro_19dependency_injector_9providers_AttributeGet return v; } +static PyObject *__pyx_getprop_19dependency_injector_9providers_15AttributeGetter_provides(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_19dependency_injector_9providers_15AttributeGetter_8provides_1__get__(o); +} + +static PyObject *__pyx_getprop_19dependency_injector_9providers_15AttributeGetter_name(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_19dependency_injector_9providers_15AttributeGetter_4name_1__get__(o); +} + static PyMethodDef __pyx_methods_19dependency_injector_9providers_AttributeGetter[] = { {"__deepcopy__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_15AttributeGetter_5__deepcopy__, METH_VARARGS|METH_KEYWORDS, 0}, {"__getattr__", (PyCFunction)__pyx_pw_19dependency_injector_9providers_15AttributeGetter_7__getattr__, METH_O|METH_COEXIST, 0}, @@ -81206,6 +83131,12 @@ static PyMethodDef __pyx_methods_19dependency_injector_9providers_AttributeGette {0, 0, 0, 0} }; +static struct PyGetSetDef __pyx_getsets_19dependency_injector_9providers_AttributeGetter[] = { + {(char *)"provides", __pyx_getprop_19dependency_injector_9providers_15AttributeGetter_provides, 0, (char *)"Return provider.", 0}, + {(char *)"name", __pyx_getprop_19dependency_injector_9providers_15AttributeGetter_name, 0, (char *)"Return name of the attribute.", 0}, + {0, 0, 0, 0, 0} +}; + static PySequenceMethods __pyx_tp_as_sequence_AttributeGetter = { 0, /*sq_length*/ 0, /*sq_concat*/ @@ -81273,7 +83204,7 @@ static PyTypeObject __pyx_type_19dependency_injector_9providers_AttributeGetter 0, /*tp_iternext*/ __pyx_methods_19dependency_injector_9providers_AttributeGetter, /*tp_methods*/ 0, /*tp_members*/ - 0, /*tp_getset*/ + __pyx_getsets_19dependency_injector_9providers_AttributeGetter, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ @@ -81370,6 +83301,14 @@ static PyObject *__pyx_tp_getattro_19dependency_injector_9providers_ItemGetter(P return v; } +static PyObject *__pyx_getprop_19dependency_injector_9providers_10ItemGetter_provides(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_19dependency_injector_9providers_10ItemGetter_8provides_1__get__(o); +} + +static PyObject *__pyx_getprop_19dependency_injector_9providers_10ItemGetter_name(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_19dependency_injector_9providers_10ItemGetter_4name_1__get__(o); +} + static PyMethodDef __pyx_methods_19dependency_injector_9providers_ItemGetter[] = { {"__deepcopy__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_10ItemGetter_5__deepcopy__, METH_VARARGS|METH_KEYWORDS, 0}, {"__getattr__", (PyCFunction)__pyx_pw_19dependency_injector_9providers_10ItemGetter_7__getattr__, METH_O|METH_COEXIST, 0}, @@ -81380,6 +83319,12 @@ static PyMethodDef __pyx_methods_19dependency_injector_9providers_ItemGetter[] = {0, 0, 0, 0} }; +static struct PyGetSetDef __pyx_getsets_19dependency_injector_9providers_ItemGetter[] = { + {(char *)"provides", __pyx_getprop_19dependency_injector_9providers_10ItemGetter_provides, 0, (char *)"Return provider.", 0}, + {(char *)"name", __pyx_getprop_19dependency_injector_9providers_10ItemGetter_name, 0, (char *)"Return name of the item.", 0}, + {0, 0, 0, 0, 0} +}; + static PySequenceMethods __pyx_tp_as_sequence_ItemGetter = { 0, /*sq_length*/ 0, /*sq_concat*/ @@ -81447,7 +83392,7 @@ static PyTypeObject __pyx_type_19dependency_injector_9providers_ItemGetter = { 0, /*tp_iternext*/ __pyx_methods_19dependency_injector_9providers_ItemGetter, /*tp_methods*/ 0, /*tp_members*/ - 0, /*tp_getset*/ + __pyx_getsets_19dependency_injector_9providers_ItemGetter, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ @@ -81552,6 +83497,18 @@ static PyObject *__pyx_tp_getattro_19dependency_injector_9providers_MethodCaller return v; } +static PyObject *__pyx_getprop_19dependency_injector_9providers_12MethodCaller_provides(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_19dependency_injector_9providers_12MethodCaller_8provides_1__get__(o); +} + +static PyObject *__pyx_getprop_19dependency_injector_9providers_12MethodCaller_args(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_19dependency_injector_9providers_12MethodCaller_4args_1__get__(o); +} + +static PyObject *__pyx_getprop_19dependency_injector_9providers_12MethodCaller_kwargs(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_19dependency_injector_9providers_12MethodCaller_6kwargs_1__get__(o); +} + static PyMethodDef __pyx_methods_19dependency_injector_9providers_MethodCaller[] = { {"__deepcopy__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_9providers_12MethodCaller_5__deepcopy__, METH_VARARGS|METH_KEYWORDS, 0}, {"__getattr__", (PyCFunction)__pyx_pw_19dependency_injector_9providers_12MethodCaller_7__getattr__, METH_O|METH_COEXIST, 0}, @@ -81562,6 +83519,13 @@ static PyMethodDef __pyx_methods_19dependency_injector_9providers_MethodCaller[] {0, 0, 0, 0} }; +static struct PyGetSetDef __pyx_getsets_19dependency_injector_9providers_MethodCaller[] = { + {(char *)"provides", __pyx_getprop_19dependency_injector_9providers_12MethodCaller_provides, 0, (char *)"Return provider.", 0}, + {(char *)"args", __pyx_getprop_19dependency_injector_9providers_12MethodCaller_args, 0, (char *)"Return positional argument injections.", 0}, + {(char *)"kwargs", __pyx_getprop_19dependency_injector_9providers_12MethodCaller_kwargs, 0, (char *)"Return keyword argument injections.", 0}, + {0, 0, 0, 0, 0} +}; + static PySequenceMethods __pyx_tp_as_sequence_MethodCaller = { 0, /*sq_length*/ 0, /*sq_concat*/ @@ -81629,7 +83593,7 @@ static PyTypeObject __pyx_type_19dependency_injector_9providers_MethodCaller = { 0, /*tp_iternext*/ __pyx_methods_19dependency_injector_9providers_MethodCaller, /*tp_methods*/ 0, /*tp_members*/ - 0, /*tp_getset*/ + __pyx_getsets_19dependency_injector_9providers_MethodCaller, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ @@ -82540,6 +84504,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_DependenciesContainer, __pyx_k_DependenciesContainer, sizeof(__pyx_k_DependenciesContainer), 0, 0, 1, 1}, {&__pyx_n_s_Dependency, __pyx_k_Dependency, sizeof(__pyx_k_Dependency), 0, 0, 1, 1}, {&__pyx_kp_s_Dependency_is_not_defined, __pyx_k_Dependency_is_not_defined, sizeof(__pyx_k_Dependency_is_not_defined), 0, 0, 1, 0}, + {&__pyx_n_s_DeprecationWarning, __pyx_k_DeprecationWarning, sizeof(__pyx_k_DeprecationWarning), 0, 0, 1, 1}, {&__pyx_n_s_EnvInterpolation, __pyx_k_EnvInterpolation, sizeof(__pyx_k_EnvInterpolation), 0, 0, 1, 1}, {&__pyx_n_s_EnvInterpolation_before_get, __pyx_k_EnvInterpolation_before_get, sizeof(__pyx_k_EnvInterpolation_before_get), 0, 0, 1, 1}, {&__pyx_n_s_Error, __pyx_k_Error, sizeof(__pyx_k_Error), 0, 0, 1, 1}, @@ -82553,13 +84518,13 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_IS_PROVIDER, __pyx_k_IS_PROVIDER, sizeof(__pyx_k_IS_PROVIDER), 0, 0, 1, 1}, {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, {&__pyx_kp_s_Incompatible_checksums_s_vs_0x03, __pyx_k_Incompatible_checksums_s_vs_0x03, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x03), 0, 0, 1, 0}, + {&__pyx_kp_s_Incompatible_checksums_s_vs_0x04, __pyx_k_Incompatible_checksums_s_vs_0x04, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x04), 0, 0, 1, 0}, {&__pyx_kp_s_Incompatible_checksums_s_vs_0x0c, __pyx_k_Incompatible_checksums_s_vs_0x0c, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x0c), 0, 0, 1, 0}, {&__pyx_kp_s_Incompatible_checksums_s_vs_0x0d, __pyx_k_Incompatible_checksums_s_vs_0x0d, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x0d), 0, 0, 1, 0}, {&__pyx_kp_s_Incompatible_checksums_s_vs_0x0f, __pyx_k_Incompatible_checksums_s_vs_0x0f, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x0f), 0, 0, 1, 0}, {&__pyx_kp_s_Incompatible_checksums_s_vs_0x20, __pyx_k_Incompatible_checksums_s_vs_0x20, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x20), 0, 0, 1, 0}, {&__pyx_kp_s_Incompatible_checksums_s_vs_0x20_2, __pyx_k_Incompatible_checksums_s_vs_0x20_2, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x20_2), 0, 0, 1, 0}, {&__pyx_kp_s_Incompatible_checksums_s_vs_0x2e, __pyx_k_Incompatible_checksums_s_vs_0x2e, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x2e), 0, 0, 1, 0}, - {&__pyx_kp_s_Incompatible_checksums_s_vs_0x34, __pyx_k_Incompatible_checksums_s_vs_0x34, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x34), 0, 0, 1, 0}, {&__pyx_kp_s_Incompatible_checksums_s_vs_0x3f, __pyx_k_Incompatible_checksums_s_vs_0x3f, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x3f), 0, 0, 1, 0}, {&__pyx_kp_s_Incompatible_checksums_s_vs_0x57, __pyx_k_Incompatible_checksums_s_vs_0x57, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x57), 0, 0, 1, 0}, {&__pyx_kp_s_Incompatible_checksums_s_vs_0x58, __pyx_k_Incompatible_checksums_s_vs_0x58, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x58), 0, 0, 1, 0}, @@ -82582,6 +84547,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_Loader, __pyx_k_Loader, sizeof(__pyx_k_Loader), 0, 0, 1, 1}, {&__pyx_n_s_MethodCaller, __pyx_k_MethodCaller, sizeof(__pyx_k_MethodCaller), 0, 0, 1, 1}, {&__pyx_n_s_MethodType, __pyx_k_MethodType, sizeof(__pyx_k_MethodType), 0, 0, 1, 1}, + {&__pyx_kp_s_Method_delegate_is_deprecated_si, __pyx_k_Method_delegate_is_deprecated_si, sizeof(__pyx_k_Method_delegate_is_deprecated_si), 0, 0, 1, 0}, {&__pyx_n_s_NamedInjection, __pyx_k_NamedInjection, sizeof(__pyx_k_NamedInjection), 0, 0, 1, 1}, {&__pyx_n_s_NoSuchProviderError, __pyx_k_NoSuchProviderError, sizeof(__pyx_k_NoSuchProviderError), 0, 0, 1, 1}, {&__pyx_n_s_NotImplementedError, __pyx_k_NotImplementedError, sizeof(__pyx_k_NotImplementedError), 0, 0, 1, 1}, @@ -82607,16 +84573,17 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_ThreadLocalSingleton, __pyx_k_ThreadLocalSingleton, sizeof(__pyx_k_ThreadLocalSingleton), 0, 0, 1, 1}, {&__pyx_n_s_ThreadSafeSingleton, __pyx_k_ThreadSafeSingleton, sizeof(__pyx_k_ThreadSafeSingleton), 0, 0, 1, 1}, {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, + {&__pyx_n_s_TypedConfigurationOption, __pyx_k_TypedConfigurationOption, sizeof(__pyx_k_TypedConfigurationOption), 0, 0, 1, 1}, {&__pyx_n_s_UNDEFINED, __pyx_k_UNDEFINED, sizeof(__pyx_k_UNDEFINED), 0, 0, 1, 1}, {&__pyx_kp_s_Unable_to_load_yaml_configuratio, __pyx_k_Unable_to_load_yaml_configuratio, sizeof(__pyx_k_Unable_to_load_yaml_configuratio), 0, 0, 1, 0}, {&__pyx_kp_u__10, __pyx_k__10, sizeof(__pyx_k__10), 0, 1, 0, 0}, {&__pyx_kp_u__11, __pyx_k__11, sizeof(__pyx_k__11), 0, 1, 0, 0}, - {&__pyx_kp_s__12, __pyx_k__12, sizeof(__pyx_k__12), 0, 0, 1, 0}, - {&__pyx_kp_s__14, __pyx_k__14, sizeof(__pyx_k__14), 0, 0, 1, 0}, - {&__pyx_n_s__3, __pyx_k__3, sizeof(__pyx_k__3), 0, 0, 1, 1}, - {&__pyx_kp_s__4, __pyx_k__4, sizeof(__pyx_k__4), 0, 0, 1, 0}, - {&__pyx_kp_s__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 0, 1, 0}, - {&__pyx_kp_u__8, __pyx_k__8, sizeof(__pyx_k__8), 0, 1, 0, 0}, + {&__pyx_kp_u__12, __pyx_k__12, sizeof(__pyx_k__12), 0, 1, 0, 0}, + {&__pyx_kp_s__13, __pyx_k__13, sizeof(__pyx_k__13), 0, 0, 1, 0}, + {&__pyx_kp_s__15, __pyx_k__15, sizeof(__pyx_k__15), 0, 0, 1, 0}, + {&__pyx_n_s__4, __pyx_k__4, sizeof(__pyx_k__4), 0, 0, 1, 1}, + {&__pyx_kp_s__5, __pyx_k__5, sizeof(__pyx_k__5), 0, 0, 1, 0}, + {&__pyx_kp_s__8, __pyx_k__8, sizeof(__pyx_k__8), 0, 0, 1, 0}, {&__pyx_kp_u__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 1, 0, 0}, {&__pyx_n_s_add_args, __pyx_k_add_args, sizeof(__pyx_k_add_args), 0, 0, 1, 1}, {&__pyx_n_s_add_attributes, __pyx_k_add_attributes, sizeof(__pyx_k_add_attributes), 0, 0, 1, 1}, @@ -82636,6 +84603,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_call, __pyx_k_call, sizeof(__pyx_k_call), 0, 0, 1, 1}, {&__pyx_n_s_callable, __pyx_k_callable, sizeof(__pyx_k_callable), 0, 0, 1, 1}, {&__pyx_n_s_callback, __pyx_k_callback, sizeof(__pyx_k_callback), 0, 0, 1, 1}, + {&__pyx_n_s_category, __pyx_k_category, sizeof(__pyx_k_category), 0, 0, 1, 1}, {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1}, {&__pyx_n_s_class_getitem, __pyx_k_class_getitem, sizeof(__pyx_k_class_getitem), 0, 0, 1, 1}, {&__pyx_n_s_clear_args, __pyx_k_clear_args, sizeof(__pyx_k_clear_args), 0, 0, 1, 1}, @@ -82661,7 +84629,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_deepcopy_dispatch, __pyx_k_deepcopy_dispatch, sizeof(__pyx_k_deepcopy_dispatch), 0, 0, 1, 1}, {&__pyx_n_s_default, __pyx_k_default, sizeof(__pyx_k_default), 0, 0, 1, 1}, {&__pyx_n_s_defaults, __pyx_k_defaults, sizeof(__pyx_k_defaults), 0, 0, 1, 1}, - {&__pyx_n_s_delegate, __pyx_k_delegate, sizeof(__pyx_k_delegate), 0, 0, 1, 1}, {&__pyx_n_s_dependency_injector_providers, __pyx_k_dependency_injector_providers, sizeof(__pyx_k_dependency_injector_providers), 0, 0, 1, 1}, {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1}, {&__pyx_n_s_dict1, __pyx_k_dict1, sizeof(__pyx_k_dict1), 0, 0, 1, 1}, @@ -82791,6 +84758,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_pyx_unpickle_SingletonDelegate, __pyx_k_pyx_unpickle_SingletonDelegate, sizeof(__pyx_k_pyx_unpickle_SingletonDelegate), 0, 0, 1, 1}, {&__pyx_n_s_pyx_unpickle_ThreadLocalSingle, __pyx_k_pyx_unpickle_ThreadLocalSingle, sizeof(__pyx_k_pyx_unpickle_ThreadLocalSingle), 0, 0, 1, 1}, {&__pyx_n_s_pyx_unpickle_ThreadSafeSinglet, __pyx_k_pyx_unpickle_ThreadSafeSinglet, sizeof(__pyx_k_pyx_unpickle_ThreadSafeSinglet), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_unpickle_TypedConfiguratio, __pyx_k_pyx_unpickle_TypedConfiguratio, sizeof(__pyx_k_pyx_unpickle_TypedConfiguratio), 0, 0, 1, 1}, {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1}, {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, @@ -82839,6 +84807,8 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1}, {&__pyx_n_s_values, __pyx_k_values, sizeof(__pyx_k_values), 0, 0, 1, 1}, {&__pyx_n_s_version_info, __pyx_k_version_info, sizeof(__pyx_k_version_info), 0, 0, 1, 1}, + {&__pyx_n_s_warn, __pyx_k_warn, sizeof(__pyx_k_warn), 0, 0, 1, 1}, + {&__pyx_n_s_warnings, __pyx_k_warnings, sizeof(__pyx_k_warnings), 0, 0, 1, 1}, {&__pyx_n_s_weakref, __pyx_k_weakref, sizeof(__pyx_k_weakref), 0, 0, 1, 1}, {&__pyx_n_s_yaml, __pyx_k_yaml, sizeof(__pyx_k_yaml), 0, 0, 1, 1}, {&__pyx_n_s_yaml_env_marker_constructor, __pyx_k_yaml_env_marker_constructor, sizeof(__pyx_k_yaml_env_marker_constructor), 0, 0, 1, 1}, @@ -82846,18 +84816,19 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {0, 0, 0, 0, 0, 0, 0} }; static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 321, __pyx_L1_error) - __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 15, __pyx_L1_error) - __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s_object); if (!__pyx_builtin_object) __PYX_ERR(1, 431, __pyx_L1_error) - __pyx_builtin_super = __Pyx_GetBuiltinName(__pyx_n_s_super); if (!__pyx_builtin_super) __PYX_ERR(1, 67, __pyx_L1_error) - __pyx_builtin_open = __Pyx_GetBuiltinName(__pyx_n_s_open); if (!__pyx_builtin_open) __PYX_ERR(1, 80, __pyx_L1_error) - __pyx_builtin_IOError = __Pyx_GetBuiltinName(__pyx_n_s_IOError); if (!__pyx_builtin_IOError) __PYX_ERR(1, 82, __pyx_L1_error) - __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(1, 162, __pyx_L1_error) - __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(1, 243, __pyx_L1_error) - __pyx_builtin_NotImplementedError = __Pyx_GetBuiltinName(__pyx_n_s_NotImplementedError); if (!__pyx_builtin_NotImplementedError) __PYX_ERR(1, 277, __pyx_L1_error) - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(1, 434, __pyx_L1_error) - __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(1, 597, __pyx_L1_error) - __pyx_builtin_hex = __Pyx_GetBuiltinName(__pyx_n_s_hex); if (!__pyx_builtin_hex) __PYX_ERR(1, 2579, __pyx_L1_error) + __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 325, __pyx_L1_error) + __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 16, __pyx_L1_error) + __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s_object); if (!__pyx_builtin_object) __PYX_ERR(1, 442, __pyx_L1_error) + __pyx_builtin_super = __Pyx_GetBuiltinName(__pyx_n_s_super); if (!__pyx_builtin_super) __PYX_ERR(1, 68, __pyx_L1_error) + __pyx_builtin_open = __Pyx_GetBuiltinName(__pyx_n_s_open); if (!__pyx_builtin_open) __PYX_ERR(1, 81, __pyx_L1_error) + __pyx_builtin_IOError = __Pyx_GetBuiltinName(__pyx_n_s_IOError); if (!__pyx_builtin_IOError) __PYX_ERR(1, 83, __pyx_L1_error) + __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(1, 163, __pyx_L1_error) + __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(1, 244, __pyx_L1_error) + __pyx_builtin_DeprecationWarning = __Pyx_GetBuiltinName(__pyx_n_s_DeprecationWarning); if (!__pyx_builtin_DeprecationWarning) __PYX_ERR(1, 264, __pyx_L1_error) + __pyx_builtin_NotImplementedError = __Pyx_GetBuiltinName(__pyx_n_s_NotImplementedError); if (!__pyx_builtin_NotImplementedError) __PYX_ERR(1, 283, __pyx_L1_error) + __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(1, 445, __pyx_L1_error) + __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(1, 608, __pyx_L1_error) + __pyx_builtin_hex = __Pyx_GetBuiltinName(__pyx_n_s_hex); if (!__pyx_builtin_hex) __PYX_ERR(1, 2608, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; @@ -82867,291 +84838,306 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - /* "dependency_injector/providers.pyx":80 + /* "dependency_injector/providers.pyx":81 * parser = iniconfigparser.ConfigParser() * try: * with open(filepath) as config_file: # <<<<<<<<<<<<<< * config_string = os.path.expandvars(config_file.read()) * except IOError: */ - __pyx_tuple__2 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(1, 80, __pyx_L1_error) + __pyx_tuple__2 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(1, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__2); __Pyx_GIVEREF(__pyx_tuple__2); - /* "dependency_injector/providers.pyx":925 + /* "dependency_injector/providers.pyx":261 + * :rtype: :py:class:`Delegate` + * """ + * warnings.warn( # <<<<<<<<<<<<<< + * 'Method ".delegate()" is deprecated since version 4.0.0. ' + * 'Use ".provider" attribute instead.', + */ + __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_Method_delegate_is_deprecated_si); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(1, 261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__3); + __Pyx_GIVEREF(__pyx_tuple__3); + + /* "dependency_injector/providers.pyx":936 * cpdef object _provide(self, tuple args, dict kwargs): * """Return result of provided callable's call.""" * raise NotImplementedError('Abstract provider forward providing logic ' # <<<<<<<<<<<<<< * 'to overriding provider') * */ - __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_Abstract_provider_forward_provid); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(1, 925, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__5); - __Pyx_GIVEREF(__pyx_tuple__5); + __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_Abstract_provider_forward_provid); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 936, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__6); + __Pyx_GIVEREF(__pyx_tuple__6); - /* "dependency_injector/providers.pyx":19 + /* "dependency_injector/providers.pyx":20 * _is_coroutine_marker = None * else: * if sys.version_info >= (3, 5, 3): # <<<<<<<<<<<<<< * import asyncio.coroutines * _is_coroutine_marker = asyncio.coroutines._is_coroutine */ - __pyx_tuple__13 = PyTuple_Pack(3, __pyx_int_3, __pyx_int_5, __pyx_int_3); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(1, 19, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__13); - __Pyx_GIVEREF(__pyx_tuple__13); + __pyx_tuple__14 = PyTuple_Pack(3, __pyx_int_3, __pyx_int_5, __pyx_int_3); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(1, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__14); + __Pyx_GIVEREF(__pyx_tuple__14); - /* "dependency_injector/providers.pyx":54 + /* "dependency_injector/providers.pyx":55 * * if yaml: * yaml_env_marker_pattern = re.compile(r'\$\{([^}^{]+)\}') # <<<<<<<<<<<<<< * def yaml_env_marker_constructor(_, node): * """"Replace environment variable marker with its value.""" */ - __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_s__14); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(1, 54, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__15); - __Pyx_GIVEREF(__pyx_tuple__15); + __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s__15); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(1, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__16); + __Pyx_GIVEREF(__pyx_tuple__16); - /* "dependency_injector/providers.pyx":55 + /* "dependency_injector/providers.pyx":56 * if yaml: * yaml_env_marker_pattern = re.compile(r'\$\{([^}^{]+)\}') * def yaml_env_marker_constructor(_, node): # <<<<<<<<<<<<<< * """"Replace environment variable marker with its value.""" * return os.path.expandvars(node.value) */ - __pyx_tuple__16 = PyTuple_Pack(2, __pyx_n_s_, __pyx_n_s_node); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(1, 55, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__16); - __Pyx_GIVEREF(__pyx_tuple__16); - __pyx_codeobj__17 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__16, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_provider, __pyx_n_s_yaml_env_marker_constructor, 55, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__17)) __PYX_ERR(1, 55, __pyx_L1_error) + __pyx_tuple__17 = PyTuple_Pack(2, __pyx_n_s_, __pyx_n_s_node); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(1, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__17); + __Pyx_GIVEREF(__pyx_tuple__17); + __pyx_codeobj__18 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_provider, __pyx_n_s_yaml_env_marker_constructor, 56, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__18)) __PYX_ERR(1, 56, __pyx_L1_error) - /* "dependency_injector/providers.pyx":66 + /* "dependency_injector/providers.pyx":67 * """Interpolation which expands environment variables in values.""" * * def before_get(self, parser, section, option, value, defaults): # <<<<<<<<<<<<<< * value = super().before_get(parser, section, option, value, defaults) * return os.path.expandvars(value) */ - __pyx_tuple__18 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_parser, __pyx_n_s_section, __pyx_n_s_option, __pyx_n_s_value, __pyx_n_s_defaults); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(1, 66, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__18); - __Pyx_GIVEREF(__pyx_tuple__18); - __pyx_codeobj__19 = (PyObject*)__Pyx_PyCode_New(6, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__18, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_provider, __pyx_n_s_before_get, 66, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__19)) __PYX_ERR(1, 66, __pyx_L1_error) + __pyx_tuple__19 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_parser, __pyx_n_s_section, __pyx_n_s_option, __pyx_n_s_value, __pyx_n_s_defaults); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(1, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__19); + __Pyx_GIVEREF(__pyx_tuple__19); + __pyx_codeobj__20 = (PyObject*)__Pyx_PyCode_New(6, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__19, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_provider, __pyx_n_s_before_get, 67, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__20)) __PYX_ERR(1, 67, __pyx_L1_error) - /* "dependency_injector/providers.pyx":70 + /* "dependency_injector/providers.pyx":71 * return os.path.expandvars(value) * * def _parse_ini_file(filepath): # <<<<<<<<<<<<<< * parser = iniconfigparser.ConfigParser(interpolation=EnvInterpolation()) * parser.read(filepath) */ - __pyx_tuple__20 = PyTuple_Pack(2, __pyx_n_s_filepath, __pyx_n_s_parser); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(1, 70, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__20); - __Pyx_GIVEREF(__pyx_tuple__20); - __pyx_codeobj__21 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__20, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_provider, __pyx_n_s_parse_ini_file, 70, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__21)) __PYX_ERR(1, 70, __pyx_L1_error) + __pyx_tuple__21 = PyTuple_Pack(2, __pyx_n_s_filepath, __pyx_n_s_parser); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(1, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__21); + __Pyx_GIVEREF(__pyx_tuple__21); + __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_provider, __pyx_n_s_parse_ini_file, 71, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(1, 71, __pyx_L1_error) - /* "dependency_injector/providers.pyx":77 + /* "dependency_injector/providers.pyx":78 * import StringIO * * def _parse_ini_file(filepath): # <<<<<<<<<<<<<< * parser = iniconfigparser.ConfigParser() * try: */ - __pyx_tuple__22 = PyTuple_Pack(4, __pyx_n_s_filepath, __pyx_n_s_parser, __pyx_n_s_config_file, __pyx_n_s_config_string); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(1, 77, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__22); - __Pyx_GIVEREF(__pyx_tuple__22); - __pyx_codeobj__23 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__22, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_provider, __pyx_n_s_parse_ini_file, 77, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__23)) __PYX_ERR(1, 77, __pyx_L1_error) + __pyx_tuple__23 = PyTuple_Pack(4, __pyx_n_s_filepath, __pyx_n_s_parser, __pyx_n_s_config_file, __pyx_n_s_config_string); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(1, 78, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__23); + __Pyx_GIVEREF(__pyx_tuple__23); + __pyx_codeobj__24 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__23, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_provider, __pyx_n_s_parse_ini_file, 78, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__24)) __PYX_ERR(1, 78, __pyx_L1_error) - /* "dependency_injector/providers.pyx":2977 + /* "dependency_injector/providers.pyx":3062 * return copy.deepcopy(instance, memo) * * def __add_sys_streams(memo): # <<<<<<<<<<<<<< * """Add system streams to memo dictionary. * */ - __pyx_tuple__24 = PyTuple_Pack(1, __pyx_n_s_memo); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(1, 2977, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__24); - __Pyx_GIVEREF(__pyx_tuple__24); - __pyx_codeobj__25 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__24, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_provider, __pyx_n_s_add_sys_streams, 2977, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__25)) __PYX_ERR(1, 2977, __pyx_L1_error) + __pyx_tuple__25 = PyTuple_Pack(1, __pyx_n_s_memo); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(1, 3062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__25); + __Pyx_GIVEREF(__pyx_tuple__25); + __pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_provider, __pyx_n_s_add_sys_streams, 3062, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(1, 3062, __pyx_L1_error) - /* "dependency_injector/providers.pyx":2988 + /* "dependency_injector/providers.pyx":3073 * * * def merge_dicts(dict1, dict2): # <<<<<<<<<<<<<< * """Merge dictionaries recursively. * */ - __pyx_tuple__26 = PyTuple_Pack(5, __pyx_n_s_dict1, __pyx_n_s_dict2, __pyx_n_s_key, __pyx_n_s_value, __pyx_n_s_result); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(1, 2988, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__26); - __Pyx_GIVEREF(__pyx_tuple__26); - __pyx_codeobj__27 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__26, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_provider, __pyx_n_s_merge_dicts, 2988, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__27)) __PYX_ERR(1, 2988, __pyx_L1_error) + __pyx_tuple__27 = PyTuple_Pack(5, __pyx_n_s_dict1, __pyx_n_s_dict2, __pyx_n_s_key, __pyx_n_s_value, __pyx_n_s_result); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(1, 3073, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__27); + __Pyx_GIVEREF(__pyx_tuple__27); + __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dependency_injector_provider, __pyx_n_s_merge_dicts, 3073, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(1, 3073, __pyx_L1_error) /* "(tree fragment)":1 * def __pyx_unpickle_Provider(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ - __pyx_tuple__28 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__28); - __Pyx_GIVEREF(__pyx_tuple__28); - __pyx_codeobj__29 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__28, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Provider, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__29)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__30 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__30); - __Pyx_GIVEREF(__pyx_tuple__30); - __pyx_codeobj__31 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__30, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Object, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__31)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__32 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__32); - __Pyx_GIVEREF(__pyx_tuple__32); - __pyx_codeobj__33 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__32, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Delegate, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__33)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__34 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__34); - __Pyx_GIVEREF(__pyx_tuple__34); - __pyx_codeobj__35 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__34, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Dependency, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__35)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__36 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__36); - __Pyx_GIVEREF(__pyx_tuple__36); - __pyx_codeobj__37 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__36, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_ExternalDependenc, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__37)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__38 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__38); - __Pyx_GIVEREF(__pyx_tuple__38); - __pyx_codeobj__39 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__38, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_DependenciesConta, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__39)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__40 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__40); - __Pyx_GIVEREF(__pyx_tuple__40); - __pyx_codeobj__41 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__40, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_OverridingContext, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__41)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__42 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__42); - __Pyx_GIVEREF(__pyx_tuple__42); - __pyx_codeobj__43 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__42, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Callable, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__43)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__44 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__44); - __Pyx_GIVEREF(__pyx_tuple__44); - __pyx_codeobj__45 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_DelegatedCallable, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__45)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__46 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__46); - __Pyx_GIVEREF(__pyx_tuple__46); - __pyx_codeobj__47 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__46, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_AbstractCallable, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__47)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__48 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__48); - __Pyx_GIVEREF(__pyx_tuple__48); - __pyx_codeobj__49 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_CallableDelegate, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__49)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__50 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__50)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__50); - __Pyx_GIVEREF(__pyx_tuple__50); - __pyx_codeobj__51 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__50, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Coroutine, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__51)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__52 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__52); - __Pyx_GIVEREF(__pyx_tuple__52); - __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_DelegatedCoroutin, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__54 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__54)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__54); - __Pyx_GIVEREF(__pyx_tuple__54); - __pyx_codeobj__55 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__54, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_AbstractCoroutine, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__55)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__56 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__56)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__56); - __Pyx_GIVEREF(__pyx_tuple__56); - __pyx_codeobj__57 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__56, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_CoroutineDelegate, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__57)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__58 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__58)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__58); - __Pyx_GIVEREF(__pyx_tuple__58); - __pyx_codeobj__59 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__58, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_ConfigurationOpti, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__59)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__60 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__60)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__60); - __Pyx_GIVEREF(__pyx_tuple__60); - __pyx_codeobj__61 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Configuration, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__61)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__62 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__62)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__62); - __Pyx_GIVEREF(__pyx_tuple__62); - __pyx_codeobj__63 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__62, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Factory, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__63)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__64 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__64); - __Pyx_GIVEREF(__pyx_tuple__64); - __pyx_codeobj__65 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__64, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_DelegatedFactory, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__65)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__66 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__66); - __Pyx_GIVEREF(__pyx_tuple__66); - __pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__66, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_AbstractFactory, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__68 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__68)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__68); - __Pyx_GIVEREF(__pyx_tuple__68); - __pyx_codeobj__69 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_FactoryDelegate, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__69)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__70 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__70)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__70); - __Pyx_GIVEREF(__pyx_tuple__70); - __pyx_codeobj__71 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__70, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_FactoryAggregate, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__71)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__72 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__72)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__72); - __Pyx_GIVEREF(__pyx_tuple__72); - __pyx_codeobj__73 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_BaseSingleton, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__73)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__74 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__74)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__74); - __Pyx_GIVEREF(__pyx_tuple__74); - __pyx_codeobj__75 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Singleton, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__75)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__76 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__76)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__76); - __Pyx_GIVEREF(__pyx_tuple__76); - __pyx_codeobj__77 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_DelegatedSingleto, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__77)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__78 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__78)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__78); - __Pyx_GIVEREF(__pyx_tuple__78); - __pyx_codeobj__79 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__78, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_ThreadSafeSinglet, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__79)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__80 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__80)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__80); - __Pyx_GIVEREF(__pyx_tuple__80); - __pyx_codeobj__81 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_DelegatedThreadSa, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__81)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__82 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__82)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__82); - __Pyx_GIVEREF(__pyx_tuple__82); - __pyx_codeobj__83 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__82, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_ThreadLocalSingle, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__83)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__84 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__84)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__84); - __Pyx_GIVEREF(__pyx_tuple__84); - __pyx_codeobj__85 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__84, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_DelegatedThreadLo, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__85)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__86 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__86)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__86); - __Pyx_GIVEREF(__pyx_tuple__86); - __pyx_codeobj__87 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__86, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_AbstractSingleton, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__87)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__88 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__88)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__88); - __Pyx_GIVEREF(__pyx_tuple__88); - __pyx_codeobj__89 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_SingletonDelegate, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__89)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__90 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__90)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__90); - __Pyx_GIVEREF(__pyx_tuple__90); - __pyx_codeobj__91 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__90, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_List, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__91)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__92 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__92)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__92); - __Pyx_GIVEREF(__pyx_tuple__92); - __pyx_codeobj__93 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__92, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Container, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__93)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__94 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__94)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__94); - __Pyx_GIVEREF(__pyx_tuple__94); - __pyx_codeobj__95 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__94, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Selector, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__95)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__96 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__96)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__96); - __Pyx_GIVEREF(__pyx_tuple__96); - __pyx_codeobj__97 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__96, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_ProvidedInstance, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__97)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__98 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__98)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__98); - __Pyx_GIVEREF(__pyx_tuple__98); - __pyx_codeobj__99 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__98, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_AttributeGetter, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__99)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__100 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__100)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__100); - __Pyx_GIVEREF(__pyx_tuple__100); - __pyx_codeobj__101 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__100, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_ItemGetter, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__101)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__102 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__102)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__102); - __Pyx_GIVEREF(__pyx_tuple__102); - __pyx_codeobj__103 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__102, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_MethodCaller, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__103)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__104 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__104)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__104); - __Pyx_GIVEREF(__pyx_tuple__104); - __pyx_codeobj__105 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__104, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Injection, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__105)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__106 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__106)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__106); - __Pyx_GIVEREF(__pyx_tuple__106); - __pyx_codeobj__107 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__106, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_PositionalInjecti, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__107)) __PYX_ERR(2, 1, __pyx_L1_error) - __pyx_tuple__108 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__108)) __PYX_ERR(2, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__108); - __Pyx_GIVEREF(__pyx_tuple__108); - __pyx_codeobj__109 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_NamedInjection, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__109)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__29 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__29); + __Pyx_GIVEREF(__pyx_tuple__29); + __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Provider, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__31 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__31); + __Pyx_GIVEREF(__pyx_tuple__31); + __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Object, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__33 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__33); + __Pyx_GIVEREF(__pyx_tuple__33); + __pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Delegate, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__35 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__35); + __Pyx_GIVEREF(__pyx_tuple__35); + __pyx_codeobj__36 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__35, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Dependency, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__36)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__37 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__37); + __Pyx_GIVEREF(__pyx_tuple__37); + __pyx_codeobj__38 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_ExternalDependenc, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__38)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__39 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__39); + __Pyx_GIVEREF(__pyx_tuple__39); + __pyx_codeobj__40 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__39, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_DependenciesConta, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__40)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__41 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__41); + __Pyx_GIVEREF(__pyx_tuple__41); + __pyx_codeobj__42 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__41, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_OverridingContext, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__42)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__43 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__43); + __Pyx_GIVEREF(__pyx_tuple__43); + __pyx_codeobj__44 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__43, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Callable, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__44)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__45 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__45); + __Pyx_GIVEREF(__pyx_tuple__45); + __pyx_codeobj__46 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__45, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_DelegatedCallable, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__46)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__47 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__47); + __Pyx_GIVEREF(__pyx_tuple__47); + __pyx_codeobj__48 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__47, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_AbstractCallable, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__48)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__49 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__49)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__49); + __Pyx_GIVEREF(__pyx_tuple__49); + __pyx_codeobj__50 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__49, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_CallableDelegate, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__50)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__51 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__51)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__51); + __Pyx_GIVEREF(__pyx_tuple__51); + __pyx_codeobj__52 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__51, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Coroutine, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__52)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__53 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__53)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__53); + __Pyx_GIVEREF(__pyx_tuple__53); + __pyx_codeobj__54 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__53, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_DelegatedCoroutin, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__54)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__55 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__55); + __Pyx_GIVEREF(__pyx_tuple__55); + __pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_AbstractCoroutine, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__57 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__57); + __Pyx_GIVEREF(__pyx_tuple__57); + __pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__57, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_CoroutineDelegate, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__59 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__59); + __Pyx_GIVEREF(__pyx_tuple__59); + __pyx_codeobj__60 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_ConfigurationOpti, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__60)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__61 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__61)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__61); + __Pyx_GIVEREF(__pyx_tuple__61); + __pyx_codeobj__62 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__61, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_TypedConfiguratio, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__62)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__63 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__63)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__63); + __Pyx_GIVEREF(__pyx_tuple__63); + __pyx_codeobj__64 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__63, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Configuration, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__64)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__65 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__65)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__65); + __Pyx_GIVEREF(__pyx_tuple__65); + __pyx_codeobj__66 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__65, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Factory, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__66)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__67 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__67)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__67); + __Pyx_GIVEREF(__pyx_tuple__67); + __pyx_codeobj__68 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__67, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_DelegatedFactory, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__68)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__69 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__69)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__69); + __Pyx_GIVEREF(__pyx_tuple__69); + __pyx_codeobj__70 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_AbstractFactory, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__70)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__71 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__71)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__71); + __Pyx_GIVEREF(__pyx_tuple__71); + __pyx_codeobj__72 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_FactoryDelegate, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__72)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__73 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__73)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__73); + __Pyx_GIVEREF(__pyx_tuple__73); + __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__73, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_FactoryAggregate, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__75 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__75)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__75); + __Pyx_GIVEREF(__pyx_tuple__75); + __pyx_codeobj__76 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__75, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_BaseSingleton, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__76)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__77 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__77)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__77); + __Pyx_GIVEREF(__pyx_tuple__77); + __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__77, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Singleton, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__79 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__79)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__79); + __Pyx_GIVEREF(__pyx_tuple__79); + __pyx_codeobj__80 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__79, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_DelegatedSingleto, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__80)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__81 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__81)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__81); + __Pyx_GIVEREF(__pyx_tuple__81); + __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__81, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_ThreadSafeSinglet, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__83 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__83)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__83); + __Pyx_GIVEREF(__pyx_tuple__83); + __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__83, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_DelegatedThreadSa, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__85 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__85)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__85); + __Pyx_GIVEREF(__pyx_tuple__85); + __pyx_codeobj__86 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__85, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_ThreadLocalSingle, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__86)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__87 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__87)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__87); + __Pyx_GIVEREF(__pyx_tuple__87); + __pyx_codeobj__88 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__87, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_DelegatedThreadLo, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__88)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__89 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__89)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__89); + __Pyx_GIVEREF(__pyx_tuple__89); + __pyx_codeobj__90 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__89, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_AbstractSingleton, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__90)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__91 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__91)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__91); + __Pyx_GIVEREF(__pyx_tuple__91); + __pyx_codeobj__92 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__91, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_SingletonDelegate, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__92)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__93 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__93)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__93); + __Pyx_GIVEREF(__pyx_tuple__93); + __pyx_codeobj__94 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_List, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__94)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__95 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__95)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__95); + __Pyx_GIVEREF(__pyx_tuple__95); + __pyx_codeobj__96 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Container, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__96)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__97 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__97)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__97); + __Pyx_GIVEREF(__pyx_tuple__97); + __pyx_codeobj__98 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__97, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Selector, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__98)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__99 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__99)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__99); + __Pyx_GIVEREF(__pyx_tuple__99); + __pyx_codeobj__100 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__99, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_ProvidedInstance, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__100)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__101 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__101)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__101); + __Pyx_GIVEREF(__pyx_tuple__101); + __pyx_codeobj__102 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__101, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_AttributeGetter, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__102)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__103 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__103)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__103); + __Pyx_GIVEREF(__pyx_tuple__103); + __pyx_codeobj__104 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__103, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_ItemGetter, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__104)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__105 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__105)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__105); + __Pyx_GIVEREF(__pyx_tuple__105); + __pyx_codeobj__106 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__105, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_MethodCaller, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__106)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__107 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__107)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__107); + __Pyx_GIVEREF(__pyx_tuple__107); + __pyx_codeobj__108 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__107, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Injection, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__108)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__109 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__109)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__109); + __Pyx_GIVEREF(__pyx_tuple__109); + __pyx_codeobj__110 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__109, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_PositionalInjecti, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__110)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_tuple__111 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__111)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__111); + __Pyx_GIVEREF(__pyx_tuple__111); + __pyx_codeobj__112 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__111, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_NamedInjection, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__112)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; @@ -83169,13 +85155,13 @@ static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(1, 1, __pyx_L1_error) __pyx_int_5 = PyInt_FromLong(5); if (unlikely(!__pyx_int_5)) __PYX_ERR(1, 1, __pyx_L1_error) __pyx_int_3297756 = PyInt_FromLong(3297756L); if (unlikely(!__pyx_int_3297756)) __PYX_ERR(1, 1, __pyx_L1_error) + __pyx_int_4406536 = PyInt_FromLong(4406536L); if (unlikely(!__pyx_int_4406536)) __PYX_ERR(1, 1, __pyx_L1_error) __pyx_int_12885488 = PyInt_FromLong(12885488L); if (unlikely(!__pyx_int_12885488)) __PYX_ERR(1, 1, __pyx_L1_error) __pyx_int_13664252 = PyInt_FromLong(13664252L); if (unlikely(!__pyx_int_13664252)) __PYX_ERR(1, 1, __pyx_L1_error) __pyx_int_16106973 = PyInt_FromLong(16106973L); if (unlikely(!__pyx_int_16106973)) __PYX_ERR(1, 1, __pyx_L1_error) __pyx_int_33712928 = PyInt_FromLong(33712928L); if (unlikely(!__pyx_int_33712928)) __PYX_ERR(1, 1, __pyx_L1_error) __pyx_int_34020203 = PyInt_FromLong(34020203L); if (unlikely(!__pyx_int_34020203)) __PYX_ERR(1, 1, __pyx_L1_error) __pyx_int_48353679 = PyInt_FromLong(48353679L); if (unlikely(!__pyx_int_48353679)) __PYX_ERR(1, 1, __pyx_L1_error) - __pyx_int_55078363 = PyInt_FromLong(55078363L); if (unlikely(!__pyx_int_55078363)) __PYX_ERR(1, 1, __pyx_L1_error) __pyx_int_66364342 = PyInt_FromLong(66364342L); if (unlikely(!__pyx_int_66364342)) __PYX_ERR(1, 1, __pyx_L1_error) __pyx_int_91273250 = PyInt_FromLong(91273250L); if (unlikely(!__pyx_int_91273250)) __PYX_ERR(1, 1, __pyx_L1_error) __pyx_int_92376750 = PyInt_FromLong(92376750L); if (unlikely(!__pyx_int_92376750)) __PYX_ERR(1, 1, __pyx_L1_error) @@ -83258,7 +85244,7 @@ static int __Pyx_modinit_type_init_code(void) { __pyx_vtabptr_19dependency_injector_9providers_Provider = &__pyx_vtable_19dependency_injector_9providers_Provider; __pyx_vtable_19dependency_injector_9providers_Provider._provide = (PyObject *(*)(struct __pyx_obj_19dependency_injector_9providers_Provider *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_19dependency_injector_9providers_8Provider__provide; __pyx_vtable_19dependency_injector_9providers_Provider._copy_overridings = (void (*)(struct __pyx_obj_19dependency_injector_9providers_Provider *, struct __pyx_obj_19dependency_injector_9providers_Provider *, PyObject *, int __pyx_skip_dispatch))__pyx_f_19dependency_injector_9providers_8Provider__copy_overridings; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Provider) < 0) __PYX_ERR(1, 89, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Provider) < 0) __PYX_ERR(1, 90, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_Provider.tp_print = 0; #endif @@ -83267,7 +85253,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Provider, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 89, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Provider, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 90, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_8Provider___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_8Provider___init__.doc = __pyx_doc_19dependency_injector_9providers_8Provider___init__; @@ -83277,7 +85263,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Provider, "__call__"); if (unlikely(!wrapper)) __PYX_ERR(1, 89, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Provider, "__call__"); if (unlikely(!wrapper)) __PYX_ERR(1, 90, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_8Provider_2__call__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_8Provider_2__call__.doc = __pyx_doc_19dependency_injector_9providers_8Provider_2__call__; @@ -83287,7 +85273,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Provider, "__str__"); if (unlikely(!wrapper)) __PYX_ERR(1, 89, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Provider, "__str__"); if (unlikely(!wrapper)) __PYX_ERR(1, 90, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_8Provider_8__str__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_8Provider_8__str__.doc = __pyx_doc_19dependency_injector_9providers_8Provider_8__str__; @@ -83297,7 +85283,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Provider, "__repr__"); if (unlikely(!wrapper)) __PYX_ERR(1, 89, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Provider, "__repr__"); if (unlikely(!wrapper)) __PYX_ERR(1, 90, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_8Provider_10__repr__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_8Provider_10__repr__.doc = __pyx_doc_19dependency_injector_9providers_8Provider_10__repr__; @@ -83305,15 +85291,15 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Provider.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Provider) < 0) __PYX_ERR(1, 89, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Provider, (PyObject *)&__pyx_type_19dependency_injector_9providers_Provider) < 0) __PYX_ERR(1, 89, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Provider) < 0) __PYX_ERR(1, 89, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Provider.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Provider) < 0) __PYX_ERR(1, 90, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Provider, (PyObject *)&__pyx_type_19dependency_injector_9providers_Provider) < 0) __PYX_ERR(1, 90, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Provider) < 0) __PYX_ERR(1, 90, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_Provider = &__pyx_type_19dependency_injector_9providers_Provider; __pyx_vtabptr_19dependency_injector_9providers_Object = &__pyx_vtable_19dependency_injector_9providers_Object; __pyx_vtable_19dependency_injector_9providers_Object.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Provider; __pyx_vtable_19dependency_injector_9providers_Object.__pyx_base._provide = (PyObject *(*)(struct __pyx_obj_19dependency_injector_9providers_Provider *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_19dependency_injector_9providers_6Object__provide; __pyx_type_19dependency_injector_9providers_Object.tp_base = __pyx_ptype_19dependency_injector_9providers_Provider; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Object) < 0) __PYX_ERR(1, 285, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Object) < 0) __PYX_ERR(1, 291, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_Object.tp_print = 0; #endif @@ -83322,7 +85308,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Object, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 285, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Object, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 291, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_6Object___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_6Object___init__.doc = __pyx_doc_19dependency_injector_9providers_6Object___init__; @@ -83332,7 +85318,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Object, "__str__"); if (unlikely(!wrapper)) __PYX_ERR(1, 285, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Object, "__str__"); if (unlikely(!wrapper)) __PYX_ERR(1, 291, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_6Object_4__str__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_6Object_4__str__.doc = __pyx_doc_19dependency_injector_9providers_6Object_4__str__; @@ -83342,7 +85328,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Object, "__repr__"); if (unlikely(!wrapper)) __PYX_ERR(1, 285, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Object, "__repr__"); if (unlikely(!wrapper)) __PYX_ERR(1, 291, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_6Object_6__repr__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_6Object_6__repr__.doc = __pyx_doc_19dependency_injector_9providers_6Object_6__repr__; @@ -83350,15 +85336,15 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Object.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Object) < 0) __PYX_ERR(1, 285, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Object, (PyObject *)&__pyx_type_19dependency_injector_9providers_Object) < 0) __PYX_ERR(1, 285, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Object) < 0) __PYX_ERR(1, 285, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Object.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Object) < 0) __PYX_ERR(1, 291, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Object, (PyObject *)&__pyx_type_19dependency_injector_9providers_Object) < 0) __PYX_ERR(1, 291, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Object) < 0) __PYX_ERR(1, 291, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_Object = &__pyx_type_19dependency_injector_9providers_Object; __pyx_vtabptr_19dependency_injector_9providers_Delegate = &__pyx_vtable_19dependency_injector_9providers_Delegate; __pyx_vtable_19dependency_injector_9providers_Delegate.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Provider; __pyx_vtable_19dependency_injector_9providers_Delegate.__pyx_base._provide = (PyObject *(*)(struct __pyx_obj_19dependency_injector_9providers_Provider *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_19dependency_injector_9providers_8Delegate__provide; __pyx_type_19dependency_injector_9providers_Delegate.tp_base = __pyx_ptype_19dependency_injector_9providers_Provider; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Delegate) < 0) __PYX_ERR(1, 349, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Delegate) < 0) __PYX_ERR(1, 355, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_Delegate.tp_print = 0; #endif @@ -83367,7 +85353,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Delegate, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 349, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Delegate, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 355, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_8Delegate___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_8Delegate___init__.doc = __pyx_doc_19dependency_injector_9providers_8Delegate___init__; @@ -83377,7 +85363,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Delegate, "__str__"); if (unlikely(!wrapper)) __PYX_ERR(1, 349, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Delegate, "__str__"); if (unlikely(!wrapper)) __PYX_ERR(1, 355, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_8Delegate_4__str__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_8Delegate_4__str__.doc = __pyx_doc_19dependency_injector_9providers_8Delegate_4__str__; @@ -83387,7 +85373,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Delegate, "__repr__"); if (unlikely(!wrapper)) __PYX_ERR(1, 349, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Delegate, "__repr__"); if (unlikely(!wrapper)) __PYX_ERR(1, 355, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_8Delegate_6__repr__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_8Delegate_6__repr__.doc = __pyx_doc_19dependency_injector_9providers_8Delegate_6__repr__; @@ -83395,14 +85381,14 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Delegate.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Delegate) < 0) __PYX_ERR(1, 349, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Delegate, (PyObject *)&__pyx_type_19dependency_injector_9providers_Delegate) < 0) __PYX_ERR(1, 349, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Delegate) < 0) __PYX_ERR(1, 349, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Delegate.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Delegate) < 0) __PYX_ERR(1, 355, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Delegate, (PyObject *)&__pyx_type_19dependency_injector_9providers_Delegate) < 0) __PYX_ERR(1, 355, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Delegate) < 0) __PYX_ERR(1, 355, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_Delegate = &__pyx_type_19dependency_injector_9providers_Delegate; __pyx_vtabptr_19dependency_injector_9providers_Dependency = &__pyx_vtable_19dependency_injector_9providers_Dependency; __pyx_vtable_19dependency_injector_9providers_Dependency.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Provider; __pyx_type_19dependency_injector_9providers_Dependency.tp_base = __pyx_ptype_19dependency_injector_9providers_Provider; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Dependency) < 0) __PYX_ERR(1, 408, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Dependency) < 0) __PYX_ERR(1, 419, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_Dependency.tp_print = 0; #endif @@ -83411,7 +85397,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Dependency, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 408, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Dependency, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 419, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_10Dependency___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_10Dependency___init__.doc = __pyx_doc_19dependency_injector_9providers_10Dependency___init__; @@ -83421,7 +85407,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Dependency, "__call__"); if (unlikely(!wrapper)) __PYX_ERR(1, 408, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Dependency, "__call__"); if (unlikely(!wrapper)) __PYX_ERR(1, 419, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_10Dependency_4__call__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_10Dependency_4__call__.doc = __pyx_doc_19dependency_injector_9providers_10Dependency_4__call__; @@ -83431,7 +85417,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Dependency, "__str__"); if (unlikely(!wrapper)) __PYX_ERR(1, 408, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Dependency, "__str__"); if (unlikely(!wrapper)) __PYX_ERR(1, 419, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_10Dependency_6__str__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_10Dependency_6__str__.doc = __pyx_doc_19dependency_injector_9providers_10Dependency_6__str__; @@ -83441,7 +85427,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Dependency, "__repr__"); if (unlikely(!wrapper)) __PYX_ERR(1, 408, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Dependency, "__repr__"); if (unlikely(!wrapper)) __PYX_ERR(1, 419, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_10Dependency_8__repr__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_10Dependency_8__repr__.doc = __pyx_doc_19dependency_injector_9providers_10Dependency_8__repr__; @@ -83449,35 +85435,35 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Dependency.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Dependency) < 0) __PYX_ERR(1, 408, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Dependency, (PyObject *)&__pyx_type_19dependency_injector_9providers_Dependency) < 0) __PYX_ERR(1, 408, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Dependency) < 0) __PYX_ERR(1, 408, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Dependency.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Dependency) < 0) __PYX_ERR(1, 419, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Dependency, (PyObject *)&__pyx_type_19dependency_injector_9providers_Dependency) < 0) __PYX_ERR(1, 419, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Dependency) < 0) __PYX_ERR(1, 419, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_Dependency = &__pyx_type_19dependency_injector_9providers_Dependency; __pyx_vtabptr_19dependency_injector_9providers_ExternalDependency = &__pyx_vtable_19dependency_injector_9providers_ExternalDependency; __pyx_vtable_19dependency_injector_9providers_ExternalDependency.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Dependency; __pyx_type_19dependency_injector_9providers_ExternalDependency.tp_base = __pyx_ptype_19dependency_injector_9providers_Dependency; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_ExternalDependency) < 0) __PYX_ERR(1, 511, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_ExternalDependency) < 0) __PYX_ERR(1, 522, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_ExternalDependency.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_19dependency_injector_9providers_ExternalDependency.tp_dictoffset && __pyx_type_19dependency_injector_9providers_ExternalDependency.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_19dependency_injector_9providers_ExternalDependency.tp_getattro = __Pyx_PyObject_GenericGetAttr; } - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_ExternalDependency.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_ExternalDependency) < 0) __PYX_ERR(1, 511, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ExternalDependency, (PyObject *)&__pyx_type_19dependency_injector_9providers_ExternalDependency) < 0) __PYX_ERR(1, 511, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_ExternalDependency) < 0) __PYX_ERR(1, 511, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_ExternalDependency.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_ExternalDependency) < 0) __PYX_ERR(1, 522, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ExternalDependency, (PyObject *)&__pyx_type_19dependency_injector_9providers_ExternalDependency) < 0) __PYX_ERR(1, 522, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_ExternalDependency) < 0) __PYX_ERR(1, 522, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_ExternalDependency = &__pyx_type_19dependency_injector_9providers_ExternalDependency; __pyx_vtabptr_19dependency_injector_9providers_DependenciesContainer = &__pyx_vtable_19dependency_injector_9providers_DependenciesContainer; __pyx_vtable_19dependency_injector_9providers_DependenciesContainer.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Object; __pyx_vtable_19dependency_injector_9providers_DependenciesContainer._override_providers = (PyObject *(*)(struct __pyx_obj_19dependency_injector_9providers_DependenciesContainer *, PyObject *, int __pyx_skip_dispatch))__pyx_f_19dependency_injector_9providers_21DependenciesContainer__override_providers; __pyx_type_19dependency_injector_9providers_DependenciesContainer.tp_base = __pyx_ptype_19dependency_injector_9providers_Object; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_DependenciesContainer) < 0) __PYX_ERR(1, 539, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_DependenciesContainer) < 0) __PYX_ERR(1, 550, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_DependenciesContainer.tp_print = 0; #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_DependenciesContainer, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 539, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_DependenciesContainer, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 550, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_21DependenciesContainer___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_21DependenciesContainer___init__.doc = __pyx_doc_19dependency_injector_9providers_21DependenciesContainer___init__; @@ -83487,7 +85473,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_DependenciesContainer, "__getattr__"); if (unlikely(!wrapper)) __PYX_ERR(1, 539, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_DependenciesContainer, "__getattr__"); if (unlikely(!wrapper)) __PYX_ERR(1, 550, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_21DependenciesContainer_4__getattr__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_21DependenciesContainer_4__getattr__.doc = __pyx_doc_19dependency_injector_9providers_21DependenciesContainer_4__getattr__; @@ -83495,11 +85481,11 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_DependenciesContainer.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_DependenciesContainer) < 0) __PYX_ERR(1, 539, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DependenciesContainer, (PyObject *)&__pyx_type_19dependency_injector_9providers_DependenciesContainer) < 0) __PYX_ERR(1, 539, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_DependenciesContainer) < 0) __PYX_ERR(1, 539, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_DependenciesContainer.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_DependenciesContainer) < 0) __PYX_ERR(1, 550, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DependenciesContainer, (PyObject *)&__pyx_type_19dependency_injector_9providers_DependenciesContainer) < 0) __PYX_ERR(1, 550, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_DependenciesContainer) < 0) __PYX_ERR(1, 550, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_DependenciesContainer = &__pyx_type_19dependency_injector_9providers_DependenciesContainer; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_OverridingContext) < 0) __PYX_ERR(1, 672, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_OverridingContext) < 0) __PYX_ERR(1, 683, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_OverridingContext.tp_print = 0; #endif @@ -83508,7 +85494,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_OverridingContext, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 672, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_OverridingContext, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 683, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_17OverridingContext___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_17OverridingContext___init__.doc = __pyx_doc_19dependency_injector_9providers_17OverridingContext___init__; @@ -83516,14 +85502,14 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_OverridingContext, (PyObject *)&__pyx_type_19dependency_injector_9providers_OverridingContext) < 0) __PYX_ERR(1, 672, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_OverridingContext) < 0) __PYX_ERR(1, 672, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_OverridingContext, (PyObject *)&__pyx_type_19dependency_injector_9providers_OverridingContext) < 0) __PYX_ERR(1, 683, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_OverridingContext) < 0) __PYX_ERR(1, 683, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_OverridingContext = &__pyx_type_19dependency_injector_9providers_OverridingContext; __pyx_vtabptr_19dependency_injector_9providers_Callable = &__pyx_vtable_19dependency_injector_9providers_Callable; __pyx_vtable_19dependency_injector_9providers_Callable.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Provider; __pyx_vtable_19dependency_injector_9providers_Callable.__pyx_base._provide = (PyObject *(*)(struct __pyx_obj_19dependency_injector_9providers_Provider *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_19dependency_injector_9providers_8Callable__provide; __pyx_type_19dependency_injector_9providers_Callable.tp_base = __pyx_ptype_19dependency_injector_9providers_Provider; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Callable) < 0) __PYX_ERR(1, 708, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Callable) < 0) __PYX_ERR(1, 719, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_Callable.tp_print = 0; #endif @@ -83532,7 +85518,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Callable, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 708, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Callable, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 719, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_8Callable___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_8Callable___init__.doc = __pyx_doc_19dependency_injector_9providers_8Callable___init__; @@ -83542,7 +85528,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Callable, "__str__"); if (unlikely(!wrapper)) __PYX_ERR(1, 708, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Callable, "__str__"); if (unlikely(!wrapper)) __PYX_ERR(1, 719, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_8Callable_4__str__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_8Callable_4__str__.doc = __pyx_doc_19dependency_injector_9providers_8Callable_4__str__; @@ -83550,29 +85536,29 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Callable.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Callable) < 0) __PYX_ERR(1, 708, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Callable, (PyObject *)&__pyx_type_19dependency_injector_9providers_Callable) < 0) __PYX_ERR(1, 708, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Callable) < 0) __PYX_ERR(1, 708, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Callable.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Callable) < 0) __PYX_ERR(1, 719, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Callable, (PyObject *)&__pyx_type_19dependency_injector_9providers_Callable) < 0) __PYX_ERR(1, 719, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Callable) < 0) __PYX_ERR(1, 719, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_Callable = &__pyx_type_19dependency_injector_9providers_Callable; __pyx_vtabptr_19dependency_injector_9providers_DelegatedCallable = &__pyx_vtable_19dependency_injector_9providers_DelegatedCallable; __pyx_vtable_19dependency_injector_9providers_DelegatedCallable.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Callable; __pyx_type_19dependency_injector_9providers_DelegatedCallable.tp_base = __pyx_ptype_19dependency_injector_9providers_Callable; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_DelegatedCallable) < 0) __PYX_ERR(1, 879, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_DelegatedCallable) < 0) __PYX_ERR(1, 890, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_DelegatedCallable.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_19dependency_injector_9providers_DelegatedCallable.tp_dictoffset && __pyx_type_19dependency_injector_9providers_DelegatedCallable.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_19dependency_injector_9providers_DelegatedCallable.tp_getattro = __Pyx_PyObject_GenericGetAttr; } - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_DelegatedCallable.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_DelegatedCallable) < 0) __PYX_ERR(1, 879, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DelegatedCallable, (PyObject *)&__pyx_type_19dependency_injector_9providers_DelegatedCallable) < 0) __PYX_ERR(1, 879, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_DelegatedCallable) < 0) __PYX_ERR(1, 879, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_DelegatedCallable.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_DelegatedCallable) < 0) __PYX_ERR(1, 890, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DelegatedCallable, (PyObject *)&__pyx_type_19dependency_injector_9providers_DelegatedCallable) < 0) __PYX_ERR(1, 890, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_DelegatedCallable) < 0) __PYX_ERR(1, 890, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_DelegatedCallable = &__pyx_type_19dependency_injector_9providers_DelegatedCallable; __pyx_vtabptr_19dependency_injector_9providers_AbstractCallable = &__pyx_vtable_19dependency_injector_9providers_AbstractCallable; __pyx_vtable_19dependency_injector_9providers_AbstractCallable.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Callable; __pyx_vtable_19dependency_injector_9providers_AbstractCallable.__pyx_base.__pyx_base._provide = (PyObject *(*)(struct __pyx_obj_19dependency_injector_9providers_Provider *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_19dependency_injector_9providers_16AbstractCallable__provide; __pyx_type_19dependency_injector_9providers_AbstractCallable.tp_base = __pyx_ptype_19dependency_injector_9providers_Callable; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_AbstractCallable) < 0) __PYX_ERR(1, 888, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_AbstractCallable) < 0) __PYX_ERR(1, 899, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_AbstractCallable.tp_print = 0; #endif @@ -83581,7 +85567,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_AbstractCallable, "__call__"); if (unlikely(!wrapper)) __PYX_ERR(1, 888, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_AbstractCallable, "__call__"); if (unlikely(!wrapper)) __PYX_ERR(1, 899, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_16AbstractCallable___call__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_16AbstractCallable___call__.doc = __pyx_doc_19dependency_injector_9providers_16AbstractCallable___call__; @@ -83589,14 +85575,14 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_AbstractCallable.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_AbstractCallable) < 0) __PYX_ERR(1, 888, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AbstractCallable, (PyObject *)&__pyx_type_19dependency_injector_9providers_AbstractCallable) < 0) __PYX_ERR(1, 888, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_AbstractCallable) < 0) __PYX_ERR(1, 888, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_AbstractCallable.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_AbstractCallable) < 0) __PYX_ERR(1, 899, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AbstractCallable, (PyObject *)&__pyx_type_19dependency_injector_9providers_AbstractCallable) < 0) __PYX_ERR(1, 899, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_AbstractCallable) < 0) __PYX_ERR(1, 899, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_AbstractCallable = &__pyx_type_19dependency_injector_9providers_AbstractCallable; __pyx_vtabptr_19dependency_injector_9providers_CallableDelegate = &__pyx_vtable_19dependency_injector_9providers_CallableDelegate; __pyx_vtable_19dependency_injector_9providers_CallableDelegate.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Delegate; __pyx_type_19dependency_injector_9providers_CallableDelegate.tp_base = __pyx_ptype_19dependency_injector_9providers_Delegate; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_CallableDelegate) < 0) __PYX_ERR(1, 929, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_CallableDelegate) < 0) __PYX_ERR(1, 940, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_CallableDelegate.tp_print = 0; #endif @@ -83605,7 +85591,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_CallableDelegate, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 929, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_CallableDelegate, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 940, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_16CallableDelegate___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_16CallableDelegate___init__.doc = __pyx_doc_19dependency_injector_9providers_16CallableDelegate___init__; @@ -83613,14 +85599,14 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_CallableDelegate.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_CallableDelegate) < 0) __PYX_ERR(1, 929, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CallableDelegate, (PyObject *)&__pyx_type_19dependency_injector_9providers_CallableDelegate) < 0) __PYX_ERR(1, 929, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_CallableDelegate) < 0) __PYX_ERR(1, 929, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_CallableDelegate.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_CallableDelegate) < 0) __PYX_ERR(1, 940, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CallableDelegate, (PyObject *)&__pyx_type_19dependency_injector_9providers_CallableDelegate) < 0) __PYX_ERR(1, 940, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_CallableDelegate) < 0) __PYX_ERR(1, 940, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_CallableDelegate = &__pyx_type_19dependency_injector_9providers_CallableDelegate; __pyx_vtabptr_19dependency_injector_9providers_Coroutine = &__pyx_vtable_19dependency_injector_9providers_Coroutine; __pyx_vtable_19dependency_injector_9providers_Coroutine.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Callable; __pyx_type_19dependency_injector_9providers_Coroutine.tp_base = __pyx_ptype_19dependency_injector_9providers_Callable; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Coroutine) < 0) __PYX_ERR(1, 951, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Coroutine) < 0) __PYX_ERR(1, 962, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_Coroutine.tp_print = 0; #endif @@ -83629,7 +85615,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Coroutine, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 951, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Coroutine, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 962, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_9Coroutine___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_9Coroutine___init__.doc = __pyx_doc_19dependency_injector_9providers_9Coroutine___init__; @@ -83637,29 +85623,29 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Coroutine.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Coroutine) < 0) __PYX_ERR(1, 951, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Coroutine, (PyObject *)&__pyx_type_19dependency_injector_9providers_Coroutine) < 0) __PYX_ERR(1, 951, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Coroutine) < 0) __PYX_ERR(1, 951, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Coroutine.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Coroutine) < 0) __PYX_ERR(1, 962, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Coroutine, (PyObject *)&__pyx_type_19dependency_injector_9providers_Coroutine) < 0) __PYX_ERR(1, 962, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Coroutine) < 0) __PYX_ERR(1, 962, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_Coroutine = &__pyx_type_19dependency_injector_9providers_Coroutine; __pyx_vtabptr_19dependency_injector_9providers_DelegatedCoroutine = &__pyx_vtable_19dependency_injector_9providers_DelegatedCoroutine; __pyx_vtable_19dependency_injector_9providers_DelegatedCoroutine.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Coroutine; __pyx_type_19dependency_injector_9providers_DelegatedCoroutine.tp_base = __pyx_ptype_19dependency_injector_9providers_Coroutine; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_DelegatedCoroutine) < 0) __PYX_ERR(1, 995, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_DelegatedCoroutine) < 0) __PYX_ERR(1, 1006, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_DelegatedCoroutine.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_19dependency_injector_9providers_DelegatedCoroutine.tp_dictoffset && __pyx_type_19dependency_injector_9providers_DelegatedCoroutine.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_19dependency_injector_9providers_DelegatedCoroutine.tp_getattro = __Pyx_PyObject_GenericGetAttr; } - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_DelegatedCoroutine.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_DelegatedCoroutine) < 0) __PYX_ERR(1, 995, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DelegatedCoroutine, (PyObject *)&__pyx_type_19dependency_injector_9providers_DelegatedCoroutine) < 0) __PYX_ERR(1, 995, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_DelegatedCoroutine) < 0) __PYX_ERR(1, 995, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_DelegatedCoroutine.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_DelegatedCoroutine) < 0) __PYX_ERR(1, 1006, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DelegatedCoroutine, (PyObject *)&__pyx_type_19dependency_injector_9providers_DelegatedCoroutine) < 0) __PYX_ERR(1, 1006, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_DelegatedCoroutine) < 0) __PYX_ERR(1, 1006, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_DelegatedCoroutine = &__pyx_type_19dependency_injector_9providers_DelegatedCoroutine; __pyx_vtabptr_19dependency_injector_9providers_AbstractCoroutine = &__pyx_vtable_19dependency_injector_9providers_AbstractCoroutine; __pyx_vtable_19dependency_injector_9providers_AbstractCoroutine.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Coroutine; __pyx_vtable_19dependency_injector_9providers_AbstractCoroutine.__pyx_base.__pyx_base.__pyx_base._provide = (PyObject *(*)(struct __pyx_obj_19dependency_injector_9providers_Provider *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_19dependency_injector_9providers_17AbstractCoroutine__provide; __pyx_type_19dependency_injector_9providers_AbstractCoroutine.tp_base = __pyx_ptype_19dependency_injector_9providers_Coroutine; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_AbstractCoroutine) < 0) __PYX_ERR(1, 1004, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_AbstractCoroutine) < 0) __PYX_ERR(1, 1015, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_AbstractCoroutine.tp_print = 0; #endif @@ -83668,7 +85654,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_AbstractCoroutine, "__call__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1004, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_AbstractCoroutine, "__call__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1015, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_17AbstractCoroutine___call__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_17AbstractCoroutine___call__.doc = __pyx_doc_19dependency_injector_9providers_17AbstractCoroutine___call__; @@ -83676,14 +85662,14 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_AbstractCoroutine.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_AbstractCoroutine) < 0) __PYX_ERR(1, 1004, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AbstractCoroutine, (PyObject *)&__pyx_type_19dependency_injector_9providers_AbstractCoroutine) < 0) __PYX_ERR(1, 1004, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_AbstractCoroutine) < 0) __PYX_ERR(1, 1004, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_AbstractCoroutine.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_AbstractCoroutine) < 0) __PYX_ERR(1, 1015, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AbstractCoroutine, (PyObject *)&__pyx_type_19dependency_injector_9providers_AbstractCoroutine) < 0) __PYX_ERR(1, 1015, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_AbstractCoroutine) < 0) __PYX_ERR(1, 1015, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_AbstractCoroutine = &__pyx_type_19dependency_injector_9providers_AbstractCoroutine; __pyx_vtabptr_19dependency_injector_9providers_CoroutineDelegate = &__pyx_vtable_19dependency_injector_9providers_CoroutineDelegate; __pyx_vtable_19dependency_injector_9providers_CoroutineDelegate.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Delegate; __pyx_type_19dependency_injector_9providers_CoroutineDelegate.tp_base = __pyx_ptype_19dependency_injector_9providers_Delegate; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_CoroutineDelegate) < 0) __PYX_ERR(1, 1045, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_CoroutineDelegate) < 0) __PYX_ERR(1, 1056, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_CoroutineDelegate.tp_print = 0; #endif @@ -83692,7 +85678,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_CoroutineDelegate, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1045, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_CoroutineDelegate, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1056, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_17CoroutineDelegate___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_17CoroutineDelegate___init__.doc = __pyx_doc_19dependency_injector_9providers_17CoroutineDelegate___init__; @@ -83700,39 +85686,53 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_CoroutineDelegate.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_CoroutineDelegate) < 0) __PYX_ERR(1, 1045, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CoroutineDelegate, (PyObject *)&__pyx_type_19dependency_injector_9providers_CoroutineDelegate) < 0) __PYX_ERR(1, 1045, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_CoroutineDelegate) < 0) __PYX_ERR(1, 1045, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_CoroutineDelegate.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_CoroutineDelegate) < 0) __PYX_ERR(1, 1056, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CoroutineDelegate, (PyObject *)&__pyx_type_19dependency_injector_9providers_CoroutineDelegate) < 0) __PYX_ERR(1, 1056, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_CoroutineDelegate) < 0) __PYX_ERR(1, 1056, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_CoroutineDelegate = &__pyx_type_19dependency_injector_9providers_CoroutineDelegate; __pyx_vtabptr_19dependency_injector_9providers_ConfigurationOption = &__pyx_vtable_19dependency_injector_9providers_ConfigurationOption; __pyx_vtable_19dependency_injector_9providers_ConfigurationOption.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Provider; __pyx_vtable_19dependency_injector_9providers_ConfigurationOption.__pyx_base._provide = (PyObject *(*)(struct __pyx_obj_19dependency_injector_9providers_Provider *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_19dependency_injector_9providers_19ConfigurationOption__provide; __pyx_type_19dependency_injector_9providers_ConfigurationOption.tp_base = __pyx_ptype_19dependency_injector_9providers_Provider; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_ConfigurationOption) < 0) __PYX_ERR(1, 1067, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_ConfigurationOption) < 0) __PYX_ERR(1, 1078, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_ConfigurationOption.tp_print = 0; #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_ConfigurationOption.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_ConfigurationOption) < 0) __PYX_ERR(1, 1067, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ConfigurationOption, (PyObject *)&__pyx_type_19dependency_injector_9providers_ConfigurationOption) < 0) __PYX_ERR(1, 1067, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_ConfigurationOption) < 0) __PYX_ERR(1, 1067, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_ConfigurationOption.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_ConfigurationOption) < 0) __PYX_ERR(1, 1078, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ConfigurationOption, (PyObject *)&__pyx_type_19dependency_injector_9providers_ConfigurationOption) < 0) __PYX_ERR(1, 1078, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_ConfigurationOption) < 0) __PYX_ERR(1, 1078, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_ConfigurationOption = &__pyx_type_19dependency_injector_9providers_ConfigurationOption; + __pyx_vtabptr_19dependency_injector_9providers_TypedConfigurationOption = &__pyx_vtable_19dependency_injector_9providers_TypedConfigurationOption; + __pyx_vtable_19dependency_injector_9providers_TypedConfigurationOption.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Callable; + __pyx_type_19dependency_injector_9providers_TypedConfigurationOption.tp_base = __pyx_ptype_19dependency_injector_9providers_Callable; + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_TypedConfigurationOption) < 0) __PYX_ERR(1, 1283, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_19dependency_injector_9providers_TypedConfigurationOption.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_19dependency_injector_9providers_TypedConfigurationOption.tp_dictoffset && __pyx_type_19dependency_injector_9providers_TypedConfigurationOption.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_19dependency_injector_9providers_TypedConfigurationOption.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_TypedConfigurationOption.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_TypedConfigurationOption) < 0) __PYX_ERR(1, 1283, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_TypedConfigurationOption, (PyObject *)&__pyx_type_19dependency_injector_9providers_TypedConfigurationOption) < 0) __PYX_ERR(1, 1283, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_TypedConfigurationOption) < 0) __PYX_ERR(1, 1283, __pyx_L1_error) + __pyx_ptype_19dependency_injector_9providers_TypedConfigurationOption = &__pyx_type_19dependency_injector_9providers_TypedConfigurationOption; __pyx_vtabptr_19dependency_injector_9providers_Configuration = &__pyx_vtable_19dependency_injector_9providers_Configuration; __pyx_vtable_19dependency_injector_9providers_Configuration.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Object; __pyx_type_19dependency_injector_9providers_Configuration.tp_base = __pyx_ptype_19dependency_injector_9providers_Object; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Configuration) < 0) __PYX_ERR(1, 1265, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Configuration) < 0) __PYX_ERR(1, 1290, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_Configuration.tp_print = 0; #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Configuration.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Configuration) < 0) __PYX_ERR(1, 1265, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Configuration, (PyObject *)&__pyx_type_19dependency_injector_9providers_Configuration) < 0) __PYX_ERR(1, 1265, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Configuration.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Configuration) < 0) __PYX_ERR(1, 1290, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Configuration, (PyObject *)&__pyx_type_19dependency_injector_9providers_Configuration) < 0) __PYX_ERR(1, 1290, __pyx_L1_error) if (__pyx_type_19dependency_injector_9providers_Configuration.tp_weaklistoffset == 0) __pyx_type_19dependency_injector_9providers_Configuration.tp_weaklistoffset = offsetof(struct __pyx_obj_19dependency_injector_9providers_Configuration, __weakref__); - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Configuration) < 0) __PYX_ERR(1, 1265, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Configuration) < 0) __PYX_ERR(1, 1290, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_Configuration = &__pyx_type_19dependency_injector_9providers_Configuration; __pyx_vtabptr_19dependency_injector_9providers_Factory = &__pyx_vtable_19dependency_injector_9providers_Factory; __pyx_vtable_19dependency_injector_9providers_Factory.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Provider; __pyx_vtable_19dependency_injector_9providers_Factory.__pyx_base._provide = (PyObject *(*)(struct __pyx_obj_19dependency_injector_9providers_Provider *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_19dependency_injector_9providers_7Factory__provide; __pyx_type_19dependency_injector_9providers_Factory.tp_base = __pyx_ptype_19dependency_injector_9providers_Provider; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Factory) < 0) __PYX_ERR(1, 1521, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Factory) < 0) __PYX_ERR(1, 1546, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_Factory.tp_print = 0; #endif @@ -83741,7 +85741,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Factory, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1521, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Factory, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1546, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_7Factory___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_7Factory___init__.doc = __pyx_doc_19dependency_injector_9providers_7Factory___init__; @@ -83751,7 +85751,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Factory, "__str__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1521, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Factory, "__str__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1546, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_7Factory_4__str__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_7Factory_4__str__.doc = __pyx_doc_19dependency_injector_9providers_7Factory_4__str__; @@ -83759,29 +85759,29 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Factory.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Factory) < 0) __PYX_ERR(1, 1521, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Factory, (PyObject *)&__pyx_type_19dependency_injector_9providers_Factory) < 0) __PYX_ERR(1, 1521, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Factory) < 0) __PYX_ERR(1, 1521, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Factory.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Factory) < 0) __PYX_ERR(1, 1546, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Factory, (PyObject *)&__pyx_type_19dependency_injector_9providers_Factory) < 0) __PYX_ERR(1, 1546, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Factory) < 0) __PYX_ERR(1, 1546, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_Factory = &__pyx_type_19dependency_injector_9providers_Factory; __pyx_vtabptr_19dependency_injector_9providers_DelegatedFactory = &__pyx_vtable_19dependency_injector_9providers_DelegatedFactory; __pyx_vtable_19dependency_injector_9providers_DelegatedFactory.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Factory; __pyx_type_19dependency_injector_9providers_DelegatedFactory.tp_base = __pyx_ptype_19dependency_injector_9providers_Factory; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_DelegatedFactory) < 0) __PYX_ERR(1, 1743, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_DelegatedFactory) < 0) __PYX_ERR(1, 1768, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_DelegatedFactory.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_19dependency_injector_9providers_DelegatedFactory.tp_dictoffset && __pyx_type_19dependency_injector_9providers_DelegatedFactory.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_19dependency_injector_9providers_DelegatedFactory.tp_getattro = __Pyx_PyObject_GenericGetAttr; } - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_DelegatedFactory.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_DelegatedFactory) < 0) __PYX_ERR(1, 1743, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DelegatedFactory, (PyObject *)&__pyx_type_19dependency_injector_9providers_DelegatedFactory) < 0) __PYX_ERR(1, 1743, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_DelegatedFactory) < 0) __PYX_ERR(1, 1743, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_DelegatedFactory.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_DelegatedFactory) < 0) __PYX_ERR(1, 1768, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DelegatedFactory, (PyObject *)&__pyx_type_19dependency_injector_9providers_DelegatedFactory) < 0) __PYX_ERR(1, 1768, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_DelegatedFactory) < 0) __PYX_ERR(1, 1768, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_DelegatedFactory = &__pyx_type_19dependency_injector_9providers_DelegatedFactory; __pyx_vtabptr_19dependency_injector_9providers_AbstractFactory = &__pyx_vtable_19dependency_injector_9providers_AbstractFactory; __pyx_vtable_19dependency_injector_9providers_AbstractFactory.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Factory; __pyx_vtable_19dependency_injector_9providers_AbstractFactory.__pyx_base.__pyx_base._provide = (PyObject *(*)(struct __pyx_obj_19dependency_injector_9providers_Provider *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_19dependency_injector_9providers_15AbstractFactory__provide; __pyx_type_19dependency_injector_9providers_AbstractFactory.tp_base = __pyx_ptype_19dependency_injector_9providers_Factory; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_AbstractFactory) < 0) __PYX_ERR(1, 1765, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_AbstractFactory) < 0) __PYX_ERR(1, 1790, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_AbstractFactory.tp_print = 0; #endif @@ -83790,7 +85790,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_AbstractFactory, "__call__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1765, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_AbstractFactory, "__call__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1790, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_15AbstractFactory___call__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_15AbstractFactory___call__.doc = __pyx_doc_19dependency_injector_9providers_15AbstractFactory___call__; @@ -83798,14 +85798,14 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_AbstractFactory.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_AbstractFactory) < 0) __PYX_ERR(1, 1765, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AbstractFactory, (PyObject *)&__pyx_type_19dependency_injector_9providers_AbstractFactory) < 0) __PYX_ERR(1, 1765, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_AbstractFactory) < 0) __PYX_ERR(1, 1765, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_AbstractFactory.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_AbstractFactory) < 0) __PYX_ERR(1, 1790, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AbstractFactory, (PyObject *)&__pyx_type_19dependency_injector_9providers_AbstractFactory) < 0) __PYX_ERR(1, 1790, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_AbstractFactory) < 0) __PYX_ERR(1, 1790, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_AbstractFactory = &__pyx_type_19dependency_injector_9providers_AbstractFactory; __pyx_vtabptr_19dependency_injector_9providers_FactoryDelegate = &__pyx_vtable_19dependency_injector_9providers_FactoryDelegate; __pyx_vtable_19dependency_injector_9providers_FactoryDelegate.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Delegate; __pyx_type_19dependency_injector_9providers_FactoryDelegate.tp_base = __pyx_ptype_19dependency_injector_9providers_Delegate; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_FactoryDelegate) < 0) __PYX_ERR(1, 1806, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_FactoryDelegate) < 0) __PYX_ERR(1, 1831, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_FactoryDelegate.tp_print = 0; #endif @@ -83814,7 +85814,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_FactoryDelegate, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1806, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_FactoryDelegate, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1831, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_15FactoryDelegate___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_15FactoryDelegate___init__.doc = __pyx_doc_19dependency_injector_9providers_15FactoryDelegate___init__; @@ -83822,21 +85822,21 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_FactoryDelegate.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_FactoryDelegate) < 0) __PYX_ERR(1, 1806, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_FactoryDelegate, (PyObject *)&__pyx_type_19dependency_injector_9providers_FactoryDelegate) < 0) __PYX_ERR(1, 1806, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_FactoryDelegate) < 0) __PYX_ERR(1, 1806, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_FactoryDelegate.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_FactoryDelegate) < 0) __PYX_ERR(1, 1831, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_FactoryDelegate, (PyObject *)&__pyx_type_19dependency_injector_9providers_FactoryDelegate) < 0) __PYX_ERR(1, 1831, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_FactoryDelegate) < 0) __PYX_ERR(1, 1831, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_FactoryDelegate = &__pyx_type_19dependency_injector_9providers_FactoryDelegate; __pyx_vtabptr_19dependency_injector_9providers_FactoryAggregate = &__pyx_vtable_19dependency_injector_9providers_FactoryAggregate; __pyx_vtable_19dependency_injector_9providers_FactoryAggregate.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Provider; __pyx_vtable_19dependency_injector_9providers_FactoryAggregate.__pyx___get_factory = (struct __pyx_obj_19dependency_injector_9providers_Factory *(*)(struct __pyx_obj_19dependency_injector_9providers_FactoryAggregate *, PyObject *))__pyx_f_19dependency_injector_9providers_16FactoryAggregate___get_factory; __pyx_type_19dependency_injector_9providers_FactoryAggregate.tp_base = __pyx_ptype_19dependency_injector_9providers_Provider; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_FactoryAggregate) < 0) __PYX_ERR(1, 1828, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_FactoryAggregate) < 0) __PYX_ERR(1, 1853, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_FactoryAggregate.tp_print = 0; #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_FactoryAggregate, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1828, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_FactoryAggregate, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1853, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_16FactoryAggregate___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_16FactoryAggregate___init__.doc = __pyx_doc_19dependency_injector_9providers_16FactoryAggregate___init__; @@ -83846,7 +85846,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_FactoryAggregate, "__call__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1828, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_FactoryAggregate, "__call__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1853, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_16FactoryAggregate_4__call__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_16FactoryAggregate_4__call__.doc = __pyx_doc_19dependency_injector_9providers_16FactoryAggregate_4__call__; @@ -83856,7 +85856,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_FactoryAggregate, "__getattr__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1828, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_FactoryAggregate, "__getattr__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1853, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_16FactoryAggregate_6__getattr__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_16FactoryAggregate_6__getattr__.doc = __pyx_doc_19dependency_injector_9providers_16FactoryAggregate_6__getattr__; @@ -83866,7 +85866,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_FactoryAggregate, "__str__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1828, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_FactoryAggregate, "__str__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1853, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_16FactoryAggregate_8__str__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_16FactoryAggregate_8__str__.doc = __pyx_doc_19dependency_injector_9providers_16FactoryAggregate_8__str__; @@ -83874,14 +85874,14 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_FactoryAggregate.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_FactoryAggregate) < 0) __PYX_ERR(1, 1828, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_FactoryAggregate, (PyObject *)&__pyx_type_19dependency_injector_9providers_FactoryAggregate) < 0) __PYX_ERR(1, 1828, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_FactoryAggregate) < 0) __PYX_ERR(1, 1828, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_FactoryAggregate.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_FactoryAggregate) < 0) __PYX_ERR(1, 1853, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_FactoryAggregate, (PyObject *)&__pyx_type_19dependency_injector_9providers_FactoryAggregate) < 0) __PYX_ERR(1, 1853, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_FactoryAggregate) < 0) __PYX_ERR(1, 1853, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_FactoryAggregate = &__pyx_type_19dependency_injector_9providers_FactoryAggregate; __pyx_vtabptr_19dependency_injector_9providers_BaseSingleton = &__pyx_vtable_19dependency_injector_9providers_BaseSingleton; __pyx_vtable_19dependency_injector_9providers_BaseSingleton.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Provider; __pyx_type_19dependency_injector_9providers_BaseSingleton.tp_base = __pyx_ptype_19dependency_injector_9providers_Provider; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_BaseSingleton) < 0) __PYX_ERR(1, 1915, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_BaseSingleton) < 0) __PYX_ERR(1, 1940, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_BaseSingleton.tp_print = 0; #endif @@ -83890,7 +85890,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_BaseSingleton, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1915, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_BaseSingleton, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1940, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_13BaseSingleton___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_13BaseSingleton___init__.doc = __pyx_doc_19dependency_injector_9providers_13BaseSingleton___init__; @@ -83900,7 +85900,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_BaseSingleton, "__str__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1915, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_BaseSingleton, "__str__"); if (unlikely(!wrapper)) __PYX_ERR(1, 1940, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_13BaseSingleton_2__str__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_13BaseSingleton_2__str__.doc = __pyx_doc_19dependency_injector_9providers_13BaseSingleton_2__str__; @@ -83908,15 +85908,15 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_BaseSingleton.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_BaseSingleton) < 0) __PYX_ERR(1, 1915, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_BaseSingleton, (PyObject *)&__pyx_type_19dependency_injector_9providers_BaseSingleton) < 0) __PYX_ERR(1, 1915, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_BaseSingleton) < 0) __PYX_ERR(1, 1915, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_BaseSingleton.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_BaseSingleton) < 0) __PYX_ERR(1, 1940, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_BaseSingleton, (PyObject *)&__pyx_type_19dependency_injector_9providers_BaseSingleton) < 0) __PYX_ERR(1, 1940, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_BaseSingleton) < 0) __PYX_ERR(1, 1940, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_BaseSingleton = &__pyx_type_19dependency_injector_9providers_BaseSingleton; __pyx_vtabptr_19dependency_injector_9providers_Singleton = &__pyx_vtable_19dependency_injector_9providers_Singleton; __pyx_vtable_19dependency_injector_9providers_Singleton.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_BaseSingleton; __pyx_vtable_19dependency_injector_9providers_Singleton.__pyx_base.__pyx_base._provide = (PyObject *(*)(struct __pyx_obj_19dependency_injector_9providers_Provider *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_19dependency_injector_9providers_9Singleton__provide; __pyx_type_19dependency_injector_9providers_Singleton.tp_base = __pyx_ptype_19dependency_injector_9providers_BaseSingleton; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Singleton) < 0) __PYX_ERR(1, 2073, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Singleton) < 0) __PYX_ERR(1, 2098, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_Singleton.tp_print = 0; #endif @@ -83925,7 +85925,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Singleton, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2073, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Singleton, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2098, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_9Singleton___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_9Singleton___init__.doc = __pyx_doc_19dependency_injector_9providers_9Singleton___init__; @@ -83933,29 +85933,29 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Singleton.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Singleton) < 0) __PYX_ERR(1, 2073, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Singleton, (PyObject *)&__pyx_type_19dependency_injector_9providers_Singleton) < 0) __PYX_ERR(1, 2073, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Singleton) < 0) __PYX_ERR(1, 2073, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Singleton.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Singleton) < 0) __PYX_ERR(1, 2098, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Singleton, (PyObject *)&__pyx_type_19dependency_injector_9providers_Singleton) < 0) __PYX_ERR(1, 2098, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Singleton) < 0) __PYX_ERR(1, 2098, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_Singleton = &__pyx_type_19dependency_injector_9providers_Singleton; __pyx_vtabptr_19dependency_injector_9providers_DelegatedSingleton = &__pyx_vtable_19dependency_injector_9providers_DelegatedSingleton; __pyx_vtable_19dependency_injector_9providers_DelegatedSingleton.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Singleton; __pyx_type_19dependency_injector_9providers_DelegatedSingleton.tp_base = __pyx_ptype_19dependency_injector_9providers_Singleton; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_DelegatedSingleton) < 0) __PYX_ERR(1, 2129, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_DelegatedSingleton) < 0) __PYX_ERR(1, 2154, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_DelegatedSingleton.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_19dependency_injector_9providers_DelegatedSingleton.tp_dictoffset && __pyx_type_19dependency_injector_9providers_DelegatedSingleton.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_19dependency_injector_9providers_DelegatedSingleton.tp_getattro = __Pyx_PyObject_GenericGetAttr; } - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_DelegatedSingleton.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_DelegatedSingleton) < 0) __PYX_ERR(1, 2129, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DelegatedSingleton, (PyObject *)&__pyx_type_19dependency_injector_9providers_DelegatedSingleton) < 0) __PYX_ERR(1, 2129, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_DelegatedSingleton) < 0) __PYX_ERR(1, 2129, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_DelegatedSingleton.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_DelegatedSingleton) < 0) __PYX_ERR(1, 2154, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DelegatedSingleton, (PyObject *)&__pyx_type_19dependency_injector_9providers_DelegatedSingleton) < 0) __PYX_ERR(1, 2154, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_DelegatedSingleton) < 0) __PYX_ERR(1, 2154, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_DelegatedSingleton = &__pyx_type_19dependency_injector_9providers_DelegatedSingleton; __pyx_vtabptr_19dependency_injector_9providers_ThreadSafeSingleton = &__pyx_vtable_19dependency_injector_9providers_ThreadSafeSingleton; __pyx_vtable_19dependency_injector_9providers_ThreadSafeSingleton.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_BaseSingleton; __pyx_vtable_19dependency_injector_9providers_ThreadSafeSingleton.__pyx_base.__pyx_base._provide = (PyObject *(*)(struct __pyx_obj_19dependency_injector_9providers_Provider *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_19dependency_injector_9providers_19ThreadSafeSingleton__provide; __pyx_type_19dependency_injector_9providers_ThreadSafeSingleton.tp_base = __pyx_ptype_19dependency_injector_9providers_BaseSingleton; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_ThreadSafeSingleton) < 0) __PYX_ERR(1, 2151, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_ThreadSafeSingleton) < 0) __PYX_ERR(1, 2176, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_ThreadSafeSingleton.tp_print = 0; #endif @@ -83964,7 +85964,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_ThreadSafeSingleton, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2151, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_ThreadSafeSingleton, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2176, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_19ThreadSafeSingleton___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_19ThreadSafeSingleton___init__.doc = __pyx_doc_19dependency_injector_9providers_19ThreadSafeSingleton___init__; @@ -83972,29 +85972,29 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_ThreadSafeSingleton.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_ThreadSafeSingleton) < 0) __PYX_ERR(1, 2151, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ThreadSafeSingleton, (PyObject *)&__pyx_type_19dependency_injector_9providers_ThreadSafeSingleton) < 0) __PYX_ERR(1, 2151, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_ThreadSafeSingleton) < 0) __PYX_ERR(1, 2151, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_ThreadSafeSingleton.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_ThreadSafeSingleton) < 0) __PYX_ERR(1, 2176, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ThreadSafeSingleton, (PyObject *)&__pyx_type_19dependency_injector_9providers_ThreadSafeSingleton) < 0) __PYX_ERR(1, 2176, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_ThreadSafeSingleton) < 0) __PYX_ERR(1, 2176, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_ThreadSafeSingleton = &__pyx_type_19dependency_injector_9providers_ThreadSafeSingleton; __pyx_vtabptr_19dependency_injector_9providers_DelegatedThreadSafeSingleton = &__pyx_vtable_19dependency_injector_9providers_DelegatedThreadSafeSingleton; __pyx_vtable_19dependency_injector_9providers_DelegatedThreadSafeSingleton.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_ThreadSafeSingleton; __pyx_type_19dependency_injector_9providers_DelegatedThreadSafeSingleton.tp_base = __pyx_ptype_19dependency_injector_9providers_ThreadSafeSingleton; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_DelegatedThreadSafeSingleton) < 0) __PYX_ERR(1, 2186, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_DelegatedThreadSafeSingleton) < 0) __PYX_ERR(1, 2211, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_DelegatedThreadSafeSingleton.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_19dependency_injector_9providers_DelegatedThreadSafeSingleton.tp_dictoffset && __pyx_type_19dependency_injector_9providers_DelegatedThreadSafeSingleton.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_19dependency_injector_9providers_DelegatedThreadSafeSingleton.tp_getattro = __Pyx_PyObject_GenericGetAttr; } - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_DelegatedThreadSafeSingleton.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_DelegatedThreadSafeSingleton) < 0) __PYX_ERR(1, 2186, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DelegatedThreadSafeSingleton, (PyObject *)&__pyx_type_19dependency_injector_9providers_DelegatedThreadSafeSingleton) < 0) __PYX_ERR(1, 2186, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_DelegatedThreadSafeSingleton) < 0) __PYX_ERR(1, 2186, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_DelegatedThreadSafeSingleton.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_DelegatedThreadSafeSingleton) < 0) __PYX_ERR(1, 2211, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DelegatedThreadSafeSingleton, (PyObject *)&__pyx_type_19dependency_injector_9providers_DelegatedThreadSafeSingleton) < 0) __PYX_ERR(1, 2211, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_DelegatedThreadSafeSingleton) < 0) __PYX_ERR(1, 2211, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_DelegatedThreadSafeSingleton = &__pyx_type_19dependency_injector_9providers_DelegatedThreadSafeSingleton; __pyx_vtabptr_19dependency_injector_9providers_ThreadLocalSingleton = &__pyx_vtable_19dependency_injector_9providers_ThreadLocalSingleton; __pyx_vtable_19dependency_injector_9providers_ThreadLocalSingleton.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_BaseSingleton; __pyx_vtable_19dependency_injector_9providers_ThreadLocalSingleton.__pyx_base.__pyx_base._provide = (PyObject *(*)(struct __pyx_obj_19dependency_injector_9providers_Provider *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_19dependency_injector_9providers_20ThreadLocalSingleton__provide; __pyx_type_19dependency_injector_9providers_ThreadLocalSingleton.tp_base = __pyx_ptype_19dependency_injector_9providers_BaseSingleton; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_ThreadLocalSingleton) < 0) __PYX_ERR(1, 2208, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_ThreadLocalSingleton) < 0) __PYX_ERR(1, 2233, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_ThreadLocalSingleton.tp_print = 0; #endif @@ -84003,7 +86003,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_ThreadLocalSingleton, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2208, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_ThreadLocalSingleton, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2233, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_20ThreadLocalSingleton___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_20ThreadLocalSingleton___init__.doc = __pyx_doc_19dependency_injector_9providers_20ThreadLocalSingleton___init__; @@ -84011,28 +86011,28 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_ThreadLocalSingleton.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_ThreadLocalSingleton) < 0) __PYX_ERR(1, 2208, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ThreadLocalSingleton, (PyObject *)&__pyx_type_19dependency_injector_9providers_ThreadLocalSingleton) < 0) __PYX_ERR(1, 2208, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_ThreadLocalSingleton) < 0) __PYX_ERR(1, 2208, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_ThreadLocalSingleton.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_ThreadLocalSingleton) < 0) __PYX_ERR(1, 2233, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ThreadLocalSingleton, (PyObject *)&__pyx_type_19dependency_injector_9providers_ThreadLocalSingleton) < 0) __PYX_ERR(1, 2233, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_ThreadLocalSingleton) < 0) __PYX_ERR(1, 2233, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_ThreadLocalSingleton = &__pyx_type_19dependency_injector_9providers_ThreadLocalSingleton; __pyx_vtabptr_19dependency_injector_9providers_DelegatedThreadLocalSingleton = &__pyx_vtable_19dependency_injector_9providers_DelegatedThreadLocalSingleton; __pyx_vtable_19dependency_injector_9providers_DelegatedThreadLocalSingleton.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_ThreadLocalSingleton; __pyx_type_19dependency_injector_9providers_DelegatedThreadLocalSingleton.tp_base = __pyx_ptype_19dependency_injector_9providers_ThreadLocalSingleton; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_DelegatedThreadLocalSingleton) < 0) __PYX_ERR(1, 2256, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_DelegatedThreadLocalSingleton) < 0) __PYX_ERR(1, 2281, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_DelegatedThreadLocalSingleton.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_19dependency_injector_9providers_DelegatedThreadLocalSingleton.tp_dictoffset && __pyx_type_19dependency_injector_9providers_DelegatedThreadLocalSingleton.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_19dependency_injector_9providers_DelegatedThreadLocalSingleton.tp_getattro = __Pyx_PyObject_GenericGetAttr; } - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_DelegatedThreadLocalSingleton.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_DelegatedThreadLocalSingleton) < 0) __PYX_ERR(1, 2256, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DelegatedThreadLocalSingleton, (PyObject *)&__pyx_type_19dependency_injector_9providers_DelegatedThreadLocalSingleton) < 0) __PYX_ERR(1, 2256, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_DelegatedThreadLocalSingleton) < 0) __PYX_ERR(1, 2256, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_DelegatedThreadLocalSingleton.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_DelegatedThreadLocalSingleton) < 0) __PYX_ERR(1, 2281, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DelegatedThreadLocalSingleton, (PyObject *)&__pyx_type_19dependency_injector_9providers_DelegatedThreadLocalSingleton) < 0) __PYX_ERR(1, 2281, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_DelegatedThreadLocalSingleton) < 0) __PYX_ERR(1, 2281, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_DelegatedThreadLocalSingleton = &__pyx_type_19dependency_injector_9providers_DelegatedThreadLocalSingleton; __pyx_vtabptr_19dependency_injector_9providers_AbstractSingleton = &__pyx_vtable_19dependency_injector_9providers_AbstractSingleton; __pyx_vtable_19dependency_injector_9providers_AbstractSingleton.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_BaseSingleton; __pyx_type_19dependency_injector_9providers_AbstractSingleton.tp_base = __pyx_ptype_19dependency_injector_9providers_BaseSingleton; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_AbstractSingleton) < 0) __PYX_ERR(1, 2278, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_AbstractSingleton) < 0) __PYX_ERR(1, 2303, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_AbstractSingleton.tp_print = 0; #endif @@ -84041,7 +86041,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_AbstractSingleton, "__call__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2278, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_AbstractSingleton, "__call__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2303, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_17AbstractSingleton___call__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_17AbstractSingleton___call__.doc = __pyx_doc_19dependency_injector_9providers_17AbstractSingleton___call__; @@ -84049,14 +86049,14 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_AbstractSingleton.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_AbstractSingleton) < 0) __PYX_ERR(1, 2278, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AbstractSingleton, (PyObject *)&__pyx_type_19dependency_injector_9providers_AbstractSingleton) < 0) __PYX_ERR(1, 2278, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_AbstractSingleton) < 0) __PYX_ERR(1, 2278, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_AbstractSingleton.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_AbstractSingleton) < 0) __PYX_ERR(1, 2303, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AbstractSingleton, (PyObject *)&__pyx_type_19dependency_injector_9providers_AbstractSingleton) < 0) __PYX_ERR(1, 2303, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_AbstractSingleton) < 0) __PYX_ERR(1, 2303, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_AbstractSingleton = &__pyx_type_19dependency_injector_9providers_AbstractSingleton; __pyx_vtabptr_19dependency_injector_9providers_SingletonDelegate = &__pyx_vtable_19dependency_injector_9providers_SingletonDelegate; __pyx_vtable_19dependency_injector_9providers_SingletonDelegate.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Delegate; __pyx_type_19dependency_injector_9providers_SingletonDelegate.tp_base = __pyx_ptype_19dependency_injector_9providers_Delegate; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_SingletonDelegate) < 0) __PYX_ERR(1, 2323, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_SingletonDelegate) < 0) __PYX_ERR(1, 2348, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_SingletonDelegate.tp_print = 0; #endif @@ -84065,7 +86065,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_SingletonDelegate, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2323, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_SingletonDelegate, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2348, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_17SingletonDelegate___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_17SingletonDelegate___init__.doc = __pyx_doc_19dependency_injector_9providers_17SingletonDelegate___init__; @@ -84073,15 +86073,15 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_SingletonDelegate.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_SingletonDelegate) < 0) __PYX_ERR(1, 2323, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SingletonDelegate, (PyObject *)&__pyx_type_19dependency_injector_9providers_SingletonDelegate) < 0) __PYX_ERR(1, 2323, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_SingletonDelegate) < 0) __PYX_ERR(1, 2323, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_SingletonDelegate.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_SingletonDelegate) < 0) __PYX_ERR(1, 2348, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SingletonDelegate, (PyObject *)&__pyx_type_19dependency_injector_9providers_SingletonDelegate) < 0) __PYX_ERR(1, 2348, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_SingletonDelegate) < 0) __PYX_ERR(1, 2348, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_SingletonDelegate = &__pyx_type_19dependency_injector_9providers_SingletonDelegate; __pyx_vtabptr_19dependency_injector_9providers_List = &__pyx_vtable_19dependency_injector_9providers_List; __pyx_vtable_19dependency_injector_9providers_List.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Provider; __pyx_vtable_19dependency_injector_9providers_List.__pyx_base._provide = (PyObject *(*)(struct __pyx_obj_19dependency_injector_9providers_Provider *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_19dependency_injector_9providers_4List__provide; __pyx_type_19dependency_injector_9providers_List.tp_base = __pyx_ptype_19dependency_injector_9providers_Provider; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_List) < 0) __PYX_ERR(1, 2345, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_List) < 0) __PYX_ERR(1, 2370, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_List.tp_print = 0; #endif @@ -84090,7 +86090,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_List, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2345, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_List, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2370, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_4List___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_4List___init__.doc = __pyx_doc_19dependency_injector_9providers_4List___init__; @@ -84100,7 +86100,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_List, "__str__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2345, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_List, "__str__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2370, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_4List_4__str__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_4List_4__str__.doc = __pyx_doc_19dependency_injector_9providers_4List_4__str__; @@ -84108,21 +86108,21 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_List.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_List) < 0) __PYX_ERR(1, 2345, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_List, (PyObject *)&__pyx_type_19dependency_injector_9providers_List) < 0) __PYX_ERR(1, 2345, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_List) < 0) __PYX_ERR(1, 2345, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_List.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_List) < 0) __PYX_ERR(1, 2370, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_List, (PyObject *)&__pyx_type_19dependency_injector_9providers_List) < 0) __PYX_ERR(1, 2370, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_List) < 0) __PYX_ERR(1, 2370, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_List = &__pyx_type_19dependency_injector_9providers_List; __pyx_vtabptr_19dependency_injector_9providers_Container = &__pyx_vtable_19dependency_injector_9providers_Container; __pyx_vtable_19dependency_injector_9providers_Container.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Provider; __pyx_vtable_19dependency_injector_9providers_Container.__pyx_base._provide = (PyObject *(*)(struct __pyx_obj_19dependency_injector_9providers_Provider *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_19dependency_injector_9providers_9Container__provide; __pyx_type_19dependency_injector_9providers_Container.tp_base = __pyx_ptype_19dependency_injector_9providers_Provider; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Container) < 0) __PYX_ERR(1, 2452, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Container) < 0) __PYX_ERR(1, 2477, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_Container.tp_print = 0; #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Container, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2452, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Container, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2477, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_9Container___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_9Container___init__.doc = __pyx_doc_19dependency_injector_9providers_9Container___init__; @@ -84132,7 +86132,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Container, "__getattr__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2452, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Container, "__getattr__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2477, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_9Container_4__getattr__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_9Container_4__getattr__.doc = __pyx_doc_19dependency_injector_9providers_9Container_4__getattr__; @@ -84140,21 +86140,21 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Container.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Container) < 0) __PYX_ERR(1, 2452, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Container, (PyObject *)&__pyx_type_19dependency_injector_9providers_Container) < 0) __PYX_ERR(1, 2452, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Container) < 0) __PYX_ERR(1, 2452, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Container.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Container) < 0) __PYX_ERR(1, 2477, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Container, (PyObject *)&__pyx_type_19dependency_injector_9providers_Container) < 0) __PYX_ERR(1, 2477, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Container) < 0) __PYX_ERR(1, 2477, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_Container = &__pyx_type_19dependency_injector_9providers_Container; __pyx_vtabptr_19dependency_injector_9providers_Selector = &__pyx_vtable_19dependency_injector_9providers_Selector; __pyx_vtable_19dependency_injector_9providers_Selector.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Provider; __pyx_vtable_19dependency_injector_9providers_Selector.__pyx_base._provide = (PyObject *(*)(struct __pyx_obj_19dependency_injector_9providers_Provider *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_19dependency_injector_9providers_8Selector__provide; __pyx_type_19dependency_injector_9providers_Selector.tp_base = __pyx_ptype_19dependency_injector_9providers_Provider; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Selector) < 0) __PYX_ERR(1, 2503, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Selector) < 0) __PYX_ERR(1, 2532, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_Selector.tp_print = 0; #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Selector, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2503, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Selector, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2532, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_8Selector___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_8Selector___init__.doc = __pyx_doc_19dependency_injector_9providers_8Selector___init__; @@ -84164,7 +86164,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Selector, "__getattr__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2503, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Selector, "__getattr__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2532, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_8Selector_4__getattr__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_8Selector_4__getattr__.doc = __pyx_doc_19dependency_injector_9providers_8Selector_4__getattr__; @@ -84174,7 +86174,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Selector, "__str__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2503, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_Selector, "__str__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2532, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_8Selector_6__str__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_8Selector_6__str__.doc = __pyx_doc_19dependency_injector_9providers_8Selector_6__str__; @@ -84182,70 +86182,70 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Selector.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Selector) < 0) __PYX_ERR(1, 2503, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Selector, (PyObject *)&__pyx_type_19dependency_injector_9providers_Selector) < 0) __PYX_ERR(1, 2503, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Selector) < 0) __PYX_ERR(1, 2503, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_Selector.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_Selector) < 0) __PYX_ERR(1, 2532, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Selector, (PyObject *)&__pyx_type_19dependency_injector_9providers_Selector) < 0) __PYX_ERR(1, 2532, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Selector) < 0) __PYX_ERR(1, 2532, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_Selector = &__pyx_type_19dependency_injector_9providers_Selector; __pyx_vtabptr_19dependency_injector_9providers_ProvidedInstance = &__pyx_vtable_19dependency_injector_9providers_ProvidedInstance; __pyx_vtable_19dependency_injector_9providers_ProvidedInstance.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Provider; __pyx_vtable_19dependency_injector_9providers_ProvidedInstance.__pyx_base._provide = (PyObject *(*)(struct __pyx_obj_19dependency_injector_9providers_Provider *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_19dependency_injector_9providers_16ProvidedInstance__provide; __pyx_type_19dependency_injector_9providers_ProvidedInstance.tp_base = __pyx_ptype_19dependency_injector_9providers_Provider; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_ProvidedInstance) < 0) __PYX_ERR(1, 2605, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_ProvidedInstance) < 0) __PYX_ERR(1, 2634, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_ProvidedInstance.tp_print = 0; #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_ProvidedInstance.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_ProvidedInstance) < 0) __PYX_ERR(1, 2605, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ProvidedInstance, (PyObject *)&__pyx_type_19dependency_injector_9providers_ProvidedInstance) < 0) __PYX_ERR(1, 2605, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_ProvidedInstance) < 0) __PYX_ERR(1, 2605, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_ProvidedInstance.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_ProvidedInstance) < 0) __PYX_ERR(1, 2634, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ProvidedInstance, (PyObject *)&__pyx_type_19dependency_injector_9providers_ProvidedInstance) < 0) __PYX_ERR(1, 2634, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_ProvidedInstance) < 0) __PYX_ERR(1, 2634, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_ProvidedInstance = &__pyx_type_19dependency_injector_9providers_ProvidedInstance; __pyx_vtabptr_19dependency_injector_9providers_AttributeGetter = &__pyx_vtable_19dependency_injector_9providers_AttributeGetter; __pyx_vtable_19dependency_injector_9providers_AttributeGetter.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Provider; __pyx_vtable_19dependency_injector_9providers_AttributeGetter.__pyx_base._provide = (PyObject *(*)(struct __pyx_obj_19dependency_injector_9providers_Provider *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_19dependency_injector_9providers_15AttributeGetter__provide; __pyx_type_19dependency_injector_9providers_AttributeGetter.tp_base = __pyx_ptype_19dependency_injector_9providers_Provider; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_AttributeGetter) < 0) __PYX_ERR(1, 2667, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_AttributeGetter) < 0) __PYX_ERR(1, 2701, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_AttributeGetter.tp_print = 0; #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_AttributeGetter.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_AttributeGetter) < 0) __PYX_ERR(1, 2667, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AttributeGetter, (PyObject *)&__pyx_type_19dependency_injector_9providers_AttributeGetter) < 0) __PYX_ERR(1, 2667, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_AttributeGetter) < 0) __PYX_ERR(1, 2667, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_AttributeGetter.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_AttributeGetter) < 0) __PYX_ERR(1, 2701, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AttributeGetter, (PyObject *)&__pyx_type_19dependency_injector_9providers_AttributeGetter) < 0) __PYX_ERR(1, 2701, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_AttributeGetter) < 0) __PYX_ERR(1, 2701, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_AttributeGetter = &__pyx_type_19dependency_injector_9providers_AttributeGetter; __pyx_vtabptr_19dependency_injector_9providers_ItemGetter = &__pyx_vtable_19dependency_injector_9providers_ItemGetter; __pyx_vtable_19dependency_injector_9providers_ItemGetter.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Provider; __pyx_vtable_19dependency_injector_9providers_ItemGetter.__pyx_base._provide = (PyObject *(*)(struct __pyx_obj_19dependency_injector_9providers_Provider *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_19dependency_injector_9providers_10ItemGetter__provide; __pyx_type_19dependency_injector_9providers_ItemGetter.tp_base = __pyx_ptype_19dependency_injector_9providers_Provider; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_ItemGetter) < 0) __PYX_ERR(1, 2707, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_ItemGetter) < 0) __PYX_ERR(1, 2751, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_ItemGetter.tp_print = 0; #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_ItemGetter.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_ItemGetter) < 0) __PYX_ERR(1, 2707, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ItemGetter, (PyObject *)&__pyx_type_19dependency_injector_9providers_ItemGetter) < 0) __PYX_ERR(1, 2707, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_ItemGetter) < 0) __PYX_ERR(1, 2707, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_ItemGetter.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_ItemGetter) < 0) __PYX_ERR(1, 2751, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ItemGetter, (PyObject *)&__pyx_type_19dependency_injector_9providers_ItemGetter) < 0) __PYX_ERR(1, 2751, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_ItemGetter) < 0) __PYX_ERR(1, 2751, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_ItemGetter = &__pyx_type_19dependency_injector_9providers_ItemGetter; __pyx_vtabptr_19dependency_injector_9providers_MethodCaller = &__pyx_vtable_19dependency_injector_9providers_MethodCaller; __pyx_vtable_19dependency_injector_9providers_MethodCaller.__pyx_base = *__pyx_vtabptr_19dependency_injector_9providers_Provider; __pyx_vtable_19dependency_injector_9providers_MethodCaller.__pyx_base._provide = (PyObject *(*)(struct __pyx_obj_19dependency_injector_9providers_Provider *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_19dependency_injector_9providers_12MethodCaller__provide; __pyx_type_19dependency_injector_9providers_MethodCaller.tp_base = __pyx_ptype_19dependency_injector_9providers_Provider; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_MethodCaller) < 0) __PYX_ERR(1, 2747, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_MethodCaller) < 0) __PYX_ERR(1, 2801, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_MethodCaller.tp_print = 0; #endif - if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_MethodCaller.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_MethodCaller) < 0) __PYX_ERR(1, 2747, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_MethodCaller, (PyObject *)&__pyx_type_19dependency_injector_9providers_MethodCaller) < 0) __PYX_ERR(1, 2747, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_MethodCaller) < 0) __PYX_ERR(1, 2747, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_19dependency_injector_9providers_MethodCaller.tp_dict, __pyx_vtabptr_19dependency_injector_9providers_MethodCaller) < 0) __PYX_ERR(1, 2801, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_MethodCaller, (PyObject *)&__pyx_type_19dependency_injector_9providers_MethodCaller) < 0) __PYX_ERR(1, 2801, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_MethodCaller) < 0) __PYX_ERR(1, 2801, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_MethodCaller = &__pyx_type_19dependency_injector_9providers_MethodCaller; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Injection) < 0) __PYX_ERR(1, 2806, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_Injection) < 0) __PYX_ERR(1, 2891, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_Injection.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_19dependency_injector_9providers_Injection.tp_dictoffset && __pyx_type_19dependency_injector_9providers_Injection.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_19dependency_injector_9providers_Injection.tp_getattro = __Pyx_PyObject_GenericGetAttr; } - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Injection, (PyObject *)&__pyx_type_19dependency_injector_9providers_Injection) < 0) __PYX_ERR(1, 2806, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Injection) < 0) __PYX_ERR(1, 2806, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Injection, (PyObject *)&__pyx_type_19dependency_injector_9providers_Injection) < 0) __PYX_ERR(1, 2891, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_Injection) < 0) __PYX_ERR(1, 2891, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_Injection = &__pyx_type_19dependency_injector_9providers_Injection; __pyx_type_19dependency_injector_9providers_PositionalInjection.tp_base = __pyx_ptype_19dependency_injector_9providers_Injection; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_PositionalInjection) < 0) __PYX_ERR(1, 2810, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_PositionalInjection) < 0) __PYX_ERR(1, 2895, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_PositionalInjection.tp_print = 0; #endif @@ -84254,7 +86254,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_PositionalInjection, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2810, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_PositionalInjection, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2895, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_19PositionalInjection___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_19PositionalInjection___init__.doc = __pyx_doc_19dependency_injector_9providers_19PositionalInjection___init__; @@ -84262,11 +86262,11 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PositionalInjection, (PyObject *)&__pyx_type_19dependency_injector_9providers_PositionalInjection) < 0) __PYX_ERR(1, 2810, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_PositionalInjection) < 0) __PYX_ERR(1, 2810, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PositionalInjection, (PyObject *)&__pyx_type_19dependency_injector_9providers_PositionalInjection) < 0) __PYX_ERR(1, 2895, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_PositionalInjection) < 0) __PYX_ERR(1, 2895, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_PositionalInjection = &__pyx_type_19dependency_injector_9providers_PositionalInjection; __pyx_type_19dependency_injector_9providers_NamedInjection.tp_base = __pyx_ptype_19dependency_injector_9providers_Injection; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_NamedInjection) < 0) __PYX_ERR(1, 2838, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers_NamedInjection) < 0) __PYX_ERR(1, 2923, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers_NamedInjection.tp_print = 0; #endif @@ -84275,7 +86275,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_NamedInjection, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2838, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_19dependency_injector_9providers_NamedInjection, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(1, 2923, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_19dependency_injector_9providers_14NamedInjection___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_19dependency_injector_9providers_14NamedInjection___init__.doc = __pyx_doc_19dependency_injector_9providers_14NamedInjection___init__; @@ -84283,10 +86283,10 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_NamedInjection, (PyObject *)&__pyx_type_19dependency_injector_9providers_NamedInjection) < 0) __PYX_ERR(1, 2838, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_NamedInjection) < 0) __PYX_ERR(1, 2838, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_NamedInjection, (PyObject *)&__pyx_type_19dependency_injector_9providers_NamedInjection) < 0) __PYX_ERR(1, 2923, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_19dependency_injector_9providers_NamedInjection) < 0) __PYX_ERR(1, 2923, __pyx_L1_error) __pyx_ptype_19dependency_injector_9providers_NamedInjection = &__pyx_type_19dependency_injector_9providers_NamedInjection; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers___pyx_scope_struct___get_self_name) < 0) __PYX_ERR(1, 1137, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers___pyx_scope_struct___get_self_name) < 0) __PYX_ERR(1, 1148, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers___pyx_scope_struct___get_self_name.tp_print = 0; #endif @@ -84294,7 +86294,7 @@ static int __Pyx_modinit_type_init_code(void) { __pyx_type_19dependency_injector_9providers___pyx_scope_struct___get_self_name.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } __pyx_ptype_19dependency_injector_9providers___pyx_scope_struct___get_self_name = &__pyx_type_19dependency_injector_9providers___pyx_scope_struct___get_self_name; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers___pyx_scope_struct_1_genexpr) < 0) __PYX_ERR(1, 1139, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers___pyx_scope_struct_1_genexpr) < 0) __PYX_ERR(1, 1150, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers___pyx_scope_struct_1_genexpr.tp_print = 0; #endif @@ -84302,7 +86302,7 @@ static int __Pyx_modinit_type_init_code(void) { __pyx_type_19dependency_injector_9providers___pyx_scope_struct_1_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } __pyx_ptype_19dependency_injector_9providers___pyx_scope_struct_1_genexpr = &__pyx_type_19dependency_injector_9providers___pyx_scope_struct_1_genexpr; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers___pyx_scope_struct_2___str__) < 0) __PYX_ERR(1, 2566, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers___pyx_scope_struct_2___str__) < 0) __PYX_ERR(1, 2595, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers___pyx_scope_struct_2___str__.tp_print = 0; #endif @@ -84310,7 +86310,7 @@ static int __Pyx_modinit_type_init_code(void) { __pyx_type_19dependency_injector_9providers___pyx_scope_struct_2___str__.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } __pyx_ptype_19dependency_injector_9providers___pyx_scope_struct_2___str__ = &__pyx_type_19dependency_injector_9providers___pyx_scope_struct_2___str__; - if (PyType_Ready(&__pyx_type_19dependency_injector_9providers___pyx_scope_struct_3_genexpr) < 0) __PYX_ERR(1, 2576, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_19dependency_injector_9providers___pyx_scope_struct_3_genexpr) < 0) __PYX_ERR(1, 2605, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_19dependency_injector_9providers___pyx_scope_struct_3_genexpr.tp_print = 0; #endif @@ -84613,7 +86613,7 @@ if (!__Pyx_RefNanny) { * import sys * import types # <<<<<<<<<<<<<< * import threading - * import weakref + * import warnings */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_types, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -84624,8 +86624,8 @@ if (!__Pyx_RefNanny) { * import sys * import types * import threading # <<<<<<<<<<<<<< + * import warnings * import weakref - * */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_threading, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 10, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -84635,16 +86635,28 @@ if (!__Pyx_RefNanny) { /* "dependency_injector/providers.pyx":11 * import types * import threading + * import warnings # <<<<<<<<<<<<<< + * import weakref + * + */ + __pyx_t_1 = __Pyx_Import(__pyx_n_s_warnings, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_warnings, __pyx_t_1) < 0) __PYX_ERR(1, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "dependency_injector/providers.pyx":12 + * import threading + * import warnings * import weakref # <<<<<<<<<<<<<< * * try: */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_weakref, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 11, __pyx_L1_error) + __pyx_t_1 = __Pyx_Import(__pyx_n_s_weakref, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_weakref, __pyx_t_1) < 0) __PYX_ERR(1, 11, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_weakref, __pyx_t_1) < 0) __PYX_ERR(1, 12, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":13 + /* "dependency_injector/providers.pyx":14 * import weakref * * try: # <<<<<<<<<<<<<< @@ -84660,19 +86672,19 @@ if (!__Pyx_RefNanny) { __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "dependency_injector/providers.pyx":14 + /* "dependency_injector/providers.pyx":15 * * try: * import asyncio # <<<<<<<<<<<<<< * except ImportError: * asyncio = None */ - __pyx_t_1 = __Pyx_patch_asyncio(__Pyx_Import(__pyx_n_s_asyncio, 0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L2_error) + __pyx_t_1 = __Pyx_patch_asyncio(__Pyx_Import(__pyx_n_s_asyncio, 0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L2_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_asyncio, __pyx_t_1) < 0) __PYX_ERR(1, 14, __pyx_L2_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_asyncio, __pyx_t_1) < 0) __PYX_ERR(1, 15, __pyx_L2_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":13 + /* "dependency_injector/providers.pyx":14 * import weakref * * try: # <<<<<<<<<<<<<< @@ -84681,7 +86693,7 @@ if (!__Pyx_RefNanny) { */ } - /* "dependency_injector/providers.pyx":19 + /* "dependency_injector/providers.pyx":20 * _is_coroutine_marker = None * else: * if sys.version_info >= (3, 5, 3): # <<<<<<<<<<<<<< @@ -84689,48 +86701,48 @@ if (!__Pyx_RefNanny) { * _is_coroutine_marker = asyncio.coroutines._is_coroutine */ /*else:*/ { - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sys); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 19, __pyx_L4_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sys); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 20, __pyx_L4_except_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_version_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 19, __pyx_L4_except_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_version_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 20, __pyx_L4_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_tuple__13, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 19, __pyx_L4_except_error) + __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_tuple__14, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 20, __pyx_L4_except_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 19, __pyx_L4_except_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 20, __pyx_L4_except_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":20 + /* "dependency_injector/providers.pyx":21 * else: * if sys.version_info >= (3, 5, 3): * import asyncio.coroutines # <<<<<<<<<<<<<< * _is_coroutine_marker = asyncio.coroutines._is_coroutine * else: */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_asyncio_coroutines, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 20, __pyx_L4_except_error) + __pyx_t_1 = __Pyx_Import(__pyx_n_s_asyncio_coroutines, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 21, __pyx_L4_except_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_asyncio, __pyx_t_1) < 0) __PYX_ERR(1, 20, __pyx_L4_except_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_asyncio, __pyx_t_1) < 0) __PYX_ERR(1, 21, __pyx_L4_except_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":21 + /* "dependency_injector/providers.pyx":22 * if sys.version_info >= (3, 5, 3): * import asyncio.coroutines * _is_coroutine_marker = asyncio.coroutines._is_coroutine # <<<<<<<<<<<<<< * else: * _is_coroutine_marker = True */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 21, __pyx_L4_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 22, __pyx_L4_except_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_coroutines); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 21, __pyx_L4_except_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_coroutines); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 22, __pyx_L4_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_is_coroutine); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 21, __pyx_L4_except_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_is_coroutine); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 22, __pyx_L4_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_coroutine_marker, __pyx_t_1) < 0) __PYX_ERR(1, 21, __pyx_L4_except_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_coroutine_marker, __pyx_t_1) < 0) __PYX_ERR(1, 22, __pyx_L4_except_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":19 + /* "dependency_injector/providers.pyx":20 * _is_coroutine_marker = None * else: * if sys.version_info >= (3, 5, 3): # <<<<<<<<<<<<<< @@ -84740,7 +86752,7 @@ if (!__Pyx_RefNanny) { goto __pyx_L8; } - /* "dependency_injector/providers.pyx":23 + /* "dependency_injector/providers.pyx":24 * _is_coroutine_marker = asyncio.coroutines._is_coroutine * else: * _is_coroutine_marker = True # <<<<<<<<<<<<<< @@ -84748,7 +86760,7 @@ if (!__Pyx_RefNanny) { * try: */ /*else*/ { - if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_coroutine_marker, Py_True) < 0) __PYX_ERR(1, 23, __pyx_L4_except_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_coroutine_marker, Py_True) < 0) __PYX_ERR(1, 24, __pyx_L4_except_error) } __pyx_L8:; } @@ -84759,7 +86771,7 @@ if (!__Pyx_RefNanny) { __pyx_L2_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":15 + /* "dependency_injector/providers.pyx":16 * try: * import asyncio * except ImportError: # <<<<<<<<<<<<<< @@ -84769,28 +86781,28 @@ if (!__Pyx_RefNanny) { __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); if (__pyx_t_7) { __Pyx_AddTraceback("dependency_injector.providers", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_8) < 0) __PYX_ERR(1, 15, __pyx_L4_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_8) < 0) __PYX_ERR(1, 16, __pyx_L4_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_8); - /* "dependency_injector/providers.pyx":16 + /* "dependency_injector/providers.pyx":17 * import asyncio * except ImportError: * asyncio = None # <<<<<<<<<<<<<< * _is_coroutine_marker = None * else: */ - if (PyDict_SetItem(__pyx_d, __pyx_n_s_asyncio, Py_None) < 0) __PYX_ERR(1, 16, __pyx_L4_except_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_asyncio, Py_None) < 0) __PYX_ERR(1, 17, __pyx_L4_except_error) - /* "dependency_injector/providers.pyx":17 + /* "dependency_injector/providers.pyx":18 * except ImportError: * asyncio = None * _is_coroutine_marker = None # <<<<<<<<<<<<<< * else: * if sys.version_info >= (3, 5, 3): */ - if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_coroutine_marker, Py_None) < 0) __PYX_ERR(1, 17, __pyx_L4_except_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_coroutine_marker, Py_None) < 0) __PYX_ERR(1, 18, __pyx_L4_except_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -84799,7 +86811,7 @@ if (!__Pyx_RefNanny) { goto __pyx_L4_except_error; __pyx_L4_except_error:; - /* "dependency_injector/providers.pyx":13 + /* "dependency_injector/providers.pyx":14 * import weakref * * try: # <<<<<<<<<<<<<< @@ -84819,7 +86831,7 @@ if (!__Pyx_RefNanny) { __pyx_L7_try_end:; } - /* "dependency_injector/providers.pyx":25 + /* "dependency_injector/providers.pyx":26 * _is_coroutine_marker = True * * try: # <<<<<<<<<<<<<< @@ -84835,19 +86847,19 @@ if (!__Pyx_RefNanny) { __Pyx_XGOTREF(__pyx_t_2); /*try:*/ { - /* "dependency_injector/providers.pyx":26 + /* "dependency_injector/providers.pyx":27 * * try: * import ConfigParser as iniconfigparser # <<<<<<<<<<<<<< * except ImportError: * import configparser as iniconfigparser */ - __pyx_t_8 = __Pyx_Import(__pyx_n_s_ConfigParser, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 26, __pyx_L11_error) + __pyx_t_8 = __Pyx_Import(__pyx_n_s_ConfigParser, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 27, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_iniconfigparser, __pyx_t_8) < 0) __PYX_ERR(1, 26, __pyx_L11_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_iniconfigparser, __pyx_t_8) < 0) __PYX_ERR(1, 27, __pyx_L11_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "dependency_injector/providers.pyx":25 + /* "dependency_injector/providers.pyx":26 * _is_coroutine_marker = True * * try: # <<<<<<<<<<<<<< @@ -84864,7 +86876,7 @@ if (!__Pyx_RefNanny) { __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "dependency_injector/providers.pyx":27 + /* "dependency_injector/providers.pyx":28 * try: * import ConfigParser as iniconfigparser * except ImportError: # <<<<<<<<<<<<<< @@ -84874,21 +86886,21 @@ if (!__Pyx_RefNanny) { __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); if (__pyx_t_7) { __Pyx_AddTraceback("dependency_injector.providers", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_5, &__pyx_t_1) < 0) __PYX_ERR(1, 27, __pyx_L13_except_error) + if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_5, &__pyx_t_1) < 0) __PYX_ERR(1, 28, __pyx_L13_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_1); - /* "dependency_injector/providers.pyx":28 + /* "dependency_injector/providers.pyx":29 * import ConfigParser as iniconfigparser * except ImportError: * import configparser as iniconfigparser # <<<<<<<<<<<<<< * * try: */ - __pyx_t_9 = __Pyx_Import(__pyx_n_s_configparser, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 28, __pyx_L13_except_error) + __pyx_t_9 = __Pyx_Import(__pyx_n_s_configparser, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 29, __pyx_L13_except_error) __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_iniconfigparser, __pyx_t_9) < 0) __PYX_ERR(1, 28, __pyx_L13_except_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_iniconfigparser, __pyx_t_9) < 0) __PYX_ERR(1, 29, __pyx_L13_except_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -84898,7 +86910,7 @@ if (!__Pyx_RefNanny) { goto __pyx_L13_except_error; __pyx_L13_except_error:; - /* "dependency_injector/providers.pyx":25 + /* "dependency_injector/providers.pyx":26 * _is_coroutine_marker = True * * try: # <<<<<<<<<<<<<< @@ -84918,7 +86930,7 @@ if (!__Pyx_RefNanny) { __pyx_L16_try_end:; } - /* "dependency_injector/providers.pyx":30 + /* "dependency_injector/providers.pyx":31 * import configparser as iniconfigparser * * try: # <<<<<<<<<<<<<< @@ -84934,19 +86946,19 @@ if (!__Pyx_RefNanny) { __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "dependency_injector/providers.pyx":31 + /* "dependency_injector/providers.pyx":32 * * try: * import yaml # <<<<<<<<<<<<<< * except ImportError: * yaml = None */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_yaml, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 31, __pyx_L19_error) + __pyx_t_1 = __Pyx_Import(__pyx_n_s_yaml, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 32, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_yaml, __pyx_t_1) < 0) __PYX_ERR(1, 31, __pyx_L19_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_yaml, __pyx_t_1) < 0) __PYX_ERR(1, 32, __pyx_L19_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":30 + /* "dependency_injector/providers.pyx":31 * import configparser as iniconfigparser * * try: # <<<<<<<<<<<<<< @@ -84964,7 +86976,7 @@ if (!__Pyx_RefNanny) { __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "dependency_injector/providers.pyx":32 + /* "dependency_injector/providers.pyx":33 * try: * import yaml * except ImportError: # <<<<<<<<<<<<<< @@ -84974,19 +86986,19 @@ if (!__Pyx_RefNanny) { __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); if (__pyx_t_7) { __Pyx_AddTraceback("dependency_injector.providers", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_8) < 0) __PYX_ERR(1, 32, __pyx_L21_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_8) < 0) __PYX_ERR(1, 33, __pyx_L21_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_8); - /* "dependency_injector/providers.pyx":33 + /* "dependency_injector/providers.pyx":34 * import yaml * except ImportError: * yaml = None # <<<<<<<<<<<<<< * * from .errors import ( */ - if (PyDict_SetItem(__pyx_d, __pyx_n_s_yaml, Py_None) < 0) __PYX_ERR(1, 33, __pyx_L21_except_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_yaml, Py_None) < 0) __PYX_ERR(1, 34, __pyx_L21_except_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -84995,7 +87007,7 @@ if (!__Pyx_RefNanny) { goto __pyx_L21_except_error; __pyx_L21_except_error:; - /* "dependency_injector/providers.pyx":30 + /* "dependency_injector/providers.pyx":31 * import configparser as iniconfigparser * * try: # <<<<<<<<<<<<<< @@ -85015,14 +87027,14 @@ if (!__Pyx_RefNanny) { __pyx_L24_try_end:; } - /* "dependency_injector/providers.pyx":36 + /* "dependency_injector/providers.pyx":37 * * from .errors import ( * Error, # <<<<<<<<<<<<<< * NoSuchProviderError, * ) */ - __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 36, __pyx_L1_error) + __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_s_Error); __Pyx_GIVEREF(__pyx_n_s_Error); @@ -85031,56 +87043,56 @@ if (!__Pyx_RefNanny) { __Pyx_GIVEREF(__pyx_n_s_NoSuchProviderError); PyList_SET_ITEM(__pyx_t_8, 1, __pyx_n_s_NoSuchProviderError); - /* "dependency_injector/providers.pyx":35 + /* "dependency_injector/providers.pyx":36 * yaml = None * * from .errors import ( # <<<<<<<<<<<<<< * Error, * NoSuchProviderError, */ - __pyx_t_5 = __Pyx_Import(__pyx_n_s_errors, __pyx_t_8, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 35, __pyx_L1_error) + __pyx_t_5 = __Pyx_Import(__pyx_n_s_errors, __pyx_t_8, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_5, __pyx_n_s_Error); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 35, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_5, __pyx_n_s_Error); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_Error, __pyx_t_8) < 0) __PYX_ERR(1, 36, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_Error, __pyx_t_8) < 0) __PYX_ERR(1, 37, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_5, __pyx_n_s_NoSuchProviderError); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 35, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_5, __pyx_n_s_NoSuchProviderError); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_NoSuchProviderError, __pyx_t_8) < 0) __PYX_ERR(1, 37, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_NoSuchProviderError, __pyx_t_8) < 0) __PYX_ERR(1, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "dependency_injector/providers.pyx":43 + /* "dependency_injector/providers.pyx":44 * * * if sys.version_info[0] == 3: # pragma: no cover # <<<<<<<<<<<<<< * CLASS_TYPES = (type,) * else: # pragma: no cover */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_sys); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 43, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_sys); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_version_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 43, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_version_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_8, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 43, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_8, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyInt_EqObjC(__pyx_t_5, __pyx_int_3, 3, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 43, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyInt_EqObjC(__pyx_t_5, __pyx_int_3, 3, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 43, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 44, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":44 + /* "dependency_injector/providers.pyx":45 * * if sys.version_info[0] == 3: # pragma: no cover * CLASS_TYPES = (type,) # <<<<<<<<<<<<<< * else: # pragma: no cover * CLASS_TYPES = (type, types.ClassType) */ - __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 44, __pyx_L1_error) + __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(((PyObject *)(&PyType_Type))); __Pyx_GIVEREF(((PyObject *)(&PyType_Type))); @@ -85090,7 +87102,7 @@ if (!__Pyx_RefNanny) { __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = 0; - /* "dependency_injector/providers.pyx":43 + /* "dependency_injector/providers.pyx":44 * * * if sys.version_info[0] == 3: # pragma: no cover # <<<<<<<<<<<<<< @@ -85100,7 +87112,7 @@ if (!__Pyx_RefNanny) { goto __pyx_L27; } - /* "dependency_injector/providers.pyx":46 + /* "dependency_injector/providers.pyx":47 * CLASS_TYPES = (type,) * else: # pragma: no cover * CLASS_TYPES = (type, types.ClassType) # <<<<<<<<<<<<<< @@ -85108,12 +87120,12 @@ if (!__Pyx_RefNanny) { * copy._deepcopy_dispatch[types.MethodType] = \ */ /*else*/ { - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_types); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 46, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_types); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_ClassType); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 46, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_ClassType); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 46, __pyx_L1_error) + __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(((PyObject *)(&PyType_Type))); __Pyx_GIVEREF(((PyObject *)(&PyType_Type))); @@ -85126,98 +87138,98 @@ if (!__Pyx_RefNanny) { __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = 0; - /* "dependency_injector/providers.pyx":49 + /* "dependency_injector/providers.pyx":50 * * copy._deepcopy_dispatch[types.MethodType] = \ * lambda obj, memo: type(obj)(obj.im_func, # <<<<<<<<<<<<<< * copy.deepcopy(obj.im_self, memo), * obj.im_class) */ - __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_9providers_24lambda, 0, __pyx_n_s_lambda, NULL, __pyx_n_s_dependency_injector_providers, __pyx_d, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 49, __pyx_L1_error) + __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_9providers_24lambda, 0, __pyx_n_s_lambda, NULL, __pyx_n_s_dependency_injector_providers, __pyx_d, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - /* "dependency_injector/providers.pyx":48 + /* "dependency_injector/providers.pyx":49 * CLASS_TYPES = (type, types.ClassType) * * copy._deepcopy_dispatch[types.MethodType] = \ # <<<<<<<<<<<<<< * lambda obj, memo: type(obj)(obj.im_func, * copy.deepcopy(obj.im_self, memo), */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_copy); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 48, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_copy); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_deepcopy_dispatch); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 48, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_deepcopy_dispatch); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_types); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 48, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_types); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_MethodType); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 48, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_MethodType); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_t_9, __pyx_t_8) < 0)) __PYX_ERR(1, 48, __pyx_L1_error) + if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_t_9, __pyx_t_8) < 0)) __PYX_ERR(1, 49, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __pyx_L27:; - /* "dependency_injector/providers.pyx":53 + /* "dependency_injector/providers.pyx":54 * obj.im_class) * * if yaml: # <<<<<<<<<<<<<< * yaml_env_marker_pattern = re.compile(r'\$\{([^}^{]+)\}') * def yaml_env_marker_constructor(_, node): */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_yaml); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 53, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_yaml); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 53, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 54, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":54 + /* "dependency_injector/providers.pyx":55 * * if yaml: * yaml_env_marker_pattern = re.compile(r'\$\{([^}^{]+)\}') # <<<<<<<<<<<<<< * def yaml_env_marker_constructor(_, node): * """"Replace environment variable marker with its value.""" */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_re); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 54, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_re); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_compile); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 54, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_compile); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 54, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_yaml_env_marker_pattern, __pyx_t_8) < 0) __PYX_ERR(1, 54, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_yaml_env_marker_pattern, __pyx_t_8) < 0) __PYX_ERR(1, 55, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "dependency_injector/providers.pyx":55 + /* "dependency_injector/providers.pyx":56 * if yaml: * yaml_env_marker_pattern = re.compile(r'\$\{([^}^{]+)\}') * def yaml_env_marker_constructor(_, node): # <<<<<<<<<<<<<< * """"Replace environment variable marker with its value.""" * return os.path.expandvars(node.value) */ - __pyx_t_8 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_1yaml_env_marker_constructor, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 55, __pyx_L1_error) + __pyx_t_8 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_1yaml_env_marker_constructor, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 56, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_yaml_env_marker_constructor, __pyx_t_8) < 0) __PYX_ERR(1, 55, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_yaml_env_marker_constructor, __pyx_t_8) < 0) __PYX_ERR(1, 56, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "dependency_injector/providers.pyx":59 + /* "dependency_injector/providers.pyx":60 * return os.path.expandvars(node.value) * * yaml.add_implicit_resolver('!path', yaml_env_marker_pattern) # <<<<<<<<<<<<<< * yaml.add_constructor('!path', yaml_env_marker_constructor) * */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_yaml); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 59, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_yaml); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_add_implicit_resolver); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 59, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_add_implicit_resolver); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_yaml_env_marker_pattern); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 59, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_yaml_env_marker_pattern); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 59, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_kp_s_path_2); __Pyx_GIVEREF(__pyx_kp_s_path_2); @@ -85225,27 +87237,27 @@ if (!__Pyx_RefNanny) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 59, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "dependency_injector/providers.pyx":60 + /* "dependency_injector/providers.pyx":61 * * yaml.add_implicit_resolver('!path', yaml_env_marker_pattern) * yaml.add_constructor('!path', yaml_env_marker_constructor) # <<<<<<<<<<<<<< * * if sys.version_info[0] == 3: */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_yaml); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 60, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_yaml); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_add_constructor); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 60, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_add_constructor); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_yaml_env_marker_constructor); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 60, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_yaml_env_marker_constructor); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 60, __pyx_L1_error) + __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_kp_s_path_2); __Pyx_GIVEREF(__pyx_kp_s_path_2); @@ -85253,13 +87265,13 @@ if (!__Pyx_RefNanny) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 60, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "dependency_injector/providers.pyx":53 + /* "dependency_injector/providers.pyx":54 * obj.im_class) * * if yaml: # <<<<<<<<<<<<<< @@ -85268,97 +87280,97 @@ if (!__Pyx_RefNanny) { */ } - /* "dependency_injector/providers.pyx":62 + /* "dependency_injector/providers.pyx":63 * yaml.add_constructor('!path', yaml_env_marker_constructor) * * if sys.version_info[0] == 3: # <<<<<<<<<<<<<< * class EnvInterpolation(iniconfigparser.BasicInterpolation): * """Interpolation which expands environment variables in values.""" */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_sys); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 62, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_sys); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_version_info); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 62, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_version_info); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_9, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 62, __pyx_L1_error) + __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_9, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyInt_EqObjC(__pyx_t_8, __pyx_int_3, 3, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 62, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyInt_EqObjC(__pyx_t_8, __pyx_int_3, 3, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 62, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 63, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_6) { - /* "dependency_injector/providers.pyx":63 + /* "dependency_injector/providers.pyx":64 * * if sys.version_info[0] == 3: * class EnvInterpolation(iniconfigparser.BasicInterpolation): # <<<<<<<<<<<<<< * """Interpolation which expands environment variables in values.""" * */ - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_iniconfigparser); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 63, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_iniconfigparser); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_BasicInterpolation); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 63, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_BasicInterpolation); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 63, __pyx_L1_error) + __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_CalculateMetaclass(NULL, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 63, __pyx_L1_error) + __pyx_t_8 = __Pyx_CalculateMetaclass(NULL, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_8, __pyx_t_9, __pyx_n_s_EnvInterpolation, __pyx_n_s_EnvInterpolation, (PyObject *) NULL, __pyx_n_s_dependency_injector_providers, __pyx_kp_s_Interpolation_which_expands_envi); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 63, __pyx_L1_error) + __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_8, __pyx_t_9, __pyx_n_s_EnvInterpolation, __pyx_n_s_EnvInterpolation, (PyObject *) NULL, __pyx_n_s_dependency_injector_providers, __pyx_kp_s_Interpolation_which_expands_envi); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 63, __pyx_L1_error) + __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - /* "dependency_injector/providers.pyx":66 + /* "dependency_injector/providers.pyx":67 * """Interpolation which expands environment variables in values.""" * * def before_get(self, parser, section, option, value, defaults): # <<<<<<<<<<<<<< * value = super().before_get(parser, section, option, value, defaults) * return os.path.expandvars(value) */ - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_9providers_16EnvInterpolation_1before_get, 0, __pyx_n_s_EnvInterpolation_before_get, NULL, __pyx_n_s_dependency_injector_providers, __pyx_d, ((PyObject *)__pyx_codeobj__19)); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 66, __pyx_L1_error) + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_9providers_16EnvInterpolation_1before_get, 0, __pyx_n_s_EnvInterpolation_before_get, NULL, __pyx_n_s_dependency_injector_providers, __pyx_d, ((PyObject *)__pyx_codeobj__20)); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_INCREF(__pyx_t_10); PyList_Append(__pyx_t_5, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); - if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_before_get, __pyx_t_10) < 0) __PYX_ERR(1, 66, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_before_get, __pyx_t_10) < 0) __PYX_ERR(1, 67, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - /* "dependency_injector/providers.pyx":63 + /* "dependency_injector/providers.pyx":64 * * if sys.version_info[0] == 3: * class EnvInterpolation(iniconfigparser.BasicInterpolation): # <<<<<<<<<<<<<< * """Interpolation which expands environment variables in values.""" * */ - __pyx_t_10 = __Pyx_Py3ClassCreate(__pyx_t_8, __pyx_n_s_EnvInterpolation, __pyx_t_9, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 63, __pyx_L1_error) + __pyx_t_10 = __Pyx_Py3ClassCreate(__pyx_t_8, __pyx_n_s_EnvInterpolation, __pyx_t_9, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - if (__Pyx_CyFunction_InitClassCell(__pyx_t_5, __pyx_t_10) < 0) __PYX_ERR(1, 63, __pyx_L1_error) + if (__Pyx_CyFunction_InitClassCell(__pyx_t_5, __pyx_t_10) < 0) __PYX_ERR(1, 64, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_EnvInterpolation, __pyx_t_10) < 0) __PYX_ERR(1, 63, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_EnvInterpolation, __pyx_t_10) < 0) __PYX_ERR(1, 64, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "dependency_injector/providers.pyx":70 + /* "dependency_injector/providers.pyx":71 * return os.path.expandvars(value) * * def _parse_ini_file(filepath): # <<<<<<<<<<<<<< * parser = iniconfigparser.ConfigParser(interpolation=EnvInterpolation()) * parser.read(filepath) */ - __pyx_t_9 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_3_parse_ini_file, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 70, __pyx_L1_error) + __pyx_t_9 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_3_parse_ini_file, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_parse_ini_file, __pyx_t_9) < 0) __PYX_ERR(1, 70, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_parse_ini_file, __pyx_t_9) < 0) __PYX_ERR(1, 71, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "dependency_injector/providers.pyx":62 + /* "dependency_injector/providers.pyx":63 * yaml.add_constructor('!path', yaml_env_marker_constructor) * * if sys.version_info[0] == 3: # <<<<<<<<<<<<<< @@ -85368,7 +87380,7 @@ if (!__Pyx_RefNanny) { goto __pyx_L29; } - /* "dependency_injector/providers.pyx":75 + /* "dependency_injector/providers.pyx":76 * return parser * else: * import StringIO # <<<<<<<<<<<<<< @@ -85376,45 +87388,45 @@ if (!__Pyx_RefNanny) { * def _parse_ini_file(filepath): */ /*else*/ { - __pyx_t_9 = __Pyx_Import(__pyx_n_s_StringIO, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 75, __pyx_L1_error) + __pyx_t_9 = __Pyx_Import(__pyx_n_s_StringIO, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_StringIO, __pyx_t_9) < 0) __PYX_ERR(1, 75, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_StringIO, __pyx_t_9) < 0) __PYX_ERR(1, 76, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "dependency_injector/providers.pyx":77 + /* "dependency_injector/providers.pyx":78 * import StringIO * * def _parse_ini_file(filepath): # <<<<<<<<<<<<<< * parser = iniconfigparser.ConfigParser() * try: */ - __pyx_t_9 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_5_parse_ini_file, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 77, __pyx_L1_error) + __pyx_t_9 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_5_parse_ini_file, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_parse_ini_file, __pyx_t_9) < 0) __PYX_ERR(1, 77, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_parse_ini_file, __pyx_t_9) < 0) __PYX_ERR(1, 78, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __pyx_L29:; - /* "dependency_injector/providers.pyx":137 + /* "dependency_injector/providers.pyx":138 * """ * * __IS_PROVIDER__ = True # <<<<<<<<<<<<<< * * overriding_lock = threading.RLock() */ - if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_Provider->tp_dict, __pyx_n_s_IS_PROVIDER, Py_True) < 0) __PYX_ERR(1, 137, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_Provider->tp_dict, __pyx_n_s_IS_PROVIDER, Py_True) < 0) __PYX_ERR(1, 138, __pyx_L1_error) PyType_Modified(__pyx_ptype_19dependency_injector_9providers_Provider); - /* "dependency_injector/providers.pyx":139 + /* "dependency_injector/providers.pyx":140 * __IS_PROVIDER__ = True * * overriding_lock = threading.RLock() # <<<<<<<<<<<<<< * """Overriding reentrant lock. * */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_threading); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 139, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_threading); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_RLock); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 139, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_RLock); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; @@ -85429,166 +87441,166 @@ if (!__Pyx_RefNanny) { } __pyx_t_9 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 139, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_Provider->tp_dict, __pyx_n_s_overriding_lock, __pyx_t_9) < 0) __PYX_ERR(1, 139, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_Provider->tp_dict, __pyx_n_s_overriding_lock, __pyx_t_9) < 0) __PYX_ERR(1, 140, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; PyType_Modified(__pyx_ptype_19dependency_injector_9providers_Provider); - /* "dependency_injector/providers.pyx":173 + /* "dependency_injector/providers.pyx":174 * * @classmethod * def __class_getitem__(cls, item): # <<<<<<<<<<<<<< * return cls * */ - __Pyx_GetNameInClass(__pyx_t_9, (PyObject *)__pyx_ptype_19dependency_injector_9providers_Provider, __pyx_n_s_class_getitem); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 173, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject *)__pyx_ptype_19dependency_injector_9providers_Provider, __pyx_n_s_class_getitem); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - /* "dependency_injector/providers.pyx":172 + /* "dependency_injector/providers.pyx":173 * return copied * * @classmethod # <<<<<<<<<<<<<< * def __class_getitem__(cls, item): * return cls */ - __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 172, __pyx_L1_error) + __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_Provider->tp_dict, __pyx_n_s_class_getitem, __pyx_t_1) < 0) __PYX_ERR(1, 173, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_Provider->tp_dict, __pyx_n_s_class_getitem, __pyx_t_1) < 0) __PYX_ERR(1, 174, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; PyType_Modified(__pyx_ptype_19dependency_injector_9providers_Provider); - /* "dependency_injector/providers.pyx":885 + /* "dependency_injector/providers.pyx":896 * """ * * __IS_DELEGATED__ = True # <<<<<<<<<<<<<< * * */ - if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_DelegatedCallable->tp_dict, __pyx_n_s_IS_DELEGATED, Py_True) < 0) __PYX_ERR(1, 885, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_DelegatedCallable->tp_dict, __pyx_n_s_IS_DELEGATED, Py_True) < 0) __PYX_ERR(1, 896, __pyx_L1_error) PyType_Modified(__pyx_ptype_19dependency_injector_9providers_DelegatedCallable); - /* "dependency_injector/providers.pyx":975 + /* "dependency_injector/providers.pyx":986 * """ * * _is_coroutine = _is_coroutine_marker # <<<<<<<<<<<<<< * * def __init__(self, provides, *args, **kwargs): */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_is_coroutine_marker); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 975, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_is_coroutine_marker); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_Coroutine->tp_dict, __pyx_n_s_is_coroutine, __pyx_t_1) < 0) __PYX_ERR(1, 975, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_Coroutine->tp_dict, __pyx_n_s_is_coroutine, __pyx_t_1) < 0) __PYX_ERR(1, 986, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; PyType_Modified(__pyx_ptype_19dependency_injector_9providers_Coroutine); - /* "dependency_injector/providers.pyx":1001 + /* "dependency_injector/providers.pyx":1012 * """ * * __IS_DELEGATED__ = True # <<<<<<<<<<<<<< * * */ - if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_DelegatedCoroutine->tp_dict, __pyx_n_s_IS_DELEGATED, Py_True) < 0) __PYX_ERR(1, 1001, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_DelegatedCoroutine->tp_dict, __pyx_n_s_IS_DELEGATED, Py_True) < 0) __PYX_ERR(1, 1012, __pyx_L1_error) PyType_Modified(__pyx_ptype_19dependency_injector_9providers_DelegatedCoroutine); - /* "dependency_injector/providers.pyx":1074 + /* "dependency_injector/providers.pyx":1085 * """ * * UNDEFINED = object() # <<<<<<<<<<<<<< * * def __init__(self, name, root): */ - __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_builtin_object); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1074, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_builtin_object); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_ConfigurationOption->tp_dict, __pyx_n_s_UNDEFINED, __pyx_t_1) < 0) __PYX_ERR(1, 1074, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_ConfigurationOption->tp_dict, __pyx_n_s_UNDEFINED, __pyx_t_1) < 0) __PYX_ERR(1, 1085, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; PyType_Modified(__pyx_ptype_19dependency_injector_9providers_ConfigurationOption); - /* "dependency_injector/providers.pyx":1285 + /* "dependency_injector/providers.pyx":1310 * """ * * DEFAULT_NAME = 'config' # <<<<<<<<<<<<<< * * def __init__(self, name=DEFAULT_NAME, default=None): */ - if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_Configuration->tp_dict, __pyx_n_s_DEFAULT_NAME, __pyx_n_s_config) < 0) __PYX_ERR(1, 1285, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_Configuration->tp_dict, __pyx_n_s_DEFAULT_NAME, __pyx_n_s_config) < 0) __PYX_ERR(1, 1310, __pyx_L1_error) PyType_Modified(__pyx_ptype_19dependency_injector_9providers_Configuration); - /* "dependency_injector/providers.pyx":1287 + /* "dependency_injector/providers.pyx":1312 * DEFAULT_NAME = 'config' * * def __init__(self, name=DEFAULT_NAME, default=None): # <<<<<<<<<<<<<< * self.__name = name * */ - __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_19dependency_injector_9providers_Configuration, __pyx_n_s_DEFAULT_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1287, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_19dependency_injector_9providers_Configuration, __pyx_n_s_DEFAULT_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_k__6 = __pyx_t_1; + __pyx_k__7 = __pyx_t_1; __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":1572 + /* "dependency_injector/providers.pyx":1597 * """ * * provided_type = None # <<<<<<<<<<<<<< * * def __init__(self, provides, *args, **kwargs): */ - if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_Factory->tp_dict, __pyx_n_s_provided_type, Py_None) < 0) __PYX_ERR(1, 1572, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_Factory->tp_dict, __pyx_n_s_provided_type, Py_None) < 0) __PYX_ERR(1, 1597, __pyx_L1_error) PyType_Modified(__pyx_ptype_19dependency_injector_9providers_Factory); - /* "dependency_injector/providers.pyx":1762 + /* "dependency_injector/providers.pyx":1787 * """ * * __IS_DELEGATED__ = True # <<<<<<<<<<<<<< * * */ - if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_DelegatedFactory->tp_dict, __pyx_n_s_IS_DELEGATED, Py_True) < 0) __PYX_ERR(1, 1762, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_DelegatedFactory->tp_dict, __pyx_n_s_IS_DELEGATED, Py_True) < 0) __PYX_ERR(1, 1787, __pyx_L1_error) PyType_Modified(__pyx_ptype_19dependency_injector_9providers_DelegatedFactory); - /* "dependency_injector/providers.pyx":1842 + /* "dependency_injector/providers.pyx":1867 * """ * * __IS_DELEGATED__ = True # <<<<<<<<<<<<<< * * def __init__(self, **factories): */ - if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_FactoryAggregate->tp_dict, __pyx_n_s_IS_DELEGATED, Py_True) < 0) __PYX_ERR(1, 1842, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_FactoryAggregate->tp_dict, __pyx_n_s_IS_DELEGATED, Py_True) < 0) __PYX_ERR(1, 1867, __pyx_L1_error) PyType_Modified(__pyx_ptype_19dependency_injector_9providers_FactoryAggregate); - /* "dependency_injector/providers.pyx":1918 + /* "dependency_injector/providers.pyx":1943 * """Base class of singleton providers.""" * * provided_type = None # <<<<<<<<<<<<<< * * def __init__(self, provides, *args, **kwargs): */ - if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_BaseSingleton->tp_dict, __pyx_n_s_provided_type, Py_None) < 0) __PYX_ERR(1, 1918, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_BaseSingleton->tp_dict, __pyx_n_s_provided_type, Py_None) < 0) __PYX_ERR(1, 1943, __pyx_L1_error) PyType_Modified(__pyx_ptype_19dependency_injector_9providers_BaseSingleton); - /* "dependency_injector/providers.pyx":2148 + /* "dependency_injector/providers.pyx":2173 * """ * * __IS_DELEGATED__ = True # <<<<<<<<<<<<<< * * */ - if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_DelegatedSingleton->tp_dict, __pyx_n_s_IS_DELEGATED, Py_True) < 0) __PYX_ERR(1, 2148, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_DelegatedSingleton->tp_dict, __pyx_n_s_IS_DELEGATED, Py_True) < 0) __PYX_ERR(1, 2173, __pyx_L1_error) PyType_Modified(__pyx_ptype_19dependency_injector_9providers_DelegatedSingleton); - /* "dependency_injector/providers.pyx":2154 + /* "dependency_injector/providers.pyx":2179 * """Thread-safe singleton provider.""" * * storage_lock = threading.RLock() # <<<<<<<<<<<<<< * """Storage reentrant lock. * */ - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_threading); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 2154, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_threading); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 2179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_RLock); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2154, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_RLock); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; @@ -85603,55 +87615,55 @@ if (!__Pyx_RefNanny) { } __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2154, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_ThreadSafeSingleton->tp_dict, __pyx_n_s_storage_lock, __pyx_t_1) < 0) __PYX_ERR(1, 2154, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_ThreadSafeSingleton->tp_dict, __pyx_n_s_storage_lock, __pyx_t_1) < 0) __PYX_ERR(1, 2179, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; PyType_Modified(__pyx_ptype_19dependency_injector_9providers_ThreadSafeSingleton); - /* "dependency_injector/providers.pyx":2205 + /* "dependency_injector/providers.pyx":2230 * """ * * __IS_DELEGATED__ = True # <<<<<<<<<<<<<< * * */ - if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_DelegatedThreadSafeSingleton->tp_dict, __pyx_n_s_IS_DELEGATED, Py_True) < 0) __PYX_ERR(1, 2205, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_DelegatedThreadSafeSingleton->tp_dict, __pyx_n_s_IS_DELEGATED, Py_True) < 0) __PYX_ERR(1, 2230, __pyx_L1_error) PyType_Modified(__pyx_ptype_19dependency_injector_9providers_DelegatedThreadSafeSingleton); - /* "dependency_injector/providers.pyx":2275 + /* "dependency_injector/providers.pyx":2300 * """ * * __IS_DELEGATED__ = True # <<<<<<<<<<<<<< * * */ - if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_DelegatedThreadLocalSingleton->tp_dict, __pyx_n_s_IS_DELEGATED, Py_True) < 0) __PYX_ERR(1, 2275, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_19dependency_injector_9providers_DelegatedThreadLocalSingleton->tp_dict, __pyx_n_s_IS_DELEGATED, Py_True) < 0) __PYX_ERR(1, 2300, __pyx_L1_error) PyType_Modified(__pyx_ptype_19dependency_injector_9providers_DelegatedThreadLocalSingleton); - /* "dependency_injector/providers.pyx":2977 + /* "dependency_injector/providers.pyx":3062 * return copy.deepcopy(instance, memo) * * def __add_sys_streams(memo): # <<<<<<<<<<<<<< * """Add system streams to memo dictionary. * */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_21__add_sys_streams, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2977, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_21__add_sys_streams, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_add_sys_streams, __pyx_t_1) < 0) __PYX_ERR(1, 2977, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_add_sys_streams, __pyx_t_1) < 0) __PYX_ERR(1, 3062, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pyx":2988 + /* "dependency_injector/providers.pyx":3073 * * * def merge_dicts(dict1, dict2): # <<<<<<<<<<<<<< * """Merge dictionaries recursively. * */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_23merge_dicts, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2988, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_23merge_dicts, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_merge_dicts, __pyx_t_1) < 0) __PYX_ERR(1, 2988, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_merge_dicts, __pyx_t_1) < 0) __PYX_ERR(1, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":1 @@ -85831,275 +87843,287 @@ if (!__Pyx_RefNanny) { __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":1 - * def __pyx_unpickle_Configuration(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * def __pyx_unpickle_TypedConfigurationOption(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_58__pyx_unpickle_Configuration, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_58__pyx_unpickle_TypedConfigurationOption, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_TypedConfiguratio, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "(tree fragment)":11 + * __pyx_unpickle_TypedConfigurationOption__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_TypedConfigurationOption__set_state(TypedConfigurationOption __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.__args = __pyx_state[0]; __pyx_result.__args_len = __pyx_state[1]; __pyx_result.__kwargs = __pyx_state[2]; __pyx_result.__kwargs_len = __pyx_state[3]; __pyx_result.__last_overriding = __pyx_state[4]; __pyx_result.__overridden = __pyx_state[5]; __pyx_result.__provides = __pyx_state[6] + * if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'): + */ + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_60__pyx_unpickle_Configuration, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Configuration, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":11 - * __pyx_unpickle_Configuration__set_state( __pyx_result, __pyx_state) - * return __pyx_result - * cdef __pyx_unpickle_Configuration__set_state(Configuration __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result.__children = __pyx_state[0]; __pyx_result.__last_overriding = __pyx_state[1]; __pyx_result.__name = __pyx_state[2]; __pyx_result.__overridden = __pyx_state[3]; __pyx_result.__provides = __pyx_state[4] - * if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'): + /* "(tree fragment)":1 + * def __pyx_unpickle_Factory(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_60__pyx_unpickle_Factory, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_62__pyx_unpickle_Factory, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Factory, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":1 - * def __pyx_unpickle_DelegatedFactory(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result + /* "(tree fragment)":11 + * __pyx_unpickle_Factory__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_Factory__set_state(Factory __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.__attributes = __pyx_state[0]; __pyx_result.__attributes_len = __pyx_state[1]; __pyx_result.__instantiator = __pyx_state[2]; __pyx_result.__last_overriding = __pyx_state[3]; __pyx_result.__overridden = __pyx_state[4] + * if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'): */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_62__pyx_unpickle_DelegatedFactory, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_64__pyx_unpickle_DelegatedFactory, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_DelegatedFactory, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":11 - * __pyx_unpickle_DelegatedFactory__set_state( __pyx_result, __pyx_state) - * return __pyx_result - * cdef __pyx_unpickle_DelegatedFactory__set_state(DelegatedFactory __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result.__attributes = __pyx_state[0]; __pyx_result.__attributes_len = __pyx_state[1]; __pyx_result.__instantiator = __pyx_state[2]; __pyx_result.__last_overriding = __pyx_state[3]; __pyx_result.__overridden = __pyx_state[4] - * if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'): + /* "(tree fragment)":1 + * def __pyx_unpickle_AbstractFactory(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_64__pyx_unpickle_AbstractFactory, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_66__pyx_unpickle_AbstractFactory, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_AbstractFactory, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":1 - * def __pyx_unpickle_FactoryDelegate(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result + /* "(tree fragment)":11 + * __pyx_unpickle_AbstractFactory__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_AbstractFactory__set_state(AbstractFactory __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.__attributes = __pyx_state[0]; __pyx_result.__attributes_len = __pyx_state[1]; __pyx_result.__instantiator = __pyx_state[2]; __pyx_result.__last_overriding = __pyx_state[3]; __pyx_result.__overridden = __pyx_state[4] + * if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'): */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_66__pyx_unpickle_FactoryDelegate, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_68__pyx_unpickle_FactoryDelegate, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_FactoryDelegate, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":11 - * __pyx_unpickle_FactoryDelegate__set_state( __pyx_result, __pyx_state) - * return __pyx_result - * cdef __pyx_unpickle_FactoryDelegate__set_state(FactoryDelegate __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result.__last_overriding = __pyx_state[0]; __pyx_result.__overridden = __pyx_state[1]; __pyx_result.__provides = __pyx_state[2] - * if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'): + /* "(tree fragment)":1 + * def __pyx_unpickle_FactoryAggregate(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_68__pyx_unpickle_FactoryAggregate, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_70__pyx_unpickle_FactoryAggregate, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_FactoryAggregate, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":1 - * def __pyx_unpickle_BaseSingleton(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result + /* "(tree fragment)":11 + * __pyx_unpickle_FactoryAggregate__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_FactoryAggregate__set_state(FactoryAggregate __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.__factories = __pyx_state[0]; __pyx_result.__last_overriding = __pyx_state[1]; __pyx_result.__overridden = __pyx_state[2] + * if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'): */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_70__pyx_unpickle_BaseSingleton, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_72__pyx_unpickle_BaseSingleton, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_BaseSingleton, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":11 - * __pyx_unpickle_BaseSingleton__set_state( __pyx_result, __pyx_state) - * return __pyx_result - * cdef __pyx_unpickle_BaseSingleton__set_state(BaseSingleton __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result.__instantiator = __pyx_state[0]; __pyx_result.__last_overriding = __pyx_state[1]; __pyx_result.__overridden = __pyx_state[2] - * if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'): + /* "(tree fragment)":1 + * def __pyx_unpickle_Singleton(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_72__pyx_unpickle_Singleton, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_74__pyx_unpickle_Singleton, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Singleton, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":1 - * def __pyx_unpickle_DelegatedSingleton(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result + /* "(tree fragment)":11 + * __pyx_unpickle_Singleton__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_Singleton__set_state(Singleton __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.__instantiator = __pyx_state[0]; __pyx_result.__last_overriding = __pyx_state[1]; __pyx_result.__overridden = __pyx_state[2]; __pyx_result.__storage = __pyx_state[3] + * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_74__pyx_unpickle_DelegatedSingleton, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_76__pyx_unpickle_DelegatedSingleton, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_DelegatedSingleto, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":11 - * __pyx_unpickle_DelegatedSingleton__set_state( __pyx_result, __pyx_state) - * return __pyx_result - * cdef __pyx_unpickle_DelegatedSingleton__set_state(DelegatedSingleton __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result.__instantiator = __pyx_state[0]; __pyx_result.__last_overriding = __pyx_state[1]; __pyx_result.__overridden = __pyx_state[2]; __pyx_result.__storage = __pyx_state[3] - * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): + /* "(tree fragment)":1 + * def __pyx_unpickle_ThreadSafeSingleton(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_76__pyx_unpickle_ThreadSafeSingleton, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_78__pyx_unpickle_ThreadSafeSingleton, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_ThreadSafeSinglet, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":1 - * def __pyx_unpickle_DelegatedThreadSafeSingleton(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result + /* "(tree fragment)":11 + * __pyx_unpickle_ThreadSafeSingleton__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_ThreadSafeSingleton__set_state(ThreadSafeSingleton __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.__instantiator = __pyx_state[0]; __pyx_result.__last_overriding = __pyx_state[1]; __pyx_result.__overridden = __pyx_state[2]; __pyx_result.__storage = __pyx_state[3]; __pyx_result.__storage_lock = __pyx_state[4] + * if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'): */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_78__pyx_unpickle_DelegatedThreadSafeSingleton, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_80__pyx_unpickle_DelegatedThreadSafeSingleton, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_DelegatedThreadSa, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":11 - * __pyx_unpickle_DelegatedThreadSafeSingleton__set_state( __pyx_result, __pyx_state) - * return __pyx_result - * cdef __pyx_unpickle_DelegatedThreadSafeSingleton__set_state(DelegatedThreadSafeSingleton __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result.__instantiator = __pyx_state[0]; __pyx_result.__last_overriding = __pyx_state[1]; __pyx_result.__overridden = __pyx_state[2]; __pyx_result.__storage = __pyx_state[3]; __pyx_result.__storage_lock = __pyx_state[4] - * if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'): + /* "(tree fragment)":1 + * def __pyx_unpickle_ThreadLocalSingleton(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_80__pyx_unpickle_ThreadLocalSingleton, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_82__pyx_unpickle_ThreadLocalSingleton, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_ThreadLocalSingle, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":1 - * def __pyx_unpickle_DelegatedThreadLocalSingleton(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result + /* "(tree fragment)":11 + * __pyx_unpickle_ThreadLocalSingleton__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_ThreadLocalSingleton__set_state(ThreadLocalSingleton __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.__instantiator = __pyx_state[0]; __pyx_result.__last_overriding = __pyx_state[1]; __pyx_result.__overridden = __pyx_state[2]; __pyx_result.__storage = __pyx_state[3] + * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_82__pyx_unpickle_DelegatedThreadLocalSingleton, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_84__pyx_unpickle_DelegatedThreadLocalSingleton, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_DelegatedThreadLo, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":11 - * __pyx_unpickle_DelegatedThreadLocalSingleton__set_state( __pyx_result, __pyx_state) - * return __pyx_result - * cdef __pyx_unpickle_DelegatedThreadLocalSingleton__set_state(DelegatedThreadLocalSingleton __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result.__instantiator = __pyx_state[0]; __pyx_result.__last_overriding = __pyx_state[1]; __pyx_result.__overridden = __pyx_state[2]; __pyx_result.__storage = __pyx_state[3] - * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): + /* "(tree fragment)":1 + * def __pyx_unpickle_AbstractSingleton(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_84__pyx_unpickle_AbstractSingleton, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_86__pyx_unpickle_AbstractSingleton, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_AbstractSingleton, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":1 - * def __pyx_unpickle_SingletonDelegate(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result + /* "(tree fragment)":11 + * __pyx_unpickle_AbstractSingleton__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_AbstractSingleton__set_state(AbstractSingleton __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.__instantiator = __pyx_state[0]; __pyx_result.__last_overriding = __pyx_state[1]; __pyx_result.__overridden = __pyx_state[2] + * if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'): */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_86__pyx_unpickle_SingletonDelegate, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_88__pyx_unpickle_SingletonDelegate, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_SingletonDelegate, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":11 - * __pyx_unpickle_SingletonDelegate__set_state( __pyx_result, __pyx_state) - * return __pyx_result - * cdef __pyx_unpickle_SingletonDelegate__set_state(SingletonDelegate __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result.__last_overriding = __pyx_state[0]; __pyx_result.__overridden = __pyx_state[1]; __pyx_result.__provides = __pyx_state[2] - * if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'): + /* "(tree fragment)":1 + * def __pyx_unpickle_List(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_88__pyx_unpickle_List, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_90__pyx_unpickle_List, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_List, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":1 - * def __pyx_unpickle_Container(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result + /* "(tree fragment)":11 + * __pyx_unpickle_List__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_List__set_state(List __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.__args = __pyx_state[0]; __pyx_result.__args_len = __pyx_state[1]; __pyx_result.__last_overriding = __pyx_state[2]; __pyx_result.__overridden = __pyx_state[3] + * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_90__pyx_unpickle_Container, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_92__pyx_unpickle_Container, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Container, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":11 - * __pyx_unpickle_Container__set_state( __pyx_result, __pyx_state) - * return __pyx_result - * cdef __pyx_unpickle_Container__set_state(Container __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result.__last_overriding = __pyx_state[0]; __pyx_result.__overridden = __pyx_state[1]; __pyx_result.container = __pyx_state[2]; __pyx_result.container_cls = __pyx_state[3]; __pyx_result.overriding_providers = __pyx_state[4] - * if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'): + /* "(tree fragment)":1 + * def __pyx_unpickle_Selector(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_92__pyx_unpickle_Selector, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_94__pyx_unpickle_Selector, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Selector, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":1 - * def __pyx_unpickle_ProvidedInstance(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result + /* "(tree fragment)":11 + * __pyx_unpickle_Selector__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_Selector__set_state(Selector __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.__last_overriding = __pyx_state[0]; __pyx_result.__overridden = __pyx_state[1]; __pyx_result.__providers = __pyx_state[2]; __pyx_result.__selector = __pyx_state[3] + * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_94__pyx_unpickle_ProvidedInstance, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_96__pyx_unpickle_ProvidedInstance, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_ProvidedInstance, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":11 - * __pyx_unpickle_ProvidedInstance__set_state( __pyx_result, __pyx_state) - * return __pyx_result - * cdef __pyx_unpickle_ProvidedInstance__set_state(ProvidedInstance __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result.__last_overriding = __pyx_state[0]; __pyx_result.__overridden = __pyx_state[1]; __pyx_result.__provider = __pyx_state[2] - * if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'): + /* "(tree fragment)":1 + * def __pyx_unpickle_AttributeGetter(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_96__pyx_unpickle_AttributeGetter, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_98__pyx_unpickle_AttributeGetter, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_AttributeGetter, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":1 - * def __pyx_unpickle_ItemGetter(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result + /* "(tree fragment)":11 + * __pyx_unpickle_AttributeGetter__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_AttributeGetter__set_state(AttributeGetter __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.__attribute = __pyx_state[0]; __pyx_result.__last_overriding = __pyx_state[1]; __pyx_result.__overridden = __pyx_state[2]; __pyx_result.__provider = __pyx_state[3] + * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_98__pyx_unpickle_ItemGetter, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_100__pyx_unpickle_ItemGetter, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_ItemGetter, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":11 - * __pyx_unpickle_ItemGetter__set_state( __pyx_result, __pyx_state) - * return __pyx_result - * cdef __pyx_unpickle_ItemGetter__set_state(ItemGetter __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result.__item = __pyx_state[0]; __pyx_result.__last_overriding = __pyx_state[1]; __pyx_result.__overridden = __pyx_state[2]; __pyx_result.__provider = __pyx_state[3] - * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): + /* "(tree fragment)":1 + * def __pyx_unpickle_MethodCaller(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_100__pyx_unpickle_MethodCaller, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_102__pyx_unpickle_MethodCaller, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_MethodCaller, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":1 - * def __pyx_unpickle_Injection(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result + /* "(tree fragment)":11 + * __pyx_unpickle_MethodCaller__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_MethodCaller__set_state(MethodCaller __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.__args = __pyx_state[0]; __pyx_result.__args_len = __pyx_state[1]; __pyx_result.__kwargs = __pyx_state[2]; __pyx_result.__kwargs_len = __pyx_state[3]; __pyx_result.__last_overriding = __pyx_state[4]; __pyx_result.__overridden = __pyx_state[5]; __pyx_result.__provider = __pyx_state[6] + * if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'): */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_102__pyx_unpickle_Injection, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_104__pyx_unpickle_Injection, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Injection, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":11 - * __pyx_unpickle_Injection__set_state( __pyx_result, __pyx_state) - * return __pyx_result - * cdef __pyx_unpickle_Injection__set_state(Injection __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result.__call = __pyx_state[0]; __pyx_result.__is_delegated = __pyx_state[1]; __pyx_result.__is_provider = __pyx_state[2]; __pyx_result.__value = __pyx_state[3] - * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): + /* "(tree fragment)":1 + * def __pyx_unpickle_PositionalInjection(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_104__pyx_unpickle_PositionalInjection, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_106__pyx_unpickle_PositionalInjection, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_PositionalInjecti, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":1 - * def __pyx_unpickle_NamedInjection(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result + /* "(tree fragment)":11 + * __pyx_unpickle_PositionalInjection__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_PositionalInjection__set_state(PositionalInjection __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.__call = __pyx_state[0]; __pyx_result.__is_delegated = __pyx_state[1]; __pyx_result.__is_provider = __pyx_state[2]; __pyx_result.__value = __pyx_state[3] + * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_106__pyx_unpickle_NamedInjection, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_19dependency_injector_9providers_108__pyx_unpickle_NamedInjection, NULL, __pyx_n_s_dependency_injector_providers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_NamedInjection, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -86114,7 +88138,7 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "dependency_injector/providers.pxd":421 + /* "dependency_injector/providers.pxd":425 * * * cdef inline object __factory_call(Factory self, tuple args, dict kwargs): # <<<<<<<<<<<<<< diff --git a/src/dependency_injector/providers.pxd b/src/dependency_injector/providers.pxd index 90e9d239..5e9645e2 100644 --- a/src/dependency_injector/providers.pxd +++ b/src/dependency_injector/providers.pxd @@ -93,6 +93,10 @@ cdef class ConfigurationOption(Provider): cdef object __cache +cdef class TypedConfigurationOption(Callable): + pass + + cdef class Configuration(Object): cdef str __name cdef dict __children @@ -181,9 +185,9 @@ cdef class List(Provider): cdef class Container(Provider): - cdef object container_cls - cdef dict overriding_providers - cdef object container + cdef object __container_cls + cdef dict __overriding_providers + cdef object __container cpdef object _provide(self, tuple args, dict kwargs) diff --git a/src/dependency_injector/providers.pyi b/src/dependency_injector/providers.pyi index ed9b5500..4b4b88d3 100644 --- a/src/dependency_injector/providers.pyi +++ b/src/dependency_injector/providers.pyi @@ -54,6 +54,8 @@ class Object(Provider, Generic[T]): class Delegate(Provider): def __init__(self, provides: Provider) -> None: ... def __call__(self, *args: Injection, **kwargs: Injection) -> Provider: ... + @property + def provides(self) -> Provider: ... class Dependency(Provider, Generic[T]): @@ -122,14 +124,17 @@ class CoroutineDelegate(Delegate): class ConfigurationOption(Provider): UNDEFINED: object - def __init__(self, name: str, root: Configuration) -> None: ... + def __init__(self, name: Tuple[str], root: Configuration) -> None: ... def __call__(self, *args: Injection, **kwargs: Injection) -> Any: ... def __getattr__(self, item: str) -> ConfigurationOption: ... - def __getitem__(self, item: str) -> ConfigurationOption: ... + def __getitem__(self, item: Union[str, Provider]) -> ConfigurationOption: ... + @property + def root(self) -> Configuration: ... def get_name(self) -> str: ... - def as_int(self) -> Callable[int]: ... - def as_float(self) -> Callable[float]: ... - def as_(self, callback: _Callable[..., T], *args: Injection, **kwargs: Injection) -> Callable[T]: ... + def get_name_segments(self) -> Tuple[Union[str, Provider]]: ... + def as_int(self) -> TypedConfigurationOption[int]: ... + def as_float(self) -> TypedConfigurationOption[float]: ... + def as_(self, callback: _Callable[..., T], *args: Injection, **kwargs: Injection) -> TypedConfigurationOption[T]: ... def update(self, value: Any) -> None: ... def from_ini(self, filepath: str) -> None: ... def from_yaml(self, filepath: str) -> None: ... @@ -137,11 +142,16 @@ class ConfigurationOption(Provider): def from_env(self, name: str, default: Optional[Any] = None) -> None: ... +class TypedConfigurationOption(Callable[T]): + @property + def option(self) -> ConfigurationOption: ... + + class Configuration(Object): DEFAULT_NAME: str = 'config' def __init__(self, name: str = DEFAULT_NAME, default: Optional[Any] = None) -> None: ... def __getattr__(self, item: str) -> ConfigurationOption: ... - def __getitem__(self, item: str) -> ConfigurationOption: ... + def __getitem__(self, item: Union[str, Provider]) -> ConfigurationOption: ... def get_name(self) -> str: ... def get(self, selector: str) -> Any: ... def set(self, selector: str, value: Any) -> OverridingContext: ... @@ -268,6 +278,8 @@ class Container(Provider): def __init__(self, container_cls: Type[T], container: Optional[T] = None, **overriding_providers: Provider) -> None: ... def __call__(self, *args: Injection, **kwargs: Injection) -> T: ... def __getattr__(self, name: str) -> Provider: ... + @property + def container(self) -> T: ... class Selector(Provider): diff --git a/src/dependency_injector/providers.pyx b/src/dependency_injector/providers.pyx index 16025a50..34f8e86b 100644 --- a/src/dependency_injector/providers.pyx +++ b/src/dependency_injector/providers.pyx @@ -8,6 +8,7 @@ import re import sys import types import threading +import warnings import weakref try: @@ -257,6 +258,11 @@ cdef class Provider(object): :rtype: :py:class:`Delegate` """ + warnings.warn( + 'Method ".delegate()" is deprecated since version 4.0.0. ' + 'Use ".provider" attribute instead.', + category=DeprecationWarning, + ) return Delegate(self) @property @@ -265,7 +271,7 @@ cdef class Provider(object): :rtype: :py:class:`Delegate` """ - return self.delegate() + return Delegate(self) cpdef object _provide(self, tuple args, dict kwargs): """Providing strategy implementation. @@ -391,6 +397,11 @@ cdef class Delegate(Provider): """ return self.__str__() + @property + def provides(self): + """Return provider.""" + return self.__provides + cpdef object _provide(self, tuple args, dict kwargs): """Return provided instance. @@ -1139,18 +1150,25 @@ cdef class ConfigurationOption(Provider): segment() if is_provider(segment) else segment for segment in self.__name ) + @property + def root(self): + return self.__root_ref() + def get_name(self): root = self.__root_ref() return '.'.join((root.get_name(), self._get_self_name())) + def get_name_segments(self): + return self.__name + def as_int(self): - return Callable(int, self) + return TypedConfigurationOption(int, self) def as_float(self): - return Callable(float, self) + return TypedConfigurationOption(float, self) def as_(self, callback, *args, **kwargs): - return Callable(callback, self, *args, **kwargs) + return TypedConfigurationOption(callback, self, *args, **kwargs) def override(self, value): if isinstance(value, Provider): @@ -1262,6 +1280,13 @@ cdef class ConfigurationOption(Provider): self.override(value) +cdef class TypedConfigurationOption(Callable): + + @property + def option(self): + return self.args[0] + + cdef class Configuration(Object): """Configuration provider provides configuration options to the other providers. @@ -2458,13 +2483,13 @@ cdef class Container(Provider): def __init__(self, container_cls, container=None, **overriding_providers): """Initialize provider.""" - self.container_cls = container_cls - self.overriding_providers = overriding_providers + self.__container_cls = container_cls + self.__overriding_providers = overriding_providers if container is None: container = container_cls() container.override_providers(**overriding_providers) - self.container = container + self.__container = container super(Container, self).__init__() @@ -2475,9 +2500,9 @@ cdef class Container(Provider): return copied copied = self.__class__( - self.container_cls, - deepcopy(self.container, memo), - **deepcopy(self.overriding_providers, memo), + self.__container_cls, + deepcopy(self.__container, memo), + **deepcopy(self.__overriding_providers, memo), ) return copied @@ -2489,7 +2514,11 @@ cdef class Container(Provider): '\'{cls}\' object has no attribute ' '\'{attribute_name}\''.format(cls=self.__class__.__name__, attribute_name=name)) - return getattr(self.container, name) + return getattr(self.__container, name) + + @property + def container(self): + return self.__container def override(self, provider): """Override provider with another provider.""" @@ -2497,7 +2526,7 @@ cdef class Container(Provider): cpdef object _provide(self, tuple args, dict kwargs): """Return single instance.""" - return self.container + return self.__container cdef class Selector(Provider): @@ -2657,6 +2686,11 @@ cdef class ProvidedInstance(Provider): def __getitem__(self, item): return ItemGetter(self, item) + @property + def provides(self): + """Return provider.""" + return self.__provider + def call(self, *args, **kwargs): return MethodCaller(self, *args, **kwargs) @@ -2696,6 +2730,16 @@ cdef class AttributeGetter(Provider): def __getitem__(self, item): return ItemGetter(self, item) + @property + def provides(self): + """Return provider.""" + return self.__provider + + @property + def name(self): + """Return name of the attribute.""" + return self.__attribute + def call(self, *args, **kwargs): return MethodCaller(self, *args, **kwargs) @@ -2736,6 +2780,16 @@ cdef class ItemGetter(Provider): def __getitem__(self, item): return ItemGetter(self, item) + @property + def provides(self): + """Return provider.""" + return self.__provider + + @property + def name(self): + """Return name of the item.""" + return self.__item + def call(self, *args, **kwargs): return MethodCaller(self, *args, **kwargs) @@ -2787,6 +2841,37 @@ cdef class MethodCaller(Provider): def __getitem__(self, item): return ItemGetter(self, item) + @property + def provides(self): + """Return provider.""" + return self.__provider + + @property + def args(self): + """Return positional argument injections.""" + cdef int index + cdef PositionalInjection arg + cdef list args + + args = list() + for index in range(self.__args_len): + arg = self.__args[index] + args.append(arg.__value) + return tuple(args) + + @property + def kwargs(self): + """Return keyword argument injections.""" + cdef int index + cdef NamedInjection kwarg + cdef dict kwargs + + kwargs = dict() + for index in range(self.__kwargs_len): + kwarg = self.__kwargs[index] + kwargs[kwarg.__name] = kwarg.__value + return kwargs + def call(self, *args, **kwargs): return MethodCaller(self, *args, **kwargs) diff --git a/src/dependency_injector/types.py b/src/dependency_injector/types.py deleted file mode 100644 index a03e2353..00000000 --- a/src/dependency_injector/types.py +++ /dev/null @@ -1,17 +0,0 @@ -from typing import TypeVar, Generic, Any -import warnings - - -warnings.warn( - 'Types module is deprecated since version 3.44.0. Use "providers" module instead: ' - 'providers.Provider[SomeClass]', - category=DeprecationWarning, -) - - -Injection = Any -T = TypeVar('T') - - -class Provider(Generic[T]): - def __call__(self, *args: Injection, **kwargs: Injection) -> T: ... diff --git a/src/dependency_injector/wiring.py b/src/dependency_injector/wiring.py new file mode 100644 index 00000000..27e62cbb --- /dev/null +++ b/src/dependency_injector/wiring.py @@ -0,0 +1,301 @@ +"""Wiring module.""" + +import functools +import inspect +import pkgutil +import sys +from types import ModuleType +from typing import Optional, Iterable, Callable, Any, Dict, Generic, TypeVar, cast + +if sys.version_info < (3, 7): + from typing import GenericMeta +else: + class GenericMeta(type): + ... + + +from . import providers + + +__all__ = ( + 'wire', + 'unwire', + 'Provide', + 'Provider', +) + +T = TypeVar('T') +Container = Any + + +class ProvidersMap: + + def __init__(self, container): + self._container = container + self._map = self._create_providers_map( + current_providers=container.providers, + original_providers=container.declarative_parent.providers, + ) + + def resolve_provider(self, provider: providers.Provider) -> providers.Provider: + if isinstance(provider, providers.Delegate): + return self._resolve_delegate(provider) + elif isinstance(provider, ( + providers.ProvidedInstance, + providers.AttributeGetter, + providers.ItemGetter, + providers.MethodCaller, + )): + return self._resolve_provided_instance(provider) + elif isinstance(provider, providers.ConfigurationOption): + return self._resolve_config_option(provider) + elif isinstance(provider, providers.TypedConfigurationOption): + return self._resolve_config_option(provider.option, as_=provider.provides) + else: + return self._resolve_provider(provider) + + def _resolve_delegate(self, original: providers.Delegate) -> providers.Provider: + return self._resolve_provider(original.provides) + + def _resolve_provided_instance(self, original: providers.Provider) -> providers.Provider: + modifiers = [] + while isinstance(original, ( + providers.ProvidedInstance, + providers.AttributeGetter, + providers.ItemGetter, + providers.MethodCaller, + )): + modifiers.insert(0, original) + original = original.provides + + new = self._resolve_provider(original) + + for modifier in modifiers: + if isinstance(modifier, providers.ProvidedInstance): + new = new.provided + elif isinstance(modifier, providers.AttributeGetter): + new = getattr(new, modifier.name) + elif isinstance(modifier, providers.ItemGetter): + new = new[modifier.name] + elif isinstance(modifier, providers.MethodCaller): + new = new.call( + *modifier.args, + **modifier.kwargs, + ) + + return new + + def _resolve_config_option( + self, + original: providers.ConfigurationOption, + as_: Any = None, + ) -> providers.Provider: + original_root = original.root + new = self._resolve_provider(original_root) + new = cast(providers.Configuration, new) + + for segment in original.get_name_segments(): + if providers.is_provider(segment): + segment = self.resolve_provider(segment) + new = new[segment] + else: + new = getattr(new, segment) + + if as_: + new = new.as_(as_) + + return new + + def _resolve_provider(self, original: providers.Provider) -> providers.Provider: + try: + return self._map[original] + except KeyError: + raise Exception('Unable to resolve original provider') + + @classmethod + def _create_providers_map( + cls, + current_providers: Dict[str, providers.Provider], + original_providers: Dict[str, providers.Provider], + ) -> Dict[providers.Provider, providers.Provider]: + providers_map = {} + for provider_name, current_provider in current_providers.items(): + original_provider = original_providers[provider_name] + providers_map[original_provider] = current_provider + + if isinstance(current_provider, providers.Container) \ + and isinstance(original_provider, providers.Container): + subcontainer_map = cls._create_providers_map( + current_providers=current_provider.container.providers, + original_providers=original_provider.container.providers, + ) + providers_map.update(subcontainer_map) + + return providers_map + + +def wire( + container: Container, + *, + modules: Optional[Iterable[ModuleType]] = None, + packages: Optional[Iterable[ModuleType]] = None, +) -> None: + """Wire container providers with provided packages and modules.""" + if not _is_declarative_container_instance(container): + raise Exception('Can wire only an instance of the declarative container') + + if not modules: + modules = [] + + if packages: + for package in packages: + modules.extend(_fetch_modules(package)) + + providers_map = ProvidersMap(container) + + for module in modules: + for name, member in inspect.getmembers(module): + if inspect.isfunction(member): + _patch_fn(module, name, member, providers_map) + elif inspect.isclass(member): + for method_name, method in inspect.getmembers(member, inspect.isfunction): + _patch_fn(member, method_name, method, providers_map) + + +def unwire( + *, + modules: Optional[Iterable[ModuleType]] = None, + packages: Optional[Iterable[ModuleType]] = None, +) -> None: + """Wire provided packages and modules with previous wired providers.""" + if not modules: + modules = [] + + if packages: + for package in packages: + modules.extend(_fetch_modules(package)) + + for module in modules: + for name, member in inspect.getmembers(module): + if inspect.isfunction(member): + _unpatch_fn(module, name, member) + elif inspect.isclass(member): + for method_name, method in inspect.getmembers(member, inspect.isfunction): + _unpatch_fn(member, method_name, method) + + +def _patch_fn( + module: ModuleType, + name: str, + fn: Callable[..., Any], + providers_map: ProvidersMap, +) -> None: + injections = _resolve_injections(fn, providers_map) + if not injections: + return + setattr(module, name, _patch_with_injections(fn, injections)) + + +def _unpatch_fn( + module: ModuleType, + name: str, + fn: Callable[..., Any], +) -> None: + if not _is_patched(fn): + return + setattr(module, name, _get_original_from_patched(fn)) + + +def _resolve_injections(fn: Callable[..., Any], providers_map: ProvidersMap) -> Dict[str, Any]: # noqa + signature = inspect.signature(fn) + + injections = {} + for parameter_name, parameter in signature.parameters.items(): + if not isinstance(parameter.default, _Marker): + continue + marker = parameter.default + + provider = providers_map.resolve_provider(marker.provider) + if isinstance(marker, Provide): + injections[parameter_name] = provider + elif isinstance(marker, Provider): + injections[parameter_name] = provider.provider + + return injections + + +def _fetch_modules(package): + modules = [] + for loader, module_name, is_pkg in pkgutil.walk_packages( + path=package.__path__, + prefix=package.__name__ + '.', + ): + module = loader.find_module(module_name).load_module(module_name) + modules.append(module) + return modules + + +def _patch_with_injections(fn, injections): + if inspect.iscoroutinefunction(fn): + @functools.wraps(fn) + async def _patched(*args, **kwargs): + to_inject = {} + for injection, provider in injections.items(): + to_inject[injection] = provider() + + to_inject.update(kwargs) + + return await fn(*args, **to_inject) + else: + @functools.wraps(fn) + def _patched(*args, **kwargs): + to_inject = {} + for injection, provider in injections.items(): + to_inject[injection] = provider() + + to_inject.update(kwargs) + + return fn(*args, **to_inject) + + _patched.__wired__ = True + _patched.__original__ = fn + _patched.__injections__ = injections + + return _patched + + +def _is_patched(fn): + return getattr(fn, '__wired__', False) is True + + +def _get_original_from_patched(fn): + return getattr(fn, '__original__') + + +def _is_declarative_container_instance(instance: Any) -> bool: + return (not isinstance(instance, type) + and getattr(instance, '__IS_CONTAINER__', False) is True + and getattr(instance, 'declarative_parent', None) is not None) + + +class ClassGetItemMeta(GenericMeta): + def __getitem__(cls, item): + # Spike for Python 3.6 + return cls(item) + + +class _Marker(Generic[T], metaclass=ClassGetItemMeta): + + def __init__(self, provider: providers.Provider) -> None: + self.provider = provider + + def __class_getitem__(cls, item) -> T: + return cls(item) + + +class Provide(_Marker): + ... + + +class Provider(_Marker): + ... diff --git a/tests/unit/wiring/__init__.py b/tests/unit/wiring/__init__.py new file mode 100644 index 00000000..bf016713 --- /dev/null +++ b/tests/unit/wiring/__init__.py @@ -0,0 +1 @@ +"""Wiring tests.""" diff --git a/tests/unit/wiring/container.py b/tests/unit/wiring/container.py new file mode 100644 index 00000000..95681dbf --- /dev/null +++ b/tests/unit/wiring/container.py @@ -0,0 +1,17 @@ +from dependency_injector import containers, providers + +from .service import Service + + +class SubContainer(containers.DeclarativeContainer): + + int_object = providers.Object(1) + + +class Container(containers.DeclarativeContainer): + + config = providers.Configuration() + + service = providers.Factory(Service) + + sub = providers.Container(SubContainer) diff --git a/tests/unit/wiring/module.py b/tests/unit/wiring/module.py new file mode 100644 index 00000000..d29a0ec9 --- /dev/null +++ b/tests/unit/wiring/module.py @@ -0,0 +1,52 @@ +"""Test module for wiring.""" + +from decimal import Decimal +from typing import Callable + +from dependency_injector.wiring import Provide, Provider + +from .container import Container +from .service import Service + + +class TestClass: + + def __init__(self, service: Service = Provide[Container.service]): + self.service = service + + def method(self, service: Service = Provide[Container.service]): + return service + + +def test_function(service: Service = Provide[Container.service]): + return service + + +def test_function_provider(service_provider: Callable[..., Service] = Provider[Container.service]): + service = service_provider() + return service + + +def test_config_value( + some_value_int: int = Provide[Container.config.a.b.c.as_int()], + some_value_str: str = Provide[Container.config.a.b.c.as_(str)], + some_value_decimal: Decimal = Provide[Container.config.a.b.c.as_(Decimal)], +): + return some_value_int, some_value_str, some_value_decimal + + +def test_provide_provider(service_provider: Callable[..., Service] = Provider[Container.service.provider]): + service = service_provider() + return service + + +def test_provided_instance(some_value: int = Provide[Container.service.provided.foo['bar'].call()]): + return some_value + + +def test_subcontainer_provider(some_value: int = Provide[Container.sub.int_object]): + return some_value + + +def test_config_invariant(some_value: int = Provide[Container.config.option[Container.config.switch]]): + return some_value diff --git a/tests/unit/wiring/package/__init__.py b/tests/unit/wiring/package/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/unit/wiring/package/subpackage/__init__.py b/tests/unit/wiring/package/subpackage/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/unit/wiring/package/subpackage/submodule.py b/tests/unit/wiring/package/subpackage/submodule.py new file mode 100644 index 00000000..8f8e0d7f --- /dev/null +++ b/tests/unit/wiring/package/subpackage/submodule.py @@ -0,0 +1,8 @@ +from dependency_injector.wiring import Provide + +from ...container import Container +from ...service import Service + + +def test_function(service: Service = Provide[Container.service]): + return service diff --git a/tests/unit/wiring/service.py b/tests/unit/wiring/service.py new file mode 100644 index 00000000..4151b94f --- /dev/null +++ b/tests/unit/wiring/service.py @@ -0,0 +1,2 @@ +class Service: + service_attr: int diff --git a/tests/unit/wiring/test_wiring_py36.py b/tests/unit/wiring/test_wiring_py36.py new file mode 100644 index 00000000..862a8386 --- /dev/null +++ b/tests/unit/wiring/test_wiring_py36.py @@ -0,0 +1,134 @@ +from decimal import Decimal +import unittest + +from dependency_injector.wiring import wire, Provide + +from . import module, package +from .service import Service +from .container import Container + + +class WiringTest(unittest.TestCase): + + container: Container + + def setUp(self) -> None: + self.container = Container(config={'a': {'b': {'c': 10}}}) + self.container.wire( + modules=[module], + packages=[package], + ) + self.addCleanup(self.container.unwire) + + def test_package_lookup(self): + from .package.subpackage.submodule import test_function + service = test_function() + self.assertIsInstance(service, Service) + + def test_class_wiring(self): + test_class_object = module.TestClass() + self.assertIsInstance(test_class_object.service, Service) + + def test_class_wiring_context_arg(self): + test_service = self.container.service() + + test_class_object = module.TestClass(service=test_service) + self.assertIs(test_class_object.service, test_service) + + def test_class_method_wiring(self): + test_class_object = module.TestClass() + service = test_class_object.method() + self.assertIsInstance(service, Service) + + def test_function_wiring(self): + service = module.test_function() + self.assertIsInstance(service, Service) + + def test_function_wiring_context_arg(self): + test_service = self.container.service() + + service = module.test_function(service=test_service) + self.assertIs(service, test_service) + + def test_function_wiring_provider(self): + service = module.test_function_provider() + self.assertIsInstance(service, Service) + + def test_function_wiring_provider_context_arg(self): + test_service = self.container.service() + + service = module.test_function_provider(service_provider=lambda: test_service) + self.assertIs(service, test_service) + + def test_configuration_option(self): + int_value, str_value, decimal_value = module.test_config_value() + self.assertEqual(int_value, 10) + self.assertEqual(str_value, '10') + self.assertEqual(decimal_value, Decimal(10)) + + def test_provide_provider(self): + service = module.test_provide_provider() + self.assertIsInstance(service, Service) + + def test_provided_instance(self): + class TestService: + foo = { + 'bar': lambda: 10, + } + + with self.container.service.override(TestService()): + some_value = module.test_provided_instance() + self.assertEqual(some_value, 10) + + def test_subcontainer(self): + some_value = module.test_subcontainer_provider() + self.assertEqual(some_value, 1) + + def test_config_invariant(self): + config = { + 'option': { + 'a': 1, + 'b': 2, + }, + 'switch': 'a', + } + self.container.config.from_dict(config) + + with self.container.config.switch.override('a'): + value_a = module.test_config_invariant() + self.assertEqual(value_a, 1) + + with self.container.config.switch.override('b'): + value_b = module.test_config_invariant() + self.assertEqual(value_b, 2) + + def test_wire_with_class_error(self): + with self.assertRaises(Exception): + wire( + container=Container, + modules=[module], + ) + + def test_unwire_function(self): + self.container.unwire() + self.assertIsInstance(module.test_function(), Provide) + + def test_unwire_class(self): + self.container.unwire() + test_class_object = module.TestClass() + self.assertIsInstance(test_class_object.service, Provide) + + def test_unwire_class_method(self): + self.container.unwire() + test_class_object = module.TestClass() + self.assertIsInstance(test_class_object.method(), Provide) + + def test_unwire_package_function(self): + self.container.unwire() + from .package.subpackage.submodule import test_function + self.assertIsInstance(test_function(), Provide) + + def test_unwire_package_function_by_reference(self): + from .package.subpackage import submodule + self.container.unwire() + self.assertIsInstance(submodule.test_function(), Provide)