Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/package/npm/loader.py
Show All 22 Lines | from swh.model.model import ( | ||||
MetadataAuthority, | MetadataAuthority, | ||||
MetadataAuthorityType, | MetadataAuthorityType, | ||||
Person, | Person, | ||||
Revision, | Revision, | ||||
RevisionType, | RevisionType, | ||||
Sha1Git, | Sha1Git, | ||||
TimestampWithTimezone, | TimestampWithTimezone, | ||||
) | ) | ||||
from swh.storage.interface import StorageInterface | |||||
logger = logging.getLogger(__name__) | logger = logging.getLogger(__name__) | ||||
EMPTY_PERSON = Person(fullname=b"", name=None, email=None) | EMPTY_PERSON = Person(fullname=b"", name=None, email=None) | ||||
@attr.s | @attr.s | ||||
▲ Show 20 Lines • Show All 42 Lines • ▼ Show 20 Lines | |||||
class NpmLoader(PackageLoader[NpmPackageInfo]): | class NpmLoader(PackageLoader[NpmPackageInfo]): | ||||
"""Load npm origin's artifact releases into swh archive. | """Load npm origin's artifact releases into swh archive. | ||||
""" | """ | ||||
visit_type = "npm" | visit_type = "npm" | ||||
def __init__(self, url: str): | def __init__( | ||||
self, | |||||
storage: StorageInterface, | |||||
url: str, | |||||
max_content_size: Optional[int] = None, | |||||
): | |||||
"""Constructor | """Constructor | ||||
Args | Args | ||||
str: origin url (e.g. https://www.npmjs.com/package/<package-name>) | str: origin url (e.g. https://www.npmjs.com/package/<package-name>) | ||||
""" | """ | ||||
super().__init__(url=url) | super().__init__(storage=storage, url=url, max_content_size=max_content_size) | ||||
package_name = url.split("https://www.npmjs.com/package/")[1] | package_name = url.split("https://www.npmjs.com/package/")[1] | ||||
safe_name = quote(package_name, safe="") | safe_name = quote(package_name, safe="") | ||||
self.provider_url = f"https://replicate.npmjs.com/{safe_name}/" | self.provider_url = f"https://replicate.npmjs.com/{safe_name}/" | ||||
self._info: Dict[str, Any] = {} | self._info: Dict[str, Any] = {} | ||||
self._versions = None | self._versions = None | ||||
@cached_method | @cached_method | ||||
def _raw_info(self) -> bytes: | def _raw_info(self) -> bytes: | ||||
▲ Show 20 Lines • Show All 236 Lines • Show Last 20 Lines |