ソースを参照

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

tags/v1.0
JustAnotherArchivist 1年前
コミット
3ca99d8839
1個のファイルの変更4行の追加2行の削除
  1. +4
    -2
      codearchiver/storage.py

+ 4
- 2
codearchiver/storage.py ファイルの表示

@@ -29,7 +29,7 @@ class Storage(abc.ABC):
'''
Search all metadata in storage by 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
@@ -78,7 +78,9 @@ class DirectoryStorage(Storage):
# Replace this with `root_dir` when dropping Python 3.9 support
escapedDirPrefix = os.path.join(glob.escape(self._directory), '')
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:]
_logger.info(f'Searching metadata {metadataFilename}')
with self.open(metadataFilename, 'r') as fp:


読み込み中…
キャンセル
保存