Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/package/pypi/loader.py
Show All 12 Lines | |||||
from pkginfo import UnpackedSDist | from pkginfo import UnpackedSDist | ||||
from swh.loader.package.loader import ( | from swh.loader.package.loader import ( | ||||
BasePackageInfo, | BasePackageInfo, | ||||
PackageLoader, | PackageLoader, | ||||
PartialExtID, | PartialExtID, | ||||
RawExtrinsicMetadataCore, | RawExtrinsicMetadataCore, | ||||
) | ) | ||||
from swh.loader.package.utils import EMPTY_AUTHOR, api_info, cached_method, release_name | from swh.loader.package.utils import ( | ||||
EMPTY_AUTHOR, | |||||
cached_method, | |||||
get_url_body, | |||||
release_name, | |||||
) | |||||
from swh.model.hashutil import hash_to_bytes | from swh.model.hashutil import hash_to_bytes | ||||
from swh.model.model import ( | from swh.model.model import ( | ||||
MetadataAuthority, | MetadataAuthority, | ||||
MetadataAuthorityType, | MetadataAuthorityType, | ||||
ObjectType, | ObjectType, | ||||
Person, | Person, | ||||
Release, | Release, | ||||
Sha1Git, | Sha1Git, | ||||
▲ Show 20 Lines • Show All 48 Lines • ▼ Show 20 Lines | class PyPILoader(PackageLoader[PyPIPackageInfo]): | ||||
visit_type = "pypi" | visit_type = "pypi" | ||||
def __init__(self, storage: StorageInterface, url: str, **kwargs): | def __init__(self, storage: StorageInterface, url: str, **kwargs): | ||||
super().__init__(storage=storage, url=url, **kwargs) | super().__init__(storage=storage, url=url, **kwargs) | ||||
self.provider_url = pypi_api_url(self.origin.url) | self.provider_url = pypi_api_url(self.origin.url) | ||||
@cached_method | @cached_method | ||||
def _raw_info(self) -> bytes: | def _raw_info(self) -> bytes: | ||||
return api_info(self.provider_url) | return get_url_body(self.provider_url) | ||||
@cached_method | @cached_method | ||||
def info(self) -> Dict: | def info(self) -> Dict: | ||||
"""Return the project metadata information (fetched from pypi registry)""" | """Return the project metadata information (fetched from pypi registry)""" | ||||
return json.loads(self._raw_info()) | return json.loads(self._raw_info()) | ||||
def get_versions(self) -> Sequence[str]: | def get_versions(self) -> Sequence[str]: | ||||
return self.info()["releases"].keys() | return self.info()["releases"].keys() | ||||
▲ Show 20 Lines • Show All 149 Lines • Show Last 20 Lines |