[issue27782] Multi-phase extension module initialization, inconsistent exceptions and conflicts between code and PEP

2016-08-20 Thread Nick Coghlan

Nick Coghlan added the comment:

The patch looks good to me, and the relevant contributor licensing is in place, 
so I'll be applying this shortly :)

--
stage:  -> commit review

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27780] memory leaks in pgen build step abort build with address sanitizer enabled

2016-08-20 Thread Xiang Zhang

Xiang Zhang added the comment:

Valgrind can also complain:

valgrind --leak-check=yes --suppressions=Misc/valgrind-python.supp Parser/pgen 
./Grammar/Grammar Include/graminit.h Python/graminit.c
==6836== Memcheck, a memory error detector
==6836== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==6836== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==6836== Command: Parser/pgen ./Grammar/Grammar Include/graminit.h 
Python/graminit.c
==6836== 
Translating labels ...
==6836== 
==6836== HEAP SUMMARY:
==6836== in use at exit: 18,236 bytes in 133 blocks
==6836==   total heap usage: 848 allocs, 715 frees, 781,340 bytes allocated
==6836== 
==6836== 6 bytes in 1 blocks are possibly lost in loss record 1 of 11
==6836==at 0x4C2BBCF: malloc (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==6836==by 0x50E1379: strdup (strdup.c:42)
==6836==by 0x403405: _Py_addlabel (grammar.c:104)
==6836==by 0x403D40: newnfagrammar (pgen.c:116)
==6836==by 0x403E21: metacompile (pgen.c:158)
==6836==by 0x4056F1: _Py_pgen (pgen.c:668)
==6836==by 0x40CBE3: getgrammar (pgenmain.c:125)
==6836==by 0x40C932: main (pgenmain.c:64)
==6836== 
==6836== 178 bytes in 33 blocks are possibly lost in loss record 2 of 11
==6836==at 0x4C2BBCF: malloc (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==6836==by 0x403838: translabel (grammar.c:203)
==6836==by 0x40356A: _Py_translatelabels (grammar.c:147)
==6836==by 0x405711: _Py_pgen (pgen.c:670)
==6836==by 0x40CBE3: getgrammar (pgenmain.c:125)
==6836==by 0x40C932: main (pgenmain.c:64)
==6836== 
==6836== 584 bytes in 1 blocks are possibly lost in loss record 3 of 11
==6836==at 0x4C2BBCF: malloc (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==6836==by 0x405774: _PyMem_RawMalloc (obmalloc.c:83)
==6836==by 0x4076DE: _PyMem_DebugRawAlloc (obmalloc.c:1903)
==6836==by 0x4077CC: _PyMem_DebugRawMalloc (obmalloc.c:1926)
==6836==by 0x405EDF: PyMem_RawMalloc (obmalloc.c:396)
==6836==by 0x406D16: _PyObject_Alloc (obmalloc.c:1466)
==6836==by 0x407515: _PyObject_Realloc (obmalloc.c:1756)
==6836==by 0x407999: _PyMem_DebugRawRealloc (obmalloc.c:1986)
==6836==by 0x407BB2: _PyMem_DebugRealloc (obmalloc.c:2049)
==6836==by 0x40620A: PyObject_Realloc (obmalloc.c:507)
==6836==by 0x4030C6: _Py_addstate (grammar.c:55)
==6836==by 0x405497: convert (pgen.c:611)
==6836== 
==6836== 640 bytes in 1 blocks are possibly lost in loss record 4 of 11
==6836==at 0x4C2DD9F: realloc (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==6836==by 0x4057F3: _PyMem_RawRealloc (obmalloc.c:105)
==6836==by 0x407999: _PyMem_DebugRawRealloc (obmalloc.c:1986)
==6836==by 0x405F70: PyMem_RawRealloc (obmalloc.c:414)
==6836==by 0x40756A: _PyObject_Realloc (obmalloc.c:1777)
==6836==by 0x407999: _PyMem_DebugRawRealloc (obmalloc.c:1986)
==6836==by 0x407BB2: _PyMem_DebugRealloc (obmalloc.c:2049)
==6836==by 0x40620A: PyObject_Realloc (obmalloc.c:507)
==6836==by 0x403B2A: addnfastate (pgen.c:52)
==6836==by 0x4047E5: compile_atom (pgen.c:300)
==6836==by 0x4045E9: compile_item (pgen.c:268)
==6836==by 0x40438D: compile_alt (pgen.c:237)
==6836== 
==6836== 744 bytes in 1 blocks are definitely lost in loss record 5 of 11
==6836==at 0x4C2DD9F: realloc (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==6836==by 0x4057F3: _PyMem_RawRealloc (obmalloc.c:105)
==6836==by 0x407999: _PyMem_DebugRawRealloc (obmalloc.c:1986)
==6836==by 0x405F70: PyMem_RawRealloc (obmalloc.c:414)
==6836==by 0x40756A: _PyObject_Realloc (obmalloc.c:1777)
==6836==by 0x407999: _PyMem_DebugRawRealloc (obmalloc.c:1986)
==6836==by 0x407BB2: _PyMem_DebugRealloc (obmalloc.c:2049)
==6836==by 0x40620A: PyObject_Realloc (obmalloc.c:507)
==6836==by 0x403D8C: addnfa (pgen.c:126)
==6836==by 0x403F4E: compile_rule (pgen.c:178)
==6836==by 0x403E86: metacompile (pgen.c:164)
==6836==by 0x4056F1: _Py_pgen (pgen.c:668)
==6836== 
==6836== 800 bytes in 1 blocks are possibly lost in loss record 6 of 11
==6836==at 0x4C2BBCF: malloc (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==6836==by 0x405774: _PyMem_RawMalloc (obmalloc.c:83)
==6836==by 0x4076DE: _PyMem_DebugRawAlloc (obmalloc.c:1903)
==6836==by 0x407914: _PyMem_DebugRawRealloc (obmalloc.c:1971)
==6836==by 0x405F70: PyMem_RawRealloc (obmalloc.c:414)
==6836==by 0x40631C: new_arena (obmalloc.c:1064)
==6836==by 0x4067FC: _PyObject_Alloc (obmalloc.c:1339)
==6836==by 0x406D66: _PyObject_Malloc (obmalloc.c:1476)
==6836==by 0x4076DE: _PyMem_DebugRawAlloc (obmalloc.c:1903)
==6836==by 0x4077CC: _PyMem_DebugRawMalloc (obmalloc.c:1926)
==6836==by 0x407B23: _PyMem_DebugMalloc (obmalloc.c:2028)
==6836==by 0x406179: PyObject_Malloc (obmalloc.c:489)
==6836== 
==6836== 892 bytes in 85 blocks are possibly lost in loss record 7 of 11
==6836==

[issue27782] Multi-phase extension module initialization, inconsistent exceptions and conflicts between code and PEP

2016-08-20 Thread Nick Coghlan

Changes by Nick Coghlan :


--
assignee:  -> ncoghlan

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27487] -m switch regression in Python 3.5.2 (under rare circumstances)

2016-08-20 Thread Nick Coghlan

Nick Coghlan added the comment:

Thanks Martin! Closing this as fixed, since the new warning should help nudge 
folks towards staying within the supported subset of the import system 
behaviour when it comes to interactions between package.__init__ and 
package.__main__.

--
resolution:  -> fixed
stage: patch review -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27820] Possible bug in smtplib when initial_response_ok=False

2016-08-20 Thread R. David Murray

Changes by R. David Murray :


--
components: +email
nosy: +barry, r.david.murray

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27487] -m switch regression in Python 3.5.2 (under rare circumstances)

2016-08-20 Thread Roundup Robot

Roundup Robot added the comment:

New changeset 43ae044eaccc by Martin Panter in branch '3.5':
Issue #27487: Warn if submodule already imported before runpy execution
https://hg.python.org/cpython/rev/43ae044eaccc

New changeset fccd733aa78b by Martin Panter in branch 'default':
Issue #27487: Merge runpy warning from 3.5
https://hg.python.org/cpython/rev/fccd733aa78b

--
nosy: +larry, ned.deily, python-dev

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue25532] infinite loop when running inspect.unwrap over unittest.mock.call

2016-08-20 Thread Nick Coghlan

Nick Coghlan added the comment:

An alternative approach would be to change inspect.unwrap() to use 
getattr_static() rather than the usual getattr().

The downside of that would be potentially breaking true object proxies, like 
the 3rd party wrapt module and weakref.proxy.

However, what if inspect.signature implemented a limit on the number of 
recursive descents it permitted (e.g. based on sys.getrecursionlimit()), and 
then halted the descent, the same way it does if it finds a `__signature__` 
attribute on a wrapped object?

`inspect.unwraps` makes that relatively straightforward:

unwrap_count = 0
recursion_limit = sys.getrecursionlimit()
def stop_unwrapping(wrapped):
nonlocal unwrap_count
unwrap_count += 1
return unwrap_count >= recursion_limit
innermost_function = inspect.unwrap(outer_function, stop=stop_unwrapping)

Alternatively, that hard limit on the recursive descent could be baked directly 
into the loop detection logic in inspect.unwrap (raising ValueError rather than 
returning the innermost function reached), as Chris suggested above. We'd then 
just need to check inspect.signature was handling that potential failure mode 
correctly.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27714] some test_idle tests are not re-runnable, producing false failures with regrtest -w option

2016-08-20 Thread Terry J. Reedy

Terry J. Reedy added the comment:

Fixed twice in all 3 versions.  Thanks for the heads-up.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27714] some test_idle tests are not re-runnable, producing false failures with regrtest -w option

