|
|
@@ -88,6 +88,7 @@ class Metadata(list[tuple[str, str]]): |
|
|
|
fields: tuple[MetadataField] = ( |
|
|
|
MetadataField('codearchiver version', required = True, repeatable = False), |
|
|
|
MetadataField('Module', required = True, repeatable = False), |
|
|
|
MetadataField('Metadata version', required = True, repeatable = False), |
|
|
|
MetadataField('ID', required = True, repeatable = False), |
|
|
|
MetadataField('Input URL', required = True, repeatable = False), |
|
|
|
MetadataField('Filename', required = True, repeatable = False), |
|
|
@@ -96,6 +97,9 @@ class Metadata(list[tuple[str, str]]): |
|
|
|
) |
|
|
|
'''The fields for this metadata collection''' |
|
|
|
|
|
|
|
version: int = 0 |
|
|
|
'''Version, incremented on every backward-incompatible change''' |
|
|
|
|
|
|
|
_allFieldsCache: typing.Optional[tuple[MetadataField]] = None |
|
|
|
|
|
|
|
def append(self, *args): |
|
|
@@ -394,6 +398,13 @@ class Module(metaclass = ModuleMeta): |
|
|
|
idx = type(self).MetadataClass() |
|
|
|
idx.append('codearchiver version', codearchiver.version.__version__) |
|
|
|
idx.append('Module', type(self).name) |
|
|
|
metadataVersions = [] |
|
|
|
for cls in reversed(type(self).MetadataClass.mro()): |
|
|
|
version = cls.__dict__.get('version') |
|
|
|
if version is None: |
|
|
|
continue |
|
|
|
metadataVersions.append(f'{cls.__module__}.{cls.__qualname__}/{version}') |
|
|
|
idx.append('Metadata version', ' '.join(metadataVersions)) |
|
|
|
idx.append('ID', self._id) |
|
|
|
idx.append('Input URL', self._url) |
|
|
|
idx.append('Filename', filename) |
|
|
|