Exemplo n.º 1
0
    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()
            ]
Exemplo n.º 2
0
    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()
            ]
Exemplo n.º 3
0
    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',
        ])