добавила класс Package
This commit is contained in:
39
mypkg/models/package.py
Normal file
39
mypkg/models/package.py
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user