classification
Title: Implement PEP 562: module __getattr__ and __dir__
Type: enhancement Stage: resolved
Components: Interpreter Core Versions: Python 3.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: levkivskyi Nosy List: inada.naoki, levkivskyi, ncoghlan
Priority: normal Keywords: patch

Created on 2017-12-05 20:30 by levkivskyi, last changed 2018-01-20 01:07 by levkivskyi. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 4731 merged levkivskyi, 2017-12-05 20:31
Messages (5)
msg307935 - (view) Author: Nick Coghlan (ncoghlan) * (Python committer) Date: 2017-12-10 00:39
For documentation of this feature, I'd suggest adding a new subsection after https://docs.python.org/3/reference/datamodel.html#customizing-attribute-access (but at the same level), called "Customizing module attribute access".

That can then cover defining __getattr__ and __dir__ as module level functions, and also mention setting __class__ (which would be enough to close issue 27505 as well).

The new section should explicitly mention that these only affect lookups and modifications made using the attribute access syntax - directly accessing the module globals (whether by code within the module, or via a reference to the module's globals dict) is unaffected.
msg308285 - (view) Author: Ivan Levkivskyi (levkivskyi) * (Python committer) Date: 2017-12-14 10:59
New changeset 5364b5cd7571f2dfa75acd37b388c14ac33fef73 by Ivan Levkivskyi in branch 'master':
bpo-32225: Implementation of PEP 562 (#4731)
https://github.com/python/cpython/commit/5364b5cd7571f2dfa75acd37b388c14ac33fef73
msg308290 - (view) Author: Ivan Levkivskyi (levkivskyi) * (Python committer) Date: 2017-12-14 11:19
Travis build on master successful, so I am closing this issue.
msg310271 - (view) Author: INADA Naoki (inada.naoki) * (Python committer) Date: 2018-01-19 10:29
I didn't notice this is implemented.
Congrats, Ivan!

BTW, would you update the PEP status to Final?
msg310313 - (view) Author: Ivan Levkivskyi (levkivskyi) * (Python committer) Date: 2018-01-20 01:07
> BTW, would you update the PEP status to Final?

Good point, here is the PR https://github.com/python/peps/pull/554
History
Date User Action Args
2018-01-20 01:07:47levkivskyisetmessages: + msg310313
2018-01-19 10:29:08inada.naokisetnosy: + inada.naoki
messages: + msg310271
2017-12-14 11:19:15levkivskyisetstatus: open -> closed
resolution: fixed
messages: + msg308290

stage: patch review -> resolved
2017-12-14 10:59:47levkivskyisetmessages: + msg308285
2017-12-10 00:41:24ncoghlanlinkissue27505 dependencies
2017-12-10 00:39:16ncoghlansetmessages: + msg307935
2017-12-10 00:31:24ncoghlansetnosy: + ncoghlan
2017-12-05 20:31:15levkivskyisetkeywords: + patch
pull_requests: + pull_request4634
2017-12-05 20:30:14levkivskyicreate