Skip to content
Snippets Groups Projects
Verified Commit 4882f9cb authored by Newbyte's avatar Newbyte :snowflake: Committed by Newbyte
Browse files

pmb.core.package_metadata: Introduce

parent 96f92530
No related branches found
No related tags found
No related merge requests found
# Copyright 2024 Stefan Hansson
# SPDX-License-Identifier: GPL-3.0-or-later
from dataclasses import dataclass
from typing import Any
import pmb.build._package
from pmb.core.apkindex_block import ApkindexBlock
from pmb.core.context import get_context
@dataclass
class PackageMetadata:
# This can't be list[Arch] because it can have values like "noarch" and "!armhf"
arch: list[str]
depends: list[str]
pkgname: str
provides: list[str]
version: str
@staticmethod
def from_apkindex_block(apkindex_block: ApkindexBlock) -> "PackageMetadata":
return PackageMetadata(
arch=[str(apkindex_block.arch)],
depends=apkindex_block.depends or [],
pkgname=apkindex_block.pkgname,
provides=apkindex_block.provides,
version=apkindex_block.version,
)
@staticmethod
def from_pmaport(pmaport: dict[str, Any]) -> "PackageMetadata":
pmaport_arches = pmaport["arch"]
pmaport_depends = pmb.build._package.get_depends(get_context(), pmaport)
pmaport_pkgname = pmaport["pkgname"]
pmaport_provides = pmaport["provides"]
pmaport_version = pmaport["pkgver"] + "-r" + pmaport["pkgrel"]
return PackageMetadata(
arch=pmaport_arches,
depends=pmaport_depends or [],
pkgname=pmaport_pkgname,
provides=pmaport_provides,
version=pmaport_version,
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment