소스 검색

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:


불러오는 중...
취소
저장