Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/package/maven/loader.py
Show All 16 Lines | |||||
import requests | import requests | ||||
from typing_extensions import TypedDict | from typing_extensions import TypedDict | ||||
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, 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, | ||||
MetadataAuthorityType, | MetadataAuthorityType, | ||||
ObjectType, | ObjectType, | ||||
RawExtrinsicMetadata, | RawExtrinsicMetadata, | ||||
Release, | Release, | ||||
Sha1Git, | Sha1Git, | ||||
TimestampWithTimezone, | TimestampWithTimezone, | ||||
▲ Show 20 Lines • Show All 47 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 = {} | |||||
try: | |||||
checksums["sha1"] = get_url_body(url + ".sha1").decode() | |||||
except requests.HTTPError: | |||||
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"], | ||||
directory_extrinsic_metadata=[ | directory_extrinsic_metadata=[ | ||||
RawExtrinsicMetadataCore( | RawExtrinsicMetadataCore( | ||||
format="maven-json", | format="maven-json", | ||||
metadata=json.dumps(a_metadata).encode(), | metadata=json.dumps(a_metadata).encode(), | ||||
), | ), | ||||
], | ], | ||||
checksums=checksums, | |||||
) | ) | ||||
class MavenLoader(PackageLoader[MavenPackageInfo]): | class MavenLoader(PackageLoader[MavenPackageInfo]): | ||||
"""Load source code jar origin's artifact files into swh archive""" | """Load source code jar origin's artifact files into swh archive""" | ||||
visit_type = "maven" | visit_type = "maven" | ||||
▲ Show 20 Lines • Show All 96 Lines • Show Last 20 Lines |