20251005
This commit is contained in:
379
help/class_desc/classes/action_state.md
Normal file
379
help/class_desc/classes/action_state.md
Normal file
@@ -0,0 +1,379 @@
|
||||
# Класс `ActionState`
|
||||
|
||||
Класс `ActionState` предназначен для отслеживания состояния выполняемых действий в программе, фиксируя изменения,
|
||||
происходящие в процессе выполнения, а также накапливая сообщения о событиях, успехах и ошибках. Он служит контейнером
|
||||
для сохранения промежуточных состояний и обеспечивает простой интерфейс взаимодействия с ними.
|
||||
|
||||
## Основная информация
|
||||
|
||||
- **Имя файла**: anb_python_components\classes\action_state.py
|
||||
- **Автор**: Александр Бабаев
|
||||
- **Версия**: 1.0.0
|
||||
- **Дата начала поддержки**: с версии 1.0
|
||||
|
||||
## Атрибуты и методы класса
|
||||
|
||||
### Атрибуты
|
||||
|
||||
- **`value: T`**: Хранит основное значение состояния (может быть любым объектом).
|
||||
- **`__messages: list[ActionStateMessage]`**: Внутренний список сообщений, накопленных в процессе выполнения действия.
|
||||
|
||||
### Конструктор (`__init__`)
|
||||
|
||||
Принимает необязательное значение по умолчанию, которое устанавливается в качестве основного значения состояния.
|
||||
|
||||
**Параметры**:
|
||||
|
||||
- `default: T | None = None`: Значение по умолчанию.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.classes.action_state import ActionState
|
||||
|
||||
state = ActionState[bool](False)
|
||||
```
|
||||
|
||||
### Основные методы
|
||||
|
||||
#### Метод `add_message`
|
||||
|
||||
Добавляет новое сообщение в список сообщений.
|
||||
|
||||
**Параметры**:
|
||||
|
||||
- `message: ActionStateMessage`: Модель сообщения.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.classes.action_state import ActionState, ActionStateMessage, MessageType
|
||||
|
||||
state = ActionState[bool](False)
|
||||
state.add_message(ActionStateMessage(MessageType.INFO, "Процесс запущен."))
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### Метод `add`
|
||||
|
||||
Удобный способ добавления сообщений, принимающий непосредственно тип сообщения и его текст.
|
||||
|
||||
**Параметры**:
|
||||
|
||||
- `message_type: MessageType`: Тип сообщения.
|
||||
- `message: str`: Сообщение.
|
||||
- `flags: dict[str, bool] | None = None`: Флаги сообщения (необязательны).
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.classes.action_state import ActionState, MessageType
|
||||
|
||||
state = ActionState[bool](False)
|
||||
state.add(MessageType.WARNING, "Скорость низкая.")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Метод `add_info`
|
||||
|
||||
Добавляет информационное сообщение в список состояний.
|
||||
|
||||
**Параметры**:
|
||||
|
||||
- `message: str`: Текст самого информационного сообщения.
|
||||
- `flags: dict[str, bool] | None = None`: Дополнительные мета-данные или признаки сообщения (например, отметка о
|
||||
важности или срочности).
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.classes.action_state import ActionState
|
||||
|
||||
state = ActionState[bool](False)
|
||||
state.add_info("Начали загрузку данных.")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Метод `add_warning`
|
||||
|
||||
Добавляет предупреждение в список состояний.
|
||||
|
||||
**Параметры**:
|
||||
|
||||
- `message: str`: Текст предупреждения.
|
||||
- `flags: dict[str, bool] | None = None`: Дополнительные флаги для конкретного предупреждения.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.classes.action_state import ActionState
|
||||
|
||||
state = ActionState[bool](False)
|
||||
state.add_warning("Не хватает оперативной памяти.")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Метод `add_error`
|
||||
|
||||
Добавляет сообщение об ошибке в список состояний.
|
||||
|
||||
**Параметры**:
|
||||
|
||||
- `message: str`: Текст сообщения об ошибке.
|
||||
- `flags: dict[str, bool] | None = None`: Дополнительные флаги для конкретной ошибки.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.classes.action_state import ActionState
|
||||
|
||||
state = ActionState[bool](False)
|
||||
state.add_error("Не удалось установить соединение с базой данных.")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### Метод `add_state`
|
||||
|
||||
Объединяет текущее состояние с другим состоянием, перенося его сообщения.
|
||||
|
||||
**Параметры**:
|
||||
|
||||
- `state: ActionState`: Другое сообщение о состоянии.
|
||||
- `clear_all_before: bool = False`: Очистить список перед добавлением (по умолчанию - False).
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.classes.action_state import ActionState
|
||||
|
||||
state = ActionState[bool](False)
|
||||
another_state = ActionState()
|
||||
another_state.add_info("Дополнительная информация.")
|
||||
state.add_state(another_state)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### Метод `get_messages`
|
||||
|
||||
Возвращает список сообщений, возможно применяя фильтр по условию.
|
||||
|
||||
**Параметры**:
|
||||
|
||||
- `predicate: Callable[[ActionStateMessage], bool] | None = None`: Условие выборки.
|
||||
|
||||
**Метод возвращает** `list[ActionStateMessage]`: список сообщений.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.classes.action_state import ActionState, MessageType
|
||||
|
||||
state = ActionState[bool](False)
|
||||
errors = state.get_messages(lambda m: m.message_type == MessageType.ERROR)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Метод `get_string_messages`
|
||||
|
||||
Возвращает объединённую строку сообщений, фильтруя их по определённому критерию (предикат). Полезен для визуализации
|
||||
сообщений в логах или отчётах.
|
||||
|
||||
**Параметры**:
|
||||
|
||||
- `predicate: Callable[[ActionStateMessage], bool] | None = None`: Функциональный предикат для фильтрации сообщений
|
||||
(например, показывать только ошибки или предупреждения).
|
||||
- `separator: str = "\n"`: Разделитель между сообщениями (по умолчанию новая строка).
|
||||
|
||||
**Метод возвращает** `str`: строка сообщений.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.classes.action_state import ActionState, MessageType
|
||||
|
||||
state = ActionState[bool](False)
|
||||
state.add_error("Ошибка в сети.")
|
||||
state.add_warning("Медленная скорость загрузки.")
|
||||
|
||||
filtered_messages = state.get_string_messages(predicate = lambda msg: msg.message_type == MessageType.ERROR)
|
||||
print(filtered_messages) # "Ошибка в сети."
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Метод `has_infos`
|
||||
|
||||
Проверяет, имеются ли в списке сообщения информационного типа (`INFO`).
|
||||
|
||||
**Метод возвращает** `bool`: True, если есть, иначе False.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.classes.action_state import ActionState
|
||||
|
||||
state = ActionState[bool](False)
|
||||
state.add_info("Процесс завершён.")
|
||||
|
||||
if state.has_infos():
|
||||
print("Имеются информационные сообщения.") # Будет выведено
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Метод `has_warnings`
|
||||
|
||||
Проверяет, присутствуют ли в списке предупреждающие сообщения (`WARNING`).
|
||||
|
||||
**Метод возвращает** `bool`: True, если есть, иначе False.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.classes.action_state import ActionState
|
||||
|
||||
state = ActionState[bool](False)
|
||||
state.add_warning("Недостаточно памяти.")
|
||||
|
||||
if state.has_warnings():
|
||||
print("Есть предупреждающие сообщения.") # Будет выведено
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Метод `has_errors`
|
||||
|
||||
Проверяет, существуют ли в списке сообщения об ошибках (`ERROR`).
|
||||
|
||||
**Метод возвращает** `bool`: True, если есть, иначе False.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.classes.action_state import ActionState
|
||||
|
||||
state = ActionState[bool](False)
|
||||
state.add_error("Время ожидания истекло.")
|
||||
|
||||
if state.has_errors():
|
||||
print("Присутствуют сообщения об ошибках.") # Будет выведено
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Метод `clear`
|
||||
|
||||
Очищает список сообщений, возможно применяя условие фильтрации.
|
||||
|
||||
**Параметры**:
|
||||
|
||||
- `predicate: Callable[[ActionStateMessage], bool] | None = None`: Функциональный предикат для фильтрации сообщений.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.classes.action_state import ActionState, MessageType
|
||||
|
||||
state = ActionState[bool](False)
|
||||
state.clear(lambda m: m.message_type == MessageType.INFO)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Метод `is_success`
|
||||
|
||||
Проверяет, было ли состояние успешным, основываясь на наличии ошибок и предупреждений.
|
||||
|
||||
**Параметры**:
|
||||
|
||||
- `ignore_warnings: bool = False`: Игнорировать предупреждения (по умолчанию - False).
|
||||
|
||||
**Метод возвращает** `bool`: True, если успешно, иначе False.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.classes.action_state import ActionState
|
||||
|
||||
state = ActionState[bool](False)
|
||||
if state.is_success():
|
||||
print("Операция прошла успешно.")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Метод `count`
|
||||
|
||||
Метод `count` позволяет получать количество сообщений в списке, потенциально применяя дополнительное условие
|
||||
фильтрации (предикат). Таким образом, можно точно подсчитать число нужных сообщений (например, ошибок, предупреждений
|
||||
или общих записей).
|
||||
|
||||
**Параметры**:
|
||||
|
||||
- **`predicate: Callable[[ActionStateMessage], bool] | None = None`**: Опциональный предикат-функция, которая получает
|
||||
каждое сообщение и решает, включать ли его в итоговый счётчик. Если предикат не указан, учитываются все сообщения.
|
||||
|
||||
**Метод возвращает** `int`: количество сообщений.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
Предположим, мы хотим посчитать количество сообщений каждого типа:
|
||||
|
||||
```python
|
||||
from anb_python_components.classes.action_state import ActionState, MessageType
|
||||
|
||||
state = ActionState[bool](False)
|
||||
state.add_info("Данные получены.")
|
||||
state.add_warning("Память почти заполнена.")
|
||||
state.add_error("Не удаётся подключиться к серверу.")
|
||||
|
||||
# Посчитать общее количество сообщений
|
||||
total_messages = state.count()
|
||||
print(total_messages) # Вывод: 3
|
||||
|
||||
# Посчитать количество ошибок
|
||||
error_count = state.count(predicate = lambda msg: msg.message_type == MessageType.ERROR)
|
||||
print(error_count) # Вывод: 1
|
||||
|
||||
# Посчитать количество информационных сообщений
|
||||
info_count = state.count(predicate = lambda msg: msg.message_type == MessageType.INFO)
|
||||
print(info_count) # Вывод: 1
|
||||
```
|
||||
|
||||
### Вспомогательные статичные методы для фильтрации сообщений
|
||||
|
||||
Эти методы предоставляют готовые предикаты для извлечения конкретных типов сообщений.
|
||||
|
||||
- `get_string_error_only() -> Callable[[ActionStateMessage], bool]`: Возвращает предикат для фильтрации только сообщений
|
||||
об ошибках.
|
||||
- `get_string_error_and_warning() -> Callable[[ActionStateMessage], bool]`: Возвращает предикат для фильтрации сообщений
|
||||
об ошибках и предупреждениях.
|
||||
- `get_string_all() -> Callable[[ActionStateMessage], bool]`: Возвращает предикат, включающий все сообщения (без
|
||||
фильтрации).
|
||||
|
||||
**Примеры использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.classes.action_state import ActionState
|
||||
|
||||
state = ActionState[bool](False)
|
||||
# Получить только ошибки
|
||||
only_errors = state.get_string_messages(predicate = ActionState.get_string_error_only(), separator = ", ")
|
||||
|
||||
# Все сообщения
|
||||
all_messages = state.get_string_messages(predicate = ActionState.get_string_all())
|
||||
```
|
||||
|
||||
## Заключение
|
||||
|
||||
Класс `ActionState` играет ключевую роль в мониторинге и управлении состояниями в приложениях, позволяя контролировать
|
||||
ход выполнения операций и оперативно реагировать на возникающие события и ошибки.
|
||||
|
||||
[На главную](../../index.md)
|
26
help/class_desc/enums/message_type.md
Normal file
26
help/class_desc/enums/message_type.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# Перечисление `MessageType`
|
||||
|
||||
Перечисление `MessageType` предназначено для классификации сообщений в программном коде. Оно помогает упорядочить типы
|
||||
уведомлений и отчетов, выводимых системой. Каждый элемент перечисления обозначает определенный статус или категорию
|
||||
сообщения, облегчая чтение и интерпретацию результатов выполнения программ.
|
||||
|
||||
## Основная информация
|
||||
|
||||
- **Имя файла**: anb_python_components\enums\message_type.py
|
||||
- **Автор**: Александр Бабаев
|
||||
- **Версия**: 1.0.0
|
||||
- **Дата начала поддержки**: с версии 1.0
|
||||
|
||||
## Элементы перечисления
|
||||
|
||||
- **SUCCESS**: Означает успешное завершение какого-то процесса или операции.
|
||||
- **INFO**: Информационные уведомления общего характера.
|
||||
- **WARNING**: Предупредительные сообщения, предупреждающие о потенциальных проблемах.
|
||||
- **ERROR**: Сигнал о произошедшей ошибке или сбое в выполнении программы.
|
||||
|
||||
## Заключение
|
||||
|
||||
Перечисление `MessageType` способствует улучшению организации логики сообщений в приложениях, обеспечивая понятное
|
||||
разделение на категории, что снижает риск путаницы и улучшает диагностику и тестирование.
|
||||
|
||||
[На главную](../../index.md)
|
92
help/class_desc/extensions/guid_extension.md
Normal file
92
help/class_desc/extensions/guid_extension.md
Normal file
@@ -0,0 +1,92 @@
|
||||
# Класс `GUIDExtension`
|
||||
|
||||
Класс `GUIDExtension` предназначен для расширения функциональности работы с глобальным уникальным идентификатором
|
||||
(GUID). Он предоставляет дополнительные методы для генерации новых GUID, проверки их валидности, парсинга из строк и
|
||||
сравнения между собой.
|
||||
|
||||
## Основная информация
|
||||
|
||||
- **Имя файла**: anb_python_components\extensions\guid_extension.py
|
||||
- **Автор**: Александр Бабаев
|
||||
- **Версия**: 1.0.0
|
||||
- **Дата начала поддержки**: с версии 1.0
|
||||
|
||||
## Атрибуты и методы класса
|
||||
|
||||
### Метод `generate`
|
||||
|
||||
Генерирует новый случайный GUID, следуя стандартам RFC 4122. Новый GUID создается с использованием криптографически
|
||||
стойких алгоритмов генерации чисел.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.extensions.guid_extension import GUIDExtension
|
||||
|
||||
new_guid = GUIDExtension.generate()
|
||||
print(new_guid) # Пример: 123e4567-e89b-12d3-a456-426655440000
|
||||
```
|
||||
|
||||
### Метод `is_equal`
|
||||
|
||||
Проверяет равенство двух GUID, поддерживая передачу обоих как строк, так и объектов типа `GUID`.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.extensions.guid_extension import GUIDExtension
|
||||
from anb_python_components.types.guid import GUID
|
||||
|
||||
guid1 = "123e4567-e89b-12d3-a456-426655440000"
|
||||
guid2 = GUID("123e4567-e89b-12d3-a456-426655440000")
|
||||
|
||||
equal = GUIDExtension.is_equal(guid1, guid2)
|
||||
print(equal) # True
|
||||
```
|
||||
|
||||
### Метод `validate`
|
||||
|
||||
Проверяет, соответствует ли строка или объект правильному формату GUID.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.extensions.guid_extension import GUIDExtension
|
||||
|
||||
valid = GUIDExtension.validate("123e4567-e89b-12d3-a456-426655440000")
|
||||
print(valid) # True
|
||||
```
|
||||
|
||||
### Метод `is_invalid_or_empty`
|
||||
|
||||
Проверяет, является ли GUID недействительным или пустым.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.extensions.guid_extension import GUIDExtension
|
||||
|
||||
invalid = GUIDExtension.is_invalid_or_empty("invalid-guid")
|
||||
print(invalid) # True
|
||||
```
|
||||
|
||||
### Метод `parse`
|
||||
|
||||
Парсит строку в GUID, возвращая объект типа `GUID`. Может вернуть пустой GUID, если передано недопустимое значение.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.extensions.guid_extension import GUIDExtension
|
||||
|
||||
parsed_guid = GUIDExtension.parse("123e4567-e89b-12d3-a456-426655440000")
|
||||
print(parsed_guid) # 123e4567-e89b-12d3-a456-426655440000
|
||||
```
|
||||
|
||||
## Заключение
|
||||
|
||||
Класс `GUIDExtension` позволяет создать надежную систему работы с GUID в Python-проектах, облегчая генерацию, проверку и
|
||||
сравнение идентификаторов. Благодаря этому обеспечивается дополнительная защита от возможных проблем с передачей
|
||||
некорректных данных.
|
||||
|
||||
[На главную](../../index.md)
|
55
help/class_desc/models/action_state_message.md
Normal file
55
help/class_desc/models/action_state_message.md
Normal file
@@ -0,0 +1,55 @@
|
||||
# Класс модели `ActionStateMessage`
|
||||
|
||||
Модель `ActionStateMessage` предназначена для формирования сообщений о состоянии выполненных действий в рамках проекта.
|
||||
Она содержит основную информацию о результате выполненного действия, включая тип сообщения, текстовое описание и флаги (
|
||||
мета-данные).
|
||||
|
||||
## Основная информация
|
||||
|
||||
- **Имя файла**: anb_python_components\models\action_state_message.py
|
||||
- **Автор**: Александр Бабаев
|
||||
- **Версия**: 1.0.0
|
||||
- **Дата начала поддержки**: с версии 1.0
|
||||
|
||||
## Атрибуты и конструктор
|
||||
|
||||
### Конструктор (`__init__`)
|
||||
|
||||
Принимает три необязательных параметра:
|
||||
|
||||
- **`message_type`**: Тип сообщения, использующий перечисление `MessageType` (по умолчанию `INFO`).
|
||||
- **`message`**: Сам текст сообщения (по умолчанию пустая строка).
|
||||
- **`flags`**: Дополнительные метаданные или признаки сообщения (по умолчанию пустой словарь).
|
||||
|
||||
**Пример использования конструктора**:
|
||||
|
||||
```python
|
||||
from anb_python_components.models.action_state_message import ActionStateMessage, MessageType
|
||||
|
||||
state_message = ActionStateMessage(MessageType.SUCCESS, "Действие выполнено успешно.", {"has_errors": False})
|
||||
```
|
||||
|
||||
## Пример полного использования
|
||||
|
||||
Вот пример использования класса `ActionStateMessage`:
|
||||
|
||||
```python
|
||||
from anb_python_components.models.action_state_message import ActionStateMessage, MessageType
|
||||
|
||||
# Создание сообщения успешного действия
|
||||
success_message = ActionStateMessage(MessageType.SUCCESS, "Операция завершилась успешно.")
|
||||
|
||||
# Создание сообщения с дополнительной информацией
|
||||
info_message = ActionStateMessage(MessageType.INFO, "Начало обработки данных.", {"in_progress": False})
|
||||
|
||||
# Печать сообщений
|
||||
print(success_message.message) # Операция завершилась успешно.
|
||||
print(info_message.message) # Начало обработки данных.
|
||||
```
|
||||
|
||||
## Заключение
|
||||
|
||||
Модель `ActionStateMessage` полезна для унификации способов оповещения пользователей или администратора о ходе
|
||||
выполнения тех или иных процессов. Четкая структура сообщений облегчает чтение и дальнейшее развитие приложения.
|
||||
|
||||
[На главную](../../index.md)
|
67
help/class_desc/types/guid.md
Normal file
67
help/class_desc/types/guid.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# Класс `GUID`
|
||||
|
||||
Класс `GUID` представляет реализацию уникального глобального идентификатора (Global Unique Identifier), широко
|
||||
применяемого в разработке программного обеспечения для уникальной идентификации сущностей. Данный класс добавляет
|
||||
дополнительную безопасность и контроль правильности передачи и обработки уникальных идентификаторов.
|
||||
|
||||
## Основная информация
|
||||
|
||||
- **Имя файла**: anb_python_components\types\guid.py
|
||||
- **Автор**: Александр Бабаев
|
||||
- **Версия**: 1.0.0
|
||||
- **Дата начала поддержки**: с версии 1.0
|
||||
|
||||
## Атрибуты и методы класса
|
||||
|
||||
### Свойства и конструкторы
|
||||
|
||||
- **Атрибут `EMPTY`**: Представляет пустое значение GUID (стандартное значение для незаданных GUID).
|
||||
- **Конструктор (`__init__`)**: Осуществляет создание нового экземпляра GUID, принимает либо строку, либо другой
|
||||
экземпляр GUID и проверяет правильность передаваемых данных.
|
||||
|
||||
### Специальные методы
|
||||
|
||||
- **Метод `__str__`**: Предоставляет текстовое представление текущего GUID.
|
||||
- **Метод `__eq__`**: Определяет правило сравнения двух GUID друг с другом.
|
||||
|
||||
### Вспомогательные методы
|
||||
|
||||
- **Метод `validate_str`**: Проверяет строку на соответствие стандартному формату GUID (регулярные выражения
|
||||
используются для проверки синтаксиса).
|
||||
|
||||
## Исключения
|
||||
|
||||
- **Ошибка `WrongTypeException`**: Генератор исключений срабатывает при передаче неверного типа данных или нарушении
|
||||
формата GUID.
|
||||
|
||||
## Пример использования
|
||||
|
||||
Создание экземпляра GUID:
|
||||
|
||||
```python
|
||||
from anb_python_components.types.guid import GUID
|
||||
|
||||
my_guid = GUID("123e4567-e89b-12d3-a456-426655440000")
|
||||
print(my_guid) # 123e4567-e89b-12d3-a456-426655440000
|
||||
```
|
||||
|
||||
Сравнение двух GUID:
|
||||
|
||||
```python
|
||||
from anb_python_components.types.guid import GUID
|
||||
|
||||
first_guid = GUID("123e4567-e89b-12d3-a456-426655440000")
|
||||
second_guid = GUID("00000000-0000-0000-0000-000000000000")
|
||||
|
||||
if first_guid == second_guid:
|
||||
print("GUID совпадают")
|
||||
else:
|
||||
print("GUID различаются")
|
||||
```
|
||||
|
||||
## Заключение
|
||||
|
||||
Класс `GUID` позволяет грамотно управлять уникальным идентификатором, обеспечивая автоматическое преобразование и
|
||||
проверку корректности данных. Такой подход минимизирует вероятность ошибок и улучшает надежность приложения.
|
||||
|
||||
[На главную](../../index.md)
|
165
help/class_desc/types/two_dim_size.md
Normal file
165
help/class_desc/types/two_dim_size.md
Normal file
@@ -0,0 +1,165 @@
|
||||
# Класс `TwoDimSize`
|
||||
|
||||
Класс `TwoDimSize` предназначен для работы с двумерными размерами, такими как ширина и высота. Он предоставляет ряд
|
||||
инструментов для эффективного управления и обработки размеров, включая ограничение минимальных/максимальных границ,
|
||||
арифметические операции и удобное представление в строковом виде.
|
||||
|
||||
## Основная информация
|
||||
|
||||
- **Имя файла**: anb_python_components\types\two_dim_size.py
|
||||
- **Автор**: Александр Бабаев
|
||||
- **Версия**: 1.0.0
|
||||
- **Дата начала поддержки**: с версии 1.0
|
||||
|
||||
## Атрибуты и методы класса
|
||||
|
||||
### Конструктор (`__init__`)
|
||||
|
||||
Принимает начальные значения ширины и высоты, а также минимальные и максимальные границы, если требуется ограничить
|
||||
диапазон значений.
|
||||
|
||||
**Параметры**:
|
||||
|
||||
- `width: int`: Начальная ширина (по умолчанию 0).
|
||||
- `height: int`: Начальная высота (по умолчанию 0).
|
||||
- `min_width: int | None = 0`, `min_height: int | None = 0`: Минимальное значение ширины и высоты (по умолчанию, `0`).
|
||||
При значении `None` считаются неограниченными.
|
||||
- `max_width: int | None = None`, `max_height: int | None = None`: Максимальное значение ширины и высоты (по умолчанию,
|
||||
`None`). При значении `None` считаются неограниченными.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.types.two_dim_size import TwoDimSize
|
||||
|
||||
size = TwoDimSize(800, 600, min_width = 400, max_width = 1200)
|
||||
```
|
||||
|
||||
### Свойства класса
|
||||
|
||||
Свойства позволяют гибко устанавливать и считывать значения ширины и высоты, автоматически соблюдая введённые
|
||||
ограничения. Рассмотрим подробнее каждый из них.
|
||||
|
||||
#### Свойство `width`
|
||||
|
||||
Управляет значением ширины, выполняя необходимую проверку ограничений при установке.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.types.two_dim_size import TwoDimSize
|
||||
|
||||
size = TwoDimSize(min_width = 400)
|
||||
size.width = 500
|
||||
print(size.width) # Вывод: 500
|
||||
size.width = 300
|
||||
print(size.width) # Вывод: 400
|
||||
```
|
||||
|
||||
#### Свойство `height`
|
||||
|
||||
Аналогично свойствам ширины, управляет значением высоты.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.types.two_dim_size import TwoDimSize
|
||||
|
||||
size = TwoDimSize(max_height = 1000)
|
||||
size.height = 200
|
||||
print(size.height) # Вывод: 200
|
||||
size.height = 1200
|
||||
print(size.height) # Вывод: 1000
|
||||
```
|
||||
|
||||
#### Свойства границ (`min_width`, `max_width`, `min_height`, `max_height`)
|
||||
|
||||
Эти свойства отвечают за изменение граничных значений ширины и высоты, контролируя их согласованность изменений
|
||||
(например, максимальная граница не должна быть меньше минимальной).
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.types.two_dim_size import TwoDimSize
|
||||
|
||||
size = TwoDimSize()
|
||||
|
||||
# И тут мы вспомнили (а как обычно и бывает!), что забыли дать ограничения! =)
|
||||
# Установим минимальную ширину
|
||||
size.min_width = 500
|
||||
# и максимальную высоту
|
||||
size.max_height = 1000
|
||||
|
||||
# Включаем внутреннего Пушного и запускаем рубрику "Эксперименты"
|
||||
size.height = 600
|
||||
size.width = 600
|
||||
print(str(size)) # Вывод: 600:600
|
||||
size.height = 900
|
||||
size.width = 100
|
||||
print(str(size)) # Вывод: 500:900
|
||||
# Мы в этом примере задали число, меньшее минимальной ширины, вот она и вернула минимальную.
|
||||
# Так же будет, если мы превысим максимальную высоту
|
||||
size.height = 1200
|
||||
size.width = 600
|
||||
print(str(size)) # Вывод: 600:1000
|
||||
# И даже если не соблюдём оба
|
||||
size.height = 100
|
||||
size.width = 1200
|
||||
print(str(size)) # Вывод: 500:1000
|
||||
```
|
||||
|
||||
### Ключевые методы
|
||||
|
||||
#### Метод `as_str`
|
||||
|
||||
Форматирует объект в строку вида `"ширина:высота"`, используя разделитель (по умолчанию двоеточие).
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.types.two_dim_size import TwoDimSize
|
||||
|
||||
size = TwoDimSize(800, 600)
|
||||
print(size.as_str()) # Вывод: 800:600
|
||||
```
|
||||
|
||||
#### Метод `as_tuple`
|
||||
|
||||
Возвращает размеры в виде кортежа `(ширина, высота)`.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.types.two_dim_size import TwoDimSize
|
||||
|
||||
size = TwoDimSize(800, 600)
|
||||
print(size.as_tuple()) # Вывод: (800, 600)
|
||||
```
|
||||
|
||||
#### Метод `parse`
|
||||
|
||||
Анализирует строку вида `"ширина:высота"` и создает объект `TwoDimSize` из нее.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.types.two_dim_size import TwoDimSize
|
||||
|
||||
size = TwoDimSize.parse("1920:1080")
|
||||
print(size.width) # 1920
|
||||
print(size.height) # 1080
|
||||
```
|
||||
|
||||
### Магические методы
|
||||
|
||||
- `__str__`, `__repr__`: Отвечают за отображение объекта в строковом виде.
|
||||
- `__eq__`: Определяет равенство двух объектов по ширине и высоте.
|
||||
- `__hash__`: Позволяет использовать объект в структурах вроде множества или словаря.
|
||||
- `__add__`, `__mul__`: Поддерживают сложение и умножение размеров соответственно.
|
||||
|
||||
## Заключение
|
||||
|
||||
Класс `TwoDimSize` идеально подходит для работы с размерами графических объектов, элементами UI и подобными ситуациями,
|
||||
требующими четкого контроля за пределами размеров и легкости манипуляций.
|
||||
|
||||
[На главную](../../index.md)
|
@@ -8,11 +8,18 @@
|
||||
|
||||
## Описание интерфейсов, классов и перечислений:
|
||||
|
||||
### Классы
|
||||
|
||||
**Расположение модулей**: anb_python_components\classes\*
|
||||
|
||||
- [класс `ActionState`](class_desc/classes/action_state.md)
|
||||
|
||||
### Перечисления
|
||||
|
||||
**Расположение модулей**: anb_python_components\enums\*
|
||||
|
||||
- [перечисление `NotBoolAction`](class_desc/enums/not_bool_action.md)
|
||||
- [перечисление `MessageType`](class_desc/enums/message_type.md)
|
||||
|
||||
### Исключения
|
||||
|
||||
@@ -28,4 +35,18 @@
|
||||
- [класс `StringExtension`](class_desc/extensions/string_extension.md)
|
||||
- [класс `BoolExtension`](class_desc/extensions/bool_extension.md)
|
||||
- [класс `TypeExtension`](class_desc/extensions/type_extension.md)
|
||||
- [класс `ArrayExtension`](class_desc/extensions/array_extension.md)
|
||||
- [класс `ArrayExtension`](class_desc/extensions/array_extension.md)
|
||||
- [класс `GUIDExtension`](class_desc/extensions/guid_extension.md)
|
||||
|
||||
### Типы
|
||||
|
||||
**Расположение модулей**: anb_python_components\types\*
|
||||
|
||||
- [тип `GUID`](class_desc/types/guid.md)
|
||||
- [тип `TwoDimSize`](class_desc/types/two_dim_size.md)
|
||||
|
||||
### Модели
|
||||
|
||||
**Расположение модулей**: anb_python_components\models\*
|
||||
|
||||
- [модель `ActionStateMessage`](class_desc/models/action_state_message.md)
|
Reference in New Issue
Block a user