Changeset View
Changeset View
Standalone View
Standalone View
swh/model/model.py
Show First 20 Lines • Show All 1,127 Lines • ▼ Show 20 Lines | |||||
@attr.s(frozen=True, slots=True) | @attr.s(frozen=True, slots=True) | ||||
class ExtID(HashableObject, BaseModel): | class ExtID(HashableObject, BaseModel): | ||||
object_type: Final = "extid" | object_type: Final = "extid" | ||||
extid_type = attr.ib(type=str, validator=type_validator()) | extid_type = attr.ib(type=str, validator=type_validator()) | ||||
extid = attr.ib(type=bytes, validator=type_validator()) | extid = attr.ib(type=bytes, validator=type_validator()) | ||||
target = attr.ib(type=CoreSWHID, validator=type_validator()) | target = attr.ib(type=CoreSWHID, validator=type_validator()) | ||||
extid_version = attr.ib(type=int, validator=type_validator(), default=0) | |||||
id = attr.ib(type=Sha1Git, validator=type_validator(), default=b"") | id = attr.ib(type=Sha1Git, validator=type_validator(), default=b"") | ||||
@classmethod | @classmethod | ||||
def from_dict(cls, d): | def from_dict(cls, d): | ||||
return cls( | return cls( | ||||
extid=d["extid"], | extid=d["extid"], | ||||
extid_type=d["extid_type"], | extid_type=d["extid_type"], | ||||
target=CoreSWHID.from_string(d["target"]), | target=CoreSWHID.from_string(d["target"]), | ||||
extid_version=d.get("extid_version", 0), | |||||
) | ) | ||||
def compute_hash(self) -> bytes: | def compute_hash(self) -> bytes: | ||||
return hash_to_bytes(extid_identifier(self.to_dict())) | return hash_to_bytes(extid_identifier(self.to_dict())) |