2016-08-20 Thread Martin Panter

Martin Panter added the comment:

Terry, in revision 6c8dd4cb4ee7 you wrote “Fix warning tom test_config.” 
Perhaps this is meant to say “. . . from test_config_key” (taken from 
b10a312f6d00)?

--
nosy: +martin.panter

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27805] In Python 3, open('/dev/stdout', 'a') raises OSError with errno=ESPIPE

2016-08-20 Thread Martin Panter

Martin Panter added the comment:

Handling ESPIPE for append mode seems reasonable to me, even as a bug fix for 
existing versions.

But there is a similar problem with "r+" and "w+" modes and unseekable files 
(unless buffering=0). See Issue 20074. So we can’t say in general that Python 3 
faithfully implements all aspects of Python 2’s / C’s / Posix’s file modes.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27819] Always distribute sdist packages as gztar.

2016-08-20 Thread Nick Coghlan

Nick Coghlan added the comment:

This one would be worth a note in What's New as well - both in the "changed 
modules" section under distutils, and in the "Porting to Python 3.6" section

While it doesn't affect Python code per se, it may affect folks doing 
Windows-specific workflow automation, where they'll either need to configure 
the use of "zip" explicitly, or else adjust their other tools to handle .tar.gz 
inputs.

--
nosy: +ncoghlan

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16968] Fix test discovery for test_concurrent_futures.py

2016-08-20 Thread Martin Panter

Martin Panter added the comment:

I don’t know much about the concurrent.futures testing, but in general IMO it 
makes more sense to call thread.join(), or at least @reap_threads, in each 
individual test case that needs it. If appropriate, you can call join() with a 
one-second timeout, which should be functionally equivalent to @reap_threads. 
Leaving a background thread running while you start another test seems like a 
bad idea; concurrent tests aren’t meant to be run in the same process.

Also, I added a gc_collect() call to the test infrastructure in Issue 27787, 
which may help avoid problems with spurious “dangling” thread object references.

--
nosy: +martin.panter

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14853] test_file.py depends on sys.stdin being unseekable

2016-08-20 Thread Martin Panter

Martin Panter added the comment:

Long story short: Don’t change Python 2, and just restore the seek(-1) test in 
3.

I agree in general it is better to skip a test than completely remove it. 
However, in Python 2, the test that Victor proposes to restore is redundant 
with test_file2k. Sys.stdin is always a Python-2-style file object, which for 
some reason or other can allow seek(-1).

Also, this bug was opened for Python 2, with the comment “works fine in 3.2”. I 
do not understand why the test was removed from Python 3.

For the Python 3 version of the test, the OSF/1 skip should not be necessary. 
Also, the truncate() test is probably redundant with the 
test_optional_abilities() method that I added in revision dc9e5f09ac0c (Issue 
22854).

--
nosy: +martin.panter
stage: resolved -> patch review

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20074] open() of read-write non-seekable streams broken

2016-08-20 Thread Martin Panter

Martin Panter added the comment:

Currently, the documentation for TextIOWrapper says it is “a buffered text 
stream over a BufferedIOBase binary stream.” If passing a RawIOBase 
(buffering=0) file works, that seems like an undocumented accident. This is 
also explicitly disallowed with open(). “Pass 0 to switch buffering off (only 
allowed in binary mode)”:

>>> open("/dev/tty", "r+t", buffering=0)
ValueError: can't have unbuffered text I/O

One benefit of requiring "r+b" mode to be seekable is that if you open a pipe 
for random access, it reports the error immediately, rather than after you have 
half written your data and then try to seek(). But I admit this difference 
between buffered=0 mode and random-access mode is obscure.

Given that seeking text streams is rather obscure (Issue 25849), and there are 
sometimes problems in conjunction with writing (Issue 12215) and with 
truncating (Issue 26158), it could make some sense to use BufferedRWPair in 
text mode. But IMO open() is already too complicated, so I am not excited about 
such a change.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27714] some test_idle tests are not re-runnable, producing false failures with regrtest -w option

2016-08-20 Thread Terry J. Reedy

Changes by Terry J. Reedy :


--
resolution:  -> fixed
stage: needs patch -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27714] some test_idle tests are not re-runnable, producing false failures with regrtest -w option

2016-08-20 Thread Roundup Robot

Roundup Robot added the comment:

New changeset 1c4cb01723a0 by Terry Jan Reedy in branch '2.7':
Issue #27714: Remove unneeded non-idempotent call that fails on retest.
https://hg.python.org/cpython/rev/1c4cb01723a0

New changeset 0e4bea7c8c00 by Terry Jan Reedy in branch '3.5':
Issue #27714: Remove unneeded non-idempotent call that fails on retest.
https://hg.python.org/cpython/rev/0e4bea7c8c00

