STINNER Victor <victor.stin...@gmail.com> added the comment: Usually, I use print(sorted(os.environ)) since I prefer a sorted list and it prevents such issue :-)
David: > I agree that the result is surprising, but there may not be a generic fix. What about something like: vstinner@apu$ ./python -c 'import os; print(os.environ.keys())' <KeysView ['LS_COLORS', 'XDG_MENU_PREFIX', 'LANG', 'GDM_LANG', 'HISTIGNORE', 'HISTCONTROL', 'DISPLAY', 'HOSTNAME', 'EDITOR', 'COLORTERM', 'DESKTOP_AUTOSTART_ID', 'USERNAME', 'XDG_VTNR', 'SSH_AUTH_SOCK', 'XDG_SESSION_ID', 'USER', 'DESKTOP_SESSION', 'GTK2_RC_FILES', 'PWD', 'SSH_ASKPASS', 'HOME', 'JOURNAL_STREAM', 'XDG_SESSION_TYPE', 'XDG_DATA_DIRS', 'XDG_SESSION_DESKTOP', 'LOADEDMODULES', 'MAIL', 'WINDOWPATH', 'VTE_VERSION', 'TERM', 'SHELL', 'QT_IM_MODULE', 'XMODIFIERS', 'XDG_CURRENT_DESKTOP', 'XDG_SEAT', 'SHLVL', 'PYTHONPATH', 'WINDOWID', 'MODULEPATH', 'GDMSESSION', 'GNOME_DESKTOP_SESSION_ID', 'LOGNAME', 'DBUS_SESSION_BUS_ADDRESS', 'XDG_RUNTIME_DIR', 'XAUTHORITY', 'PATH', 'PS1', 'MODULESHOME', 'MAKEFLAGS', 'HISTSIZE', 'SESSION_MANAGER', 'LESSOPEN', 'BASH_FUNC_module%%', 'BASH_FUNC_scl%%', '_', 'OLDPWD']> vstinner@apu$ git diff diff --git a/Lib/_collections_abc.py b/Lib/_collections_abc.py index a5c7bfcda1..5e524dffbf 100644 --- a/Lib/_collections_abc.py +++ b/Lib/_collections_abc.py @@ -719,6 +719,9 @@ class KeysView(MappingView, Set): def __iter__(self): yield from self._mapping + def __repr__(self): + return '<KeysView %r>' % list(self) + KeysView.register(dict_keys) list(key_view) is valid. I mimicked dict views implementation: static PyObject * dictview_repr(_PyDictViewObject *dv) { PyObject *seq; PyObject *result; seq = PySequence_List((PyObject *)dv); if (seq == NULL) return NULL; result = PyUnicode_FromFormat("%s(%R)", Py_TYPE(dv)->tp_name, seq); Py_DECREF(seq); return result; } ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue32300> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com