mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2025-07-04 20:33:13 +03:00
Refactor container interface
This commit is contained in:
parent
2ae3e32429
commit
b02c70e764
|
@ -817,19 +817,19 @@ static const char *__pyx_f[] = {
|
|||
};
|
||||
|
||||
/*--- Type declarations ---*/
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse_providers;
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers;
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse;
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse;
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_2_override;
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_3_copy;
|
||||
|
||||
/* "dependency_injector/containers.pyx":137
|
||||
* }
|
||||
*
|
||||
* def traverse_providers(self, types=None): # <<<<<<<<<<<<<<
|
||||
* def traverse(self, types=None): # <<<<<<<<<<<<<<
|
||||
* """Return providers traversal generator."""
|
||||
* yield from providers.traverse(*self.providers.values(), types=types)
|
||||
*/
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse_providers {
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse {
|
||||
PyObject_HEAD
|
||||
PyObject *__pyx_v_self;
|
||||
PyObject *__pyx_v_types;
|
||||
|
@ -839,11 +839,11 @@ struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse
|
|||
/* "dependency_injector/containers.pyx":371
|
||||
* }
|
||||
*
|
||||
* def traverse_providers(cls, types=None): # <<<<<<<<<<<<<<
|
||||
* def traverse(cls, types=None): # <<<<<<<<<<<<<<
|
||||
* """Return providers traversal generator."""
|
||||
* yield from providers.traverse(*cls.providers.values(), types=types)
|
||||
*/
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers {
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse {
|
||||
PyObject_HEAD
|
||||
PyObject *__pyx_v_cls;
|
||||
PyObject *__pyx_v_types;
|
||||
|
@ -1531,8 +1531,8 @@ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);
|
|||
|
||||
|
||||
/* Module declarations from 'dependency_injector.containers' */
|
||||
static PyTypeObject *__pyx_ptype_19dependency_injector_10containers___pyx_scope_struct__traverse_providers = 0;
|
||||
static PyTypeObject *__pyx_ptype_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers = 0;
|
||||
static PyTypeObject *__pyx_ptype_19dependency_injector_10containers___pyx_scope_struct__traverse = 0;
|
||||
static PyTypeObject *__pyx_ptype_19dependency_injector_10containers___pyx_scope_struct_1_traverse = 0;
|
||||
static PyTypeObject *__pyx_ptype_19dependency_injector_10containers___pyx_scope_struct_2_override = 0;
|
||||
static PyTypeObject *__pyx_ptype_19dependency_injector_10containers___pyx_scope_struct_3_copy = 0;
|
||||
static int __pyx_f_19dependency_injector_10containers_is_container(PyObject *, int __pyx_skip_dispatch); /*proto*/
|
||||
|
@ -1665,7 +1665,6 @@ static const char __pyx_k_declarative_parent[] = "declarative_parent";
|
|||
static const char __pyx_k_get_providers_memo[] = "_get_providers_memo";
|
||||
static const char __pyx_k_override_providers[] = "override_providers";
|
||||
static const char __pyx_k_shutdown_resources[] = "shutdown_resources";
|
||||
static const char __pyx_k_traverse_providers[] = "traverse_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";
|
||||
|
@ -1681,6 +1680,7 @@ static const char __pyx_k_copy_locals__decorator[] = "copy.<locals>._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_DynamicContainer_traverse[] = "DynamicContainer.traverse";
|
||||
static const char __pyx_k_DeclarativeContainer___new[] = "DeclarativeContainer.__new__";
|
||||
static const char __pyx_k_DynamicContainer___delattr[] = "DynamicContainer.__delattr__";
|
||||
static const char __pyx_k_DynamicContainer___setattr[] = "DynamicContainer.__setattr__";
|
||||
|
@ -1702,7 +1702,7 @@ static const char __pyx_k_DynamicContainer_reset_override[] = "DynamicContainer.
|
|||
static const char __pyx_k_copy_locals__get_providers_memo[] = "copy.<locals>._get_providers_memo";
|
||||
static const char __pyx_k_Container_0_could_not_be_overrid[] = "Container {0} could not be overridden with itself";
|
||||
static const char __pyx_k_DeclarativeContainerMetaClass_de[] = "DeclarativeContainerMetaClass.dependencies";
|
||||
static const char __pyx_k_DeclarativeContainerMetaClass_tr[] = "DeclarativeContainerMetaClass.traverse_providers";
|
||||
static const char __pyx_k_DeclarativeContainerMetaClass_tr[] = "DeclarativeContainerMetaClass.traverse";
|
||||
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.";
|
||||
|
@ -1710,7 +1710,6 @@ static const char __pyx_k_DynamicContainer_apply_container[] = "DynamicContainer
|
|||
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_DynamicContainer_shutdown_resour[] = "DynamicContainer.shutdown_resources";
|
||||
static const char __pyx_k_DynamicContainer_traverse_provid[] = "DynamicContainer.traverse_providers";
|
||||
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_apply_container_providers_overri[] = "apply_container_providers_overridings";
|
||||
|
@ -1753,7 +1752,7 @@ 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_shutdown_resour;
|
||||
static PyObject *__pyx_n_s_DynamicContainer_traverse_provid;
|
||||
static PyObject *__pyx_n_s_DynamicContainer_traverse;
|
||||
static PyObject *__pyx_n_s_DynamicContainer_unwire;
|
||||
static PyObject *__pyx_n_s_DynamicContainer_wire;
|
||||
static PyObject *__pyx_kp_s_Dynamic_inversion_of_control_con;
|
||||
|
@ -1871,7 +1870,6 @@ static PyObject *__pyx_n_s_sys;
|
|||
static PyObject *__pyx_n_s_test;
|
||||
static PyObject *__pyx_n_s_throw;
|
||||
static PyObject *__pyx_n_s_traverse;
|
||||
static PyObject *__pyx_n_s_traverse_providers;
|
||||
static PyObject *__pyx_n_s_types;
|
||||
static PyObject *__pyx_n_s_unwire;
|
||||
static PyObject *__pyx_n_s_update;
|
||||
|
@ -1889,7 +1887,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_
|
|||
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 */
|
||||
static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_6__delattr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
|
||||
static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_8dependencies(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
|
||||
static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_10traverse_providers(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_types); /* proto */
|
||||
static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_10traverse(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_types); /* proto */
|
||||
static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_13set_providers(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_providers); /* proto */
|
||||
static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_15override(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_overriding); /* proto */
|
||||
static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_17override_providers(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_overriding_providers); /* proto */
|
||||
|
@ -1904,7 +1902,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai
|
|||
static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContainerMetaClass_2__setattr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_name, PyObject *__pyx_v_value); /* proto */
|
||||
static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContainerMetaClass_4__delattr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_name); /* proto */
|
||||
static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContainerMetaClass_6dependencies(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls); /* proto */
|
||||
static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContainerMetaClass_8traverse_providers(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_types); /* proto */
|
||||
static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContainerMetaClass_8traverse(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_types); /* proto */
|
||||
static PyObject *__pyx_pf_19dependency_injector_10containers_20DeclarativeContainer___new__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_overriding_providers); /* proto */
|
||||
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 */
|
||||
|
@ -1918,8 +1916,8 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_6copy(CYTHON_UNUSED
|
|||
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_pf_19dependency_injector_10containers_12_isawaitable(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_instance); /* proto */
|
||||
static PyObject *__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct__traverse_providers(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
|
||||
static PyObject *__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
|
||||
static PyObject *__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct__traverse(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
|
||||
static PyObject *__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct_1_traverse(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
|
||||
static PyObject *__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct_2_override(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
|
||||
static PyObject *__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct_3_copy(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
|
||||
static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_update = {0, &__pyx_n_s_update, 0, 0, 0};
|
||||
|
@ -3573,16 +3571,16 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_16DynamicContainer_
|
|||
/* "dependency_injector/containers.pyx":137
|
||||
* }
|
||||
*
|
||||
* def traverse_providers(self, types=None): # <<<<<<<<<<<<<<
|
||||
* def traverse(self, types=None): # <<<<<<<<<<<<<<
|
||||
* """Return providers traversal generator."""
|
||||
* yield from providers.traverse(*self.providers.values(), types=types)
|
||||
*/
|
||||
|
||||
/* Python wrapper */
|
||||
static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_11traverse_providers(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
|
||||
static char __pyx_doc_19dependency_injector_10containers_16DynamicContainer_10traverse_providers[] = "Return providers traversal generator.";
|
||||
static PyMethodDef __pyx_mdef_19dependency_injector_10containers_16DynamicContainer_11traverse_providers = {"traverse_providers", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_10containers_16DynamicContainer_11traverse_providers, METH_VARARGS|METH_KEYWORDS, __pyx_doc_19dependency_injector_10containers_16DynamicContainer_10traverse_providers};
|
||||
static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_11traverse_providers(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
|
||||
static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_11traverse(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
|
||||
static char __pyx_doc_19dependency_injector_10containers_16DynamicContainer_10traverse[] = "Return providers traversal generator.";
|
||||
static PyMethodDef __pyx_mdef_19dependency_injector_10containers_16DynamicContainer_11traverse = {"traverse", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_10containers_16DynamicContainer_11traverse, METH_VARARGS|METH_KEYWORDS, __pyx_doc_19dependency_injector_10containers_16DynamicContainer_10traverse};
|
||||
static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_11traverse(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
|
||||
PyObject *__pyx_v_self = 0;
|
||||
PyObject *__pyx_v_types = 0;
|
||||
int __pyx_lineno = 0;
|
||||
|
@ -3590,7 +3588,7 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_
|
|||
int __pyx_clineno = 0;
|
||||
PyObject *__pyx_r = 0;
|
||||
__Pyx_RefNannyDeclarations
|
||||
__Pyx_RefNannySetupContext("traverse_providers (wrapper)", 0);
|
||||
__Pyx_RefNannySetupContext("traverse (wrapper)", 0);
|
||||
{
|
||||
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self_2,&__pyx_n_s_types,0};
|
||||
PyObject* values[2] = {0,0};
|
||||
|
@ -3619,7 +3617,7 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_
|
|||
}
|
||||
}
|
||||
if (unlikely(kw_args > 0)) {
|
||||
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "traverse_providers") < 0)) __PYX_ERR(0, 137, __pyx_L3_error)
|
||||
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "traverse") < 0)) __PYX_ERR(0, 137, __pyx_L3_error)
|
||||
}
|
||||
} else {
|
||||
switch (PyTuple_GET_SIZE(__pyx_args)) {
|
||||
|
@ -3635,30 +3633,30 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_16DynamicContainer_
|
|||
}
|
||||
goto __pyx_L4_argument_unpacking_done;
|
||||
__pyx_L5_argtuple_error:;
|
||||
__Pyx_RaiseArgtupleInvalid("traverse_providers", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 137, __pyx_L3_error)
|
||||
__Pyx_RaiseArgtupleInvalid("traverse", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 137, __pyx_L3_error)
|
||||
__pyx_L3_error:;
|
||||
__Pyx_AddTraceback("dependency_injector.containers.DynamicContainer.traverse_providers", __pyx_clineno, __pyx_lineno, __pyx_filename);
|
||||
__Pyx_AddTraceback("dependency_injector.containers.DynamicContainer.traverse", __pyx_clineno, __pyx_lineno, __pyx_filename);
|
||||
__Pyx_RefNannyFinishContext();
|
||||
return NULL;
|
||||
__pyx_L4_argument_unpacking_done:;
|
||||
__pyx_r = __pyx_pf_19dependency_injector_10containers_16DynamicContainer_10traverse_providers(__pyx_self, __pyx_v_self, __pyx_v_types);
|
||||
__pyx_r = __pyx_pf_19dependency_injector_10containers_16DynamicContainer_10traverse(__pyx_self, __pyx_v_self, __pyx_v_types);
|
||||
|
||||
/* function exit code */
|
||||
__Pyx_RefNannyFinishContext();
|
||||
return __pyx_r;
|
||||
}
|
||||
|
||||
static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_10traverse_providers(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_types) {
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse_providers *__pyx_cur_scope;
|
||||
static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_10traverse(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_types) {
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse *__pyx_cur_scope;
|
||||
PyObject *__pyx_r = NULL;
|
||||
__Pyx_RefNannyDeclarations
|
||||
int __pyx_lineno = 0;
|
||||
const char *__pyx_filename = NULL;
|
||||
int __pyx_clineno = 0;
|
||||
__Pyx_RefNannySetupContext("traverse_providers", 0);
|
||||
__pyx_cur_scope = (struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse_providers *)__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct__traverse_providers(__pyx_ptype_19dependency_injector_10containers___pyx_scope_struct__traverse_providers, __pyx_empty_tuple, NULL);
|
||||
__Pyx_RefNannySetupContext("traverse", 0);
|
||||
__pyx_cur_scope = (struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse *)__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct__traverse(__pyx_ptype_19dependency_injector_10containers___pyx_scope_struct__traverse, __pyx_empty_tuple, NULL);
|
||||
if (unlikely(!__pyx_cur_scope)) {
|
||||
__pyx_cur_scope = ((struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse_providers *)Py_None);
|
||||
__pyx_cur_scope = ((struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse *)Py_None);
|
||||
__Pyx_INCREF(Py_None);
|
||||
__PYX_ERR(0, 137, __pyx_L1_error)
|
||||
} else {
|
||||
|
@ -3671,7 +3669,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_
|
|||
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_types);
|
||||
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_types);
|
||||
{
|
||||
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_19dependency_injector_10containers_16DynamicContainer_12generator, __pyx_codeobj__2, (PyObject *) __pyx_cur_scope, __pyx_n_s_traverse_providers, __pyx_n_s_DynamicContainer_traverse_provid, __pyx_n_s_dependency_injector_containers); if (unlikely(!gen)) __PYX_ERR(0, 137, __pyx_L1_error)
|
||||
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_19dependency_injector_10containers_16DynamicContainer_12generator, __pyx_codeobj__2, (PyObject *) __pyx_cur_scope, __pyx_n_s_traverse, __pyx_n_s_DynamicContainer_traverse, __pyx_n_s_dependency_injector_containers); if (unlikely(!gen)) __PYX_ERR(0, 137, __pyx_L1_error)
|
||||
__Pyx_DECREF(__pyx_cur_scope);
|
||||
__Pyx_RefNannyFinishContext();
|
||||
return (PyObject *) gen;
|
||||
|
@ -3679,7 +3677,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_
|
|||
|
||||
/* function exit code */
|
||||
__pyx_L1_error:;
|
||||
__Pyx_AddTraceback("dependency_injector.containers.DynamicContainer.traverse_providers", __pyx_clineno, __pyx_lineno, __pyx_filename);
|
||||
__Pyx_AddTraceback("dependency_injector.containers.DynamicContainer.traverse", __pyx_clineno, __pyx_lineno, __pyx_filename);
|
||||
__pyx_r = NULL;
|
||||
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
|
||||
__Pyx_XGIVEREF(__pyx_r);
|
||||
|
@ -3689,7 +3687,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_16DynamicContainer_
|
|||
|
||||
static PyObject *__pyx_gb_19dependency_injector_10containers_16DynamicContainer_12generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
|
||||
{
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse_providers *__pyx_cur_scope = ((struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse_providers *)__pyx_generator->closure);
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse *__pyx_cur_scope = ((struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse *)__pyx_generator->closure);
|
||||
PyObject *__pyx_r = NULL;
|
||||
PyObject *__pyx_t_1 = NULL;
|
||||
PyObject *__pyx_t_2 = NULL;
|
||||
|
@ -3699,7 +3697,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_16DynamicContainer_
|
|||
const char *__pyx_filename = NULL;
|
||||
int __pyx_clineno = 0;
|
||||
__Pyx_RefNannyDeclarations
|
||||
__Pyx_RefNannySetupContext("traverse_providers", 0);
|
||||
__Pyx_RefNannySetupContext("traverse", 0);
|
||||
switch (__pyx_generator->resume_label) {
|
||||
case 0: goto __pyx_L3_first_run;
|
||||
case 1: goto __pyx_L4_resume_from_yield_from;
|
||||
|
@ -3711,7 +3709,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_16DynamicContainer_
|
|||
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 137, __pyx_L1_error)
|
||||
|
||||
/* "dependency_injector/containers.pyx":139
|
||||
* def traverse_providers(self, types=None):
|
||||
* def traverse(self, types=None):
|
||||
* """Return providers traversal generator."""
|
||||
* yield from providers.traverse(*self.providers.values(), types=types) # <<<<<<<<<<<<<<
|
||||
*
|
||||
|
@ -3777,7 +3775,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_16DynamicContainer_
|
|||
/* "dependency_injector/containers.pyx":137
|
||||
* }
|
||||
*
|
||||
* def traverse_providers(self, types=None): # <<<<<<<<<<<<<<
|
||||
* def traverse(self, types=None): # <<<<<<<<<<<<<<
|
||||
* """Return providers traversal generator."""
|
||||
* yield from providers.traverse(*self.providers.values(), types=types)
|
||||
*/
|
||||
|
@ -3790,7 +3788,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_16DynamicContainer_
|
|||
__Pyx_XDECREF(__pyx_t_2);
|
||||
__Pyx_XDECREF(__pyx_t_3);
|
||||
__Pyx_XDECREF(__pyx_t_4);
|
||||
__Pyx_AddTraceback("traverse_providers", __pyx_clineno, __pyx_lineno, __pyx_filename);
|
||||
__Pyx_AddTraceback("traverse", __pyx_clineno, __pyx_lineno, __pyx_filename);
|
||||
__pyx_L0:;
|
||||
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
|
||||
#if !CYTHON_USE_EXC_INFO_STACK
|
||||
|
@ -8288,16 +8286,16 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai
|
|||
/* "dependency_injector/containers.pyx":371
|
||||
* }
|
||||
*
|
||||
* def traverse_providers(cls, types=None): # <<<<<<<<<<<<<<
|
||||
* def traverse(cls, types=None): # <<<<<<<<<<<<<<
|
||||
* """Return providers traversal generator."""
|
||||
* yield from providers.traverse(*cls.providers.values(), types=types)
|
||||
*/
|
||||
|
||||
/* Python wrapper */
|
||||
static PyObject *__pyx_pw_19dependency_injector_10containers_29DeclarativeContainerMetaClass_9traverse_providers(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
|
||||
static char __pyx_doc_19dependency_injector_10containers_29DeclarativeContainerMetaClass_8traverse_providers[] = "Return providers traversal generator.";
|
||||
static PyMethodDef __pyx_mdef_19dependency_injector_10containers_29DeclarativeContainerMetaClass_9traverse_providers = {"traverse_providers", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_10containers_29DeclarativeContainerMetaClass_9traverse_providers, METH_VARARGS|METH_KEYWORDS, __pyx_doc_19dependency_injector_10containers_29DeclarativeContainerMetaClass_8traverse_providers};
|
||||
static PyObject *__pyx_pw_19dependency_injector_10containers_29DeclarativeContainerMetaClass_9traverse_providers(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
|
||||
static PyObject *__pyx_pw_19dependency_injector_10containers_29DeclarativeContainerMetaClass_9traverse(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
|
||||
static char __pyx_doc_19dependency_injector_10containers_29DeclarativeContainerMetaClass_8traverse[] = "Return providers traversal generator.";
|
||||
static PyMethodDef __pyx_mdef_19dependency_injector_10containers_29DeclarativeContainerMetaClass_9traverse = {"traverse", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_19dependency_injector_10containers_29DeclarativeContainerMetaClass_9traverse, METH_VARARGS|METH_KEYWORDS, __pyx_doc_19dependency_injector_10containers_29DeclarativeContainerMetaClass_8traverse};
|
||||
static PyObject *__pyx_pw_19dependency_injector_10containers_29DeclarativeContainerMetaClass_9traverse(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
|
||||
PyObject *__pyx_v_cls = 0;
|
||||
PyObject *__pyx_v_types = 0;
|
||||
int __pyx_lineno = 0;
|
||||
|
@ -8305,7 +8303,7 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_29DeclarativeContai
|
|||
int __pyx_clineno = 0;
|
||||
PyObject *__pyx_r = 0;
|
||||
__Pyx_RefNannyDeclarations
|
||||
__Pyx_RefNannySetupContext("traverse_providers (wrapper)", 0);
|
||||
__Pyx_RefNannySetupContext("traverse (wrapper)", 0);
|
||||
{
|
||||
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cls,&__pyx_n_s_types,0};
|
||||
PyObject* values[2] = {0,0};
|
||||
|
@ -8334,7 +8332,7 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_29DeclarativeContai
|
|||
}
|
||||
}
|
||||
if (unlikely(kw_args > 0)) {
|
||||
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "traverse_providers") < 0)) __PYX_ERR(0, 371, __pyx_L3_error)
|
||||
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "traverse") < 0)) __PYX_ERR(0, 371, __pyx_L3_error)
|
||||
}
|
||||
} else {
|
||||
switch (PyTuple_GET_SIZE(__pyx_args)) {
|
||||
|
@ -8350,30 +8348,30 @@ static PyObject *__pyx_pw_19dependency_injector_10containers_29DeclarativeContai
|
|||
}
|
||||
goto __pyx_L4_argument_unpacking_done;
|
||||
__pyx_L5_argtuple_error:;
|
||||
__Pyx_RaiseArgtupleInvalid("traverse_providers", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 371, __pyx_L3_error)
|
||||
__Pyx_RaiseArgtupleInvalid("traverse", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 371, __pyx_L3_error)
|
||||
__pyx_L3_error:;
|
||||
__Pyx_AddTraceback("dependency_injector.containers.DeclarativeContainerMetaClass.traverse_providers", __pyx_clineno, __pyx_lineno, __pyx_filename);
|
||||
__Pyx_AddTraceback("dependency_injector.containers.DeclarativeContainerMetaClass.traverse", __pyx_clineno, __pyx_lineno, __pyx_filename);
|
||||
__Pyx_RefNannyFinishContext();
|
||||
return NULL;
|
||||
__pyx_L4_argument_unpacking_done:;
|
||||
__pyx_r = __pyx_pf_19dependency_injector_10containers_29DeclarativeContainerMetaClass_8traverse_providers(__pyx_self, __pyx_v_cls, __pyx_v_types);
|
||||
__pyx_r = __pyx_pf_19dependency_injector_10containers_29DeclarativeContainerMetaClass_8traverse(__pyx_self, __pyx_v_cls, __pyx_v_types);
|
||||
|
||||
/* function exit code */
|
||||
__Pyx_RefNannyFinishContext();
|
||||
return __pyx_r;
|
||||
}
|
||||
|
||||
static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContainerMetaClass_8traverse_providers(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_types) {
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers *__pyx_cur_scope;
|
||||
static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContainerMetaClass_8traverse(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_types) {
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse *__pyx_cur_scope;
|
||||
PyObject *__pyx_r = NULL;
|
||||
__Pyx_RefNannyDeclarations
|
||||
int __pyx_lineno = 0;
|
||||
const char *__pyx_filename = NULL;
|
||||
int __pyx_clineno = 0;
|
||||
__Pyx_RefNannySetupContext("traverse_providers", 0);
|
||||
__pyx_cur_scope = (struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers *)__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers(__pyx_ptype_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers, __pyx_empty_tuple, NULL);
|
||||
__Pyx_RefNannySetupContext("traverse", 0);
|
||||
__pyx_cur_scope = (struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse *)__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct_1_traverse(__pyx_ptype_19dependency_injector_10containers___pyx_scope_struct_1_traverse, __pyx_empty_tuple, NULL);
|
||||
if (unlikely(!__pyx_cur_scope)) {
|
||||
__pyx_cur_scope = ((struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers *)Py_None);
|
||||
__pyx_cur_scope = ((struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse *)Py_None);
|
||||
__Pyx_INCREF(Py_None);
|
||||
__PYX_ERR(0, 371, __pyx_L1_error)
|
||||
} else {
|
||||
|
@ -8386,7 +8384,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai
|
|||
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_types);
|
||||
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_types);
|
||||
{
|
||||
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_19dependency_injector_10containers_29DeclarativeContainerMetaClass_10generator1, __pyx_codeobj__4, (PyObject *) __pyx_cur_scope, __pyx_n_s_traverse_providers, __pyx_n_s_DeclarativeContainerMetaClass_tr, __pyx_n_s_dependency_injector_containers); if (unlikely(!gen)) __PYX_ERR(0, 371, __pyx_L1_error)
|
||||
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_19dependency_injector_10containers_29DeclarativeContainerMetaClass_10generator1, __pyx_codeobj__4, (PyObject *) __pyx_cur_scope, __pyx_n_s_traverse, __pyx_n_s_DeclarativeContainerMetaClass_tr, __pyx_n_s_dependency_injector_containers); if (unlikely(!gen)) __PYX_ERR(0, 371, __pyx_L1_error)
|
||||
__Pyx_DECREF(__pyx_cur_scope);
|
||||
__Pyx_RefNannyFinishContext();
|
||||
return (PyObject *) gen;
|
||||
|
@ -8394,7 +8392,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai
|
|||
|
||||
/* function exit code */
|
||||
__pyx_L1_error:;
|
||||
__Pyx_AddTraceback("dependency_injector.containers.DeclarativeContainerMetaClass.traverse_providers", __pyx_clineno, __pyx_lineno, __pyx_filename);
|
||||
__Pyx_AddTraceback("dependency_injector.containers.DeclarativeContainerMetaClass.traverse", __pyx_clineno, __pyx_lineno, __pyx_filename);
|
||||
__pyx_r = NULL;
|
||||
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
|
||||
__Pyx_XGIVEREF(__pyx_r);
|
||||
|
@ -8404,7 +8402,7 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_29DeclarativeContai
|
|||
|
||||
static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContainerMetaClass_10generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
|
||||
{
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers *__pyx_cur_scope = ((struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers *)__pyx_generator->closure);
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse *__pyx_cur_scope = ((struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse *)__pyx_generator->closure);
|
||||
PyObject *__pyx_r = NULL;
|
||||
PyObject *__pyx_t_1 = NULL;
|
||||
PyObject *__pyx_t_2 = NULL;
|
||||
|
@ -8414,7 +8412,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai
|
|||
const char *__pyx_filename = NULL;
|
||||
int __pyx_clineno = 0;
|
||||
__Pyx_RefNannyDeclarations
|
||||
__Pyx_RefNannySetupContext("traverse_providers", 0);
|
||||
__Pyx_RefNannySetupContext("traverse", 0);
|
||||
switch (__pyx_generator->resume_label) {
|
||||
case 0: goto __pyx_L3_first_run;
|
||||
case 1: goto __pyx_L4_resume_from_yield_from;
|
||||
|
@ -8426,7 +8424,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai
|
|||
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 371, __pyx_L1_error)
|
||||
|
||||
/* "dependency_injector/containers.pyx":373
|
||||
* def traverse_providers(cls, types=None):
|
||||
* def traverse(cls, types=None):
|
||||
* """Return providers traversal generator."""
|
||||
* yield from providers.traverse(*cls.providers.values(), types=types) # <<<<<<<<<<<<<<
|
||||
*
|
||||
|
@ -8492,7 +8490,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai
|
|||
/* "dependency_injector/containers.pyx":371
|
||||
* }
|
||||
*
|
||||
* def traverse_providers(cls, types=None): # <<<<<<<<<<<<<<
|
||||
* def traverse(cls, types=None): # <<<<<<<<<<<<<<
|
||||
* """Return providers traversal generator."""
|
||||
* yield from providers.traverse(*cls.providers.values(), types=types)
|
||||
*/
|
||||
|
@ -8505,7 +8503,7 @@ static PyObject *__pyx_gb_19dependency_injector_10containers_29DeclarativeContai
|
|||
__Pyx_XDECREF(__pyx_t_2);
|
||||
__Pyx_XDECREF(__pyx_t_3);
|
||||
__Pyx_XDECREF(__pyx_t_4);
|
||||
__Pyx_AddTraceback("traverse_providers", __pyx_clineno, __pyx_lineno, __pyx_filename);
|
||||
__Pyx_AddTraceback("traverse", __pyx_clineno, __pyx_lineno, __pyx_filename);
|
||||
__pyx_L0:;
|
||||
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
|
||||
#if !CYTHON_USE_EXC_INFO_STACK
|
||||
|
@ -11577,14 +11575,14 @@ static PyObject *__pyx_pf_19dependency_injector_10containers_12_isawaitable(CYTH
|
|||
return __pyx_r;
|
||||
}
|
||||
|
||||
static struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse_providers *__pyx_freelist_19dependency_injector_10containers___pyx_scope_struct__traverse_providers[8];
|
||||
static int __pyx_freecount_19dependency_injector_10containers___pyx_scope_struct__traverse_providers = 0;
|
||||
static struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse *__pyx_freelist_19dependency_injector_10containers___pyx_scope_struct__traverse[8];
|
||||
static int __pyx_freecount_19dependency_injector_10containers___pyx_scope_struct__traverse = 0;
|
||||
|
||||
static PyObject *__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct__traverse_providers(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
|
||||
static PyObject *__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct__traverse(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
|
||||
PyObject *o;
|
||||
if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_19dependency_injector_10containers___pyx_scope_struct__traverse_providers > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse_providers)))) {
|
||||
o = (PyObject*)__pyx_freelist_19dependency_injector_10containers___pyx_scope_struct__traverse_providers[--__pyx_freecount_19dependency_injector_10containers___pyx_scope_struct__traverse_providers];
|
||||
memset(o, 0, sizeof(struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse_providers));
|
||||
if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_19dependency_injector_10containers___pyx_scope_struct__traverse > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse)))) {
|
||||
o = (PyObject*)__pyx_freelist_19dependency_injector_10containers___pyx_scope_struct__traverse[--__pyx_freecount_19dependency_injector_10containers___pyx_scope_struct__traverse];
|
||||
memset(o, 0, sizeof(struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse));
|
||||
(void) PyObject_INIT(o, t);
|
||||
PyObject_GC_Track(o);
|
||||
} else {
|
||||
|
@ -11594,21 +11592,21 @@ static PyObject *__pyx_tp_new_19dependency_injector_10containers___pyx_scope_str
|
|||
return o;
|
||||
}
|
||||
|
||||
static void __pyx_tp_dealloc_19dependency_injector_10containers___pyx_scope_struct__traverse_providers(PyObject *o) {
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse_providers *p = (struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse_providers *)o;
|
||||
static void __pyx_tp_dealloc_19dependency_injector_10containers___pyx_scope_struct__traverse(PyObject *o) {
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse *p = (struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse *)o;
|
||||
PyObject_GC_UnTrack(o);
|
||||
Py_CLEAR(p->__pyx_v_self);
|
||||
Py_CLEAR(p->__pyx_v_types);
|
||||
if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_19dependency_injector_10containers___pyx_scope_struct__traverse_providers < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse_providers)))) {
|
||||
__pyx_freelist_19dependency_injector_10containers___pyx_scope_struct__traverse_providers[__pyx_freecount_19dependency_injector_10containers___pyx_scope_struct__traverse_providers++] = ((struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse_providers *)o);
|
||||
if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_19dependency_injector_10containers___pyx_scope_struct__traverse < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse)))) {
|
||||
__pyx_freelist_19dependency_injector_10containers___pyx_scope_struct__traverse[__pyx_freecount_19dependency_injector_10containers___pyx_scope_struct__traverse++] = ((struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse *)o);
|
||||
} else {
|
||||
(*Py_TYPE(o)->tp_free)(o);
|
||||
}
|
||||
}
|
||||
|
||||
static int __pyx_tp_traverse_19dependency_injector_10containers___pyx_scope_struct__traverse_providers(PyObject *o, visitproc v, void *a) {
|
||||
static int __pyx_tp_traverse_19dependency_injector_10containers___pyx_scope_struct__traverse(PyObject *o, visitproc v, void *a) {
|
||||
int e;
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse_providers *p = (struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse_providers *)o;
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse *p = (struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse *)o;
|
||||
if (p->__pyx_v_self) {
|
||||
e = (*v)(p->__pyx_v_self, a); if (e) return e;
|
||||
}
|
||||
|
@ -11618,12 +11616,12 @@ static int __pyx_tp_traverse_19dependency_injector_10containers___pyx_scope_stru
|
|||
return 0;
|
||||
}
|
||||
|
||||
static PyTypeObject __pyx_type_19dependency_injector_10containers___pyx_scope_struct__traverse_providers = {
|
||||
static PyTypeObject __pyx_type_19dependency_injector_10containers___pyx_scope_struct__traverse = {
|
||||
PyVarObject_HEAD_INIT(0, 0)
|
||||
"dependency_injector.containers.__pyx_scope_struct__traverse_providers", /*tp_name*/
|
||||
sizeof(struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse_providers), /*tp_basicsize*/
|
||||
"dependency_injector.containers.__pyx_scope_struct__traverse", /*tp_name*/
|
||||
sizeof(struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct__traverse), /*tp_basicsize*/
|
||||
0, /*tp_itemsize*/
|
||||
__pyx_tp_dealloc_19dependency_injector_10containers___pyx_scope_struct__traverse_providers, /*tp_dealloc*/
|
||||
__pyx_tp_dealloc_19dependency_injector_10containers___pyx_scope_struct__traverse, /*tp_dealloc*/
|
||||
#if PY_VERSION_HEX < 0x030800b4
|
||||
0, /*tp_print*/
|
||||
#endif
|
||||
|
@ -11650,7 +11648,7 @@ static PyTypeObject __pyx_type_19dependency_injector_10containers___pyx_scope_st
|
|||
0, /*tp_as_buffer*/
|
||||
Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
|
||||
0, /*tp_doc*/
|
||||
__pyx_tp_traverse_19dependency_injector_10containers___pyx_scope_struct__traverse_providers, /*tp_traverse*/
|
||||
__pyx_tp_traverse_19dependency_injector_10containers___pyx_scope_struct__traverse, /*tp_traverse*/
|
||||
0, /*tp_clear*/
|
||||
0, /*tp_richcompare*/
|
||||
0, /*tp_weaklistoffset*/
|
||||
|
@ -11666,7 +11664,7 @@ static PyTypeObject __pyx_type_19dependency_injector_10containers___pyx_scope_st
|
|||
0, /*tp_dictoffset*/
|
||||
0, /*tp_init*/
|
||||
0, /*tp_alloc*/
|
||||
__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct__traverse_providers, /*tp_new*/
|
||||
__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct__traverse, /*tp_new*/
|
||||
0, /*tp_free*/
|
||||
0, /*tp_is_gc*/
|
||||
0, /*tp_bases*/
|
||||
|
@ -11687,14 +11685,14 @@ static PyTypeObject __pyx_type_19dependency_injector_10containers___pyx_scope_st
|
|||
#endif
|
||||
};
|
||||
|
||||
static struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers *__pyx_freelist_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers[8];
|
||||
static int __pyx_freecount_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers = 0;
|
||||
static struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse *__pyx_freelist_19dependency_injector_10containers___pyx_scope_struct_1_traverse[8];
|
||||
static int __pyx_freecount_19dependency_injector_10containers___pyx_scope_struct_1_traverse = 0;
|
||||
|
||||
static PyObject *__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
|
||||
static PyObject *__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct_1_traverse(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
|
||||
PyObject *o;
|
||||
if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers)))) {
|
||||
o = (PyObject*)__pyx_freelist_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers[--__pyx_freecount_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers];
|
||||
memset(o, 0, sizeof(struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers));
|
||||
if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_19dependency_injector_10containers___pyx_scope_struct_1_traverse > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse)))) {
|
||||
o = (PyObject*)__pyx_freelist_19dependency_injector_10containers___pyx_scope_struct_1_traverse[--__pyx_freecount_19dependency_injector_10containers___pyx_scope_struct_1_traverse];
|
||||
memset(o, 0, sizeof(struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse));
|
||||
(void) PyObject_INIT(o, t);
|
||||
PyObject_GC_Track(o);
|
||||
} else {
|
||||
|
@ -11704,21 +11702,21 @@ static PyObject *__pyx_tp_new_19dependency_injector_10containers___pyx_scope_str
|
|||
return o;
|
||||
}
|
||||
|
||||
static void __pyx_tp_dealloc_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers(PyObject *o) {
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers *p = (struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers *)o;
|
||||
static void __pyx_tp_dealloc_19dependency_injector_10containers___pyx_scope_struct_1_traverse(PyObject *o) {
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse *p = (struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse *)o;
|
||||
PyObject_GC_UnTrack(o);
|
||||
Py_CLEAR(p->__pyx_v_cls);
|
||||
Py_CLEAR(p->__pyx_v_types);
|
||||
if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers)))) {
|
||||
__pyx_freelist_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers[__pyx_freecount_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers++] = ((struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers *)o);
|
||||
if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_19dependency_injector_10containers___pyx_scope_struct_1_traverse < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse)))) {
|
||||
__pyx_freelist_19dependency_injector_10containers___pyx_scope_struct_1_traverse[__pyx_freecount_19dependency_injector_10containers___pyx_scope_struct_1_traverse++] = ((struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse *)o);
|
||||
} else {
|
||||
(*Py_TYPE(o)->tp_free)(o);
|
||||
}
|
||||
}
|
||||
|
||||
static int __pyx_tp_traverse_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers(PyObject *o, visitproc v, void *a) {
|
||||
static int __pyx_tp_traverse_19dependency_injector_10containers___pyx_scope_struct_1_traverse(PyObject *o, visitproc v, void *a) {
|
||||
int e;
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers *p = (struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers *)o;
|
||||
struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse *p = (struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse *)o;
|
||||
if (p->__pyx_v_cls) {
|
||||
e = (*v)(p->__pyx_v_cls, a); if (e) return e;
|
||||
}
|
||||
|
@ -11728,12 +11726,12 @@ static int __pyx_tp_traverse_19dependency_injector_10containers___pyx_scope_stru
|
|||
return 0;
|
||||
}
|
||||
|
||||
static PyTypeObject __pyx_type_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers = {
|
||||
static PyTypeObject __pyx_type_19dependency_injector_10containers___pyx_scope_struct_1_traverse = {
|
||||
PyVarObject_HEAD_INIT(0, 0)
|
||||
"dependency_injector.containers.__pyx_scope_struct_1_traverse_providers", /*tp_name*/
|
||||
sizeof(struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers), /*tp_basicsize*/
|
||||
"dependency_injector.containers.__pyx_scope_struct_1_traverse", /*tp_name*/
|
||||
sizeof(struct __pyx_obj_19dependency_injector_10containers___pyx_scope_struct_1_traverse), /*tp_basicsize*/
|
||||
0, /*tp_itemsize*/
|
||||
__pyx_tp_dealloc_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers, /*tp_dealloc*/
|
||||
__pyx_tp_dealloc_19dependency_injector_10containers___pyx_scope_struct_1_traverse, /*tp_dealloc*/
|
||||
#if PY_VERSION_HEX < 0x030800b4
|
||||
0, /*tp_print*/
|
||||
#endif
|
||||
|
@ -11760,7 +11758,7 @@ static PyTypeObject __pyx_type_19dependency_injector_10containers___pyx_scope_st
|
|||
0, /*tp_as_buffer*/
|
||||
Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
|
||||
0, /*tp_doc*/
|
||||
__pyx_tp_traverse_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers, /*tp_traverse*/
|
||||
__pyx_tp_traverse_19dependency_injector_10containers___pyx_scope_struct_1_traverse, /*tp_traverse*/
|
||||
0, /*tp_clear*/
|
||||
0, /*tp_richcompare*/
|
||||
0, /*tp_weaklistoffset*/
|
||||
|
@ -11776,7 +11774,7 @@ static PyTypeObject __pyx_type_19dependency_injector_10containers___pyx_scope_st
|
|||
0, /*tp_dictoffset*/
|
||||
0, /*tp_init*/
|
||||
0, /*tp_alloc*/
|
||||
__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers, /*tp_new*/
|
||||
__pyx_tp_new_19dependency_injector_10containers___pyx_scope_struct_1_traverse, /*tp_new*/
|
||||
0, /*tp_free*/
|
||||
0, /*tp_is_gc*/
|
||||
0, /*tp_bases*/
|
||||
|
@ -12119,7 +12117,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
|
|||
{&__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_shutdown_resour, __pyx_k_DynamicContainer_shutdown_resour, sizeof(__pyx_k_DynamicContainer_shutdown_resour), 0, 0, 1, 1},
|
||||
{&__pyx_n_s_DynamicContainer_traverse_provid, __pyx_k_DynamicContainer_traverse_provid, sizeof(__pyx_k_DynamicContainer_traverse_provid), 0, 0, 1, 1},
|
||||
{&__pyx_n_s_DynamicContainer_traverse, __pyx_k_DynamicContainer_traverse, sizeof(__pyx_k_DynamicContainer_traverse), 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},
|
||||
|
@ -12237,7 +12235,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
|
|||
{&__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_traverse, __pyx_k_traverse, sizeof(__pyx_k_traverse), 0, 0, 1, 1},
|
||||
{&__pyx_n_s_traverse_providers, __pyx_k_traverse_providers, sizeof(__pyx_k_traverse_providers), 0, 0, 1, 1},
|
||||
{&__pyx_n_s_types, __pyx_k_types, sizeof(__pyx_k_types), 0, 0, 1, 1},
|
||||
{&__pyx_n_s_unwire, __pyx_k_unwire, sizeof(__pyx_k_unwire), 0, 0, 1, 1},
|
||||
{&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1},
|
||||
|
@ -12438,14 +12435,14 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
|
|||
/* "dependency_injector/containers.pyx":137
|
||||
* }
|
||||
*
|
||||
* def traverse_providers(self, types=None): # <<<<<<<<<<<<<<
|
||||
* def traverse(self, types=None): # <<<<<<<<<<<<<<
|
||||
* """Return providers traversal generator."""
|
||||
* yield from providers.traverse(*self.providers.values(), types=types)
|
||||
*/
|
||||
__pyx_tuple__29 = PyTuple_Pack(2, __pyx_n_s_self_2, __pyx_n_s_types); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 137, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__29);
|
||||
__Pyx_GIVEREF(__pyx_tuple__29);
|
||||
__pyx_codeobj__2 = (PyObject*)__Pyx_PyCode_New(2, 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_traverse_providers, 137, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__2)) __PYX_ERR(0, 137, __pyx_L1_error)
|
||||
__pyx_codeobj__2 = (PyObject*)__Pyx_PyCode_New(2, 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_traverse, 137, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__2)) __PYX_ERR(0, 137, __pyx_L1_error)
|
||||
__pyx_tuple__30 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(0, 137, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__30);
|
||||
__Pyx_GIVEREF(__pyx_tuple__30);
|
||||
|
@ -12624,14 +12621,14 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
|
|||
/* "dependency_injector/containers.pyx":371
|
||||
* }
|
||||
*
|
||||
* def traverse_providers(cls, types=None): # <<<<<<<<<<<<<<
|
||||
* def traverse(cls, types=None): # <<<<<<<<<<<<<<
|
||||
* """Return providers traversal generator."""
|
||||
* yield from providers.traverse(*cls.providers.values(), types=types)
|
||||
*/
|
||||
__pyx_tuple__60 = PyTuple_Pack(2, __pyx_n_s_cls, __pyx_n_s_types); if (unlikely(!__pyx_tuple__60)) __PYX_ERR(0, 371, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__60);
|
||||
__Pyx_GIVEREF(__pyx_tuple__60);
|
||||
__pyx_codeobj__4 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 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_src_dependency_injector_containe, __pyx_n_s_traverse_providers, 371, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__4)) __PYX_ERR(0, 371, __pyx_L1_error)
|
||||
__pyx_codeobj__4 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 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_src_dependency_injector_containe, __pyx_n_s_traverse, 371, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__4)) __PYX_ERR(0, 371, __pyx_L1_error)
|
||||
__pyx_tuple__61 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__61)) __PYX_ERR(0, 371, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__61);
|
||||
__Pyx_GIVEREF(__pyx_tuple__61);
|
||||
|
@ -12797,22 +12794,22 @@ 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__traverse_providers) < 0) __PYX_ERR(0, 137, __pyx_L1_error)
|
||||
if (PyType_Ready(&__pyx_type_19dependency_injector_10containers___pyx_scope_struct__traverse) < 0) __PYX_ERR(0, 137, __pyx_L1_error)
|
||||
#if PY_VERSION_HEX < 0x030800B1
|
||||
__pyx_type_19dependency_injector_10containers___pyx_scope_struct__traverse_providers.tp_print = 0;
|
||||
__pyx_type_19dependency_injector_10containers___pyx_scope_struct__traverse.tp_print = 0;
|
||||
#endif
|
||||
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_19dependency_injector_10containers___pyx_scope_struct__traverse_providers.tp_dictoffset && __pyx_type_19dependency_injector_10containers___pyx_scope_struct__traverse_providers.tp_getattro == PyObject_GenericGetAttr)) {
|
||||
__pyx_type_19dependency_injector_10containers___pyx_scope_struct__traverse_providers.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
|
||||
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_19dependency_injector_10containers___pyx_scope_struct__traverse.tp_dictoffset && __pyx_type_19dependency_injector_10containers___pyx_scope_struct__traverse.tp_getattro == PyObject_GenericGetAttr)) {
|
||||
__pyx_type_19dependency_injector_10containers___pyx_scope_struct__traverse.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
|
||||
}
|
||||
__pyx_ptype_19dependency_injector_10containers___pyx_scope_struct__traverse_providers = &__pyx_type_19dependency_injector_10containers___pyx_scope_struct__traverse_providers;
|
||||
if (PyType_Ready(&__pyx_type_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers) < 0) __PYX_ERR(0, 371, __pyx_L1_error)
|
||||
__pyx_ptype_19dependency_injector_10containers___pyx_scope_struct__traverse = &__pyx_type_19dependency_injector_10containers___pyx_scope_struct__traverse;
|
||||
if (PyType_Ready(&__pyx_type_19dependency_injector_10containers___pyx_scope_struct_1_traverse) < 0) __PYX_ERR(0, 371, __pyx_L1_error)
|
||||
#if PY_VERSION_HEX < 0x030800B1
|
||||
__pyx_type_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers.tp_print = 0;
|
||||
__pyx_type_19dependency_injector_10containers___pyx_scope_struct_1_traverse.tp_print = 0;
|
||||
#endif
|
||||
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers.tp_dictoffset && __pyx_type_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers.tp_getattro == PyObject_GenericGetAttr)) {
|
||||
__pyx_type_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
|
||||
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_19dependency_injector_10containers___pyx_scope_struct_1_traverse.tp_dictoffset && __pyx_type_19dependency_injector_10containers___pyx_scope_struct_1_traverse.tp_getattro == PyObject_GenericGetAttr)) {
|
||||
__pyx_type_19dependency_injector_10containers___pyx_scope_struct_1_traverse.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
|
||||
}
|
||||
__pyx_ptype_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers = &__pyx_type_19dependency_injector_10containers___pyx_scope_struct_1_traverse_providers;
|
||||
__pyx_ptype_19dependency_injector_10containers___pyx_scope_struct_1_traverse = &__pyx_type_19dependency_injector_10containers___pyx_scope_struct_1_traverse;
|
||||
if (PyType_Ready(&__pyx_type_19dependency_injector_10containers___pyx_scope_struct_2_override) < 0) __PYX_ERR(0, 512, __pyx_L1_error)
|
||||
#if PY_VERSION_HEX < 0x030800B1
|
||||
__pyx_type_19dependency_injector_10containers___pyx_scope_struct_2_override.tp_print = 0;
|
||||
|
@ -13412,14 +13409,14 @@ if (!__Pyx_RefNanny) {
|
|||
/* "dependency_injector/containers.pyx":137
|
||||
* }
|
||||
*
|
||||
* def traverse_providers(self, types=None): # <<<<<<<<<<<<<<
|
||||
* def traverse(self, types=None): # <<<<<<<<<<<<<<
|
||||
* """Return providers traversal generator."""
|
||||
* yield from providers.traverse(*self.providers.values(), types=types)
|
||||
*/
|
||||
__pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_11traverse_providers, 0, __pyx_n_s_DynamicContainer_traverse_provid, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__2)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 137, __pyx_L1_error)
|
||||
__pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_16DynamicContainer_11traverse, 0, __pyx_n_s_DynamicContainer_traverse, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__2)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 137, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_9);
|
||||
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_tuple__30);
|
||||
if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_traverse_providers, __pyx_t_9) < 0) __PYX_ERR(0, 137, __pyx_L1_error)
|
||||
if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_traverse, __pyx_t_9) < 0) __PYX_ERR(0, 137, __pyx_L1_error)
|
||||
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
|
||||
|
||||
/* "dependency_injector/containers.pyx":141
|
||||
|
@ -13636,14 +13633,14 @@ if (!__Pyx_RefNanny) {
|
|||
/* "dependency_injector/containers.pyx":371
|
||||
* }
|
||||
*
|
||||
* def traverse_providers(cls, types=None): # <<<<<<<<<<<<<<
|
||||
* def traverse(cls, types=None): # <<<<<<<<<<<<<<
|
||||
* """Return providers traversal generator."""
|
||||
* yield from providers.traverse(*cls.providers.values(), types=types)
|
||||
*/
|
||||
__pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_29DeclarativeContainerMetaClass_9traverse_providers, 0, __pyx_n_s_DeclarativeContainerMetaClass_tr, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__4)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 371, __pyx_L1_error)
|
||||
__pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_19dependency_injector_10containers_29DeclarativeContainerMetaClass_9traverse, 0, __pyx_n_s_DeclarativeContainerMetaClass_tr, NULL, __pyx_n_s_dependency_injector_containers, __pyx_d, ((PyObject *)__pyx_codeobj__4)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 371, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_10);
|
||||
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_tuple__61);
|
||||
if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_n_s_traverse_providers, __pyx_t_10) < 0) __PYX_ERR(0, 371, __pyx_L1_error)
|
||||
if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_n_s_traverse, __pyx_t_10) < 0) __PYX_ERR(0, 371, __pyx_L1_error)
|
||||
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
|
||||
|
||||
/* "dependency_injector/containers.pyx":277
|
||||
|
|
|
@ -43,12 +43,11 @@ class Container:
|
|||
def unwire(self) -> None: ...
|
||||
def init_resources(self) -> Optional[Awaitable]: ...
|
||||
def shutdown_resources(self) -> Optional[Awaitable]: ...
|
||||
|
||||
@overload
|
||||
def traverse_providers(self, types: Optional[Sequence[Type]] = None) -> Iterator[Provider]: ...
|
||||
def traverse(self, types: Optional[Sequence[Type]] = None) -> Iterator[Provider]: ...
|
||||
@classmethod
|
||||
@overload
|
||||
def traverse_providers(cls, types: Optional[Sequence[Type]] = None) -> Iterator[Provider]: ...
|
||||
def traverse(cls, types: Optional[Sequence[Type]] = None) -> Iterator[Provider]: ...
|
||||
|
||||
|
||||
class DynamicContainer(Container): ...
|
||||
|
|
|
@ -134,7 +134,7 @@ class DynamicContainer(object):
|
|||
if isinstance(provider, (providers.Dependency, providers.DependenciesContainer))
|
||||
}
|
||||
|
||||
def traverse_providers(self, types=None):
|
||||
def traverse(self, types=None):
|
||||
"""Return providers traversal generator."""
|
||||
yield from providers.traverse(*self.providers.values(), types=types)
|
||||
|
||||
|
@ -368,7 +368,7 @@ class DeclarativeContainerMetaClass(type):
|
|||
if isinstance(provider, (providers.Dependency, providers.DependenciesContainer))
|
||||
}
|
||||
|
||||
def traverse_providers(cls, types=None):
|
||||
def traverse(cls, types=None):
|
||||
"""Return providers traversal generator."""
|
||||
yield from providers.traverse(*cls.providers.values(), types=types)
|
||||
|
||||
|
|
|
@ -432,89 +432,3 @@ class DeclarativeContainerTests(unittest.TestCase):
|
|||
self.assertIsInstance(container.p32, providers.Provider)
|
||||
self.assertIs(container.p11.last_overriding, provider)
|
||||
|
||||
|
||||
class ProvidersTraversalTests(unittest.TestCase):
|
||||
|
||||
def test_nested_providers(self):
|
||||
class Container(containers.DeclarativeContainer):
|
||||
obj_factory = providers.DelegatedFactory(
|
||||
dict,
|
||||
foo=providers.Resource(
|
||||
dict,
|
||||
foo='bar'
|
||||
),
|
||||
bar=providers.Resource(
|
||||
dict,
|
||||
foo='bar'
|
||||
)
|
||||
)
|
||||
|
||||
container = Container()
|
||||
all_providers = list(container.traverse_providers())
|
||||
|
||||
self.assertIn(container.obj_factory, all_providers)
|
||||
self.assertIn(container.obj_factory.kwargs['foo'], all_providers)
|
||||
self.assertIn(container.obj_factory.kwargs['bar'], all_providers)
|
||||
self.assertEqual(len(all_providers), 3)
|
||||
|
||||
def test_nested_providers_class(self):
|
||||
class Container(containers.DeclarativeContainer):
|
||||
obj_factory = providers.DelegatedFactory(
|
||||
dict,
|
||||
foo=providers.Resource(
|
||||
dict,
|
||||
foo='bar'
|
||||
),
|
||||
bar=providers.Resource(
|
||||
dict,
|
||||
foo='bar'
|
||||
)
|
||||
)
|
||||
|
||||
all_providers = list(Container.traverse_providers())
|
||||
|
||||
self.assertIn(Container.obj_factory, all_providers)
|
||||
self.assertIn(Container.obj_factory.kwargs['foo'], all_providers)
|
||||
self.assertIn(Container.obj_factory.kwargs['bar'], all_providers)
|
||||
self.assertEqual(len(all_providers), 3)
|
||||
|
||||
def test_nested_providers_with_filtering(self):
|
||||
class Container(containers.DeclarativeContainer):
|
||||
obj_factory = providers.DelegatedFactory(
|
||||
dict,
|
||||
foo=providers.Resource(
|
||||
dict,
|
||||
foo='bar'
|
||||
),
|
||||
bar=providers.Resource(
|
||||
dict,
|
||||
foo='bar'
|
||||
)
|
||||
)
|
||||
|
||||
container = Container()
|
||||
all_providers = list(container.traverse_providers(types=[providers.Resource]))
|
||||
|
||||
self.assertIn(container.obj_factory.kwargs['foo'], all_providers)
|
||||
self.assertIn(container.obj_factory.kwargs['bar'], all_providers)
|
||||
self.assertEqual(len(all_providers), 2)
|
||||
|
||||
def test_nested_providers_class_with_filtering(self):
|
||||
class Container(containers.DeclarativeContainer):
|
||||
obj_factory = providers.DelegatedFactory(
|
||||
dict,
|
||||
foo=providers.Resource(
|
||||
dict,
|
||||
foo='bar'
|
||||
),
|
||||
bar=providers.Resource(
|
||||
dict,
|
||||
foo='bar'
|
||||
)
|
||||
)
|
||||
|
||||
all_providers = list(Container.traverse_providers(types=[providers.Resource]))
|
||||
|
||||
self.assertIn(Container.obj_factory.kwargs['foo'], all_providers)
|
||||
self.assertIn(Container.obj_factory.kwargs['bar'], all_providers)
|
||||
self.assertEqual(len(all_providers), 2)
|
||||
|
|
93
tests/unit/containers/test_traversal_py3.py
Normal file
93
tests/unit/containers/test_traversal_py3.py
Normal file
|
@ -0,0 +1,93 @@
|
|||
import unittest
|
||||
|
||||
from dependency_injector import containers, providers
|
||||
|
||||
|
||||
class TraverseProviderTests(unittest.TestCase):
|
||||
|
||||
def test_nested_providers(self):
|
||||
class Container(containers.DeclarativeContainer):
|
||||
obj_factory = providers.DelegatedFactory(
|
||||
dict,
|
||||
foo=providers.Resource(
|
||||
dict,
|
||||
foo='bar'
|
||||
),
|
||||
bar=providers.Resource(
|
||||
dict,
|
||||
foo='bar'
|
||||
)
|
||||
)
|
||||
|
||||
container = Container()
|
||||
all_providers = list(container.traverse())
|
||||
|
||||
self.assertIn(container.obj_factory, all_providers)
|
||||
self.assertIn(container.obj_factory.kwargs['foo'], all_providers)
|
||||
self.assertIn(container.obj_factory.kwargs['bar'], all_providers)
|
||||
self.assertEqual(len(all_providers), 3)
|
||||
|
||||
def test_nested_providers_with_filtering(self):
|
||||
class Container(containers.DeclarativeContainer):
|
||||
obj_factory = providers.DelegatedFactory(
|
||||
dict,
|
||||
foo=providers.Resource(
|
||||
dict,
|
||||
foo='bar'
|
||||
),
|
||||
bar=providers.Resource(
|
||||
dict,
|
||||
foo='bar'
|
||||
)
|
||||
)
|
||||
|
||||
container = Container()
|
||||
all_providers = list(container.traverse(types=[providers.Resource]))
|
||||
|
||||
self.assertIn(container.obj_factory.kwargs['foo'], all_providers)
|
||||
self.assertIn(container.obj_factory.kwargs['bar'], all_providers)
|
||||
self.assertEqual(len(all_providers), 2)
|
||||
|
||||
|
||||
class TraverseProviderDeclarativeTests(unittest.TestCase):
|
||||
|
||||
def test_nested_providers(self):
|
||||
class Container(containers.DeclarativeContainer):
|
||||
obj_factory = providers.DelegatedFactory(
|
||||
dict,
|
||||
foo=providers.Resource(
|
||||
dict,
|
||||
foo='bar'
|
||||
),
|
||||
bar=providers.Resource(
|
||||
dict,
|
||||
foo='bar'
|
||||
)
|
||||
)
|
||||
|
||||
all_providers = list(Container.traverse())
|
||||
|
||||
self.assertIn(Container.obj_factory, all_providers)
|
||||
self.assertIn(Container.obj_factory.kwargs['foo'], all_providers)
|
||||
self.assertIn(Container.obj_factory.kwargs['bar'], all_providers)
|
||||
self.assertEqual(len(all_providers), 3)
|
||||
|
||||
def test_nested_providers_with_filtering(self):
|
||||
class Container(containers.DeclarativeContainer):
|
||||
obj_factory = providers.DelegatedFactory(
|
||||
dict,
|
||||
foo=providers.Resource(
|
||||
dict,
|
||||
foo='bar'
|
||||
),
|
||||
bar=providers.Resource(
|
||||
dict,
|
||||
foo='bar'
|
||||
)
|
||||
)
|
||||
|
||||
all_providers = list(Container.traverse(types=[providers.Resource]))
|
||||
|
||||
self.assertIn(Container.obj_factory.kwargs['foo'], all_providers)
|
||||
self.assertIn(Container.obj_factory.kwargs['bar'], all_providers)
|
||||
self.assertEqual(len(all_providers), 2)
|
Loading…
Reference in New Issue
Block a user