mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2025-02-06 06:30:51 +03:00
Add implementation
This commit is contained in:
parent
026aa2bcfd
commit
e6c283dc69
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -115,6 +115,7 @@ cdef class Configuration(Object):
|
||||||
cdef bint __strict
|
cdef bint __strict
|
||||||
cdef dict __children
|
cdef dict __children
|
||||||
cdef list __yaml_files
|
cdef list __yaml_files
|
||||||
|
cdef list __ini_files
|
||||||
cdef object __weakref__
|
cdef object __weakref__
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -216,7 +216,15 @@ class TypedConfigurationOption(Callable[T]):
|
||||||
|
|
||||||
class Configuration(Object[Any]):
|
class Configuration(Object[Any]):
|
||||||
DEFAULT_NAME: str = 'config'
|
DEFAULT_NAME: str = 'config'
|
||||||
def __init__(self, name: str = DEFAULT_NAME, default: Optional[Any] = None, *, strict: bool = False, yaml_files: Optional[_Iterable[Union[Path, str]]] = None) -> None: ...
|
def __init__(
|
||||||
|
self,
|
||||||
|
name: str = DEFAULT_NAME,
|
||||||
|
default: Optional[Any] = None,
|
||||||
|
*,
|
||||||
|
strict: bool = False,
|
||||||
|
yaml_files: Optional[_Iterable[Union[Path, str]]] = None,
|
||||||
|
ini_files: Optional[_Iterable[Union[Path, str]]] = None,
|
||||||
|
) -> None: ...
|
||||||
def __enter__(self) -> Configuration : ...
|
def __enter__(self) -> Configuration : ...
|
||||||
def __exit__(self, *exc_info: Any) -> None: ...
|
def __exit__(self, *exc_info: Any) -> None: ...
|
||||||
def __getattr__(self, item: str) -> ConfigurationOption: ...
|
def __getattr__(self, item: str) -> ConfigurationOption: ...
|
||||||
|
@ -237,6 +245,9 @@ class Configuration(Object[Any]):
|
||||||
def get_yaml_files(self) -> _List[Union[Path, str]]: ...
|
def get_yaml_files(self) -> _List[Union[Path, str]]: ...
|
||||||
def set_yaml_files(self, files: _Iterable[Union[Path, str]]) -> Configuration: ...
|
def set_yaml_files(self, files: _Iterable[Union[Path, str]]) -> Configuration: ...
|
||||||
|
|
||||||
|
def get_ini_files(self) -> _List[Union[Path, str]]: ...
|
||||||
|
def set_ini_files(self, files: _Iterable[Union[Path, str]]) -> Configuration: ...
|
||||||
|
|
||||||
def load(self, required: bool = False, envs_required: bool = False) -> None: ...
|
def load(self, required: bool = False, envs_required: bool = False) -> None: ...
|
||||||
|
|
||||||
def get(self, selector: str) -> Any: ...
|
def get(self, selector: str) -> Any: ...
|
||||||
|
|
|
@ -1755,11 +1755,12 @@ cdef class Configuration(Object):
|
||||||
|
|
||||||
DEFAULT_NAME = 'config'
|
DEFAULT_NAME = 'config'
|
||||||
|
|
||||||
def __init__(self, name=DEFAULT_NAME, default=None, strict=False, yaml_files=None):
|
def __init__(self, name=DEFAULT_NAME, default=None, strict=False, yaml_files=None, ini_files=None):
|
||||||
self.__name = name
|
self.__name = name
|
||||||
self.__strict = strict
|
self.__strict = strict
|
||||||
self.__children = {}
|
self.__children = {}
|
||||||
self.__yaml_files = []
|
self.__yaml_files = []
|
||||||
|
self.__ini_files = []
|
||||||
|
|
||||||
super().__init__(provides={})
|
super().__init__(provides={})
|
||||||
self.set_default(default)
|
self.set_default(default)
|
||||||
|
@ -1768,6 +1769,10 @@ cdef class Configuration(Object):
|
||||||
yaml_files = []
|
yaml_files = []
|
||||||
self.set_yaml_files(yaml_files)
|
self.set_yaml_files(yaml_files)
|
||||||
|
|
||||||
|
if ini_files is None:
|
||||||
|
ini_files = []
|
||||||
|
self.set_ini_files(ini_files)
|
||||||
|
|
||||||
def __deepcopy__(self, memo):
|
def __deepcopy__(self, memo):
|
||||||
copied = memo.get(id(self))
|
copied = memo.get(id(self))
|
||||||
if copied is not None:
|
if copied is not None:
|
||||||
|
@ -1779,6 +1784,7 @@ cdef class Configuration(Object):
|
||||||
copied.set_strict(self.get_strict())
|
copied.set_strict(self.get_strict())
|
||||||
copied.set_children(deepcopy(self.get_children(), memo))
|
copied.set_children(deepcopy(self.get_children(), memo))
|
||||||
copied.set_yaml_files(self.get_yaml_files())
|
copied.set_yaml_files(self.get_yaml_files())
|
||||||
|
copied.set_ini_files(self.get_ini_files())
|
||||||
|
|
||||||
self._copy_overridings(copied, memo)
|
self._copy_overridings(copied, memo)
|
||||||
return copied
|
return copied
|
||||||
|
@ -1861,6 +1867,15 @@ cdef class Configuration(Object):
|
||||||
self.__yaml_files = list(files)
|
self.__yaml_files = list(files)
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
def get_ini_files(self):
|
||||||
|
"""Return list of INI files."""
|
||||||
|
return self.__ini_files
|
||||||
|
|
||||||
|
def set_ini_files(self, files):
|
||||||
|
"""Set list of INI files."""
|
||||||
|
self.__ini_files = list(files)
|
||||||
|
return self
|
||||||
|
|
||||||
def load(self, required=UNDEFINED, envs_required=UNDEFINED):
|
def load(self, required=UNDEFINED, envs_required=UNDEFINED):
|
||||||
"""Load configuration.
|
"""Load configuration.
|
||||||
|
|
||||||
|
@ -1881,6 +1896,9 @@ cdef class Configuration(Object):
|
||||||
for file in self.get_yaml_files():
|
for file in self.get_yaml_files():
|
||||||
self.from_yaml(file, required=required, envs_required=envs_required)
|
self.from_yaml(file, required=required, envs_required=envs_required)
|
||||||
|
|
||||||
|
for file in self.get_ini_files():
|
||||||
|
self.from_ini(file, required=required, envs_required=envs_required)
|
||||||
|
|
||||||
def get(self, selector, required=False):
|
def get(self, selector, required=False):
|
||||||
"""Return configuration option.
|
"""Return configuration option.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user