mirror of
https://github.com/unmojang/meta.git
synced 2025-10-02 15:39:58 -04:00
47 lines
1.1 KiB
Python
47 lines
1.1 KiB
Python
from datetime import datetime
|
|
from typing import Optional, List
|
|
|
|
from pydantic import Field
|
|
|
|
from meta.model import Dependency, MetaBase, Versioned, MetaVersion
|
|
|
|
|
|
class MetaVersionIndexEntry(MetaBase):
|
|
version: str
|
|
type: Optional[str]
|
|
release_time: datetime = Field(alias="releaseTime")
|
|
requires: Optional[List[Dependency]]
|
|
conflicts: Optional[List[Dependency]]
|
|
recommended: Optional[bool]
|
|
volatile: Optional[bool]
|
|
sha256: str
|
|
|
|
@classmethod
|
|
def from_meta_version(cls, v: MetaVersion, recommended: bool, sha256: str):
|
|
return cls(
|
|
version=v.version,
|
|
type=v.type,
|
|
release_time=v.release_time,
|
|
requires=v.requires,
|
|
conflicts=v.conflicts,
|
|
recommended=recommended,
|
|
volatile=v.volatile,
|
|
sha256=sha256,
|
|
)
|
|
|
|
|
|
class MetaVersionIndex(Versioned):
|
|
name: str
|
|
uid: str
|
|
versions: List[MetaVersionIndexEntry] = Field([])
|
|
|
|
|
|
class MetaPackageIndexEntry(MetaBase):
|
|
name: str
|
|
uid: str
|
|
sha256: str
|
|
|
|
|
|
class MetaPackageIndex(Versioned):
|
|
packages: List[MetaPackageIndexEntry] = Field([])
|