Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
ysfchn opened this issue Nov 15, 2021 · 4 comments
Open

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

ysfchn opened this issue Nov 15, 2021 · 4 comments

Comments

@ysfchn
Copy link

ysfchn commented Nov 15, 2021

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):

  • pytkdocs version: 0.12.0 (installed automatically with mkdocstrings==0.16.0)
  • Python version: 3.9.7 (x64)
  • OS: Windows 10

Additional context

  • pydantic version: 1.8.2

  • docs/requirements.txt

    mkdocs==1.2.2
    mkdocs-material==7.3.0
    mkdocs-autorefs==0.3.0
    mkdocstrings==0.16.0
    mkdocs-static-i18n>=0.19
    
  • mkdocs.yml (partial - only mkdocstrings part)

    plugins:
    - mkdocstrings:
      default_handler: python
      handlers:
        python:
          selection:
            inherited_members: true
            filters:
              - "!^_[^_]"
          rendering:
            show_root_heading: true
            heading_level: 1
            show_root_toc_entry: true
            show_root_full_path: false
            show_source: false
            show_bases: false
    
  • I also have a custom CSS to hide keyword arguments:

     .doc.doc-heading > code.highlight.language-python > span:not(:first-child) {
         display: none !important;
     }

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.

@ysfchn ysfchn closed this as completed Mar 6, 2022
@pawamoy
Copy link
Member

pawamoy commented Mar 6, 2022

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 😅

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 🙂

@ysfchn
Copy link
Author

ysfchn commented Mar 6, 2022

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
Copy link
Member

pawamoy commented Mar 6, 2022

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

@IceBotYT
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants