When using CategorizedPageGenerator or SubCategoriesPageGenerator, the recursive option for a circular-dependent category causes python error.
How about to make a max_depth option and/or preventing re-visiting the same category??
This is an example error message.
Traceback (most recent call last): File "/usr/lib/python3.4/inspect.py", line 971, in getfullargspec skip_bound_arg=False) File "/usr/lib/python3.4/inspect.py", line 1917, in _signature_internal return Signature.from_function(obj) File "/usr/lib/python3.4/inspect.py", line 2450, in from_function __validate_parameters__=is_duck_function) File "/usr/lib/python3.4/inspect.py", line 2366, in __init__ for param in parameters)) File "/usr/lib/python3.4/collections/__init__.py", line 56, in __init__ self.__update(*args, **kwds) File "/usr/lib/python3.4/_collections_abc.py", line 576, in update if isinstance(other, Mapping): File "/usr/lib/python3.4/abc.py", line 188, in __instancecheck__ subclass in cls._abc_negative_cache): File "/usr/lib/python3.4/_weakrefset.py", line 75, in __contains__ return wr in self.data RuntimeError: maximum recursion depth exceeded in comparison The above exception was the direct cause of the following exception: Traceback (most recent call last): File "check_descent.py", line 55, in check_descent for page in gen: File "/mnt/nfs/labstore-secondary-tools-project/chobot/src/pywikibot-core.new/pywikibot/pagegenerators.py", line 1364, in SubCategoriesPageGenerator total=total, content=content): File "/mnt/nfs/labstore-secondary-tools-project/chobot/src/pywikibot-core.new/pywikibot/page.py", line 2778, in subcategories recurse, total=total, content=content): File "/mnt/nfs/labstore-secondary-tools-project/chobot/src/pywikibot-core.new/pywikibot/page.py", line 2778, in subcategories recurse, total=total, content=content): ... (repeat)............................................................. File "/mnt/nfs/labstore-secondary-tools-project/chobot/src/pywikibot-core.new/pywikibot/page.py", line 2768, in subcategories self, member_type='subcat', total=total, content=content): File "/mnt/nfs/labstore-secondary-tools-project/chobot/src/pywikibot-core.new/pywikibot/tools/__init__.py", line 1474, in wrapper return obj(*__args, **__kw) File "/mnt/nfs/labstore-secondary-tools-project/chobot/src/pywikibot-core.new/pywikibot/site.py", line 3939, in categorymembers total=total, g_content=content, **cmargs) File "/mnt/nfs/labstore-secondary-tools-project/chobot/src/pywikibot-core.new/pywikibot/tools/__init__.py", line 1474, in wrapper return obj(*__args, **__kw) File "/mnt/nfs/labstore-secondary-tools-project/chobot/src/pywikibot-core.new/pywikibot/site.py", line 1956, in _generator gen = gen_class(type_arg, **req_args) File "/mnt/nfs/labstore-secondary-tools-project/chobot/src/pywikibot-core.new/pywikibot/data/api.py", line 2892, in __init__ kwargs = self._clean_kwargs(kwargs) File "/mnt/nfs/labstore-secondary-tools-project/chobot/src/pywikibot-core.new/pywikibot/data/api.py", line 2370, in _clean_kwargs kwargs = self.request_class.clean_kwargs(kwargs) File "/mnt/nfs/labstore-secondary-tools-project/chobot/src/pywikibot-core.new/pywikibot/data/api.py", line 1518, in clean_kwargs args |= set(getargspec(super_cls.__init__)[0]) File "/usr/lib/python3.4/inspect.py", line 928, in getargspec getfullargspec(func) File "/usr/lib/python3.4/inspect.py", line 977, in getfullargspec raise TypeError('unsupported callable') from ex TypeError: unsupported callable