Hoping somebody here is familiar with pdoc3 I am ...
# ask-community
d
Hoping somebody here is familiar with pdoc3 I am trying to generate documentation for a library with
pdoc3
. It works up until I hit a custom implementation of
prefect.serializers.Serializer
. The error involves the class's
__dispatch_key__
.
Copy code
Traceback (most recent call last):
  File "C:\Users\dtarro\.virtualenvs\symphony-utils-luUS4-Xq\Lib\site-packages\pdoc\__init__.py", line 222, in import_module
    module = importlib.import_module(module_path)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dtarro\AppData\Local\Programs\Python\Python311\Lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "C:\Users\dtarro\OneDrive - Oxford Economics\Documents\GitHub\symphony-utils\symph\prefect_utils\serializers\pandas_.py", line 14, in <module>
    class PandasSerializer(Serializer):
  File "pydantic\main.py", line 282, in pydantic.main.ModelMetaclass.__new__
  File "<frozen abc>", line 106, in __new__
  File "C:\Users\dtarro\.virtualenvs\symphony-utils-luUS4-Xq\Lib\site-packages\prefect\utilities\dispatch.py", line 99, in _register_subclass_of_base_type
    register_type(cls)
  File "C:\Users\dtarro\.virtualenvs\symphony-utils-luUS4-Xq\Lib\site-packages\prefect\utilities\dispatch.py", line 153, in register_type
    key = get_dispatch_key(cls)
          ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dtarro\.virtualenvs\symphony-utils-luUS4-Xq\Lib\site-packages\prefect\utilities\dispatch.py", line 82, in get_dispatch_key
    raise TypeError(
TypeError: Type 'PandasSerializer' has a '__dispatch_key__' of type NoneType but a type of 'str' is required.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\dtarro\.virtualenvs\symphony-utils-luUS4-Xq\Scripts\pdoc.exe\__main__.py", line 7, in <module>
  File "C:\Users\dtarro\.virtualenvs\symphony-utils-luUS4-Xq\Lib\site-packages\pdoc\cli.py", line 534, in main
    modules = [pdoc.Module(module, docfilter=docfilter,
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dtarro\.virtualenvs\symphony-utils-luUS4-Xq\Lib\site-packages\pdoc\cli.py", line 534, in <listcomp>
    modules = [pdoc.Module(module, docfilter=docfilter,
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dtarro\.virtualenvs\symphony-utils-luUS4-Xq\Lib\site-packages\pdoc\__init__.py", line 754, in __init__
    m = Module(import_module(fullname),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dtarro\.virtualenvs\symphony-utils-luUS4-Xq\Lib\site-packages\pdoc\__init__.py", line 754, in __init__
    m = Module(import_module(fullname),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dtarro\.virtualenvs\symphony-utils-luUS4-Xq\Lib\site-packages\pdoc\__init__.py", line 754, in __init__
    m = Module(import_module(fullname),
               ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dtarro\.virtualenvs\symphony-utils-luUS4-Xq\Lib\site-packages\pdoc\__init__.py", line 224, in import_module
    raise ImportError(f'Error importing {module!r}: {e.__class__.__name__}: {e}')
ImportError: Error importing 'symph.prefect_utils.serializers.pandas_': TypeError: Type 'PandasSerializer' has a '__dispatch_key__' of type NoneType but a type of 'str' is required.
I have suspicions but I really don't know what that attribute is or what prefect does with it. This is my first time using
pdoc3
as well. Any help is appreciated.