New changeset e5db20ad0328 by Terry Jan Reedy in branch 'default':
Issue #27714: Remove unneeded non-idempotent call that fails on retest.
https://hg.python.org/cpython/rev/e5db20ad0328

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27820] Possible bug in smtplib when initial_response_ok=False

2016-08-20 Thread Dario D'Amico

Dario D'Amico added the comment:

I have reasons to believe that smtlib.py does not support AUTH LOGIN well.

My guts feeling are that the auth_login method should be changed into:

def auth_login(self, challenge=None):
print("auth_login", challenge)
""" Authobject to use with LOGIN authentication. Requires self.user and
self.password to be set."""
if challenge is None:
return self.user
elif challenge == b'Username:':
return self.user
elif challenge == b'Password:':
return self.password

While the if at line 634, in the auth method, should actually be a while,
so that this:

# If server responds with a challenge, send the response.
if code == 334:
challenge = base64.decodebytes(resp)
response = encode_base64(
authobject(challenge).encode('ascii'), eol='')
(code, resp) = self.docmd(response)

is turned into this:

# If server responds with a challenge, send the response.
# Note that there may be multiple, sequential challenges.
while code == 334:
challenge = base64.decodebytes(resp)
response = encode_base64(
authobject(challenge).encode('ascii'), eol='')
(code, resp) = self.docmd(response)

First, some background on AUTH LOGIN; based on my understanding of
http://www.fehcom.de/qmail/smtpauth.html there are two possible ways
to authenticate a client using AUTH LOGIN:

Method A
C: AUTH LOGIN
S: 334 VXNlcm5hbWU6
C: 
S: 334 UGFzc3dvcmQ6
C: 

Method B
C: AUTH LOGIN 
S: 334 UGFzc3dvcmQ6
C: 

The second method saves two round trips because the client sends
the username together with the AUTH LOGIN command. Note that the
strings VXNlcm5hbWU6 and UGFzc3dvcmQ6 are fixed and they are,
respectively, the Base64 encodings of 'Username:' and 'Password:'.

In the following I will detail my experience with smtplib.

Everything begun from this code fragment:

smtpObj = smtplib.SMTP("smtp.example.com", "25")
smtpObj.set_debuglevel(2)
smtpObj.login("nore...@example.com", "chocolaterain")
smtpObj.sendmail(sender, receivers, message)

The debug log produced by smtplib looked like this:

01:53:32.420185 send: 'ehlo localhost.localdomain\r\n'
01:53:32.624123 reply: b'250-smtp.example.com\r\n'
01:53:32.862965 reply: b'250-AUTH LOGIN\r\n'
01:53:32.863490 reply: b'250 8BITMIME\r\n'
01:53:32.863844 reply: retcode (250); Msg: b'smtp.example.com\nAUTH 
LOGIN\n8BITMIME'
01:53:32.868414 send: 'AUTH LOGIN <<>>\r\n'
01:53:33.069884 reply: b'501 syntax error\r\n'
01:53:33.070479 reply: retcode (501); Msg: b'syntax error'
Traceback (most recent call last):
  File "/usr/lib/python3.5/runpy.py", line 184, in _run_module_as_main
"__main__", mod_spec)
  File "/usr/lib/python3.5/runpy.py", line 85, in _run_code
exec(code, run_globals)
  File "/home/dario/Programming/DigitalOcean/s.py", line 48, in 
smtpObj.login("nore...@example.com", "chocolaterain")
  File "/usr/lib/python3.5/smtplib.py", line 729, in login
raise last_exception
  File "/usr/lib/python3.5/smtplib.py", line 720, in login
initial_response_ok=initial_response_ok)
  File "/usr/lib/python3.5/smtplib.py", line 641, in auth
raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (501, b'syntax error')

This is most likely not an issue with smtplib, but simply an
indication that smtp.example.com does not support receiving the
username together with AUTH LOGIN (method B), and it replies with 501 syntax 
error.

I figured out that I could force the alternate data flow (method A), in which
the username is issued in a separate command, by setting
initial_response_ok=False when logging in:

smtpObj = smtplib.SMTP("smtp.example.com", "25")
smtpObj.set_debuglevel(2)
smtpObj.login("nore...@example.com", "chocolaterain", 
initial_response_ok=False)
smtpObj.sendmail(sender, receivers, message)

This resulted in a slightly more interesting behaviour:

01:53:54.445118 send: 'ehlo localhost.localdomain\r\n'
01:53:54.648136 reply: b'250-smtp.example.com\r\n'
01:53:54.884669 reply: b'250-AUTH LOGIN\r\n'
01:53:54.885197 reply: b'250 8BITMIME\r\n'
01:53:54.88 reply: retcode (250); Msg: b'smtp.example.com\nAUTH 
LOGIN\n8BITMIME'
01:53:54.890051 send: 'AUTH LOGIN\r\n'
01:53:55.089540 reply: b'334 VXNlcm5hbWU6\r\n'
01:53:55.090119 reply: retcode (334); Msg: b'VXNlcm5hbWU6'
01:53:55.090955 send: '<<>>=\r\n'
01:53:55.296243 reply: b'334 UGFzc3dvcmQ6\r\n'
01:53:55.296717 reply: retcode (334); Msg: b'UGFzc3dvcmQ6'
Traceback (most recent call last):
  File "/usr/lib/python3.5/runpy.py", line 184, in _run_module_as_main
"__main__", mod_spec)
  File "/usr/lib/python3.5/runpy.py", line 85, in _run_code
exec(code, run_globals)
  File "/home/dario/Programming/DigitalOcean/s.py", line 57, in 
smtpObj.login("nore...@example.com", "16226464", 

[issue27820] Possible bug in smtplib when initial_response_ok=False

2016-08-20 Thread Dario D'Amico

New submission from Dario D'Amico:

oo

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue25532] infinite loop when running inspect.unwrap over unittest.mock.call

2016-08-20 Thread Hugo Geoffroy

Hugo Geoffroy added the comment:

This patch blacklists `__wrapped__` (using the same form as the first comment, 
with a more explicit exception message) in `unittest.mock._Call.__getattr__`. 

I also documented the change and added a tests that checks 
`assertFalse(hasattr(call, '__wrapped__'))`.

I did not make the same change in the `Mock` class, as its instances are not 
usually set at module level (which is what triggers this bug in doctests, as 
they run `inspect.unwrap` on module attributes).

I'd like to note that this regression can be nasty for some CI systems : it 
makes the Python interpreter infinitely allocate memory (as it's not a 
recursion error) and crashes any host that doesn't limit virtual memory 
allocation.

--
keywords: +patch
nosy: +pstch
Added file: 
http://bugs.python.org/file44178/blacklist-wrapped-in-mock-call.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27820] Possible bug in smtplib when initial_response_ok=False

2016-08-20 Thread Dario D'Amico

Changes by Dario D'Amico :


Removed file: http://bugs.python.org/file44177/SmtplibBugReport.txt

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27820] Possible bug in smtplib when initial_response_ok=False

2016-08-20 Thread Dario D'Amico

Changes by Dario D'Amico :


Added file: http://bugs.python.org/file44177/SmtplibBugReport.txt

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27820] Possible bug in smtplib when initial_response_ok=False

