Add container attribute to Container provider

This commit is contained in:
Roman Mogylatov 2020-06-19 22:53:22 -04:00
parent afa450d8a5
commit 15cae0c3dc
4 changed files with 2059 additions and 1992 deletions

View File

@ -952,12 +952,12 @@ struct __pyx_obj_19dependency_injector_9providers_DependenciesContainer {
* *
* *
* cdef class Container(DependenciesContainer): # <<<<<<<<<<<<<< * cdef class Container(DependenciesContainer): # <<<<<<<<<<<<<<
* cpdef object container * cdef object __container
* *
*/ */
struct __pyx_obj_19dependency_injector_9providers_Container { struct __pyx_obj_19dependency_injector_9providers_Container {
struct __pyx_obj_19dependency_injector_9providers_DependenciesContainer __pyx_base; struct __pyx_obj_19dependency_injector_9providers_DependenciesContainer __pyx_base;
PyObject *container; PyObject *__pyx___container;
}; };
@ -1510,7 +1510,7 @@ static struct __pyx_vtabstruct_19dependency_injector_9providers_DependenciesCont
* *
* *
* cdef class Container(DependenciesContainer): # <<<<<<<<<<<<<< * cdef class Container(DependenciesContainer): # <<<<<<<<<<<<<<
* cpdef object container * cdef object __container
* *
*/ */

File diff suppressed because it is too large Load Diff

View File

@ -42,7 +42,7 @@ cdef class DependenciesContainer(Object):
cdef class Container(DependenciesContainer): cdef class Container(DependenciesContainer):
cpdef object container cdef object __container
cdef class OverridingContext(object): cdef class OverridingContext(object):

View File

@ -609,9 +609,13 @@ cdef class DependenciesContainer(Object):
cdef class Container(DependenciesContainer): cdef class Container(DependenciesContainer):
def __init__(self, object container): def __init__(self, object container):
self.container = container self.__container = container
super().__init__() super().__init__()
@property
def container(self):
return self.__container
def __deepcopy__(self, memo): def __deepcopy__(self, memo):
"""Create and return full copy of provider.""" """Create and return full copy of provider."""
cdef DependenciesContainer copied cdef DependenciesContainer copied
@ -620,7 +624,7 @@ cdef class Container(DependenciesContainer):
if copied is not None: if copied is not None:
return copied return copied
copied = self.__class__(self.container) copied = self.__class__(self.__container)
copied.__provides = deepcopy(self.__provides, memo) copied.__provides = deepcopy(self.__provides, memo)
copied.__providers = deepcopy(self.__providers, memo) copied.__providers = deepcopy(self.__providers, memo)