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