добавила класс Package

This commit is contained in:
2026-03-31 22:40:51 +03:00
parent a9b8f8bb60
commit 17f2a79ebd

39
mypkg/models/package.py Normal file
View File

@@ -0,0 +1,39 @@
# mypkg/models/package.py
from dataclasses import dataclass, field
from typing import List, Dict
from datetime import datetime
# Автоматически создает конструктор __init__ и другие полезные методы.
@dataclass
class Package:
"""Модель пакета - описывает, из чего состоит пакет"""
name: str # имя пакета
version: str # версия
description: str = "" # описание
maintainer: str = "" # кто поддерживает пакет
license: str = "" # лицензия
depends: List[str] = field(default_factory=list) # от чего зависит
conflicts: List[str] = field(default_factory=list) # с чем конфликтует
provides: List[str] = field(default_factory=list) # что предоставляет
files: List[Dict] = field(default_factory=list) # какие файлы устанавливает
checksum: str = "" # контрольная сумма для проверки целостности
installed: bool = False # установлен ли пакет сейчас
install_date: datetime = None # когда установили
# Возвращает имя с версией.
def full_name(self) -> str:
return f"{self.name}-{self.version}"
# Превращает объект Package в словарь, который можно сохранить в JSON.
def to_dict(self) -> dict:
return {
'name': self.name,
'version': self.version,
'description': self.description,
'depends': self.depends,
'conflicts': self.conflicts,
'files': self.files,
'install_date': self.install_date.isoformat() if self.install_date else None
}