[issue1816] sys.cmd_flags patch
Éric Araujo mer...@netwok.org added the comment: I’ve recently remarked that -i maps to both sys.flags.inspect and sys.flags.interactive. Is this behavior useful? -- nosy: +eric.araujo ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue1816 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1816] sys.cmd_flags patch
Georg Brandl ge...@python.org added the comment: Maybe not, but note that there is both a Py_InteractiveFlag and Py_InspectFlag, and they enable different things (they are both set by -i, while setting the PYTHONINSPECT envvar only activates Py_InspectFlag). -- nosy: +georg.brandl ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue1816 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1816] sys.cmd_flags patch
Éric Araujo mer...@netwok.org added the comment: Okay, so having both flags makes sense. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue1816 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1816] sys.cmd_flags patch
Christian Heimes added the comment: The new patch is using a struct sequence (like the result of os.stat): import sys sys.flags sys.flags (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) dir(sys.flags) ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__str__', 'debug', 'division_new', 'division_warning', 'dont_write_bytecode', 'ingnore_environment', 'inspect', 'interactive', 'n_fields', 'n_sequence_fields', 'n_unnamed_fields', 'no_site', 'optimize', 'py3k_warning', 'tabcheck', 'unicode', 'verbose'] sys.flags.debug 0 Please ignore the other files. They are part of my second PEP. Added file: http://bugs.python.org/file9149/trunk_sys_flags.patch __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue1816 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1816] sys.cmd_flags patch
Guido van Rossum added the comment: Can't you use a namedtuple? Then printing it would show the names of the flags... __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue1816 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1816] sys.cmd_flags patch
Christian Heimes added the comment: Guido van Rossum wrote: Can't you use a namedtuple? Then printing it would show the names of the flags... ... and increase the startup costs of Python by loading several additional modules. The collections module imports _collections, operator and keyword. I'd rather see a better repr function for the sequence types. __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue1816 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1816] sys.cmd_flags patch
Guido van Rossum added the comment: I'd rather see a better repr function for the sequence types. Agreed. It's kind of unfortunate that we have two implementations for the same concept, one in C and one in Python. __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue1816 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1816] sys.cmd_flags patch
Christian Heimes added the comment: I've coded sys.flags for my per-user site-packages PEP. I could make it a function but the function would be called by site.py on every startup. __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue1816 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1816] sys.cmd_flags patch
Christian Heimes added the comment: Does anybody see a problem with this repr slot implementation for structseq? It gives this output: os.stat(.) posix.stat_result st_mode=16832, st_ino=11666571L, st_dev=65025L, st_nlink=20, st_uid=1000, st_gid=1000, st_size=4096L, st_atime=1200261754, st_mtime=1200261721, st_ctime=1200261721 static PyObject * structseq_repr(PyStructSequence *obj) { PyObject *tup, *val, *repr; PyTypeObject *typ = Py_TYPE(obj); int i, len; char buf[250+5]; /* ...\0 */ char *cname, *crepr; char *pbuf = buf; char *endbuf = buf[250]; *pbuf++ = ''; strncpy(pbuf, typ-tp_name, 50); pbuf += strlen(typ-tp_name) 50 ? 50 : strlen(typ-tp_name); *pbuf++ = ' '; if ((tup = make_tuple(obj)) == NULL) { return NULL; } for (i=0; i VISIBLE_SIZE(obj); i++) { cname = typ-tp_members[i].name; val = PyTuple_GetItem(tup, i); if (cname == NULL || val == NULL) { return NULL; } repr = PyObject_Repr(val); if (repr == NULL) { Py_DECREF(tup); return NULL; } crepr = PyString_AsString(repr); if (crepr == NULL) { Py_DECREF(tup); Py_DECREF(repr); return NULL; } len = strlen(cname) + strlen(crepr) + 3; if ((pbuf+len) endbuf) { strcpy(pbuf, cname); pbuf += strlen(cname); *pbuf++ = '='; strcpy(pbuf, crepr); pbuf += strlen(crepr); *pbuf++ = ','; *pbuf++ = ' '; Py_DECREF(repr); } else { strcpy(pbuf, ...); pbuf += 5; Py_DECREF(repr); break; } } Py_DECREF(tup); pbuf-=2; *pbuf++ = ''; *pbuf = '\0'; repr = PyString_FromString(buf); return repr; } __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue1816 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1816] sys.cmd_flags patch
Guido van Rossum added the comment: Nice -- perhaps you can make it look like a function call, posix.stat_result(st_mode=..., ...)? (Then someone else might finally create a constructor with such a signature. :-) __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue1816 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1816] sys.cmd_flags patch
Christian Heimes added the comment: Committed in r59947, r59948 and r59949 -- resolution: - fixed status: open - closed __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue1816 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1816] sys.cmd_flags patch
New submission from Christian Heimes: The output should be self explaining: ./python -tt -E -OO -Qnew -c import sys; print sys.cmd_flags ('Qnew', 'O', 'OO', 'E', 't', 'tt') I'll provide doc updates and a mini test if the patch wanted. -- components: Interpreter Core files: trunk_sys_cmd_flags.patch keywords: patch messages: 59840 nosy: tiran priority: normal severity: normal status: open title: sys.cmd_flags patch versions: Python 2.6 Added file: http://bugs.python.org/file9143/trunk_sys_cmd_flags.patch __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue1816 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1816] sys.cmd_flags patch
Guido van Rossum added the comment: I like the idea of exposing Python's command line flags, but I think this API is a bit odd. I'd rather see it be a struct with members named after the various arguments and values that are ints or bools -- or simply a bunch of new flags directly in the sys module if making it a string is too much work. It also looks like the patch includes a few unrelated changes to install.py and site.py. -- nosy: +gvanrossum __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue1816 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com