2016-08-20 Thread Dario D'Amico

Changes by Dario D'Amico :


--
components: Library (Lib)
nosy: Dario D'Amico
priority: normal
severity: normal
status: open
title: Possible bug in smtplib when initial_response_ok=False
type: crash
versions: Python 3.5

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12594] Docs for "Using Python on a Macintosh" needs to be updated

2016-08-20 Thread Scott Macpherson

Scott Macpherson added the comment:

I'd like to help out with this issue if I can. This page in the documentation 
is really showing it's age now.

* I think referring to "OS X" (soon to be "MacOS") instead of "Mac" or 
"Macintosh" would more accurate.
* The opening paragraph of section 4.1 only refers to OS X 10.8, which was 
released over 4 years ago.
* Is there any value in listing text editors in section 4.1.1? Editors 
frequently come-and-go.
* I suspect a large number of Python 3 developers running OS X use 
http://brew.sh/ - would it be worth mentioning this somewhere?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12594] Docs for "Using Python on a Macintosh" needs to be updated

2016-08-20 Thread Scott Macpherson

Changes by Scott Macpherson :


--
nosy: +macpherson.scott

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9850] obsolete macpath module dangerously broken and should be removed

2016-08-20 Thread Scott Macpherson

Changes by Scott Macpherson :


--
nosy: +macpherson.scott

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16113] Add SHA-3 and SHAKE (Keccak) support

2016-08-20 Thread Christian Heimes

Christian Heimes added the comment:

Patch 3 addresses GPS' code review.

--
Added file: 
http://bugs.python.org/file44176/SHA3-and-SHAKE-support-for-Python-3.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26907] Add missing getsockopt constants

2016-08-20 Thread Martin Panter

Martin Panter added the comment:

Patch looks fine to me.

--
stage:  -> commit review

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27816] sock.proto does not reflect actual protocol

2016-08-20 Thread Martin Panter

Martin Panter added the comment:

The documentation already says “Socket objects also have these (read-only) 
attributes that correspond to the values given to the socket constructor. . . . 
socket.proto”. For existing versions of Python, I’m not sure there is much else 
we can do.

In Issue 27377, I mentioned the idea of using the logic there (SO_PROTOCOL etc) 
to determine the socket.proto attribute automatically.

--
nosy: +martin.panter
versions:  -Python 3.4

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26798] add BLAKE2 to hashlib

2016-08-20 Thread Christian Heimes

Christian Heimes added the comment:

Patch 4 uses the latest revision of the reference implementation.

--
Added file: 
http://bugs.python.org/file44175/BLAKE2-hash-algorithm-for-CPython-4.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27666] "stack smashing detected" in PyCursesWindow_Box

2016-08-20 Thread Steve Fink

Steve Fink added the comment:

I'm running now (successfully) with a simpler patch, just changing it to parse 
format 'i', but this patch is probably a bit safer.

--
keywords: +patch
Added file: http://bugs.python.org/file44174/python-2.7.12-curses-argparse.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27819] Always distribute sdist packages as gztar.

2016-08-20 Thread Jason R. Coombs

Changes by Jason R. Coombs :


--
resolution:  -> fixed
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27643] test_ctypes fails on AIX with xlc

2016-08-20 Thread Eric N. Vander Weele

Changes by Eric N. Vander Weele :


--
nosy: +ericvw

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue25825] AIX shared library extension modules installation broken

2016-08-20 Thread Eric N. Vander Weele

Changes by Eric N. Vander Weele :


--
nosy: +ericvw

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27819] Always distribute sdist packages as gztar.

2016-08-20 Thread Roundup Robot

Roundup Robot added the comment:

New changeset 8d09ec0ee934 by Jason R. Coombs in branch 'default':
Issue #27819: Simply default to gztar for sdist formats by default on all 
platforms.
https://hg.python.org/cpython/rev/8d09ec0ee934

--
nosy: +python-dev

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27818] Speed up number format spec parsing

2016-08-20 Thread Stefan Behnel

Stefan Behnel added the comment:

You can easily see it by running timeit on fstrings, e.g. patched:

$ ./python -m timeit 'f"{34276394612:15}"'
100 loops, best of 3: 0.352 usec per loop
$ ./python -m timeit 'f"{34.276394612:8.6f}"'
100 loops, best of 3: 0.497 usec per loop

and original Py3.6 master:

$ ./python -m timeit 'f"{34276394612:15}"'
100 loops, best of 3: 0.435 usec per loop
$ ./python -m timeit 'f"{34.276394612:8.6f}"'
100 loops, best of 3: 0.589 usec per loop

It doesn't make much of a difference if you use constants or variables, BTW.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27819] Always distribute sdist packages as gztar.

2016-08-20 Thread Jason R. Coombs

New submission from Jason R. Coombs:

Per https://github.com/pypa/setuptools/pull/748#issuecomment-241212548, 
distutils should by default produce gztar formats on all platforms.

--
assignee: jason.coombs
components: Distutils
messages: 273245
nosy: dstufft, eric.araujo, jason.coombs
priority: normal
severity: normal
status: open
title: Always distribute sdist packages as gztar.
versions: Python 3.6

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27818] Speed up number format spec parsing

2016-08-20 Thread Serhiy Storchaka

Serhiy Storchaka added the comment:

What benchmarks you used?

--
nosy: +serhiy.storchaka

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27818] Speed up number format spec parsing

2016-08-20 Thread Ned Deily

Changes by Ned Deily :


--
nosy: +eric.smith
stage:  -> patch review

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27818] Speed up number format spec parsing

2016-08-20 Thread Stefan Behnel

New submission from Stefan Behnel:

I noticed that quite some time during number formatting is spent parsing the 
format spec. The attached patch speeds up float formatting by 5-15% and integer 
formatting by 20-30% for me overall when using f-strings (Ubuntu 16.04, 64bit).

--
components: Interpreter Core
files: faster_format.patch
keywords: patch
messages: 273243
nosy: scoder
priority: normal
severity: normal
status: open
title: Speed up number format spec parsing
type: performance
versions: Python 3.6
Added file: http://bugs.python.org/file44173/faster_format.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27814] contextlib.suppress: Add whitelist argument

2016-08-20 Thread Nick Coghlan

Nick Coghlan added the comment:

contextlib.suppress provides a contextmanager spelling for the following 
pattern:

try:

except :
pass

That's a very common pattern worth having in the standard library, even though 
it's only a 5 line context manager.

The proposed API change would make it instead an implementation of the vastly 
*less* common pattern:

try:

except :
raise
except :
pass

For the use case you're discussing (trying to shut down, potentially failing, 
but also not wanting to hide genuine programming errors), I'd be more amenable 
to introducing a comparable context manager to the logging module that, instead 
of silently ignoring caught exceptions, logged them, and also allowed you to 
restrict which exceptions were logged.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26907] Add missing getsockopt constants

2016-08-20 Thread Christian Heimes

Christian Heimes added the comment:

The attached patch adds SO_DOMAIN, SO_PROTOCOL, SO_PEERSEC and SO_PASSSEC. I'd 
like to get the constants into the stdlib in case Neil's patch won't make it 
into 3.6.

