diff --git a/PKG-INFO b/PKG-INFO index 064c9cb1781d73092a8aa3530672edb7de9aecf1..e64ece76688e735e99bfc5f05278259220baf817 100644 --- a/PKG-INFO +++ b/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: swh.model -Version: 0.6.0 +Version: 0.6.1 Summary: Software Heritage data model Home-page: https://forge.softwareheritage.org/diffusion/DMOD/ Author: Software Heritage developers diff --git a/swh.model.egg-info/PKG-INFO b/swh.model.egg-info/PKG-INFO index 064c9cb1781d73092a8aa3530672edb7de9aecf1..e64ece76688e735e99bfc5f05278259220baf817 100644 --- a/swh.model.egg-info/PKG-INFO +++ b/swh.model.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: swh.model -Version: 0.6.0 +Version: 0.6.1 Summary: Software Heritage data model Home-page: https://forge.softwareheritage.org/diffusion/DMOD/ Author: Software Heritage developers diff --git a/swh/model/collections.py b/swh/model/collections.py index 38d28a329de2e02c5077da83a20001a4b38513c7..5fd8f68221564efab463ce694bf972cc39ca52c6 100644 --- a/swh/model/collections.py +++ b/swh/model/collections.py @@ -26,6 +26,9 @@ class ImmutableDict(Mapping, Generic[KT, VT]): else: self.data = tuple(data) + def __repr__(self): + return f"ImmutableDict({dict(self.data)!r})" + def __getitem__(self, key): for (k, v) in self.data: if k == key: diff --git a/swh/model/merkle.py b/swh/model/merkle.py index bddaa3c7b8b4ca57cfa8bc70e0c5a9f56a73ed7d..0311d9d19dd02ab5cf68378d95a7913ff4b226d2 100644 --- a/swh/model/merkle.py +++ b/swh/model/merkle.py @@ -6,7 +6,7 @@ """Merkle tree data structure""" import abc -import collections +from collections.abc import Mapping from typing import Iterator, List, Set @@ -66,7 +66,7 @@ def deep_update(left, right): """ for key, rvalue in right.items(): - if isinstance(rvalue, collections.Mapping): + if isinstance(rvalue, Mapping): new_lvalue = deep_update(left.get(key, {}), rvalue) left[key] = new_lvalue else: diff --git a/swh/model/model.py b/swh/model/model.py index ff11f1cb2e72cd74dacd6cac54c8b30a131f1595..dd73bf99b6a8f52aca76cee43028f1ebf4e9d424 100644 --- a/swh/model/model.py +++ b/swh/model/model.py @@ -736,6 +736,8 @@ class MetadataAuthority(BaseModel): """Represents an entity that provides metadata about an origin or software artifact.""" + object_type: Final = "metadata_authority" + type = attr.ib(type=MetadataAuthorityType, validator=type_validator()) url = attr.ib(type=str, validator=type_validator()) metadata = attr.ib( @@ -762,6 +764,8 @@ class MetadataFetcher(BaseModel): """Represents a software component used to fetch metadata from a metadata authority, and ingest them into the Software Heritage archive.""" + object_type: Final = "metadata_fetcher" + name = attr.ib(type=str, validator=type_validator()) version = attr.ib(type=str, validator=type_validator()) metadata = attr.ib( @@ -791,6 +795,8 @@ class MetadataTargetType(Enum): @attr.s(frozen=True) class RawExtrinsicMetadata(BaseModel): + object_type: Final = "raw_extrinsic_metadata" + # target object type = attr.ib(type=MetadataTargetType, validator=type_validator()) id = attr.ib(type=Union[str, SWHID], validator=type_validator()) diff --git a/swh/model/tests/test_model.py b/swh/model/tests/test_model.py index b6aa82cb6d081221499ea9e3ad639f28b167c7b8..eb226e5398064d06238883d7beea191a56d78e28 100644 --- a/swh/model/tests/test_model.py +++ b/swh/model/tests/test_model.py @@ -456,7 +456,7 @@ def test_revision_extra_headers_with_headers(): extra_headers = ( (b"header1", b"value1"), (b"header2", b"42"), - (b"header3", b"should I?\u0000"), + (b"header3", b"should I?\x00"), (b"header1", b"again"), ) @@ -479,7 +479,7 @@ def test_revision_extra_headers_in_metadata(): extra_headers = ( (b"header1", b"value1"), (b"header2", b"42"), - (b"header3", b"should I?\u0000"), + (b"header3", b"should I?\x00"), (b"header1", b"again"), ) @@ -501,7 +501,7 @@ def test_revision_extra_headers_as_lists(): extra_headers = ( (b"header1", b"value1"), (b"header2", b"42"), - (b"header3", b"should I?\u0000"), + (b"header3", b"should I?\x00"), (b"header1", b"again"), ) diff --git a/version.txt b/version.txt index a6215ed51cd8a25907e996622351c405808325d5..6ebf82ac7c32ff364a1005eda5ee5dc50229dde2 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -v0.6.0-0-g3b2d72c \ No newline at end of file +v0.6.1-0-g08632e7 \ No newline at end of file