Changeset View
Changeset View
Standalone View
Standalone View
swh/model/model.py
Show First 20 Lines • Show All 648 Lines • ▼ Show 20 Lines | status = attr.ib( | ||||
type=str, | type=str, | ||||
validator=attr.validators.in_(['absent'])) | validator=attr.validators.in_(['absent'])) | ||||
reason = attr.ib( | reason = attr.ib( | ||||
type=Optional[str], | type=Optional[str], | ||||
validator=type_validator(), | validator=type_validator(), | ||||
default=None) | default=None) | ||||
origin = attr.ib( | origin = attr.ib( | ||||
type=Optional[Origin], | type=Optional[str], | ||||
validator=type_validator(), | validator=type_validator(), | ||||
default=None) | default=None) | ||||
ctime = attr.ib( | ctime = attr.ib( | ||||
type=Optional[datetime.datetime], | type=Optional[datetime.datetime], | ||||
validator=type_validator(), | validator=type_validator(), | ||||
default=None) | default=None) | ||||
Show All 29 Lines | def from_data(cls, data, reason: str) -> 'SkippedContent': | ||||
d = cls._hash_data(data) | d = cls._hash_data(data) | ||||
del d['data'] | del d['data'] | ||||
d['status'] = 'absent' | d['status'] = 'absent' | ||||
d['reason'] = reason | d['reason'] = reason | ||||
return cls(**d) | return cls(**d) | ||||
@classmethod | @classmethod | ||||
def from_dict(cls, d): | def from_dict(cls, d): | ||||
d2 = d | d2 = d.copy() | ||||
d = d.copy() | if d2.pop('data', None) is not None: | ||||
if d.pop('data', None) is not None: | raise ValueError('SkippedContent has no "data" attribute %r' % d) | ||||
raise ValueError('SkippedContent has no "data" attribute %r' % d2) | return super().from_dict(d2, use_subclass=False) | ||||
return super().from_dict(d, use_subclass=False) |