--
keywords: +patch
Added file: http://bugs.python.org/file44172/Add-SO_-socket-constants.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27691] X509 cert with GEN_RID subject alt name causes SytemError

2016-08-20 Thread Christian Heimes

Christian Heimes added the comment:

ping

--
nosy: +Lukasa, haypo
type: behavior -> security

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27814] contextlib.suppress: Add whitelist argument

2016-08-20 Thread Michael Büsch

Michael Büsch added the comment:

>when particular instances of "catch this exception, but not these ones" become 
>common, we tend to *change the standard exception hierarchy* to eliminate them 
>(e.g. StopIteration, KeyboardError, GeneratorExit no longer inheriting from 
>Exception).

But my patch does not change that behaviour.
We already have "catch this exception, but not these ones". It's called 
contextlib.suppress.
I'm not adding this behaviour to the library/language.
This patch just improves contextlib.suppress in the way that we can now easily 
remove exceptions from the suppress-set.

>So if you have new cases where that's happening frequently for you 

Ok, let me explain the real world scenario that I have here.
Imagine some application that does something over the network and an exception 
occurs. We catch that and decide that the program must die. However before 
doing so we need to send stuff over the network to cleanly tear down things. 
This is done on a best-effort basis. So we try to send these messages, but we 
silently ignore _all_ failures. What would we do anyway? We are exiting already.

And that's what I do. Wrap these actions in helpers that ignore all exceptions, 
except for SyntaxError and NameError and such, so that I can still see 
programming errors in the source code.
So I would do 'with suppress(Exception, unless=(SyntaxError, ...)'.

I do think that tearing down stuff and ignoring every exception really is a 
common thing to do. See __del__ for example. There's a reason we must make sure 
to ignore all exceptions before we return from __del__.
We could actually use suppress with unless for this.

If we try to handle exceptions in a tear-down situation instead, we will end in 
an infinite loop most of the time.

But suppress.unless is useful for other things, too.
It's a way to say: I want to ignore this set of errors, except this/these 
single ones from the set.
This patch adds the 'except' part of this sentence to contextlib.suppress.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27323] ncurses putwin() fails in test_module_funcs

2016-08-20 Thread Serhiy Storchaka

Serhiy Storchaka added the comment:

Thanks again for estimation.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27692] Clean serveral unnecessary NULL checks in exceptions.c

2016-08-20 Thread Roundup Robot

Roundup Robot added the comment:

New changeset 6e6aa2054824 by Serhiy Storchaka in branch 'default':
Issue #27692: Removed unnecessary NULL checks in exceptions.c.
https://hg.python.org/cpython/rev/6e6aa2054824

--
nosy: +python-dev

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27692] Clean serveral unnecessary NULL checks in exceptions.c

2016-08-20 Thread Serhiy Storchaka

Serhiy Storchaka added the comment:

Oh, I missed this issue.

--
resolution:  -> fixed
stage: commit review -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27323] ncurses putwin() fails in test_module_funcs

2016-08-20 Thread Chi Hsuan Yen

Chi Hsuan Yen added the comment:

NCURSES_OPAQUE is enabled if --with-reentrant is used. From Xavier's log I 
guess it's on Arch Linux. Arch Linux does not use --with-reentrant in ncurses 
[1] and it seems OpenSUSE does [2].

[1] 
https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/ncurses
[2] 
http://download.opensuse.org/repositories/home:/sleep_walker:/ncurses/openSUSE_Factory_ARM/src/ncurses6-6.0-13.9.src.rpm

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27814] contextlib.suppress: Add whitelist argument

2016-08-20 Thread Nick Coghlan

Nick Coghlan added the comment:

It's the "really common problem" assertion that I'm disputing - when particular 
instances of "catch this exception, but not these ones" become common, we tend 
to *change the standard exception hierarchy* to eliminate them (e.g. 
StopIteration, KeyboardError, GeneratorExit no longer inheriting from 
Exception).

So if you have new cases where that's happening frequently for you (presumably 
as a result of the https://www.python.org/dev/peps/pep-3151/ reworking of the 
OSError hierarchy, given the documented examples), then it would be better to 
take that *problem* to python-ideas for discussion and brainstorming, before 
coming back to the issue tracker to propose a possible solution (whether that's 
changing the hierarchy, enhancing contextlib.suppress, or doing something else)

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27323] ncurses putwin() fails in test_module_funcs

2016-08-20 Thread Serhiy Storchaka

Serhiy Storchaka added the comment:

Thanks Chi Hsuan Yen.

Just wondering, how you built Python with ncurses 6.0 Xavier? There is an issue 
with compiling with ncurses 6.0 (issue25720).

--
resolution:  -> third party
stage:  -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27776] PEP 524: Make os.urandom() blocking on Linux

2016-08-20 Thread Nick Coghlan

Nick Coghlan added the comment:

+1 for a fallback in the SIPHash initialisation as well.

That's the case where Nathaniel Smith suggested we may want to issue a warning 
that the process shouldn't be used to handle untrusted inputs (since that 
particular remote DoS defence won't be working properly), but the monotonic 
time + the PID should be sufficiently unpredictable seeding for that case 
(since there are plenty of lower hanging fruit for attackers to go after).

For testing, is there some way we could integrate an automated test of the 
deliberately misbehaving _PyOS_UrandomNonBlock into the testembed helper? If we 
can come up with a sensible way to do that, it could potentially help with 
testing the os.getrandom() BlockingIOError generation as well.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27817] tkinter string variable misinterpreted as boolean

2016-08-20 Thread Serhiy Storchaka

Changes by Serhiy Storchaka :


--
nosy: +serhiy.storchaka
stage:  -> test needed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27814] contextlib.suppress: Add whitelist argument

2016-08-20 Thread Michael Büsch

Michael Büsch added the comment:

>and instead point you towards https://bugs.python.org/issue12029 

Fair enough.
But how would a 'suppress OSError, but catch FileNotFoundError' look like with 
this for example?
(Note that I can't subclass the exception)

>I'm also not sure it's an idiom we really want to encourage, as it tends to 
>age poorly as new exception subclasses are added,

I partially agree. But there's one important spot where I need this behaviour: 
It is cleanup paths where I cannot react to most exceptions. For example 
because I already am handling exceptions and am already trying to tear the 
whole thing down anyway.

>as well as confusing exception flow logic like the example given in the 
>documentation

I disagree.
The control flow does not change with this patch at all.
It either pops out of the with-statement with an exception, or it does not.
The only thing this patch does is _reduce_ the set of exceptions it suppresses.

>For folks that do need this capability, building it themselves is pretty 
>straightforward, 

Nah. The whole point of contextlib.suppress is to avoid boilerplate code. 
People could do their own stuff. In fact, that is what I did. But I prefer a 
standard solution in the standard library for this really common problem 
instead.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27817] tkinter string variable misinterpreted as boolean

2016-08-20 Thread R. David Murray

R. David Murray added the comment:

Any chance you could provide a simple reproducer?  We'll need something for a 
unit test.

--
nosy: +r.david.murray
title: String variable misinterpreted as boolean -> tkinter string variable 
misinterpreted as boolean

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27323] ncurses putwin() fails in test_module_funcs

2016-08-20 Thread Chi Hsuan Yen

Chi Hsuan Yen added the comment:

