20251004-1

This commit is contained in:
2025-10-04 18:22:18 +03:00
parent 2d0a800598
commit 4cbb69181c
10 changed files with 247 additions and 237 deletions

View File

@@ -2,7 +2,6 @@
from enum import Enum
class NotBoolAction(Enum):
"""
Перечисление типов действий, которые необходимо выполнить, если переменная не является булевым типом.

View File

@@ -2,7 +2,6 @@
from anb_python_components.extensions.string_extension import StringExtension
class ArrayExtension:
"""
Класс расширения для работы с массивами.

View File

@@ -2,7 +2,6 @@
from anb_python_components.enums.not_bool_action import NotBoolAction
class BoolExtension:
"""
Расширение типа "правда/ложь".

View File

@@ -1,9 +1,8 @@
# anb_python_components/extensions/guid_extension.py
import secrets
from anb_python_components.classes.guid import GUID, GUID_EMPTY
from anb_python_components.exceptions.wrong_type_exception import WrongTypeException
from anb_python_components.types.guid import GUID
class GUIDExtension:
"""
@@ -38,13 +37,15 @@ class GUIDExtension:
]
# Форматируем компоненты в виде строки GUID
guid_str = "-".join([
guid_str = "-".join(
[
"%08x" % guid_parts[0],
"%04x" % guid_parts[1],
"%04x" % guid_parts[2],
"%04x" % guid_parts[3],
("%04x%04x%04x" % tuple(guid_parts[4:])),
])
]
)
# Возвращаем экземпляр GUID
return GUID(guid_str)
@@ -99,7 +100,7 @@ class GUIDExtension:
guid = guid if isinstance(guid, str) else str(guid)
# Проверяем GUID
return not GUID.validate_str(guid) or guid == GUID_EMPTY
return not GUID.validate_str(guid) or GUID(guid) == GUID(GUID.EMPTY)
@classmethod
def parse (cls, guid_string: str, empty_if_not_valid: bool = True) -> GUID:
@@ -117,7 +118,7 @@ class GUIDExtension:
# Если же GUID недействителен и запрещено выбрасывать исключение
if empty_if_not_valid:
# -- то возвращаем пустой GUID
return GUID(GUID_EMPTY)
return GUID(GUID.EMPTY)
else:
# -- иначе выбрасываем исключение
raise WrongTypeException('Предан неверный GUID / Wrong GUID.')

View File

@@ -3,7 +3,6 @@ import re
from .string_extension_constant import StringExtensionConstants
class StringExtension:
"""
Расширение строк.

View File

@@ -3,7 +3,6 @@
import datetime
from typing import Any
# Базовая структура для представления расширенного типа
class TypeExtension:
"""
@@ -58,6 +57,7 @@ class TypeExtension:
raise TypeError('Класс для восстановления не указан.')
# Создаём объект класса
# noinspection PyArgumentList
obj = cls.__new__(cls)
# Перебираем поля словаря

View File

@@ -0,0 +1 @@
# anb_python_components/types/__init__.py

View File

@@ -1,19 +1,31 @@
# anb_python_components/classes/guid.py
# anb_python_components/types/guid.py
import re
from anb_python_components.exceptions.wrong_type_exception import WrongTypeException
# Константа пустого GUID
GUID_EMPTY: str = "00000000-0000-0000-0000-000000000000"
class GUID:
"""
Тип GUID.
"""
def __init__(self, guid: str = GUID_EMPTY):
# Константа пустого GUID
EMPTY: str = "00000000-0000-0000-0000-000000000000"
def __init__ (self, guid = EMPTY):
"""
Инициализация расширения.
:param guid: Передаваемый GUID
:param guid: str | GUID - Передаваемый GUID
"""
# Проверка типа аргумента guid
# - если аргумент не является строкой
if not isinstance(guid, str):
# -- если аргумент является экземпляром GUID
if isinstance(guid, GUID):
# - преобразуем его в строку
guid = str(guid)
else:
# -- иначе генерируем исключение
raise WrongTypeException("Неверный тип аргумента!", "GUID", str(type(guid)), "guid")
# Проверка GUID на валидность
if not self.validate_str(guid):
@@ -28,7 +40,7 @@ class GUID:
Переопределение метода __str__.
:return: Текстовое представление GUID.
"""
return self.__value if self.__value else GUID_EMPTY
return self.__value if self.__value else self.EMPTY
def __eq__ (self, other):
"""