def iterate_paths(self): for base, dirnames, filenames in os.walk(str(self.path)): base = pathlib.Path(base) # Yield only files from list file list_file = base / 'list' filenames_in_menu = set() if list_file.exists(): for filename in parse_list_file(list_file): files_exists = ((base / filename).exists() and (base / '.z2meta' / filename).exists()) if files_exists: filenames_in_menu.add(filename) yield ImportItem(path=base / filename, in_menu=True) # Yield all files, that have entry in .z2meta. for filename in filenames: path = base / filename check = (filename not in filenames_in_menu and (filename.endswith('.html') or filename.endswith('.zpt'))) if check and (base / '.z2meta' / filename).exists(): yield ImportItem(path=path, in_menu=False) # Visit only directories containing .z2meta. dirnames[:] = [ dirname for dirname in dirnames if (base / dirname / '.z2meta').exists() ]
def iterate_paths(self): for base, dirnames, filenames in os.walk(str(self.path)): base = pathlib.Path(base) # Yield only files from list file list_file = base / 'list' filenames_in_menu = set() if list_file.exists(): for filename in parse_list_file(list_file): files_exists = ( (base / filename).exists() and (base / '.z2meta' / filename).exists() ) if files_exists: filenames_in_menu.add(filename) yield ImportItem(path=base / filename, in_menu=True) # Yield all files, that have entry in .z2meta. for filename in filenames: path = base / filename check = ( filename not in filenames_in_menu and (filename.endswith('.html') or filename.endswith('.zpt')) ) if check and (base / '.z2meta' / filename).exists(): yield ImportItem(path=path, in_menu=False) # Visit only directories containing .z2meta. dirnames[:] = [ dirname for dirname in dirnames if (base / dirname / '.z2meta').exists() ]
def test_parse_list_file(self): path = pkg_resources.resource_filename( 'akllt', 'dataimport/tests/fixtures/whole_export/ak/licencijos/list', ) path = pathlib.Path(path) assert path.exists() meta = parse_list_file(path) self.assertEqual(meta, [ 'kategorijos.html', 'copyleft.html', 'gpl.html', 'lgpl.html', ])