This is actually a ncurses bug: 
http://lists.gnu.org/archive/html/bug-ncurses/2016-05/msg0.html

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27598] Add SizedIterable to collections.abc and typing

2016-08-20 Thread Guido van Rossum

Guido van Rossum added the comment:

No on adding __eq__.

If another core dev is available please go ahead and commit.

--
title: Add Collection to collections.abc and typing -> Add SizedIterable to 
collections.abc and typing

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27283] Add a "What's New" entry for PEP 519

2016-08-20 Thread Brett Cannon

Brett Cannon added the comment:

Here is an updated patch to address SilentGhost's review comments and a couple 
of examples as Berker suggested.

--
Added file: http://bugs.python.org/file44171/pep_519_whatsnew.diff

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27814] contextlib.suppress: Add whitelist argument

2016-08-20 Thread Nick Coghlan

Nick Coghlan added the comment:

Michael, first of all, thanks for taking the time to propose this idea, and put 
together a patch for it.

Unfortunately, I'm going to have to decline the proposal for API design reasons 
(which I'll explain below), and instead point you towards 
https://bugs.python.org/issue12029 which aims to fix a limitation in the normal 
exception handling that prevents custom __subclasscheck__ hooks from being 
usable in normal except clauses.

This is a more significant proposed change to the language than it first 
appears, as Python has never really had a concise fully standardised "catch 
these exceptions, but not these ones" syntax, with your options being limited 
to a preceding "except : raise" clause, or doing an 
isinstance() check on an already caught exception.

I'm also not sure it's an idiom we really want to encourage, as it tends to age 
poorly as new exception subclasses are added, as well as confusing exception 
flow logic like the example given in the documentation, which would be clearer 
with a single inline exception statement and a well-named flag variable:

run_optional_code = True
try:
os.remove(somefile)
except PermissionError:
run_optional_code = False
except OSError:
pass
if run_optional_code:
# Executed on success and on OSError
# other than PermissionError
# In a real example, "run_optional_code" would
# be replaced by a name that actually conveyed
# useful information to future readers

For folks that do need this capability, building it themselves is pretty 
straightforward, and if they go so far as to define a custom __instancecheck__ 
and __subclasscheck__ implementation, that will already work with 
contextlib.suppress(), but would need https://bugs.python.org/issue12029 to 
land to work with ordinary except clauses.

--
resolution:  -> rejected
stage: patch review -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27805] In Python 3, open('/dev/stdout', 'a') raises OSError with errno=ESPIPE

2016-08-20 Thread R. David Murray

Changes by R. David Murray :


--
versions: +Python 3.6

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27805] In Python 3, open('/dev/stdout', 'a') raises OSError with errno=ESPIPE

2016-08-20 Thread R. David Murray

R. David Murray added the comment:

And the fact that python deviates from posix in this regard seems like a bug to 
me, since the posix behavior is, as noted, very useful.  Can't we handle ESPIPE 
like the C library does, instead of forcing users to learn that arcane 
incantation?

--
nosy: +r.david.murray

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27817] String variable misinterpreted as boolean

2016-08-20 Thread Andreas Bolsch

New submission from Andreas Bolsch:

Applies to 2.7.10 and 2.7.12:

Installed LinuxCNC from source at https://github.com/LinuxCNC/linuxcnc :
./configure --with-realtime=uspace --enable-simulator 
--enable-non-distributable=yes --prefix=/usr --libdir=/usr/lib64
make
make install

Configured device as per attached files, that's a simulated XYZ-mill.

Now start application with: 
linuxcnc linuxcnc/configs/my-mill/my-mill.ini

The "Manual Control Widget" has a radio button denoted "X", "Y", "Z" with 
values "x", "y" and "z" to select the active axis. "X" and "Z" work as desired, 
but "Y" does not. Instead:

Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib64/python2.7/lib-tk/Tkinter.py", line 1537, in __call__
return self.func(*args)
  File "/usr/bin/axis", line 2323, in jog_plus
a = "xyzabcuvw".index(a)
ValueError: substring not found

Reason: The Tcl button variable "current_axis" gets "y" assigned to as desired. 
The corresponding python variable "a" however, gets "True". I've tracked that 
down to "FromObj" in "_tkinter.c" where "value->typePtr" equals 
"app->OldBooleanType". 

In 2.7.8 and 2.7.9 the behavior is ok, but in 2.7.10 and 2.7.12 button value 
"y" (and of course "yes", "no" etc.) is transformed into boolean a value ...

This change of behaviour depends only on _tkinter.so, exchanging just *this 
single* file makes the problem (dis-) appear.

--
components: Tkinter
messages: 273224
nosy: Andreas Bolsch
priority: normal
severity: normal
status: open
title: String variable misinterpreted as boolean
type: behavior
versions: Python 2.7

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27805] In Python 3, open('/dev/stdout', 'a') raises OSError with errno=ESPIPE

2016-08-20 Thread Shane Hathaway

Shane Hathaway added the comment:

Thanks for the analysis. I have already started a pull request to fix this in 
Supervisor, but I also thought this change to Python might be gratuitous and 
accidental. It seems like open('/dev/stdout', 'a') ought to work the same as 
Python 2. If not, the Python documentation should warn people that using 'a' 
with character devices and FIFOs will cause an OSError.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27816] sock.proto does not reflect actual protocol

2016-08-20 Thread Christian Heimes

New submission from Christian Heimes:

The proto property of a socket object does not reflect the actual protocol of 
the socket file descriptor:

>>> import socket
>>> SO_PROTOCOL = getattr(socket, 'SO_PROTOCOL', 38)
>>> tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>>> tcp.proto
0
>>> tcp.getsockopt(socket.SOL_SOCKET, SO_PROTOCOL)
6
>>> socket.getprotobyname('tcp')
6

--
components: Extension Modules
messages: 273222
nosy: christian.heimes
priority: normal
severity: normal
stage: needs patch
status: open
title: sock.proto does not reflect actual protocol
versions: Python 2.7, Python 3.4, Python 3.5, Python 3.6

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26981] add compatibility shim for enum34 backport

2016-08-20 Thread Ethan Furman

Ethan Furman added the comment:

Thanks!

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26981] add compatibility shim for enum34 backport

2016-08-20 Thread Roundup Robot

Roundup Robot added the comment:

New changeset bdfd4c8384de by Ethan Furman in branch 'default':
issue26981: fix typo
https://hg.python.org/cpython/rev/bdfd4c8384de

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27323] ncurses putwin() fails in test_module_funcs

2016-08-20 Thread Chi Hsuan Yen

Changes by Chi Hsuan Yen :


--
nosy: +Chi Hsuan Yen

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27692] Clean serveral unnecessary NULL checks in exceptions.c

2016-08-20 Thread Xiang Zhang

Xiang Zhang added the comment:

Ping. :)

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27813] When I assign for a item which list of single item

2016-08-20 Thread ZHY

Changes by ZHY :


--
nosy:  -anngg2008

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27813] When I assign for a item which list of single item

2016-08-20 Thread ZHY

ZHY added the comment:

Sorry, it's my mistake. Thanks.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27813] When I assign for a item which list of single item

2016-08-20 Thread ZHY

