mkdocstrings / pytkdocs

Load Python objects documentation.
https://mkdocstrings.github.io/pytkdocs
ISC License
50 stars 32 forks source link

[BUG] Pydantic model fields don't display in documentation #123

Open ysfchn opened 2 years ago

ysfchn commented 2 years ago

Describe the bug I just saw the issue #9, and it looks like Pydantic models are supported, however I couldn't manage adding a Pydantic model in documentation. I use pytkdocs through mkdocstrings so I didn't install pytkdocs myself, it is installed with mkdocstrings. Am I doing something wrong?

To Reproduce I referenced the model like this, (I also tried clearing the filters and enabled inherited_members to see if I can solve myself, but it didn't work anyway.) however only Pydantic's own methods shows up, nothing more.

relay/models.py

from pydantic import BaseModel

class TestModel(BaseModel):
    a : int
    """test"""

    b : str
    """test 2"""

    c : Optional[str] = None

reference2.md

::: relay.models.TestModel
    selection:
      inherited_members: true
      filters: []

Expected behavior It should display attributes of a Pydantic model.

Screenshots resim

System (please complete the following information):

Additional context


Edit: Looks like attributes only shows up as table when I add Attributes section to model's own docstring. But I expected to see all attributes without adding them to model's own docstring.

pawamoy commented 2 years ago

Hello @ysfchn, my apologies, I realize I never answered to your issue. Please note you can definitely ping me next time if you don't get an answer :sweat_smile:

Did you manage to find a workaround, or did you just stop using mkdocstrings? I kinda stopped working on pytkdocs because I was busy bringing an improved version to life (Griffe). Maybe you should try with the new Python handler :slightly_smiling_face:

ysfchn commented 2 years ago

No problem! I realized the right way to do was defining all attributes in root of class definition instead of adding docstring under every field. So I closed the issue as it is not relevant anymore. I still use mkdocstrings and currently works great so far! 👍

pawamoy commented 2 years ago

I see, thanks! I'm glad mkdocstrings is working for you :slightly_smiling_face:

IceBotYT commented 2 years ago

Hi, I'm having a similar issue, but the default always says required, I'm assuming that's because there's no __init__ method for it. This happens for all of my pydantic models here: https://icebotyt.github.io/pynoonlight