This commit is contained in:
2025-10-07 23:42:18 +03:00
parent b20f18788d
commit c2ac2325ca
9 changed files with 195 additions and 80 deletions

View File

@@ -1,4 +1,4 @@
# Класс `GUID`
# Тип `GUID`
Класс `GUID` представляет реализацию уникального глобального идентификатора (Global Unique Identifier), широко
применяемого в разработке программного обеспечения для уникальной идентификации сущностей. Данный класс добавляет

View File

@@ -1,4 +1,4 @@
# Класс `TwoDimSize`
# Тип `TwoDimSize`
Класс `TwoDimSize` предназначен для работы с двумерными размерами, такими как ширина и высота. Он предоставляет ряд
инструментов для эффективного управления и обработки размеров, включая ограничение минимальных/максимальных границ,

View File

@@ -0,0 +1,108 @@
# Тип `VersionInfo`
Класс `VersionInfo` предназначен для эффективной работы с версиями программного обеспечения, обеспечивая гибкую
структуру и удобные механизмы для представления, сопоставления и форматирования версий.
## Основная информация
- **Имя файла**: anb_python_components\types\version_info.py
- **Автор**: Александр Бабаев
- **Версия**: 1.0.0
- **Дата начала поддержки**: с версии 1.0
## Атрибуты и методы класса
### Конструктор (`__init__`)
Конструктор принимает обязательные и необязательные параметры для детализации версии:
- `major: int`: Майор-версия (обязательно).
- `minor: int`: Минор-версия (обязательно).
- `release: int`: Релиз-версия (обязательно).
- `build: int`: Номер билда (обязательно).
- `stage: str = ''`: Текущая стадия жизненного цикла продукта (например, альфа, бета, RC).
- `stage_number: int = 0`: Номер этапа развития (по умолчанию 0).
Пример использования:
```python
from anb_python_components.types.version_info import VersionInfo
version = VersionInfo(1, 2, 3, 4, "beta", 1)
```
### Свойства
- `major: int`, `minor: int`, `release: int`, `build: int`: Числовые составляющие версии, доступные как для чтения, так
и для записи.
- `stage: str`: Строковое свойство, характеризующее этап разработки (альфа, бета и т.п.).
- `stage_number: int`: Целевое свойство, отражающее номер стадии.
### Основные методы
#### Метод `to_string`
Преобразует версию в строку с использованием шаблона, указанного в параметрах. По умолчанию выводит стандартный формат.
**Пример использования**:
```python
from anb_python_components.types.version_info import VersionInfo
version = VersionInfo(1, 2, 3, 4, "RC", 1)
print(version.to_string()) # 1.2.3.4 RC 1
```
#### Метод `in_range`
Проверяет, попадает ли данная версия в заданный диапазон.
**Пример использования**:
```python
from anb_python_components.types.version_info import VersionInfo
current_version = VersionInfo(1, 2, 3, 4)
start_version = VersionInfo(1, 1, 0, 0)
end_version = VersionInfo(2, 0, 0, 0)
print(current_version.in_range(start = start_version, end = end_version)) # True
```
#### Метод `parse`
Разбирает строку, содержащую версию, и создаёт экземпляр класса `VersionInfo`.
**Пример использования**:
```python
from anb_python_components.types.version_info import VersionInfo
version = VersionInfo.parse("1.2.3 beta 1")
print(version.major) # 1
print(version.stage) # beta
```
### Магические методы
- `__str__`, `__repr__`: Форматируют объект в удобочитаемую строку.
- `__eq__`, `__ne__`, `__lt__`, `__gt__`, `__le__`, `__ge__`: Реализуют операции сравнения
версий.
**Пример использования**:
```python
from anb_python_components.types.version_info import VersionInfo
ver1 = VersionInfo(1, 2, 3, 4)
ver2 = VersionInfo(1, 2, 3, 5)
print(ver1 < ver2) # True
```
## Заключение
Класс `VersionInfo` обеспечивает универсальность и простоту работы с версиями продуктов, предоставляя удобные средства
для форматирования, сравнения и парсинга версий.
[На главную](../../index.md)