Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/package/maven/loader.py
Show All 11 Lines | |||||
import string | import string | ||||
from typing import Any, Iterator, List, Optional, Sequence, Tuple | from typing import Any, Iterator, List, Optional, Sequence, Tuple | ||||
import attr | import attr | ||||
import iso8601 | import iso8601 | ||||
import requests | import requests | ||||
from typing_extensions import TypedDict | from typing_extensions import TypedDict | ||||
from swh.loader.exception import NotFound | |||||
from swh.loader.package.loader import ( | from swh.loader.package.loader import ( | ||||
BasePackageInfo, | BasePackageInfo, | ||||
PackageLoader, | PackageLoader, | ||||
RawExtrinsicMetadataCore, | RawExtrinsicMetadataCore, | ||||
) | ) | ||||
from swh.loader.package.utils import EMPTY_AUTHOR, get_url_body, release_name | from swh.loader.package.utils import EMPTY_AUTHOR, get_url_body, release_name | ||||
from swh.model.model import ( | from swh.model.model import ( | ||||
MetadataAuthority, | MetadataAuthority, | ||||
▲ Show 20 Lines • Show All 54 Lines • ▼ Show 20 Lines | class MavenPackageInfo(BasePackageInfo): | ||||
EXTID_TYPE = "maven-jar" | EXTID_TYPE = "maven-jar" | ||||
EXTID_VERSION = 0 | EXTID_VERSION = 0 | ||||
@classmethod | @classmethod | ||||
def from_metadata(cls, a_metadata: ArtifactDict) -> MavenPackageInfo: | def from_metadata(cls, a_metadata: ArtifactDict) -> MavenPackageInfo: | ||||
time = iso8601.parse_date(a_metadata["time"]).astimezone(tz=timezone.utc) | time = iso8601.parse_date(a_metadata["time"]).astimezone(tz=timezone.utc) | ||||
url = a_metadata["url"] | url = a_metadata["url"] | ||||
checksums = {} | checksums = {} | ||||
for algo in ("sha1", "md5"): | |||||
try: | try: | ||||
checksums["sha1"] = get_url_body(url + ".sha1").decode() | checksums[algo] = get_url_body(url + f".{algo}").decode() | ||||
except requests.HTTPError: | break | ||||
except (requests.HTTPError, NotFound): | |||||
pass | pass | ||||
return cls( | return cls( | ||||
url=url, | url=url, | ||||
filename=a_metadata.get("filename") or path.split(url)[-1], | filename=a_metadata.get("filename") or path.split(url)[-1], | ||||
time=time, | time=time, | ||||
gid=a_metadata["gid"], | gid=a_metadata["gid"], | ||||
aid=a_metadata["aid"], | aid=a_metadata["aid"], | ||||
version=a_metadata["version"], | version=a_metadata["version"], | ||||
base_url=a_metadata["base_url"], | base_url=a_metadata["base_url"], | ||||
▲ Show 20 Lines • Show All 111 Lines • Show Last 20 Lines |