[modular] Simplify logic and docstring handling #39185
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Simplify a lot
replace_class_node
logic (I wanted to do it from a long time ago as it was all bloated and super hard to read) and simplify the docstring handling at the same time.Basically, the idea is now to use the parent docstring if there are no docstrings, or to use the docstring in modular if any. Previously, we were doing some kind of merging between the 2 docstrings, which was bugged (see a few places in the diff where there are arg explanations after examples or similar issues), inconsistent (i.e. adding a simple arg for a Config, while convenient, was always inconsistent because the checkpoints link was never updated correctly) and surprising (this is some kind of magic that contributors were very rarely understanding (which makes sense at it had a lot of issues as explained). Moreover, with
auto_docstring
now, we should not have to redefine the parameters explanations everytime, so it makes sense to relax docstring handling.