New submission from Ben Avrahami <avrahami....@gmail.com>:

According to the documentation for types.SimpleNamespace, 
`repr(SimpleNamespace())` should return `"SimpleNamespace()"`, but in actuality 
returns `"namespace()"`. This is because SimpleNamespace is an alias for the C 
implemented type `_PyNamespaceObject`. Interestingly, `_PyNamespaceObject` 
names itself `"types.SimpleNamespace"`. This has the obvious issue of the 
documentation being wrong, but also the (perhaps less interesting issue) of 
`eval(repr(SimpleNamespace))` resulting in a NameError.

I propose that `_PyNamespaceObject`'s __repr__ method be changed to return 
`"SimpleNamespace(<args>)"`. This would require only the change of a constant 
in one line (currently this is line 75 on namespaceobject.c).

A smaller fix would be to change the documentation to correctly reflect this 
behavior.

----------
components: Library (Lib)
messages: 379010
nosy: avrahami.ben
priority: normal
severity: normal
status: open
title: types.SimpleNamespace.__repr__ documentation inconsistency
versions: Python 3.10

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

Reply via email to