-
-
Notifications
You must be signed in to change notification settings - Fork 12
bug: KeyError: '*' with @field_validator('*') #22
Copy link
Copy link
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Description of the bug
Cannot build docs if I have field_validator for all fields: '*'
To Reproduce
from pydantic import BaseModel, ValidationInfo
from pydantic_core import PydanticUndefined
class BaseRequestSchema(BaseModel):
@field_validator('*', mode='before')
@classmethod
def set_if_none(cls, v: Any, info: ValidationInfo):
"""If `None` is set, return default value for that field"""
if (
info.field_name
and not cls.model_fields[info.field_name].is_required()
and cls.model_fields[info.field_name].get_default() is not PydanticUndefined
and v is None
):
return cls.model_fields[info.field_name].get_default()Full traceback
Full traceback
poetry run mkdocs build -f docs/az/mkdocs.yml --strict
INFO - Cleaning site directory
INFO - Building documentation to directory: /home/miradilz/Projects/integrify/docs/az/site
ERROR - Error reading page 'azericard/api-reference/callback.md': '*'
Traceback (most recent call last):
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/bin/mkdocs", line 8, in <module>
sys.exit(cli())
^^^^^
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/click/core.py", line 1157, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/mkdocs/__main__.py", line 288, in build_command
build.build(cfg, dirty=not clean)
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/mkdocs/commands/build.py", line 310, in build
_populate_page(file.page, config, files, dirty)
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/mkdocs/commands/build.py", line 167, in _populate_page
page.render(config, files)
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/mkdocs/structure/pages.py", line 285, in render
self.content = md.convert(self.markdown)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/markdown/core.py", line 357, in convert
root = self.parser.parseDocument(self.lines).getroot()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/markdown/blockparser.py", line 117, in parseDocument
self.parseChunk(self.root, '\n'.join(lines))
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/markdown/blockparser.py", line 136, in parseChunk
self.parseBlocks(parent, text.split('\n\n'))
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/markdown/blockparser.py", line 158, in parseBlocks
if processor.run(parent, blocks) is not False:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/mkdocstrings/extension.py", line 128, in run
html, handler, data = self._process_block(identifier, block, heading_level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/mkdocstrings/extension.py", line 216, in _process_block
data: CollectorItem = handler.collect(identifier, options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/mkdocstrings_handlers/python/handler.py", line 322, in collect
loader.load(
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/_griffe/loader.py", line 184, in load
return self._post_load(top_module, obj_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/_griffe/loader.py", line 210, in _post_load
self.extensions.call("on_package_loaded", pkg=module, loader=self)
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/_griffe/extensions/base.py", line 313, in call
getattr(extension, event)(**kwargs)
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/griffe_pydantic/extension.py", line 42, in on_package_loaded
static.process_module(pkg, processed=self.processed, schema=self.schema)
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/griffe_pydantic/static.py", line 170, in process_module
process_module(submodule, processed=processed, schema=schema)
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/griffe_pydantic/static.py", line 170, in process_module
process_module(submodule, processed=processed, schema=schema)
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/griffe_pydantic/static.py", line 170, in process_module
process_module(submodule, processed=processed, schema=schema)
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/griffe_pydantic/static.py", line 167, in process_module
process_class(cls, processed=processed, schema=schema)
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/griffe_pydantic/static.py", line 148, in process_class
process_function(member, cls, processed=processed)
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/griffe_pydantic/static.py", line 115, in process_function
common.process_function(func, cls, fields)
File "/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/lib/python3.12/site-packages/griffe_pydantic/common.py", line 72, in process_function
targets = [cls.members[field] for field in fields]
~~~~~~~~~~~^^^^^^^
KeyError: '*'
make: *** [Makefile:52: docs] Error 1Expected behavior
Environment information
python -m griffe_pydantic.debug # | xclip -selection clipboard- __System__: Linux-6.8.0-1019-oem-x86_64-with-glibc2.39
- __Python__: cpython 3.12.3 (/home/miradilz/.cache/pypoetry/virtualenvs/integrify-MG0a6qln-py3.12/bin/python)
- __Environment variables__:
- __Installed packages__:
- `griffe-pydantic` v1.1.0
Additional context
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working