Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/package/loader.py
Show First 20 Lines • Show All 673 Lines • ▼ Show 20 Lines | ) -> None: | ||||
if not metadata_objects: | if not metadata_objects: | ||||
# If this package loader doesn't write metadata, no need to require | # If this package loader doesn't write metadata, no need to require | ||||
# an implementation for get_metadata_authority. | # an implementation for get_metadata_authority. | ||||
return | return | ||||
self._create_authorities(mo.authority for mo in metadata_objects) | self._create_authorities(mo.authority for mo in metadata_objects) | ||||
self._create_fetchers(mo.fetcher for mo in metadata_objects) | self._create_fetchers(mo.fetcher for mo in metadata_objects) | ||||
self.storage.object_metadata_add(metadata_objects) | self.storage.raw_extrinsic_metadata_add(metadata_objects) | ||||
def _create_authorities(self, authorities: Iterable[MetadataAuthority]) -> None: | def _create_authorities(self, authorities: Iterable[MetadataAuthority]) -> None: | ||||
deduplicated_authorities = { | deduplicated_authorities = { | ||||
(authority.type, authority.url): authority for authority in authorities | (authority.type, authority.url): authority for authority in authorities | ||||
} | } | ||||
if authorities: | if authorities: | ||||
self.storage.metadata_authority_add(deduplicated_authorities.values()) | self.storage.metadata_authority_add(deduplicated_authorities.values()) | ||||
def _create_fetchers(self, fetchers: Iterable[MetadataFetcher]) -> None: | def _create_fetchers(self, fetchers: Iterable[MetadataFetcher]) -> None: | ||||
deduplicated_fetchers = { | deduplicated_fetchers = { | ||||
(fetcher.name, fetcher.version): fetcher for fetcher in fetchers | (fetcher.name, fetcher.version): fetcher for fetcher in fetchers | ||||
} | } | ||||
if fetchers: | if fetchers: | ||||
self.storage.metadata_fetcher_add(deduplicated_fetchers.values()) | self.storage.metadata_fetcher_add(deduplicated_fetchers.values()) |