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
Missing documentation for setting module __class__ attribute #71692
Comments
Python 3.5 added the ability to set module __class__ attributes by way of http://bugs.python.org/issue22986 However, this isn't covered in the What's New guide or anywhere else in the documentation, and even in the NEWS file it appears under the cryptic title "Issue bpo-22986: Allow changing an object’s __class__ between a dynamic type and static type in some cases." for 3.5.0a1 This should be documented somewhere (perhaps in the data model section of the language reference?) and an example given of using the feature to emit DeprecationWarning for access to a particular module level attribute. It should also be mentioned in the Python 3.5 What's New documentation. |
Hi Nick, I started looking at this issue for documenting bpo-22986 and then found bpo-24912 and bpo-24991. Has anything changed in the code since 2015 that would make these issues (this one and 24991) obsolete? It seems there were a lot of ideas flying around, but I couldn't find other tickets (and the code is still in place for 22986 and 24912). If these haven't been superseded, do you think the discussion on bpo-24991 should be continued or should the documentation mentioned in this issue still be done? Thanks! |
This is still a valid docs issue, although PEP-562's module __getattr__ and __dir__ will provide a simpler alternative for most of the cases that previously required setting the __class__ attribute: https://www.python.org/dev/peps/pep-0562/ So I've added https://bugs.python.org/issue32225 as a dependency for this issue, as it will likely make sense to figure out a good docs structure for those changes first, and then see if there's any work left to do specifically for this issue: https://bugs.python.org/issue32225#msg307935 Issue bpo-24991 is a fairly different topic - I've added an extra comment there that should help clarify the actual question/proposal. |
Nick, It looks like bpo-32225 took care of this documentation change, so I think this can be closed? Thanks! |
I think the only thing missing for the 3.7 docs now would be a pair of "versionchanged" notes indicating that __class__ has been settable since 3.5, while module level __dir__ and __getattr__ support is new in 3.7. It would also be desirable to add the __class__ docs to the 3.6 maintenance branch. |
Thanks Nick. I've made the PRs for the versionadded and to add __class__ to the 3.6 docs. |
Thanks for the PRs! |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: