Comments (7)
Hi @nchaly,
thanks a lot for reporting this bug at such detailed level. It made it very is to reproduce.
It is definitely a bug due to an unhandled edge case. I will get back to you soon.
from autodoc_pydantic.
@mansenfranzen I agree. In fact current behaviour creates a duplicate block of data, which confused me the first time I saw it - it looked at a first glance as if DataTransformer
itself has now got its own schema.
So yes, a reference to the original pydantic model should be fine.
from autodoc_pydantic.
I merged the changes in the v1.6.0 release. There is a FAQ section in the updated documentation describing your issue. Feel free to reopen or comment. Thanks for reporting this once again.
from autodoc_pydantic.
It turns out that the bug is not difficult to fix. However, which is more important, your example reveals a more general question. How should autodoc_pydantic document pydantic models/settings which are used as class attributes just like in your example.
While autodocumenting DataTransformer
it is not relevant to show every detail of PARAMS_CLS
(like json schema, field and validator summary lists etc...). Instead, only a short description is enough. The main focus is on DataTransformer
in its entirety and not on the most detailed documentation of all its individual potentially complex attributes.
Moreover, when DataTransformerConfig
is used as an attribute, sphinx automatically adds a link to its main auto-documentation section which allows deep dive inspection. That's yet another reason why a brief description is sufficient.
Hence, I suggest to remove all additional sections such as json schema, field & validator summary lists and config summary from pydantic models/settings if they are documented as an attribute. What do you think?
This will also automatically resolve the bug you're experiencing.
from autodoc_pydantic.
#79 addresses the issue.
Before merging the related PR, it would be great if you could test the bug fix on your site to confirm that my test case did indeed capture the incorrect behavior which you've encountered. To do so, please install the current dev release in your doc-building-environment via pip install git+git://github.com/mansenfranzen/[email protected]
and rebuild your docs.
from autodoc_pydantic.
@all-contributors please add @nchaly for bug and tests
from autodoc_pydantic.
I've put up a pull request to add @nchaly! 🎉
from autodoc_pydantic.
Related Issues (20)
- Build failure with Enum under Pydantic 2.1, autodoc-pydantic 2.0.0 HOT 6
- @computed_field not showing in json schema HOT 2
- Deprecation warning for `ObjectMember` for Sphinx 7.2.2 HOT 3
- Package not honoring sphinxcontrib namespace package structure HOT 10
- Deprecation warning `sphinx.util.typing.stringify` for Sphinx v7.2.6 HOT 7
- Add `pydantic` classifier to help finding package HOT 2
- Cannot generate documentation when having class with arbitrary types HOT 1
- Cannot use `inherited-members` directive with autosummary HOT 5
- Generate output with nonvalidation methods HOT 4
- ForwardRef.__init__() got an unexpected keyword argument 'is_class' HOT 3
- Render field examples HOT 2
- Type aliases don't propagate for nested pydantic models with inherited members.
- Allow `autodoc_pydantic_field_signature_prefix` to be empty HOT 5
- Does `autodoc-pydantic` support the `pydantic.v1` compatibility layer? HOT 2
- `model_post_init` from `BaseModel` appears in the rendered documentation HOT 5
- [Feature Request] Print json schema as (collapsible) table HOT 2
- model_computed_fields is shown in rendered output HOT 3
- Consider dropping support for sphinx version 4.X HOT 3
- Model inherited from two parents does not seem to show inherited members HOT 1
- Dependency Dashboard
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from autodoc_pydantic.