Ver a proveniência

Require `Storage.search_metadata` to return files in lexicographical order to minimise dependencies between bundles

tags/v1.0
JustAnotherArchivist há 1 ano
ascendente
cometimento
3ca99d8839
1 ficheiros alterados com 4 adições e 2 eliminações
  1. +4
    -2
      codearchiver/storage.py

+ 4
- 2
codearchiver/storage.py Ver ficheiro

@@ -29,7 +29,7 @@ class Storage(abc.ABC):
''' '''
Search all metadata in storage by criteria. Search all metadata in storage by criteria.
Refer to `codearchiver.core.Metadata.matches` for the semantics of `criteria`. Refer to `codearchiver.core.Metadata.matches` for the semantics of `criteria`.
Yields all filenames where all criteria match.
Yields all filenames where all criteria match in lexicographical order.
''' '''


@abc.abstractmethod @abc.abstractmethod
@@ -78,7 +78,9 @@ class DirectoryStorage(Storage):
# Replace this with `root_dir` when dropping Python 3.9 support # Replace this with `root_dir` when dropping Python 3.9 support
escapedDirPrefix = os.path.join(glob.escape(self._directory), '') escapedDirPrefix = os.path.join(glob.escape(self._directory), '')
escapedDirPrefixLen = len(escapedDirPrefix) escapedDirPrefixLen = len(escapedDirPrefix)
for metadataFilename in glob.glob(f'{escapedDirPrefix}*.codearchiver-metadata'):
files = glob.glob(f'{escapedDirPrefix}*.codearchiver-metadata')
files.sort()
for metadataFilename in files:
metadataFilename = metadataFilename[escapedDirPrefixLen:] metadataFilename = metadataFilename[escapedDirPrefixLen:]
_logger.info(f'Searching metadata {metadataFilename}') _logger.info(f'Searching metadata {metadataFilename}')
with self.open(metadataFilename, 'r') as fp: with self.open(metadataFilename, 'r') as fp:


Carregando…
Cancelar
Guardar