Prevent python class/instance variables from linking to objects #4676
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.
Previously, python variables were given a rolename of
obj
, which allowed any:ivar foo:
or:cvar foo:
to link as a cross-reference to any object in the entire build. I believe that this is almost never desirable behavior, since variables often have very simple names that can collide badly with other parts of the project.Take, for instance, a class with a variable named
size
. It should not link to a method in a different class that is also namedsize
. A user seeing that the variable is a link would be very confused by what they are linked to.I believe the solution is to remove the ability for variable names to link anywhere. I'm open to discussion on this one, but I don't the way people write code is such that the name of a variable can be found elsewhere sphinx will know about and will be related in a meaningful way.