EJIO.utils.component package¶

Subpackages¶
- EJIO.utils.component.app package
- EJIO.utils.component.check package
- EJIO.utils.component.clock package
- Submodules
- EJIO.utils.component.clock.base_clock module
- EJIO.utils.component.clock.err module
- EJIO.utils.component.clock.realtime_clock module
- EJIO.utils.component.clock.time_class module
- EJIO.utils.component.clock.timer module
- EJIO.utils.component.clock.virtual_clock module
- Module contents
- EJIO.utils.component.color package
- Submodules
- EJIO.utils.component.color.color module
- EJIO.utils.component.color.colors module
COLORSCOLORS.AMBERCOLORS.AMBER_LIGHTCOLORS.BLACKCOLORS.BLUECOLORS.CRIMSONCOLORS.CRIMSON_LIGHTCOLORS.CYANCOLORS.EMERALDCOLORS.EMERALD_LIGHTCOLORS.GREENCOLORS.INDIGOCOLORS.INFO_BLUECOLORS.INFO_LIGHTCOLORS.ORANGECOLORS.PINKCOLORS.PURPLECOLORS.REDCOLORS.SLATE_100COLORS.SLATE_300COLORS.SLATE_50COLORS.SLATE_500COLORS.SLATE_700COLORS.SLATE_800COLORS.SLATE_900COLORS.TEALCOLORS.TRANSPARENTCOLORS.WHITECOLORS.YELLOWCOLORS.clear()COLORS.destroy()
- Module contents
COLORSCOLORS.AMBERCOLORS.AMBER_LIGHTCOLORS.BLACKCOLORS.BLUECOLORS.CRIMSONCOLORS.CRIMSON_LIGHTCOLORS.CYANCOLORS.EMERALDCOLORS.EMERALD_LIGHTCOLORS.GREENCOLORS.INDIGOCOLORS.INFO_BLUECOLORS.INFO_LIGHTCOLORS.ORANGECOLORS.PINKCOLORS.PURPLECOLORS.REDCOLORS.SLATE_100COLORS.SLATE_300COLORS.SLATE_50COLORS.SLATE_500COLORS.SLATE_700COLORS.SLATE_800COLORS.SLATE_900COLORS.TEALCOLORS.TRANSPARENTCOLORS.WHITECOLORS.YELLOWCOLORS.clear()COLORS.destroy()
Color
- EJIO.utils.component.numbers package
- EJIO.utils.component.tree package
Submodules¶
EJIO.utils.component.err module¶
- exception EJIO.utils.component.err.ApplicationCoreError(message: str)[исходный код]¶
Базовые классы:
UtilsBaseErrorИсключение, связанное с ошибками работы ядра программы.
- exception EJIO.utils.component.err.ClockError(message: str)[исходный код]¶
Базовые классы:
UtilsBaseErrorИсключение, связанное с ошибками работы часов или таймера.
Module contents¶
- class EJIO.utils.component.ApplicationCore(*args: object, **kwargs: object)[исходный код]¶
Базовые классы:
SingletonГлобальный оркестратор жизненного цикла всего приложения. Отвечает за атомарную загрузку конфигураций, динамическую инициализацию, потокобезопасный перехват сигналов выхода ОС и обработку критических ошибок.
- settings: dict[str, Any] = {'application': {'name': 'DefaultEJIOApp'}}¶
- start() None[исходный код]¶
Запускает полный жизненный цикл оркестрации приложения.
- Исключение:
ApplicationCoreError – При попытке запуска ядра приложения повторно.
- class EJIO.utils.component.BSTNode(*args: Any)[исходный код]¶
Базовые классы:
TreeNodeУзел двоичного (бинарного) дерева поиска (Binary Search Tree). Содержит строго левого (меньшего) и правого (большего) потомков.
- property children: Iterable[TreeNode]¶
Потокобезопасная проекция двоичной структуры на общий контракт TreeNode. Возвращает левого и правого детей, если они существуют.
- Результат:
Список потомков.
- destroy() None[исходный код]¶
Итеративное, потокобезопасное и каскадное уничтожение бинарного дерева поиска. Полностью защищено от RecursionError и оптимизировано по скорости.
- insert(val: Any) None[исходный код]¶
Потокобезопасная упорядоченная вставка элемента со сравнением значений.
- Параметры:
val – Значение нового узла.
- property value: Any¶
Возвращает значение текущего узла.
- Результат:
Значение текущего узла.
- class EJIO.utils.component.BigNumber(value: int | float, scale: str = '')[исходный код]¶
Базовые классы:
objectПредставление большого числа с автоматическим управлением масштабом.
- convert_to_scale(target_scale: str) BigNumber[исходный код]¶
Преобразует число в указанную шкалу, например: миллионы в тысячи.
- Параметры:
target_scale – Целевое обозначение масштаба
- Результат:
Масштобированное значение.
- Исключение:
ValueError – Если масштаб неподдерживаем
- scales_dict: dict[str, float] = {'': 1, 'At': 1e+153, 'B': 1000000000.0, 'Ce': 1e+69, 'CeMi': 1e+132, 'DC': 1e+81, 'DCe': 1e+75, 'DCeMi': 1e+135, 'DDe': 1e+39, 'DMi': 1e+117, 'De': 1e+33, 'DeMi': 1e+123, 'Fe': 1e+150, 'K': 1000.0, 'M': 1000000.0, 'Mc': 1e+141, 'Mi': 1e+105, 'Mi-B': 1e+111, 'Mi-M': 1e+108, 'Mi-T': 1e+114, 'Na': 1e+144, 'Ng': 1e+66, 'No': 1e+30, 'NoC': 1e+102, 'Oc': 1e+27, 'OcC': 1e+99, 'Og': 1e+63, 'Pi': 1e+147, 'Qa': 1e+51, 'Qd': 1000000000000000.0, 'QdC': 1e+87, 'Qi': 1e+54, 'Qn': 1e+18, 'QnC': 1e+90, 'Se': 1e+57, 'Sg': 1e+60, 'Sp': 1e+24, 'SpC': 1e+96, 'Sx': 1e+21, 'SxC': 1e+93, 'T': 1000000000000.0, 'TC': 1e+84, 'TCe': 1e+78, 'TCeMi': 1e+138, 'TDe': 1e+42, 'TMi': 1e+120, 'Tg': 1e+48, 'TgMi': 1e+129, 'UCe': 1e+72, 'UDe': 1e+36, 'Ve': 1e+165, 'Vg': 1e+45, 'VgMi': 1e+126, 'Xo': 1e+162, 'Yo': 1e+159, 'Ze': 1e+156}¶
- scales_list: list[tuple[str, float]] = [('', 1), ('K', 1000.0), ('M', 1000000.0), ('B', 1000000000.0), ('T', 1000000000000.0), ('Qd', 1000000000000000.0), ('Qn', 1e+18), ('Sx', 1e+21), ('Sp', 1e+24), ('Oc', 1e+27), ('No', 1e+30), ('De', 1e+33), ('UDe', 1e+36), ('DDe', 1e+39), ('TDe', 1e+42), ('Vg', 1e+45), ('Tg', 1e+48), ('Qa', 1e+51), ('Qi', 1e+54), ('Se', 1e+57), ('Sg', 1e+60), ('Og', 1e+63), ('Ng', 1e+66), ('Ce', 1e+69), ('UCe', 1e+72), ('DCe', 1e+75), ('TCe', 1e+78), ('DC', 1e+81), ('TC', 1e+84), ('QdC', 1e+87), ('QnC', 1e+90), ('SxC', 1e+93), ('SpC', 1e+96), ('OcC', 1e+99), ('NoC', 1e+102), ('Mi', 1e+105), ('Mi-M', 1e+108), ('Mi-B', 1e+111), ('Mi-T', 1e+114), ('DMi', 1e+117), ('TMi', 1e+120), ('DeMi', 1e+123), ('VgMi', 1e+126), ('TgMi', 1e+129), ('CeMi', 1e+132), ('DCeMi', 1e+135), ('TCeMi', 1e+138), ('Mc', 1e+141), ('Na', 1e+144), ('Pi', 1e+147), ('Fe', 1e+150), ('At', 1e+153), ('Ze', 1e+156), ('Yo', 1e+159), ('Xo', 1e+162), ('Ve', 1e+165)]¶
- to_scale_string(precision: int = 2) str[исходный код]¶
Возвращает строку с числом, автоматически масштабированным, например: „1.23 M“.
- Параметры:
precision – Число знаков после запятой
- Результат:
Строка с маштабированным числом.
- to_scientific(precision: int = 2) str[исходный код]¶
Возвращает число в научной нотации, например: „1.23e+06“.
- Параметры:
precision – Число знаков после запятой
- Результат:
Строка с числом в научной нотации.
- value: float¶
- class EJIO.utils.component.COLORS(*args: tuple[object, ...], **kwargs: dict[str, object])[исходный код]¶
Базовые классы:
objectНеизменяемый расширенный реестр системных и графических цветов. Содержит современные палитры Material / Tailwind UI.
- classmethod clear() None[исходный код]¶
- classmethod destroy() None[исходный код]¶
- class EJIO.utils.component.Color(*args: Any)[исходный код]¶
Базовые классы:
objectУниверсальный класс для работы с цветом. Инкапсулирует парсинг из любых форматов (HEX, RGB, RGBA, float) и лениво преобразует его в нужные рантайм-представления.
- property hex: str¶
Возвращает стандартную шестнадцатеричную строку (например, „#FF5733“).
- Результат:
Цвет в формате HEX.
- property hex_alpha: str¶
Возвращает HEX строку, включающую альфа-компоненту (например, „#FF573380“).
- Результат:
Цвет в формате HEXA.
- property normalized: tuple[float, float, float, float]¶
Возвращает нормализованные float-координаты от 0.0 до 1.0.
- Результат:
Нормализованный цвет в формате RGBA.
- property rgb: tuple[int, int, int]¶
Возвращает классический кортеж целых чисел (R, G, B).
- Результат:
Цвет в формате RGB.
- property rgba: tuple[int, int, int, int]¶
Возвращает полный кортеж целых чисел с альфа-каналом (R, G, B, A).
- Результат:
Цвет в формате RGBA.
- class EJIO.utils.component.GeneralTreeNode(*args: Any)[исходный код]¶
Базовые классы:
TreeNodeУзел универсального дерева общего вида (N-арное дерево). Может содержать неограниченное количество дочерних потомков.
- add_child(child_node: GeneralTreeNode) GeneralTreeNode[исходный код]¶
Потокобезопасно добавляет дочерний узел в дерево.
- Параметры:
child_node – Новый дочерний узел.
- Результат:
Новый узел.
- property children: Iterable[TreeNode]¶
Возвращает изолированную потокобезопасную копию списка потомков.
- Результат:
Список потомков.
- destroy() None[исходный код]¶
Потокобезопасное каскадное уничтожение N-арного дерева.
- remove_child(child_node: GeneralTreeNode) None[исходный код]¶
Потокобезопасно удаляет дочерний узел из дерева.
- Параметры:
child_node – Дочерний узел.
- property value: Any¶
Возвращает значение текущего узла.
- Результат:
Значение текущего узла.
- class EJIO.utils.component.RealtimeClock[исходный код]¶
Базовые классы:
ClockРеальные часы, основаны на системном времени.
- get_time() Time[исходный код]¶
Получает текущее системное время.
- Результат:
Объект Time со значением текущего времени.
- class EJIO.utils.component.StringChecker(*args: tuple[object, ...], **kwargs: dict[str, object])[исходный код]¶
Базовые классы:
TypeCheckerClass[str,StringTypes]Класс для определения и проверки содержимого строк по флагам StringTypes. Позволяет узнать, какому типу данных фактически соответствуют текстовые данные.
- class EJIO.utils.component.StringTypes(*values)[исходный код]¶
Базовые классы:
TypeCheckerTypesИнтегер-флаг, представляющий типы данных, которые могут быть закодированы в строке. Каждый флаг — это битовая маска, позволяющая комбинировать несколько проверок.
- BOOL = 32¶
- DICT = 16¶
- FLOAT = 4¶
- INT = 2¶
- LIST = 8¶
- NONE = 0¶
- NONE_TYPE = 1¶
- NUMBER = 64¶
- PERCENT = 128¶
- class EJIO.utils.component.Time(*, years: float = 0, days: float = 0, hours: float = 0, minutes: float = 0, seconds: float = 0, milliseconds: float = 0, microseconds: float = 0, nanoseconds: int = 0)[исходный код]¶
Базовые классы:
objectКласс представляет промежуток времени с точностью до наносекунд. Можно форматировать и получать в разных единицах.
- as_days() int[исходный код]¶
Получить время в днях.
- Результат:
Время в днях.
- as_hours() int[исходный код]¶
Получить время в часах.
- Результат:
Время в часах.
- as_microseconds() int[исходный код]¶
Получить время в микросекундах.
- Результат:
Время в микросекундах.
- as_milliseconds() int[исходный код]¶
Получить время в миллисекундах.
- Результат:
Время в миллисекундах.
- as_minutes() int[исходный код]¶
Получить время в минутах.
- Результат:
Время в минутах.
- as_nanoseconds() int[исходный код]¶
Получить время в наносекундах.
- Результат:
Время в наносекундах.
- as_seconds() int[исходный код]¶
Получить время в секундах.
- Результат:
Время в секундах.
- as_years() int[исходный код]¶
Получить время в годах.
- Результат:
Время в годах.
- format(fmt: str = '%Y:%j:%H:%M:%S:%f') str[исходный код]¶
Форматирует время согласно шаблону.
%Y - Год %j - День %H - Часы %M - Минуты %S - Секунды %f - Микросекунды
- Параметры:
fmt – Формат строки, по умолчанию „%Y:%j:%H:%M:%S:%f“.
- Результат:
Отформатированная строка.
- classmethod from_datetime(dt: datetime) Time[исходный код]¶
Создает объект Time из объекта datetime.
- Параметры:
dt – Объект datetime.
- Результат:
Новый объект Time.
- class EJIO.utils.component.Timer(duration: Time, func: Callable)[исходный код]¶
Базовые классы:
objectТаймер, отслеживающий заданную по времени продолжительность и выполняющий указанную функцию по окончании отчета.
- property completed: bool¶
Проверяет, завершился ли таймер.
- Результат:
True, если таймер завершен, иначе False.
- prolong(additional_time: Time) Timer[исходный код]¶
Увеличивает длительность таймера.
- Параметры:
additional_time – Время, на которое нужно увеличить таймер.
- Результат:
Объект таймера.
- Исключение:
TypeError – Если additional_time не является объектом Time.
- property remaining_time: Time¶
Возвращает оставшееся время.
- Результат:
Оставшееся время в формате Time.
- start() Timer[исходный код]¶
Запускает таймер.
- Результат:
Объект таймера.
- stop() Timer[исходный код]¶
Останавливает таймер.
- Результат:
Объект таймера.
- class EJIO.utils.component.TypeChecker(*args: tuple[object, ...], **kwargs: dict[str, object])[исходный код]¶
Базовые классы:
TypeCheckerClass[Any,Types]Класс для определения и проверки типов значений по флагам Types. Позволяет получать комбинированное описание типов значения, а также проверять соответствие значения любому или всем указанным типам.
- class EJIO.utils.component.TypeCheckerClass(*args: tuple[object, ...], **kwargs: dict[str, object])[исходный код]¶
Базовые классы:
StaticClass,GenericАбстрактный класс, предоставляющий базовый интерфейс и логику для классов, осуществляющих проверку типов данных и структур.
V: Тип проверяемого значения (например, Any или str). S: Тип флага.
- classmethod check_types(value: V, flags: S) bool[исходный код]¶
Проверяет, соответствует ли значение хотя бы одному из переданных флагов.
- Параметры:
value – Значение, которое нужно проверить.
flags – Комбинация флагов типов для проверки.
- Результат:
True, если значение соответствует хотя бы одному флагу, иначе False.
- classmethod check_types_strict(value: V, flags: S) bool[исходный код]¶
Проверяет, что значение абсолютно полностью соответствует всем переданным флагам.
- Параметры:
value – Значение, которое нужно проверить.
flags – Комбинация флагов типов, которой должно удовлетворять значение.
- Результат:
True, если значение прошло все проверки для указанных флагов, иначе False.
- classmethod get_types(value: V) S[исходный код]¶
Определяет, к каким типам принадлежит переданное значение. Возвращает комбинацию флагов, описывающих все подходящие типы.
- Параметры:
value – Значение, типы которого нужно определить.
- Результат:
Комбинация флагов типа S.
- class EJIO.utils.component.TypeCheckerTypes(new_class_name, /, names, *, module=None, qualname=None, type=None, start=1, boundary=None)[исходный код]¶
Базовые классы:
FlagАюстрактный класс, представляющий собой базовый класс для кслассов, содержащих проверяемые типы. Структура класса должна быть:
NONE = 0 NONE_TYPE = 1 << 0 INT = 1 << 1 FLOAT = 1 << 2 и т.д.
- class EJIO.utils.component.Types(*values)[исходный код]¶
Базовые классы:
TypeCheckerTypesИнтегер-флаг, представляющий разные типы данных. Каждый флаг — это битовая маска, позволяющая комбинировать несколько типов.
- BOOL = 64¶
- DICT = 32¶
- FLOAT = 4¶
- INT = 2¶
- LIST = 16¶
- NONE = 0¶
- NONE_TYPE = 1¶
- NUMBER = 128¶
- PERCENT = 256¶
- STRING = 8¶
- class EJIO.utils.component.VirtualClock(start_time: Time | None = None)[исходный код]¶
Базовые классы:
ClockВиртуальные часы, отслеживают прошедшее время без привязки к системному.
- get_time() Time[исходный код]¶
Возвращает текущее виртуальное время.
- Результат:
Объект Time, представляющий текущее время.
- start() Self[исходный код]¶
Запускает виртуальные часы.
- Результат:
Сам объект для цепочки вызовов.
- Исключение:
ClockError – Если часы уже запущены.
- stop() Self[исходный код]¶
Останавливает виртуальные часы.
- Результат:
Сам объект для цепочки вызовов.
- Исключение:
ClockError – Если часы не запущены.