20251004-1
This commit is contained in:
@@ -2,7 +2,6 @@
|
||||
|
||||
from enum import Enum
|
||||
|
||||
|
||||
class NotBoolAction(Enum):
|
||||
"""
|
||||
Перечисление типов действий, которые необходимо выполнить, если переменная не является булевым типом.
|
||||
|
@@ -2,7 +2,6 @@
|
||||
|
||||
from anb_python_components.extensions.string_extension import StringExtension
|
||||
|
||||
|
||||
class ArrayExtension:
|
||||
"""
|
||||
Класс расширения для работы с массивами.
|
||||
|
@@ -2,7 +2,6 @@
|
||||
|
||||
from anb_python_components.enums.not_bool_action import NotBoolAction
|
||||
|
||||
|
||||
class BoolExtension:
|
||||
"""
|
||||
Расширение типа "правда/ложь".
|
||||
|
@@ -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.')
|
@@ -3,7 +3,6 @@ import re
|
||||
|
||||
from .string_extension_constant import StringExtensionConstants
|
||||
|
||||
|
||||
class StringExtension:
|
||||
"""
|
||||
Расширение строк.
|
||||
|
@@ -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)
|
||||
|
||||
# Перебираем поля словаря
|
||||
|
1
anb_python_components/types/__init__.py
Normal file
1
anb_python_components/types/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
# anb_python_components/types/__init__.py
|
@@ -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):
|
||||
"""
|
Reference in New Issue
Block a user