Steps to replicate the issue (include links if applicable):
- I'm work on https://ru.minecraft.wiki/w/Справка:PyWikiBot
- py pwb.py replace -catr:Модификации -lang:ru -ns:0 -regex "[\n\s]+\|[^\=]+=\s?[Сс]м. \[\[\#[^\n]+" ""
What happens?:
Script terminated by exception:
ERROR: APISite instance has no attribute 'file_extensions' (AttributeError)
Traceback (most recent call last):
File "C:\Users\DragonMsi\Documents\pywikibot\pwb.py", line 58, in <module>
sys.exit(main())
~~~~^^
File "C:\Users\DragonMsi\Documents\pywikibot\pwb.py", line 54, in main
runpy.run_path(str(path), run_name='__main__')
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen runpy>", line 287, in run_path
File "<frozen runpy>", line 98, in _run_module_code
File "<frozen runpy>", line 88, in _run_code
File "C:\Users\DragonMsi\Documents\pywikibot\pywikibot\scripts\wrapper.py", line 558, in <module>
main()
~~~~^^
File "C:\Users\DragonMsi\Documents\pywikibot\pywikibot\scripts\wrapper.py", line 542, in main
if not execute():
~~~~~~~^^
File "C:\Users\DragonMsi\Documents\pywikibot\pywikibot\scripts\wrapper.py", line 529, in execute
run_python_file(filename, script_args, module)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\DragonMsi\Documents\pywikibot\pywikibot\scripts\wrapper.py", line 154, in run_python_file
exec(compile(source, filename, 'exec', dont_inherit=True),
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main_mod.__dict__)
^^^^^^^^^^^^^^^^^^
File "C:\Users\DragonMsi\Documents\pywikibot\scripts\replace.py", line 1148, in <module>
main()
~~~~^^
File "C:\Users\DragonMsi\Documents\pywikibot\scripts\replace.py", line 1144, in main
bot.run()
~~~~~~~^^
File "C:\Users\DragonMsi\Documents\pywikibot\pywikibot\bot.py", line 1579, in run
for item in self.generator:
^^^^^^^^^^^^^^
File "C:\Users\DragonMsi\Documents\pywikibot\pywikibot\pagegenerators\__init__.py", line 672, in PreloadingGenerator
for page in generator:
^^^^^^^^^
File "C:\Users\DragonMsi\Documents\pywikibot\pywikibot\pagegenerators\_filters.py", line 84, in <genexpr>
return (page for page in generator if page.namespace() in namespaces)
^^^^^^^^^
File "C:\Users\DragonMsi\Documents\pywikibot\pywikibot\pagegenerators\_generators.py", line 358, in CategorizedPageGenerator
yield from category.articles(
...<5 lines>...
)
File "C:\Users\DragonMsi\Documents\pywikibot\pywikibot\page\_category.py", line 190, in articles
for member in self.members(
~~~~~~~~~~~~^
member_type=member_type, recurse=recurse, **kwargs):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\DragonMsi\Documents\pywikibot\pywikibot\page\_category.py", line 259, in members
for member in subcat.members(
~~~~~~~~~~~~~~^
recurse=recurse, total=total, **kwargs):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\DragonMsi\Documents\pywikibot\pywikibot\page\_category.py", line 259, in members
for member in subcat.members(
~~~~~~~~~~~~~~^
recurse=recurse, total=total, **kwargs):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\DragonMsi\Documents\pywikibot\pywikibot\page\_category.py", line 259, in members
for member in subcat.members(
~~~~~~~~~~~~~~^
recurse=recurse, total=total, **kwargs):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\DragonMsi\Documents\pywikibot\pywikibot\page\_category.py", line 245, in members
for member in self.site.categorymembers(self, total=total, **kwargs):
~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen _collections_abc>", line 360, in __next__
File "C:\Users\DragonMsi\Documents\pywikibot\pywikibot\tools\collections.py", line 285, in send
return next(self._started_gen)
File "C:\Users\DragonMsi\Documents\pywikibot\pywikibot\data\api\_generators.py", line 723, in generator
yield from self._extract_results(resultdata)
File "C:\Users\DragonMsi\Documents\pywikibot\pywikibot\data\api\_generators.py", line 654, in _extract_results
result = self.result(item)
File "C:\Users\DragonMsi\Documents\pywikibot\pywikibot\data\api\_generators.py", line 838, in result
p = pywikibot.FilePage(
p, ignore_extension='imageinfo' in pagedata)
File "C:\Users\DragonMsi\Documents\pywikibot\pywikibot\page\_filepage.py", line 73, in __init__
if not sep or extension.lower() not in self.site.file_extensions:
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\DragonMsi\Documents\pywikibot\pywikibot\site\_basesite.py", line 218, in __getattr__
raise AttributeError(f'{type(self).__name__} instance has no '
f'attribute {name!r}') from None
AttributeError: APISite instance has no attribute 'file_extensions'. Did you mean: 'has_extension'?
CRITICAL: Exiting due to uncaught exception AttributeError: APISite instance has no attribute 'file_extensions'I see that the drop occurs when trying to process a category containing a file. For example this one: https://ru.minecraft.wiki/w/Категория:Спрайтовые_изображения_Applied_Energistics
But I don't see why this should cause problems if all the files are in a namespace that was excluded by the -ns:0 key.