Changes by ZHY :


Removed file: http://bugs.python.org/file44167/a.png

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27814] contextlib.suppress: Add whitelist argument

2016-08-20 Thread Michael Büsch

Michael Büsch added the comment:

Thanks for your comments.
Here's version 2 of the patch.

Changes:
- A typo in the docstring was fixed.
- Space was removed in keyword assignments.
- Documentation was added.

(Note that I signed and sent the contributor agreement. It should arrive soon.)

--
Added file: 
http://bugs.python.org/file44170/contextlib-suppress-whitelist-v2.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26981] add compatibility shim for enum34 backport

2016-08-20 Thread SilentGhost

SilentGhost added the comment:

Ethan, in Misc/NEWS it says "compatibility ship"

--
nosy: +SilentGhost

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27814] contextlib.suppress: Add whitelist argument

2016-08-20 Thread SilentGhost

SilentGhost added the comment:

Spaces around '=' sign in function definitions/calls.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26981] add compatibility shim for enum34 backport

2016-08-20 Thread Ethan Furman

Changes by Ethan Furman :


--
resolution:  -> fixed
stage: needs patch -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26981] add compatibility shim for enum34 backport

2016-08-20 Thread Roundup Robot

Roundup Robot added the comment:

New changeset 10830e1b2966 by Ethan Furman in branch 'default':
issue26981: add _order_ compatibility shim to enum.Enum
https://hg.python.org/cpython/rev/10830e1b2966

--
nosy: +python-dev

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27814] contextlib.suppress: Add whitelist argument

2016-08-20 Thread Michael Büsch

Michael Büsch added the comment:

>Could you please produce a patch that conforms to PEP-8.

I tried hard to do so. Could you please tell me what parts are not compliant, 
so I can fix them?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27814] contextlib.suppress: Add whitelist argument

2016-08-20 Thread SilentGhost

SilentGhost added the comment:

Also, these would need documentation changes.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27814] contextlib.suppress: Add whitelist argument

2016-08-20 Thread SilentGhost

SilentGhost added the comment:

Could you please produce a patch that conforms to PEP-8.

--
nosy: +SilentGhost
stage:  -> patch review
versions: +Python 3.6

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27814] contextlib.suppress: Add whitelist argument

2016-08-20 Thread Barry A. Warsaw

Changes by Barry A. Warsaw :


--
nosy: +barry

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue25746] test_unittest failure in leaks searching mode

2016-08-20 Thread Xiang Zhang

Xiang Zhang added the comment:

Simple reproduction:

>>> pickle.dumps(unittest.loader._make_skipped_test('hello', RuntimeError, 
>>> unittest.suite.TestSuite))
Traceback (most recent call last):
  File "", line 1, in 
_pickle.PicklingError: Can't pickle : 
attribute lookup ModuleSkipped on unittest.loader failed

Exporting ModuleSkipped in unittest.loader can solve this. But maybe any more 
elegant method?

--
nosy: +xiang.zhang

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1223] httplib does not handle ssl end of file properly

2016-08-20 Thread Martin Panter

Martin Panter added the comment:

I think the default of suppress_ragged_eofs=True was a bad idea because by 
default you cannot tell a secure EOF signal from an insecure error; see Issue 
27815.

--
nosy: +martin.panter

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27815] Make SSL suppress_ragged_eofs default more secure

2016-08-20 Thread Martin Panter

New submission from Martin Panter:

In the SSL module, the wrap_socket() function (and corresponding SSLContext 
method) take a flag called “suppress_ragged_eofs”. It defaults to True, which 
makes me uncomfortable. The documentation says:

'''
The parameter “suppress_ragged_eofs” specifies how the SSLSocket.recv() method 
should signal unexpected EOF from the other end of the connection. If specified 
as True (the default), it returns a normal EOF (an empty bytes object) in 
response to unexpected EOF errors raised from the underlying socket; if False, 
it will raise the exceptions back to the caller.
'''

I understand the “unexpected EOF error” happens when the underlying socket 
indicates EOF, but the connection was not shut down at the SSL protocol level. 
As well as EOF from the other end of the connection, it can happen due to a 
proxy, or anything else on the network that can affect the connection. I think 
it may be better report this error by default, just like other unsecured 
network-level errors like connection reset or timeout. Otherwise it is too easy 
to treat this insecure EOF condition as if it were a secure EOF signal of the 
remote peer.

The flag was added as part of r64578, for Issue 1223, in Python 2.6. The reason 
given in that bug report was to help Python work with a HTTP server. However my 
theory is the server was closing the connection wrongly; if so, the server 
should have been fixed, rather than Python.

There is plenty of precedence for using suppress_ragged_eofs=True with HTTPS 
servers. As well as Issue 1223, there is Issue 494762 and Issue 500311. And in 
my experiments, Curl and Firefox both seem to treat the error the same as a 
secure EOF. Maybe there should be a way to keep supporting HTTPS servers that 
trigger the error (though I would rather not by default).

Attached is a HTTP proxy server that will let you break a connection after 
returning a set number of bytes (or any time by killing the server), which can 
trigger the error condition.

Example output of proxy server:
$ python truncating_proxy.py --limit 12345
Proxy server at http://127.0.0.1:46687
Proxying connection to www.python.org:443
Forwarded 12345 B to client

Python 2’s httplib module does not treat a short HTTP response as an error, so 
the following request gets truncated without much indication of a problem:
$ https_proxy=http://127.0.0.1:46687 python2 -c 'import urllib2; 
print(urllib2.urlopen("https://www.python.org/;).read())'

[. . .]

[issue27814] contextlib.suppress: Add whitelist argument

2016-08-20 Thread Michael Büsch

Changes by Michael Büsch :


--
nosy: +rhettinger

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27805] In Python 3, open('/dev/stdout', 'a') raises OSError with errno=ESPIPE

2016-08-20 Thread STINNER Victor

STINNER Victor added the comment:

Antti Haapala added the comment:
> Presumably the case was that a *named* log file is opened with 'a' mode, and 
> one could pass '/dev/stdout' just like any other name of a file, and it did 
> work, but not in Python 3.5.

Oh ok, in this case, you need something smarter like:

mode = 'a' if not stat.S_ISCHR(os.stat(filename).st_mode) else 'w'
fp = open(filename, mode)

or something like (emulate append mode, but catch ESPIPE):

fp = open(filename, 'w')
try:
  fp.seek(0, os.SEEK_END)
except OSError as exc:
  if exc.errno != errno.ESPIPE: raise

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27814] contextlib.suppress: Add whitelist argument

2016-08-20 Thread Michael Büsch

New submission from Michael Büsch:

This adds a whitelist parameter with the name 'unless' to contextlib.suppress, 
so one can specify exceptions that will not be suppressed.

This is useful for specifying single sub-exceptions that we still want to 
catch, even of we want to suppress all other siblings.

Or it can be used to suppress all exceptions except some very specific ones by 
suppressing BaseException and whitelisting things like SyntaxError, NameError 
and the like.

Usage looks like this:

