New submission from Josh Rosenberg <shadowranger+pyt...@gmail.com>:

While looking up background info for #36347, I noticed that the docs for 
PyMemberDef ( 
https://docs.python.org/3/extending/newtypes.html#generic-attribute-management 
) define the following flags:

* READONLY
* READ_RESTRICTED
* WRITE_RESTRICTED
* RESTRICTED

Of those, WRITE_RESTRICTED has been documented incorrectly since Python 3.0a2 
(it got renamed to PY_WRITE_RESTRICTED in structmember.h, apparently due to a 
name clash with VS 2008 on Windows).

Luckily, the constants are useless; AFAICT they were there solely to support 
restricted mode (via the rexec and Bastion modules). The modules were 
apparently disabled in Python 2.3 "due to various known and not readily fixable 
security holes" ( https://docs.python.org/2/library/restricted.html ), and the 
modules themselves officially deprecated in 2.6, and removed completely in 3.0.

Rather than fixing up the docs, maybe it's time to kill these constants for 
good? Probably shouldn't remove the definitions in structmember.h (if someone 
wrote code using them, we shouldn't needlessly break compilation), but the 
interpreter and standard library should stop setting them, and the 
documentation for them should be removed.

----------
assignee: docs@python
components: Documentation, Extension Modules, Interpreter Core
messages: 338282
nosy: docs@python, josh.r
priority: normal
severity: normal
status: open
title: Remove documentation and internal use of the RESTRICTED constants for 
PyMemberDef's flags field
versions: Python 3.8

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue36355>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to