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 from enum import Enum
class NotBoolAction(Enum): class NotBoolAction(Enum):
""" """
Перечисление типов действий, которые необходимо выполнить, если переменная не является булевым типом. Перечисление типов действий, которые необходимо выполнить, если переменная не является булевым типом.

View File

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

View File

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

View File

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

View File

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

View File

@@ -3,7 +3,6 @@
import datetime import datetime
from typing import Any from typing import Any
# Базовая структура для представления расширенного типа # Базовая структура для представления расширенного типа
class TypeExtension: class TypeExtension:
""" """
@@ -58,6 +57,7 @@ class TypeExtension:
raise TypeError('Класс для восстановления не указан.') raise TypeError('Класс для восстановления не указан.')
# Создаём объект класса # Создаём объект класса
# noinspection PyArgumentList
obj = cls.__new__(cls) 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 import re
from anb_python_components.exceptions.wrong_type_exception import WrongTypeException from anb_python_components.exceptions.wrong_type_exception import WrongTypeException
# Константа пустого GUID
GUID_EMPTY: str = "00000000-0000-0000-0000-000000000000"
class GUID: 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 на валидность # Проверка GUID на валидность
if not self.validate_str(guid): if not self.validate_str(guid):
@@ -28,7 +40,7 @@ class GUID:
Переопределение метода __str__. Переопределение метода __str__.
:return: Текстовое представление GUID. :return: Текстовое представление GUID.
""" """
return self.__value if self.__value else GUID_EMPTY return self.__value if self.__value else self.EMPTY
def __eq__ (self, other): def __eq__ (self, other):
""" """