with suppress(OSError, unless = PermissionError):
with open("foobar", "wb") as f:
f.write(...


I selected the name 'unless' instead of 'whitelist' or such, because I think 
that pronounces nicely in the 'with' line context. However please feel free to 
make better suggestions.

--
components: Library (Lib)
files: contextlib-suppress-whitelist.patch
keywords: patch
messages: 273206
nosy: mb_, ncoghlan, yselivanov
priority: normal
severity: normal
status: open
title: contextlib.suppress: Add whitelist argument
type: enhancement
Added file: http://bugs.python.org/file44168/contextlib-suppress-whitelist.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27813] When I assign for a item which list of single item

2016-08-20 Thread Steven D'Aprano

Steven D'Aprano added the comment:

For future reference, don't post screen shots. Copy and paste the text of your 
code and its output. You don't program with Photoshop, you program with a text 
editor.

Screen shots make it impossible to copy the code, search for the text, and make 
it difficult or impossible for the blind and visually impaired to contribute.

--
nosy: +steven.daprano

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27805] In Python 3, open('/dev/stdout', 'a') raises OSError with errno=ESPIPE

2016-08-20 Thread Antti Haapala

Antti Haapala added the comment:

Presumably the case was that a *named* log file is opened with 'a' mode, and 
one could pass '/dev/stdout' just like any other name of a file, and it did 
work, but not in Python 3.5.

--
nosy: +ztane

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23231] Fix codecs.iterencode/decode() by allowing data parameter to be omitted

2016-08-20 Thread Serhiy Storchaka

Serhiy Storchaka added the comment:

> it might be simpler to document that

Agreed.

--
assignee: serhiy.storchaka -> martin.panter
nosy: +r.david.murray

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27813] When I assign for a item which list of single item

2016-08-20 Thread SilentGhost

Changes by SilentGhost :


--
components: +Interpreter Core -Windows
stage:  -> resolved

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27813] When I assign for a item which list of single item

2016-08-20 Thread Martin Panter

Martin Panter added the comment:

Original post:

“When I assign for a item which list of single item, it seems can't set a value 
for item which I want to.”

See the FAQ entry 
.
 When you multiply a list, each outer item is actually just reference to the 
same inner list object.

--
nosy: +martin.panter
resolution:  -> not a bug
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27813] When I assign for a item which list of single item

2016-08-20 Thread ZHY

New submission from ZHY:

it seems can't set a value for item which I want to.

--
components: Windows
files: 无标题.png
messages: 273201
nosy: anngg2008, paul.moore, steve.dower, tim.golden, zach.ware
priority: normal
severity: normal
status: open
title: When I assign for a item which list of single item
type: behavior
versions: Python 3.5
Added file: http://bugs.python.org/file44167/无标题.png

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27812] PyFrameObject.f_gen can be left pointing to a dangling generator

2016-08-20 Thread Armin Rigo

New submission from Armin Rigo:

PyFrameObject.f_gen is a pointer (not a reference) to a generator/coroutine 
object.  But the latter doesn't always correctly clean it up when it dies.  
This pointer is used by frame.clear().

Here is an example I made, which ends in a segfault.  This example assumes we 
apply the patch of issue27811 first, otherwise it just crashes earlier in the 
same way as issue27811.

# execute this with "python -Werror"
import gc
async def f():
pass
cr = f()
frame = cr.cr_frame
del cr
gc.collect()
# create some randomness to reuse the memory just freed by 'cr'
import asyncio
print("ping")
frame.clear()

Patch attached.  No test, but you can copy the above example.

--
components: Interpreter Core
files: patch2.diff
keywords: needs review, patch
messages: 273200
nosy: arigo
priority: normal
severity: normal
status: open
title: PyFrameObject.f_gen can be left pointing to a dangling generator
versions: Python 3.6
Added file: http://bugs.python.org/file44166/patch2.diff

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27811] _PyGen_Finalize() should not fail with an exception

2016-08-20 Thread Armin Rigo

New submission from Armin Rigo:

_PyGen_Finalize() should not fail with an exception.  Doing so can cause 
various SystemErrors or even fatal errors.  For example, run this with "python 
-Werror":

import gc
async def f():
pass
f()
gc.collect()   # RuntimeWarning, but with -Werror

Patch attached.  Test missing (turn the above example in a test; also I didn't 
re-run all tests with this patch).

--
files: patch1.diff
keywords: needs review, patch
messages: 273199
nosy: arigo
priority: normal
severity: normal
status: open
title: _PyGen_Finalize() should not fail with an exception
versions: Python 3.6
Added file: http://bugs.python.org/file44165/patch1.diff

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27614] Race in test_docxmlrpc.py

2016-08-20 Thread Martin Panter

Changes by Martin Panter :


--
resolution:  -> fixed
stage: patch review -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23231] Fix codecs.iterencode/decode() by allowing data parameter to be omitted

2016-08-20 Thread Martin Panter

Martin Panter added the comment:

Here is my documentation proposal.

--
components: +Documentation -Library (Lib)
stage:  -> patch review
versions: +Python 3.5
Added file: http://bugs.python.org/file44164/iter-unsupported.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27698] socketpair not in socket.__all__ on Windows

2016-08-20 Thread Berker Peksag

Changes by Berker Peksag :


--
stage: needs patch -> resolved

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27787] Avoid test_main() in test_httplib; gc.collect() dangling threads

2016-08-20 Thread Martin Panter

Martin Panter added the comment:

I committed the gc_collect() change to 3.5 as well, because it helped me with a 
separate test case.

Here is the remaining change, for 3.6 only. I added a timeout to the join() 
call. This matches the @reap_threads decorator, which times out after 1 s.

--
versions: +Python 3.5
Added file: http://bugs.python.org/file44163/httplib-tests.v2.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12982] Document that importing .pyo files needs python -O

2016-08-20 Thread Berker Peksag

Berker Peksag added the comment:

Yes, this can be closed as 'out of date'. I've just updated -O documentation to 
remove the mention of .pyo extension. Thanks!

--
nosy: +berker.peksag
resolution:  -> out of date
stage: needs patch -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12982] Document that importing .pyo files needs python -O

2016-08-20 Thread Roundup Robot

Roundup Robot added the comment:

New changeset 8e9dc3e4ea91 by Berker Peksag in branch '3.5':
Issue #12982: Thanks to PEP 488, Python no longer creates .pyo files
https://hg.python.org/cpython/rev/8e9dc3e4ea91

New changeset 1455851e7332 by Berker Peksag in branch 'default':
Issue #12982: Merge from 3.5
https://hg.python.org/cpython/rev/1455851e7332

--
nosy: +python-dev

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27698] socketpair not in socket.__all__ on Windows

2016-08-20 Thread Vedran Čačić

Vedran Čačić added the comment:

No problem. Thank you for fixing it. :-)

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27787] Avoid test_main() in test_httplib; gc.collect() dangling threads

2016-08-20 Thread Roundup Robot

Roundup Robot added the comment:

New changeset 7ddbc2263943 by Martin Panter in branch '3.5':
Issue #27787: Clean up weak references before checking for dangling threads
https://hg.python.org/cpython/rev/7ddbc2263943

New changeset e5777c5d108c by Martin Panter in branch 'default':
Issue #27787: Merge regrtest fixup from 3.5
https://hg.python.org/cpython/rev/e5777c5d108c

--
nosy: +python-dev

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



  1   2   >