Добавлены основные файлы проекта
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
__pycache__
|
||||
dist
|
||||
@@ -0,0 +1,41 @@
|
||||
[project]
|
||||
name = "configurator"
|
||||
version ="0.1"
|
||||
authors = [
|
||||
{ name="RemiZOffAlex", email="remizoffalex@gmail.com" },
|
||||
]
|
||||
maintainers = [
|
||||
{ name="RemiZOffAlex", email="remizoffalex@gmail.com" },
|
||||
]
|
||||
description = "Configuration Manager"
|
||||
requires-python = ">=3.10"
|
||||
classifiers = [
|
||||
"Environment :: Console",
|
||||
"Intended Audience :: Developers",
|
||||
"Intended Audience :: Information Technology",
|
||||
"Intended Audience :: System Administrators",
|
||||
"Operating System :: POSIX :: BSD :: FreeBSD",
|
||||
"Operating System :: POSIX :: Linux",
|
||||
"Programming Language :: Formal",
|
||||
"Programming Language :: Python",
|
||||
"Programming Language :: Python :: 3",
|
||||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Topic :: Software Development :: Code Generators",
|
||||
"Topic :: Software Development :: Compilers",
|
||||
"Topic :: Software Development :: Libraries",
|
||||
]
|
||||
keywords = ["config", "configurator", "configuration management"]
|
||||
dependencies = [
|
||||
"pyyaml",
|
||||
"middleware@git+https://codex.r10x.net/RemiZOffAlex/middleware",
|
||||
]
|
||||
|
||||
[build-system]
|
||||
requires = ["flit_core >=3.2,<4"]
|
||||
build-backend = "flit_core.buildapi"
|
||||
|
||||
[tool.flit.sdist]
|
||||
include = []
|
||||
exclude = []
|
||||
@@ -0,0 +1,2 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
@@ -0,0 +1,61 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
|
||||
from middleware.common import middleware
|
||||
|
||||
|
||||
class Config:
|
||||
@middleware
|
||||
def __init__(self, value):
|
||||
self.__value__ = value
|
||||
|
||||
@middleware
|
||||
def __contains__(self, key):
|
||||
if key in self.__value__:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
@middleware
|
||||
def __delitem__(self, key):
|
||||
del self.__value__[key]
|
||||
|
||||
@middleware
|
||||
def __getattr__(self, key):
|
||||
value = self.__value__[key]
|
||||
if isinstance(value, dict):
|
||||
result = Config(value)
|
||||
elif isinstance(value, list):
|
||||
result = Config(value)
|
||||
else:
|
||||
result = value
|
||||
return result
|
||||
|
||||
@middleware
|
||||
def __getitem__(self, key):
|
||||
# if isinstance(self.__value__, dict):
|
||||
value = self.__value__[key]
|
||||
if isinstance(value, dict):
|
||||
result = Config(value)
|
||||
elif isinstance(value, list):
|
||||
result = Config(value)
|
||||
else:
|
||||
result = value
|
||||
return result
|
||||
|
||||
@middleware
|
||||
def __iter__(self):
|
||||
for name in self.__value__.keys():
|
||||
yield name
|
||||
|
||||
@middleware
|
||||
def __len__(self):
|
||||
return len(self.__value__)
|
||||
|
||||
@middleware
|
||||
def __repr__(self):
|
||||
return '<{cls} at {id}>'.format(cls=self.__class__.__name__, id=id(self))
|
||||
|
||||
@middleware
|
||||
def __setitem__(self, key, value):
|
||||
self.__value__[key] = value
|
||||
Reference in New Issue
Block a user