[issue28184] Trailing whitespace in C source code

2016-09-16 Thread Francisco Couzo

Changes by Francisco Couzo :


Added file: http://bugs.python.org/file44706/trailing_whitespace2.patch

___
Python tracker 

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



[issue27761] Private _nth_root function loses accuracy

2016-09-16 Thread Tim Peters

Tim Peters added the comment:

Let me give complete code for the last idea, also forcing the scaling 
multiplication to use the correct context:

import decimal
c = decimal.DefaultContext.copy()
c.prec = 25
c.Emax = decimal.MAX_EMAX
c.Emin = decimal.MIN_EMIN

def erootn(x, e, n,
  D=decimal.Decimal,
  D2=decimal.Decimal(2),
  pow=c.power,
  sub=c.subtract,
  mul=c.multiply,
  div=c.divide):
g = x**(1.0/n) * 2.0**(e/n)
Dg = D(g)
return g - float(sub(Dg, div(mul(D(x), pow(D2, e)),
 pow(Dg, n-1 / n

del decimal, c

Both pow() instances use an integer exponent, so the C implementation of 
decimal still avoids expensive exp() and ln() computations - it's all just 
basic - * / under the covers.

On a 32-bit box, the scaled input (x*2**e) must be <= 9.999...999E42500, 
which is about 2**1411819443 (an exponent of about 1.4 billion).  On the 
close-to-0 side, approximately the reciprocals of those giant numbers.

The range is much wider on a 64-bit box (because Emax and Emin have much larger 
absolute values).

Then, e.g.,

>>> erootn(1, 1411819443, 1411819443)
2.0
>>> erootn(1, -1411819443, 1411819443)
0.5

So it's obviously perfect ;-)  Except that, because it reduces to the previous 
algorithm when e=0, Mark's counterexample (to correct rounding) still holds:

>>> erootn(1 + 2**-52, 0, 2)
1.0002

Boosting precision to 28 (from 25) is enough to repair that, but it doesn't 
bother me (there was never a claim that it was always correctly rounded - but 
at prec=25 it went through hours & hours of testing randomish inputs and `n` 
values without finding a less-than-perfect case - but those tests effectively 
always used e=0 too).

Basic error analysis for Newton's method usually goes like this:  suppose the 
true root is `t` and the current guess is `g = t*(1+e)` for some small `|e|`.  
Then plug `t*(1+e)` into the equation and do a Taylor expansion around e=0.  In 
this case, dropping terms at or above cubic in `e` leaves that the new guess is 
about

t*(1 + (n-1)/2 * e**2)

That the relative error goes from `e` to (about) `e**2` (which is typical of 
Newton's method) is the source of the claim that the number of good bits 
approximately doubles on each iteration.  In this specific case, it's not quite 
that good:  the (n-1)/2 factor means convergence becomes slower the larger `n` 
is.  But `e` in this case is perhaps on the order of 2**-50, and `(n-1)/2` 
times 2**-100 (e**2) remains tiny for any plausible value of `n`.

Good enough for me ;-)

--

___
Python tracker 

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



[issue28184] Trailing whitespace in C source code

2016-09-16 Thread Serhiy Storchaka

Serhiy Storchaka added the comment:

Modules/expat/expat.h and Modules/expat/expat_external.h are external files. 
They should left unchanged.

--
nosy: +ned.deily, serhiy.storchaka

___
Python tracker 

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



[issue28145] Fix whitespace in C source code

2016-09-16 Thread Serhiy Storchaka

Serhiy Storchaka added the comment:

See also issue15550 and issue8912.

--
nosy: +serhiy.storchaka

___
Python tracker 

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



[issue28185] Tabs in C source code

2016-09-16 Thread Serhiy Storchaka

Changes by Serhiy Storchaka :


--
dependencies: +Misleading Indentation in C source code
nosy: +serhiy.storchaka

___
Python tracker 

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



[issue27806] 2.7 32-bit builds fail on macOS 10.12 Sierra due to dependency on deleted header file QuickTime/QuickTime.h

2016-09-16 Thread Ned Deily

Ned Deily added the comment:

Thanks, Alexander and especially Jeremy, for the reviews and suggestions.  
Thanks again sashk for the patches.  Committed for release in 2.7.13.

--
resolution:  -> fixed
stage: needs patch -> resolved
status: open -> closed
title: 2.7 32-bit builds fail on future releases of OS X due to dependency on 
deleted header file -> 2.7 32-bit builds fail on macOS 10.12 Sierra due to 
dependency on deleted header file QuickTime/QuickTime.h

___
Python tracker 

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



[issue26149] Suggest PyCharm Community as an editor for Unix platforms

2016-09-16 Thread Guido van Rossum

Guido van Rossum added the comment:

You did the right thing. Check out the "review" link.

--

___
Python tracker 

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



[issue27806] 2.7 32-bit builds fail on future releases of OS X due to dependency on deleted header file

2016-09-16 Thread Roundup Robot

Roundup Robot added the comment:

New changeset 4030300fcb18 by sashk in branch '2.7':
Issue #27806: Fix 32-bit builds on macOS Sierra 10.12 broken by removal of
https://hg.python.org/cpython/rev/4030300fcb18

--
nosy: +python-dev

___
Python tracker 

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



[issue26149] Suggest PyCharm Community as an editor for Unix platforms

2016-09-16 Thread Mariatta Wijaya

Mariatta Wijaya added the comment:

Hmm.. not sure if I did this correctly. I uploaded another patch file, is this 
right? Or, how can I edit my original patch?
Thanks.

--

___
Python tracker 

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



[issue26149] Suggest PyCharm Community as an editor for Unix platforms

2016-09-16 Thread Mariatta Wijaya

Mariatta Wijaya added the comment:

Thanks for the feedback :)
As suggested, I removed all other IDEs and just link to the wiki.

--
Added file: http://bugs.python.org/file44705/docupdate2.patch

___
Python tracker 

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



[issue28168] Use _winapi.WaitForMultipleObjects in Popen.wait()

2016-09-16 Thread STINNER Victor

STINNER Victor added the comment:

> I decided to make it an error to pass an empty sequence

It makes sense since the original WaitForMultipleObjects() also requires at 
least one object:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms687025(v=vs.85).aspx

nCount [in]

The number of object handles in the array pointed to by lpHandles. The 
maximum number of object handles is MAXIMUM_WAIT_OBJECTS. This parameter cannot 
be zero.

--

___
Python tracker 

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



[issue28168] Use _winapi.WaitForMultipleObjects in Popen.wait()

2016-09-16 Thread STINNER Victor

STINNER Victor added the comment:

Oh nice, you implemented the PEP 475 for _winapi.WaitForMultipleObjects()! I 
missed this function when implementing this PEP :-)

--
nosy: +haypo

___
Python tracker 

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



[issue28185] Tabs in C source code

2016-09-16 Thread STINNER Victor

Changes by STINNER Victor :


--
nosy: +haypo

___
Python tracker 

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



[issue28185] Tabs in C source code

2016-09-16 Thread Francisco Couzo

Changes by Francisco Couzo :


Added file: http://bugs.python.org/file44704/tabs_h.patch

___
Python tracker 

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



[issue28185] Tabs in C source code

2016-09-16 Thread Francisco Couzo

Changes by Francisco Couzo :


Removed file: http://bugs.python.org/file44703/tabs_h.patch

___
Python tracker 

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



[issue28185] Tabs in C source code

2016-09-16 Thread Francisco Couzo

Changes by Francisco Couzo :


--
versions: +Python 3.7
Added file: http://bugs.python.org/file44703/tabs_h.patch

___
Python tracker 

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



[issue28185] Tabs in C source code

2016-09-16 Thread Francisco Couzo

New submission from Francisco Couzo:

Files I didn't change: Python/dup2.c, Python/strdup.c (Since they are external 
dependencies)

--
files: tabs_c.patch
keywords: patch
messages: 276762
nosy: franciscouzo, josh.r, mark.dickinson, martin.panter, r.david.murray, 
terry.reedy
priority: normal
severity: normal
status: open
title: Tabs in C source code
Added file: http://bugs.python.org/file44702/tabs_c.patch

___
Python tracker 

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



[issue28184] Trailing whitespace in C source code

2016-09-16 Thread Francisco Couzo

New submission from Francisco Couzo:

As per Terry's recommendations (#28145), I'm going to open a new issue for each 
case.

--
files: trailing_whitespace.patch
keywords: patch
messages: 276761
nosy: franciscouzo, josh.r, mark.dickinson, martin.panter, r.david.murray, 
terry.reedy
priority: normal
severity: normal
status: open
title: Trailing whitespace in C source code
versions: Python 3.7
Added file: http://bugs.python.org/file44701/trailing_whitespace.patch

___
Python tracker 

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



[issue28168] Use _winapi.WaitForMultipleObjects in Popen.wait()

2016-09-16 Thread Eryk Sun

Eryk Sun added the comment:

Hopefully this is my last change until someone reviews this. I decided to make 
it an error to pass an empty sequence, which previously would implicitly wait 
on the SIGINT event. This way simplifies the code and prevents someone from 
accidentally waiting forever on SIGINT when it's ignored or doesn't raise an 
exception. There should always be at least 1 other handle in the wait list.

--
Added file: http://bugs.python.org/file44700/issue_28168_04.patch

___
Python tracker 

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



[issue27806] 2.7 32-bit builds fail on future releases of OS X due to dependency on deleted header file

2016-09-16 Thread sashk

sashk added the comment:

Ned, please see attached third version of the patch with workaround suggested 
by Jeremy for older versions of OS X.

--
Added file: http://bugs.python.org/file44699/issue27806_v3.patch

___
Python tracker 

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



[issue28168] Use _winapi.WaitForMultipleObjects in Popen.wait()

2016-09-16 Thread Eryk Sun

Changes by Eryk Sun :


Added file: http://bugs.python.org/file44698/issue_28168_03.patch

___
Python tracker 

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



[issue28168] Use _winapi.WaitForMultipleObjects in Popen.wait()

2016-09-16 Thread Eryk Sun

Changes by Eryk Sun :


Removed file: http://bugs.python.org/file44673/issue_28168_01.patch

___
Python tracker 

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



[issue28168] Use _winapi.WaitForMultipleObjects in Popen.wait()

2016-09-16 Thread Eryk Sun

Changes by Eryk Sun :


Removed file: http://bugs.python.org/file44674/issue_28168_02.patch

___
Python tracker 

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



[issue22493] Deprecate the use of flags not at the start of regular expression

2016-09-16 Thread Serhiy Storchaka

Serhiy Storchaka added the comment:

Patch LGTM (but I changed tests a little). Thanks Tim!

--
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



[issue22493] Deprecate the use of flags not at the start of regular expression

2016-09-16 Thread Roundup Robot

Roundup Robot added the comment:

New changeset c35a528268fd by Serhiy Storchaka in branch '3.6':
Issue #22493: Warning message emitted by using inline flags in the middle of
https://hg.python.org/cpython/rev/c35a528268fd

New changeset 9d0f4da4d531 by Serhiy Storchaka in branch 'default':
Issue #22493: Warning message emitted by using inline flags in the middle of
https://hg.python.org/cpython/rev/9d0f4da4d531

--

___
Python tracker 

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



[issue28183] Clean up and speed up dict iteration

2016-09-16 Thread STINNER Victor

Changes by STINNER Victor :


--
nosy: +methane, xiang.zhang

___
Python tracker 

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



[issue27761] Private _nth_root function loses accuracy

2016-09-16 Thread Tim Peters

Tim Peters added the comment:

Oops!  The `D2**e` in that code should be `pow(D2, e)`, to make it use the 
correct decimal context.

--

___
Python tracker 

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



[issue28183] Clean up and speed up dict iteration

2016-09-16 Thread Serhiy Storchaka

New submission from Serhiy Storchaka:

In some circumstances iterating dict under 3.6 can be 20% slower than under 3.5.

$ ./python -m perf timeit -s "d = dict.fromkeys(range(10**6))" -- "list(d)"

Python 3.5: Median +- std dev: 33.8 ms +- 0.7 ms
Python 3.6: Median +- std dev: 37.8 ms +- 0.5 ms

Seems this is compiler and platform specific, it is reproducible only with GCC 
on 32 bit.
 
Proposed patch restores 3.5 performance and simplifies the code.

Python 3.6 patched: Median +- std dev: 33.7 ms +- 0.7 ms

Other types of iteration:

$ ./python -m perf timeit -s "d = dict.fromkeys(range(10**6)); v = d.values()" 
-- "list(v)"
Python 3.5:Median +- std dev: 26.2 ms +- 0.7 ms
Python 3.6 unpatched:  Median +- std dev: 28.0 ms +- 0.6 ms
Python 3.6 patched:Median +- std dev: 26.3 ms +- 1.1 ms

$ ./python -m perf timeit -s "d = dict.fromkeys(range(10**6)); v = d.items()" 
-- "list(v)"
Python 3.5:Median +- std dev: 232 ms +- 6 ms
Python 3.6 unpatched:  Median +- std dev: 259 ms +- 6 ms
Python 3.6 patched:Median +- std dev: 243 ms +- 9 ms

_PyDict_Next():
$ ./python -m perf timeit -s "d = dict.fromkeys(range(10**6))" -- "set(d)"
Python 3.5:Median +- std dev: 68.3 ms +- 1.8 ms
Python 3.6 unpatched:  Median +- std dev: 68.1 ms +- 2.5 ms
Python 3.6 patched:Median +- std dev: 66.0 ms +- 1.2 ms

PyDict_Next():
$ ./python -m perf timeit -s "from _testcapi import test_dict_iteration as t" 
-- "t()"
Python 3.5:Median +- std dev: 3.31 ms +- 0.10 ms
Python 3.6 unpatched:  Median +- std dev: 3.51 ms +- 0.09 ms
Python 3.6 patched:Median +- std dev: 3.43 ms +- 0.09 ms

--
components: Interpreter Core
files: dict_iter.patch
keywords: patch
messages: 276755
nosy: haypo, ned.deily, rhettinger, serhiy.storchaka
priority: normal
severity: normal
status: open
title: Clean up and speed up dict iteration
type: performance
versions: Python 3.6, Python 3.7
Added file: http://bugs.python.org/file44697/dict_iter.patch

___
Python tracker 

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



[issue27761] Private _nth_root function loses accuracy

2016-09-16 Thread Tim Peters

Tim Peters added the comment:

Mark, thanks for the counterexample!  I think I can fairly accuse you of 
thinking ;-)

I expect the same approach would be zippy for scaling x by 2**e, provided that 
the scaled value doesn't exceed the dynamic range of the decimal context.  Like 
so:

def erootn(x, e, n,
  D=decimal.Decimal,
  D2=decimal.Decimal(2),
  pow=c.power,
  sub=c.subtract,
  div=c.divide):
g = x**(1.0/n) * 2.0**(e/n) # force e to float for Python 2?
Dg = D(g)
return g - float(sub(Dg, div(D(x)*D2**e, pow(Dg, n-1 / n

The multiple errors in the native-float-precision starting guess shouldn't 
hurt.  In this case D(x)*D2**e may not exactly equal the scaled input either, 
but the error(s) are "way at the end" of the extended-precision decimal format.

I don't know the range of `e` you have to worry about.  On my box, 
decimal.MAX_EMAX == 99 ... but the docs say that on a 32-bit 
box it's "only" 42500.  If forcing the context Emax to that isn't enough, 
then your code is still graceful but this other approach would need to get 
uglier.

--

___
Python tracker 

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



[issue27806] 2.7 32-bit builds fail on future releases of OS X due to dependency on deleted header file

2016-09-16 Thread Jeremy Sequoia

Jeremy Sequoia added the comment:

sys/cdefs.h (on new enough darwin) does this for such cases:

#ifndef __has_include
#define __has_include(x) 0
#endif

but of course that isn't present in sys/cdefs.h on older SDKs, so you can just 
shove that above the check and it should fallback the way you want.

Using gcc-4.2 on Sierra would end up with the wrong result, but that's not a 
supported configuration.

--

___
Python tracker 

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



[issue27806] 2.7 32-bit builds fail on future releases of OS X due to dependency on deleted header file

2016-09-16 Thread Ned Deily

Ned Deily added the comment:

sashk, thanks for the patches!  The general approach LGTM as well.  
Unfortunately, we need the fix to work with gcc-4.2 since the Python 2.7 
installers are still built and supported on OS X 10.5 and 10.6 and the 
__has_include preprocessor construct is not available in gcc-4.2.

--

___
Python tracker 

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



[issue16902] Add OSS module support for Solaris

2016-09-16 Thread Tim Mooney

Tim Mooney added the comment:

Sooo  It's been 3 years.  Brian's patch has bit-rotted a bit, but it's easy 
to update for recent Python.

What are the hold-ups to getting this applied?

--

___
Python tracker 

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



[issue16700] Document that bytes OS API can returns unusable results on Windows

2016-09-16 Thread Mark Lawrence

Changes by Mark Lawrence :


--
nosy:  -BreamoreBoy

___
Python tracker 

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



[issue28179] Segfault in test_recursionlimit_fatalerror

2016-09-16 Thread Serhiy Storchaka

Changes by Serhiy Storchaka :


--
nosy: +ned.deily
priority: normal -> release blocker

___
Python tracker 

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



[issue28179] Segfault in test_recursionlimit_fatalerror

2016-09-16 Thread Terry J. Reedy

Terry J. Reedy added the comment:

Running with fresh build from IDLE in a subprocess on Win10, with 15 instead of 
10, I quickly get a fatal Python error and the Windows box equivalent to a 
segfault.

--
nosy: +terry.reedy

___
Python tracker 

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



[issue15443] datetime module has no support for nanoseconds

2016-09-16 Thread Alexander Belopolsky

Alexander Belopolsky added the comment:

Another advantage of a single nanoseconds field is that currently microseconds 
are packed in 3 bytes and nanoseconds would fit in 4 - a 1 byte increase, but 
to add a 0-999 field, one would need at least 2 bytes.

--
versions: +Python 3.7 -Python 3.6

___
Python tracker 

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



[issue15443] datetime module has no support for nanoseconds

2016-09-16 Thread Steve Holden

Steve Holden added the comment:

I agree on reflection that a single nanoseconds integral value makes more 
sense. This then requires refactoring of the existing code so that existing 
tests continue to pass using a microsecond property.

Code using ONLY nanoseconds is a disjoint case, for which new tests will be 
required. It clearly cannot be expected to be backwards compatible with 
pre-implementation versions.

Does it make sense to define behaviour for cases where the user attempts to MIX 
microseconds and nanoseconds? One validation I would suggest if so is that in 
the presence of a microseconds specification a constraint of 0 <= nanoseconds < 
1000 must be imposed.

--

___
Python tracker 

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



[issue28145] Fix whitespace in C source code

2016-09-16 Thread Terry J. Reedy

Terry J. Reedy added the comment:

Converting tabs to spaces and deleting trailing whitespace are separate issues 
and should be discussed and possibly done separately.

I think trailing whitespace should be uniformly fixed and prohibited for C 
files as it seems to be for most other files, for reasons including the issue 
cited by Mark.  I seems silly that one should be faced with either reverting 
changes by a mandated fixup program or pushing a somewhat messy patch.  

Does the repository check and reject new and changed lines with trailing 
whitespace, as it does for other file types?  If so, then existing lines with 
whitespace are a trap for someone who makes a small change (such as '<=' to 
'<') and forgets to run patchcheck.

I think generated code should also be generated without whitespace and I would 
also make this a separate patch.  The review mindset for substantive code 
change is different from review of changes that must not make a substantive 
change.

--
nosy: +terry.reedy

___
Python tracker 

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



[issue22493] Deprecate the use of flags not at the start of regular expression

2016-09-16 Thread Tim Graham

Tim Graham added the comment:

Yes, I found that Django needs an update to support that syntax in URLpatterns. 
Thanks.

--

___
Python tracker 

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



[issue25283] Make tm_gmtoff and tm_zone available on all platforms

2016-09-16 Thread Alexander Belopolsky

Alexander Belopolsky added the comment:

The problem of computing tm_gmtoff on platforms without it was solved by tzcode 
some time ago. [1,2]  Consider stealing some of their logic.

[1]: http://mm.icann.org/pipermail/tz/2014-September/021601.html
[2]: https://github.com/eggert/tz/commit/40b395e139

--

___
Python tracker 

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



[issue27761] Private _nth_root function loses accuracy

2016-09-16 Thread Mark Dickinson

Mark Dickinson added the comment:

> And it's still the case that I haven't found a case where its result isn't 
> correctly rounded.

Here's one: :-)

>>> rootn(1 + 2**-52, 2)
1.0002

The correctly rounded result would be 1.0.

--

___
Python tracker 

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



[issue27761] Private _nth_root function loses accuracy

2016-09-16 Thread Mark Dickinson

Mark Dickinson added the comment:

> Decimal pow doesn't special-case integer exponents; the solution will still 
> be based on exp and ln.

Ah, sorry; I'm wrong. That was true for the Python version of the decimal 
module, not for the C implementation.

--

___
Python tracker 

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



[issue27761] Private _nth_root function loses accuracy

2016-09-16 Thread Mark Dickinson

Mark Dickinson added the comment:

> It does use the Decimal pow(), but with an integer exponent, so this specific 
> use of pow() doesn't invoke the Decimal exp() or ln() either.

Decimal pow doesn't special-case integer exponents; the solution will still be 
based on exp and ln.

--

___
Python tracker 

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



[issue27761] Private _nth_root function loses accuracy

2016-09-16 Thread Mark Dickinson

Mark Dickinson added the comment:

> Mark, the code I showed in roots.py is somewhat more accurate and highly 
> significantly faster than the code you just posted.

Okay, fair enough. In that case, we still need a solution for computing rootn(x 
* 2**e) in the case where x*2**e itself overflows / underflows an IEEE 754 
float.

--

___
Python tracker 

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



[issue16700] Document that bytes OS API can returns unusable results on Windows

2016-09-16 Thread Serhiy Storchaka

Serhiy Storchaka added the comment:

Maybe this issue is outdated in 3.6 (thanks to PEP 529), but this still is a 
problem under 3.5 and 2.7.

--
status: closed -> open
versions: +Python 3.5 -Python 3.3, Python 3.4

___
Python tracker 

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



[issue27761] Private _nth_root function loses accuracy

2016-09-16 Thread Tim Peters

Tim Peters added the comment:

Mark, the code I showed in roots.py is somewhat more accurate and highly 
significantly faster than the code you just posted.  It's not complicated at 
all:  it just uses Decimal to do a single Newton correction with extended 
precision.

Since it doesn't use the Decimal exp() or ln(), it's faster.  It does use the 
Decimal pow(), but with an integer exponent, so this specific use of pow() 
doesn't invoke the Decimal exp() or ln() either.  And it's still the case that 
I haven't found a case where its result isn't correctly rounded.  My testing 
framework found multiple not-correctly-rounded cases in your new code within 
seconds.

Presumably you could boost the precision to improve that, but then it would get 
even slower.

--

___
Python tracker 

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



[issue28111] geometric_mean can raise OverflowError for large input length

2016-09-16 Thread Mark Dickinson

Changes by Mark Dickinson :


--
title: geometric_mean can raise OverflowError when checking for inf -> 
geometric_mean can raise OverflowError for large input length

___
Python tracker 

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



[issue27806] 2.7 32-bit builds fail on future releases of OS X due to dependency on deleted header file

2016-09-16 Thread Jeremy Sequoia

Jeremy Sequoia added the comment:

Thanks, yep that looks much nicer to me.  Containing the core logic at a 
central choke point makes maintenance much easier.  I'll work to get this into 
MacPorts.

--

___
Python tracker 

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



[issue27922] Make IDLE tests less flashy

2016-09-16 Thread Terry J. Reedy

Terry J. Reedy added the comment:

It is more a matter of tradeoffs rather than 'okay'.

There is no general pydev rule against gui flashing.  The tk and ttk gui tests 
still do, but that is primarily Serhiy's concern.

The IDLE tests are at most perhaps a third complete, so they would have become 
collectively 3 or more times worse.  I should run the IDLE tests at least once 
for each patch and usually do it multiple times.  When I work on a module or 
its tests, I tend work incrementally and run the test for the module 10 or 20 
times or more.  So my first concern is my own eyes and mental state.

Second, I plan to ask others to run test_idle to make up for the lack of 
buildbot coverage, and I will feel better about doing so after the patches 
already made.  If one or a few flashes are left, I and others are still much 
better off.

In this case, there are two obvious fixes, but I don't like either.  Maybe I 
will come up with a third I like better, perhaps after some refactoring of the 
module.  I would also like to better understand the detailed behavior.  In the 
meanwhile, I reopened to add a comment to the test, so I don't lose track of 
the source of the remaining flash.

--
status: closed -> open

___
Python tracker 

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



[issue28176] Fix callbacks race in asyncio.SelectorLoop.sock_connect

2016-09-16 Thread STINNER Victor

STINNER Victor added the comment:

The timeout of 3 seconds seem to be too short for some buildbots like "AMD64 
FreeBSD CURRENT Non-Debug 3.x".

http://buildbot.python.org/all/builders/AMD64%20FreeBSD%20CURRENT%20Non-Debug%203.x/builds/295/steps/test/logs/stdio

test.test_asyncio.test_windows_utils (unittest.loader.ModuleSkipped) ... 
Exception in thread Thread-50:
Traceback (most recent call last):
  File 
"/usr/home/buildbot/python/3.x.koobs-freebsd-current.nondebug/build/Lib/threading.py",
 line 916, in _bootstrap_inner
self.run()
  File 
"/usr/home/buildbot/python/3.x.koobs-freebsd-current.nondebug/build/Lib/test/test_asyncio/test_selector_events.py",
 line 1819, in run
sock, addr = self.srv_sock.accept()
  File 
"/usr/home/buildbot/python/3.x.koobs-freebsd-current.nondebug/build/Lib/socket.py",
 line 205, in accept
fd, addr = self._accept()
socket.timeout: timed out

test test_asyncio failed
skipped 'Windows only'

==
ERROR: test_sock_connect_sock_write_race 
(test.test_asyncio.test_selector_events.SelectorLoopFunctionalTests)
--
Traceback (most recent call last):
  File 
"/usr/home/buildbot/python/3.x.koobs-freebsd-current.nondebug/build/Lib/test/test_asyncio/test_selector_events.py",
 line 1868, in test_sock_connect_sock_write_race
timeout=TIMEOUT))
  File 
"/usr/home/buildbot/python/3.x.koobs-freebsd-current.nondebug/build/Lib/asyncio/base_events.py",
 line 457, in run_until_complete
return future.result()
  File 
"/usr/home/buildbot/python/3.x.koobs-freebsd-current.nondebug/build/Lib/asyncio/futures.py",
 line 292, in result
raise self._exception
  File 
"/usr/home/buildbot/python/3.x.koobs-freebsd-current.nondebug/build/Lib/asyncio/tasks.py",
 line 239, in _step
result = coro.send(None)
  File 
"/usr/home/buildbot/python/3.x.koobs-freebsd-current.nondebug/build/Lib/asyncio/tasks.py",
 line 397, in wait_for
raise futures.TimeoutError()
concurrent.futures._base.TimeoutError

--
nosy: +haypo
resolution: fixed -> 
status: closed -> pending

___
Python tracker 

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



[issue27761] Private _nth_root function loses accuracy

2016-09-16 Thread Mark Dickinson

Mark Dickinson added the comment:

Here's the error analysis, for the record. It's crude, but effective.  Assume
our decimal context precision is p (so p = 20 for the above code).

1. d is represented exactly with value in [1.0, 2.0).  (Conversions from float
   to Decimal are exact.)

2. c.ln(d) < 1.0, and Decimal's ln operation is correctly rounded, so the
   *absolute* error in c.ln(d) is at most 0.5 * 10**-p.

3. Similarly, LOG2 has an absolute error of at most 0.5 * 10**-p.

4. Let q be the unique integer satisfying 10**q <= n < 10**(q+1).

5. r * LOG2 < n < 10**(q+1), so ulp(r * LOG2) <= 10**(q + 1 - p),
   and the rounding error in computing r * LOG2 is at most
   0.5 * 10**(q + 1 - p). We also inherit the error from LOG2, scaled
   up by r (which is less than 10**(q+1)), so this inherited error
   is also bounded by 0.5 * 10**(q + 1 - p). Our total absolute error
   is now bounded by 10**(q + 1 - p).

6. The result of the addition of d to r * LOG2 is also bounded by
   n < 10**(q+1), so introduces a new rounding error of up to
   0.5 * 10**(q + 1 - p) on top of the errors in d and r * LOG2
   (steps 2 and 5). Our total error is now bounded by 1.5*10**(q + 1 - p).

7. Division by n produces a result <= 1.0. It divides our absolute error so
   far by n (>= 10**q), giving a new error of at most 15 * 10**-p, and
   introduces a new rounding error of at most 0.5 * 10**-p. Bound
   so far is 15.5 * 10**-p.

8. The exponential operation gives a result in the range [1.0, 2.0],
   and converts our absolute error of 15.5 * 10**-p into a relative
   error of at most 15.5 * 10**-p (let's call it 16 * 10**-p to be
   safe), which since our result is bounded by 2.0 amounts to an absolute
   error of at most 32 * 10**-p. We get a rounding error on the result
   of at most 5 * 10**-p (like ln, the decimal module's "exp" operation
   is also correctly rounded), making our total error bounded by 37 * 10**-p.

Finally, we want to express the error bound above in terms of ulps of the
original IEEE 754 binary64 format that float (almost certainly) uses.
Since our result (before the ldexp) is in the range [1.0, 2.0], one ulp
for the binary format is 2**-52. So the error bound in step 8, expressed
in binary64 ulps, is 37 / 2 **-52 * 10**-p < 2 * 10**(17-p) ulps. Rounding
from the final Decimal value to float also incurs an error of at most
0.5 ulps, so we end up with an error bound of

   final_error <= 0.5 + 2 * 10**(17-p) ulps.

For p = 20, this is 0.502 ulps.

--

___
Python tracker 

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



[issue24416] Return a namedtuple from date.isocalendar()

2016-09-16 Thread Alexander Belopolsky

Changes by Alexander Belopolsky :


--
assignee:  -> belopolsky
nosy: +belopolsky
versions: +Python 3.7 -Python 3.6

___
Python tracker 

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



[issue26149] Suggest PyCharm Community as an editor for Unix platforms

2016-09-16 Thread Guido van Rossum

Guido van Rossum added the comment:

Hm, maybe the list should just removed and only the link to the wiki preserved? 
Agreed that the list here feels outdated. And updating it is always going to be 
a political game (e.g. why isn't Wing IDE listed?)

--
nosy: +gvanrossum

___
Python tracker 

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



[issue28111] geometric_mean can raise OverflowError when checking for inf

2016-09-16 Thread Mark Dickinson

Mark Dickinson added the comment:

See msg276732 in issue 27761 for a possible solution.

--

___
Python tracker 

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



[issue27761] Private _nth_root function loses accuracy

2016-09-16 Thread Mark Dickinson

Mark Dickinson added the comment:

I think this whole nth root discussion has become way more complicated than it 
needs to be, and there's a simple and obvious solution.

Two observations:

1. What we actually need is not nth_root(x), but nth_root(x*2**e) for a float x 
and integer e. That's easily computed as exp((log(x) + e*log(2)) / n), and if 
we (a) rescale x to lie in [1.0, 2.0) and (b) remove multiples of n from e 
beforehand and so replace e with e % n, all intermediate values in this 
computation are small (less than 2.0).

2. It's easy to compute the above expression either directly using the math 
module (which gives an nth root operation with an error of a handful of ulps), 
or with extra precision using the Decimal module (which gives an nth root 
operation that's almost always correctly rounded).

If we do this, this also fixes issue #28111, which is caused by the current 
algorithm getting into difficulties when computing the nth root of the 2**e 
part of x*2**e.

Here's a direct solution using the Decimal module. If my back-of-the-envelope 
forward error analysis is correct, the result is always within 0.502 ulps of 
the correct result. That means it's *usually* going to be correctly rounded, 
and *always* going to be faithfully rounded. If 0.502 ulps isn't good enough 
for you, increase the context precision from 20 to 30, then we'll always be 
within 0.50002 ulps instead.

The code deals with the core problem where x is finite and positive. Extending 
to negative values, zeros, nans and infinities is left as an exercise for the 
reader.


import decimal
import math

ROOTN_CONTEXT = decimal.Context(prec=20)
LOG2 = ROOTN_CONTEXT.ln(2)


def rootn(x, e, n):
"""
Accurate value for (x*2**e)**(1/n).

Result is within 0.502 ulps of the correct result.
"""
if not 0.0 < x < math.inf:
raise ValueError("x should be finite and positive")

m, exp = math.frexp(x)
q, r = divmod(exp + e - 1, n)
d = decimal.Decimal(m*2.0)
c = ROOTN_CONTEXT  # for brevity
y = c.exp(c.divide(c.add(c.ln(d), c.multiply(r, LOG2)), n))
return math.ldexp(y, q)

--

___
Python tracker 

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



[issue28128] Improve the warning message for invalid escape sequences

2016-09-16 Thread Eric V. Smith

Eric V. Smith added the comment:

Tim: Cool! That's way more useful than I thought it would be.

Serhiy: It's a proof of concept. Lots of design remains to be done. I'm not 
sure we've agreed on the concept yet, so I don't think it's worthwhile 
designing the API.

--

___
Python tracker 

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



[issue28128] Improve the warning message for invalid escape sequences

2016-09-16 Thread Serhiy Storchaka

Serhiy Storchaka added the comment:

The basic concept LGTM.

first_invalid_escape_char is redundant, it is just s[first_invalid_escape_idx]. 
Or maybe better to return a pointer instead of an index.

bytes literals need similar solution.

--

___
Python tracker 

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



[issue1284316] Win32: Security problem with default installation directory

2016-09-16 Thread Mark Lawrence

Changes by Mark Lawrence :


--
nosy:  -BreamoreBoy

___
Python tracker 

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



[issue28180] sys.getfilesystemencoding() should default to utf-8

2016-09-16 Thread STINNER Victor

STINNER Victor added the comment:

> is this someday already?)

Not yet :-)

--

___
Python tracker 

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



[issue28128] Improve the warning message for invalid escape sequences

2016-09-16 Thread Tim Graham

Tim Graham added the comment:

Eric, your patch was good enough to allow me to easily identify and fix all the 
warnings in Django: https://github.com/django/django/pull/7254. Thanks!

--

___
Python tracker 

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



[issue26081] Implement asyncio Future in C to improve performance

2016-09-16 Thread Rémi Cardona

Changes by Rémi Cardona :


--
nosy: +RemiCardona

___
Python tracker 

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



[issue1284316] Win32: Security problem with default installation directory

2016-09-16 Thread Steve Dower

Steve Dower added the comment:

Changing the default install directory in a maintenance release is not okay.

Users who are concerned about security can change the install directory, and 
bugs that arise as a result will be considered on their own merits.

Alternatively, you can obtain Python 2.7 from one of the companies who maintain 
a distribution (such as Continuum Analytics). Some of them default to a secure 
install directory.

--
stage: test needed -> resolved
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



[issue28147] Unbounded memory growth resizing split-table dicts

2016-09-16 Thread INADA Naoki

INADA Naoki added the comment:

This is patch for Python 3.5.
The patch uses more conservative approach.

--
Added file: http://bugs.python.org/file44696/fix-28147-py35.patch

___
Python tracker 

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



[issue28151] testPythonOrg() of test_robotparser fails on validating python.org HTTPS certificate

2016-09-16 Thread Berker Peksag

Berker Peksag added the comment:

Here's a patch that uses pythontest.net.

--
keywords: +patch
stage: needs patch -> patch review
Added file: http://bugs.python.org/file44695/issue28151.diff

___
Python tracker 

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



[issue28182] Expose OpenSSL verification results in SSLError

2016-09-16 Thread Chi Hsuan Yen

New submission from Chi Hsuan Yen:

This was originally a post at python-ideas. Now I reformat it to be more like a 
feature request.

Currently, Python raises SSLError with reason=CERTIFICATE_VERIFY_FAILED for all 
kinds of certificate verification failures. This results in difficulties in 
debugging SSL errors for others. (Some downstream bug reports: [1][2]) In 
OpenSSL, such errors are further divided into several kinds. For example, 
expired certificates result in X509_V_ERR_CERT_HAS_EXPIRED, and typical 
self-signed certificates fall into X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT. The 
error code can be retrieved via `SSL_get_verify_result` and human readable 
messages are available from `X509_verify_cert_error_string`. I hope I can get 
error messages like this: (Omit URLError to avoid verbose messages)

$ ./python -c 'import urllib.request; 
urllib.request.urlopen("https://self-signed.badssl.com/;)'
Traceback (most recent call last):
  File "/home/yen/Projects/cpython/Lib/urllib/request.py", line 1318, in do_open
encode_chunked=req.has_header('Transfer-encoding'))
  File "/home/yen/Projects/cpython/Lib/http/client.py", line 1239, in request
self._send_request(method, url, body, headers, encode_chunked)
  File "/home/yen/Projects/cpython/Lib/http/client.py", line 1285, in 
_send_request
self.endheaders(body, encode_chunked=encode_chunked)
  File "/home/yen/Projects/cpython/Lib/http/client.py", line 1234, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
  File "/home/yen/Projects/cpython/Lib/http/client.py", line 1026, in 
_send_output
self.send(msg)
  File "/home/yen/Projects/cpython/Lib/http/client.py", line 964, in send
self.connect()
  File "/home/yen/Projects/cpython/Lib/http/client.py", line 1400, in connect
server_hostname=server_hostname)
  File "/home/yen/Projects/cpython/Lib/ssl.py", line 401, in wrap_socket
_context=self, _session=session)
  File "/home/yen/Projects/cpython/Lib/ssl.py", line 808, in __init__
self.do_handshake()
  File "/home/yen/Projects/cpython/Lib/ssl.py", line 1061, in do_handshake
self._sslobj.do_handshake()
  File "/home/yen/Projects/cpython/Lib/ssl.py", line 683, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED: DEPTH_ZERO_SELF_SIGNED_CERT] 
certificate verify failed: self signed certificate (_ssl.c:752)

And for expired certificates:

$ ./python -c 'import urllib.request; 
urllib.request.urlopen("https://expired.badssl.com/;)'
Traceback (most recent call last):
  File "/home/yen/Projects/cpython/Lib/urllib/request.py", line 1318, in do_open
encode_chunked=req.has_header('Transfer-encoding'))
  File "/home/yen/Projects/cpython/Lib/http/client.py", line 1239, in request
self._send_request(method, url, body, headers, encode_chunked)
  File "/home/yen/Projects/cpython/Lib/http/client.py", line 1285, in 
_send_request
self.endheaders(body, encode_chunked=encode_chunked)
  File "/home/yen/Projects/cpython/Lib/http/client.py", line 1234, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
  File "/home/yen/Projects/cpython/Lib/http/client.py", line 1026, in 
_send_output
self.send(msg)
  File "/home/yen/Projects/cpython/Lib/http/client.py", line 964, in send
self.connect()
  File "/home/yen/Projects/cpython/Lib/http/client.py", line 1400, in connect
server_hostname=server_hostname)
  File "/home/yen/Projects/cpython/Lib/ssl.py", line 401, in wrap_socket
_context=self, _session=session)
  File "/home/yen/Projects/cpython/Lib/ssl.py", line 808, in __init__
self.do_handshake()
  File "/home/yen/Projects/cpython/Lib/ssl.py", line 1061, in do_handshake
self._sslobj.do_handshake()
  File "/home/yen/Projects/cpython/Lib/ssl.py", line 683, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED: CERT_HAS_EXPIRED] certificate 
verify failed: certificate has expired (_ssl.c:752)

I've once tried to achieve it, but my CPython knowledge is way too limited to 
give a good enough patch.

[1] https://github.com/rg3/youtube-dl/issues/10574
[2] https://github.com/rg3/youtube-dl/issues/7309

--
assignee: christian.heimes
components: SSL
messages: 276724
nosy: Chi Hsuan Yen, alex, christian.heimes, dstufft, janssen
priority: normal
severity: normal
status: open
title: Expose OpenSSL verification results in SSLError
type: enhancement
versions: Python 3.7

___
Python tracker 

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



[issue27973] urllib.urlretrieve() fails on second ftp transfer

2016-09-16 Thread Sohaib Ahmad

Sohaib Ahmad added the comment:

Hi Senthil,

Thanks for the review. Now that I look at it, even with a default value, an ftp 
specific parameter sure does break the open() API abstraction.

--

___
Python tracker 

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



[issue28180] sys.getfilesystemencoding() should default to utf-8

2016-09-16 Thread R. David Murray

R. David Murray added the comment:

I thought we "fixed" this by using surrogate escape when the locale was ASCII?  
We certainly have discussed changing the default and posix and so far have 
decided not to (someday that will change...is this someday already?)

--
nosy: +r.david.murray
stage: resolved -> 
versions: +Python 3.7 -Python 3.5

___
Python tracker 

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



[issue27391] server_hostname should only be required when checking host names

2016-09-16 Thread Guido van Rossum

Changes by Guido van Rossum :


--
nosy:  -gvanrossum

___
Python tracker 

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



[issue28143] ASDL compatibility with Python 3 system interpreter

2016-09-16 Thread R. David Murray

R. David Murray added the comment:

If we go that route it doesn't, from a certain point of view, solve the problem 
for systems that *only* ship python3...but I think we can ignore that issue: 
IMO it would be fine in that scenario to say that if you want to run the 
python2 regen scripts you have to install python2.  Especially since you can do 
that by building from source using the checked in artifacts.

--

___
Python tracker 

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



[issue28128] Improve the warning message for invalid escape sequences

2016-09-16 Thread Emanuel Barry

Emanuel Barry added the comment:

Personally I'd be fine with only one warning, reporting the first invalid 
escape. Presumably the string would be checked as a whole, or would get an r 
prefix. Patch seems like a good start; bytes would also need updating in that 
regard. Don't worry too much about the details, we can iron that out later :)

Also yeah, the fact that warnings are triggered at compile time results in 
surprising behaviour even for me. I'm liking the idea of a 
DeprecatedSyntaxWarning more.

I'll try to get some work done in that regard by the end of next week, but 
life's been somewhat busy so I can't give any guarantees. Thank you for your 
patch draft though, it helps me to figure out how I should tackle this!

--

___
Python tracker 

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



[issue25270] codecs.escape_encode systemerror on empty byte string

2016-09-16 Thread Berker Peksag

Berker Peksag added the comment:

Thanks for the reviews everyone!

--
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



[issue25270] codecs.escape_encode systemerror on empty byte string

2016-09-16 Thread Roundup Robot

Roundup Robot added the comment:

New changeset 2a4fb01fa1a3 by Berker Peksag in branch '3.5':
Issue #25270: Prevent codecs.escape_encode() from raising SystemError when an 
empty bytestring is passed
https://hg.python.org/cpython/rev/2a4fb01fa1a3

New changeset 8a649009a0e9 by Berker Peksag in branch '3.6':
Issue #25270: Merge from 3.5
https://hg.python.org/cpython/rev/8a649009a0e9

New changeset 48b55cada2c9 by Berker Peksag in branch 'default':
Issue #25270: Merge from 3.6
https://hg.python.org/cpython/rev/48b55cada2c9

--
nosy: +python-dev

___
Python tracker 

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



[issue28128] Improve the warning message for invalid escape sequences

2016-09-16 Thread Eric V. Smith

Eric V. Smith added the comment:

Also, I assume this is a problem with all such syntax warnings: you only see 
this warning/error when the file is originally compiled. Once the .pyc file 
exists, you'll never see a warning or error. Maybe that's okay, but it means 
there's a certain class of installations (such as .pyc compiled at install 
time) that won't be able to know these warnings exist.

This screwed me up for a while when I was developing this patch. The warnings 
disappeared!

--

___
Python tracker 

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



[issue28128] Improve the warning message for invalid escape sequences

2016-09-16 Thread Eric V. Smith

Eric V. Smith added the comment:

I forgot: this is what Nick's example now looks like:

$ ./python -Wall escape_warning.py
Traceback (most recent call last):
  File "escape_warning.py", line 1, in 
import bad_escape
  File "/home/eric/local/python/cpython/bad_escape.py", line 1
print('\d')
 ^
SyntaxError: invalid escape sequence \d

--

___
Python tracker 

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



[issue28128] Improve the warning message for invalid escape sequences

2016-09-16 Thread Eric V. Smith

Eric V. Smith added the comment:

Here is an extremely rough patch that shows the basic concept. I named the 
private function _PyUnicode_DecodeUnicodeEscape.

The problems with this patch are:
1. it always raises an error, not a warning
2. the private function isn't declared in a .h file
3. the name of the private function needs some thought
4. only the first invalid escape in a string is reported
5. I don't report the correct location in the string with the invalid escape
6. there may well be a memory leak
7. PEP 7 problems

#1 is because I was too lazy to refactor ast_error() to format the string I 
need without raising an error.

#5 could be solved with a callback and something to record multiple bad escapes 
per string, if we want to go that far. We'd have to decide how to show this. 
Multiple warnings, or one warning with multiple bad chars?

The rest of it is just quality of implementation stuff that we can work out if 
the approach is sound.

--
keywords: +patch
Added file: http://bugs.python.org/file44694/28128.diff

___
Python tracker 

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



[issue27973] urllib.urlretrieve() fails on second ftp transfer

2016-09-16 Thread Senthil Kumaran

Senthil Kumaran added the comment:

Hi Sohaib,

I will get the proper fix for this issue. 

A comment on the patch. Changing the API to `def open(self, fullurl, data=None, 
ftp_retrieve=False):`  just breaks the abstraction of the open method and may 
not be the way to go for this. Any changes that is required should be within 
the FTPHandler classes.

--

___
Python tracker 

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



[issue27806] 2.7 32-bit builds fail on future releases of OS X due to dependency on deleted header file

2016-09-16 Thread sashk

sashk added the comment:

Thank you for feedback. Here is second version of the patch.

--
Added file: http://bugs.python.org/file44693/issue27806_v2.patch

___
Python tracker 

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



[issue28181] Change URL in antigravity library file

2016-09-16 Thread Kaartic Sivaraam

Kaartic Sivaraam added the comment:

Don't Mention. It was my long time wish to contribute to  open source projects.

--

___
Python tracker 

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



[issue28123] _PyDict_GetItem_KnownHash ignores DKIX_ERROR return

2016-09-16 Thread Serhiy Storchaka

Changes by Serhiy Storchaka :


--
nosy: +rhettinger, serhiy.storchaka

___
Python tracker 

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



[issue27391] server_hostname should only be required when checking host names

2016-09-16 Thread Jim Fulton

Jim Fulton added the comment:

I'm not ignoring anything AFAICT.

There are applications where server hostname isn't useful (no virtual hosts, 
client has server's public key).

I'm not positive we're disagreeing, so let me put this another way.

1. If the given SSL context has check_hostname set to False,
   then ``create_connection`` should not not require a value for
   ``server_hostname``, regardless of the value of ``host``.

   Do you agree?

2. If the given SSL context has check_hostname set to True,
   then ``create_connection`` should not accept an empty string
   to disable hostname checks.

   Do you agree? I'm wondering is this is what you're referring to
   as a bug.

   Personally, this only bothers me from a TOOWTDI perspective.
   I can imagine (always a dangerous word :)) people wanting to 
   reuse an SSL context but disable host name checking. In any case,
   "fixing" this would likely be a breaking change.

--

___
Python tracker 

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



[issue27386] Asyncio server hang when clients connect and immediately disconnect

2016-09-16 Thread Jim Fulton

Jim Fulton added the comment:

Cool, I will verify soon.

--

___
Python tracker 

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



[issue28180] sys.getfilesystemencoding() should default to utf-8

2016-09-16 Thread Jan Niklas Hasse

Jan Niklas Hasse added the comment:

Unfortunately no, as this would mean I'll have to change all my python 
invocations in my scripts and it wouldn't work for executable files with

#!/usr/bin/env python3

would it?

--

___
Python tracker 

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



[issue28123] _PyDict_GetItem_KnownHash ignores DKIX_ERROR return

2016-09-16 Thread Xiang Zhang

Xiang Zhang added the comment:

Hah, Okay. I'll make the corresponding change then.

--

___
Python tracker 

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



[issue28180] sys.getfilesystemencoding() should default to utf-8

2016-09-16 Thread STINNER Victor

STINNER Victor added the comment:

> This is a duplicate of issue27781.

issue27781 is specific to Windows. I'm not sure that it's the base in this 
issue. So I reopen the issue.

@Jan Niklas Hasse: What is your OS?

I proposed to add "-X utf8" command line option for UNIX to force utf8 
encoding. Would it work for you?

--
resolution: duplicate -> 
status: closed -> open
superseder: Change sys.getfilesystemencoding() on Windows to UTF-8 -> 

___
Python tracker 

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



[issue28123] _PyDict_GetItem_KnownHash ignores DKIX_ERROR return

2016-09-16 Thread STINNER Victor

STINNER Victor added the comment:

Xiang Zhang: "I am still afraid changing it may break knowledge of
devs that are already familiar with dict APIs"

Come on, the function is only called 4 times in the whole code base,
and the function is private. Private means that we are free to break
its behaviour anytime, it's part of the contract.

--

___
Python tracker 

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



[issue28181] Change URL in antigravity library file

2016-09-16 Thread Christian Heimes

Christian Heimes added the comment:

Thanks for your contribution!

--
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



[issue28181] Change URL in antigravity library file

2016-09-16 Thread Roundup Robot

Roundup Robot added the comment:

New changeset b8ac4ee42ad3 by Christian Heimes in branch '3.5':
Issue #28181: Get antigravity over HTTPS. Patch by Kaartic Sivaraam.
https://hg.python.org/cpython/rev/b8ac4ee42ad3

New changeset 0820d023077e by Christian Heimes in branch '3.6':
Issue #28181: Get antigravity over HTTPS. Patch by Kaartic Sivaraam.
https://hg.python.org/cpython/rev/0820d023077e

New changeset 7ebd6271094d by Christian Heimes in branch 'default':
Issue #28181: Get antigravity over HTTPS. Patch by Kaartic Sivaraam.
https://hg.python.org/cpython/rev/7ebd6271094d

New changeset 742a798c4da6 by Christian Heimes in branch 'default':
Issue #28181: Add Kaartic Sivaraam to Misc/ACKS.
https://hg.python.org/cpython/rev/742a798c4da6

--
nosy: +python-dev

___
Python tracker 

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



[issue28158] Implement LOAD_GLOBAL opcode cache

2016-09-16 Thread Antti Haapala

Antti Haapala added the comment:

I wouldn't actually consider the builtin lookup speed almost at all, in all 
non-trivial applications the ratio of builtins to any other names will 
diminish; and if there is a tight loop, it is possible to always speed it up by 
`min = min` if you do not need to support monkey patching.

--

___
Python tracker 

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



[issue25895] urllib.parse.urljoin does not handle WebSocket URLs

2016-09-16 Thread Berker Peksag

Berker Peksag added the comment:

Thank you Gergely and Markus!

--
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



[issue25895] urllib.parse.urljoin does not handle WebSocket URLs

2016-09-16 Thread Roundup Robot

Roundup Robot added the comment:

New changeset a5e8fe666c6b by Berker Peksag in branch '3.5':
Issue #25895: Enable WebSocket URL schemes in urllib.parse.urljoin
https://hg.python.org/cpython/rev/a5e8fe666c6b

New changeset 9bf370a33938 by Berker Peksag in branch '3.6':
Issue #25895: Merge from 3.5
https://hg.python.org/cpython/rev/9bf370a33938

New changeset 2fc89d6eff20 by Berker Peksag in branch 'default':
Issue #25895: Merge from 3.6
https://hg.python.org/cpython/rev/2fc89d6eff20

--
nosy: +python-dev

___
Python tracker 

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



[issue27973] urllib.urlretrieve() fails on second ftp transfer

2016-09-16 Thread Sohaib Ahmad

Sohaib Ahmad added the comment:

The attached patch fixes the problem with multiple ftp downloads while keeping 
the fix for issue1067702 intact.

The fix basically uses a new parameter ftp_retrieve to change the behavior of 
ftpwrapper.retrfile() if it is being called by urlretrieve().

I am not familiar with the process of contributing a patch in Python repo so 
please review and commit the attached urllib.patch file.

Tested with urlopen (https, http, ftp) and urlretrieve (ftp).

--
keywords: +patch
Added file: http://bugs.python.org/file44692/urllib.patch

___
Python tracker 

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



[issue25270] codecs.escape_encode systemerror on empty byte string

2016-09-16 Thread Berker Peksag

Berker Peksag added the comment:

Thanks for the review, Serhiy. Here's an updated patch.

--
Added file: http://bugs.python.org/file44691/issue25270_v3.diff

___
Python tracker 

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



[issue28128] Improve the warning message for invalid escape sequences

2016-09-16 Thread Eric V. Smith

Eric V. Smith added the comment:

Couldn't we create a private version of PyUnicode_DecodeUnicodeEscape, to be 
called by ast.c, which passes back invalid escape info? Then have the actual 
warning raised by ast.c, which knows enough about the context to generate a 
better error/warning. I think we'd only be able to report on he first error in 
a string, though, but I haven't thought it all the way through.

I believe we'd only need to modify decode_unicode_with_escapes() in ast.c, 
which is called for both regular strings and f-string. And of course 
PyUnicode_DecodeUnicodeEscape would have to call the new private version and do 
the right thing.

--

___
Python tracker 

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



[issue28181] Change URL in antigravity library file

2016-09-16 Thread Christian Heimes

Christian Heimes added the comment:

xkcd redirects http to https. It makes sense to fix the module and use https.

--
nosy: +christian.heimes
stage:  -> patch review
versions: +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



[issue28158] Implement LOAD_GLOBAL opcode cache

2016-09-16 Thread Serhiy Storchaka

Serhiy Storchaka added the comment:

There is too much magic in ceval_cache.h. Since the patch adds caching only for 
the LOAD_GLOBAL opcode, it would much clearer if write functions only for the 
LOAD_GLOBAL opcode, without multilayer macros.

What will happen if there more than 255 LOAD_GLOBALs. Wouldn't 256th 
LOAD_GLOBAL return incorrect cached value for the the LOAD_GLOBAL (with index 
0)?

--

___
Python tracker 

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



[issue28181] Change URL in antigravity library file

2016-09-16 Thread Kaartic Sivaraam

New submission from Kaartic Sivaraam:

I use a network that is monitored and filtered by Cyberoam. The use Cyberoam to 
block some websites, and some content. 

I came to know of the antigravity easter egg recently. I tried it using  
'import antigravity' and it opened the xkcd website as expected, but did not 
display the picture. I was able to view the image, when I changed the URL from 
http://xkcd.com/353 to https://xkcd.com/353 
I found that I could not view the image as Cyberoam (for some unknown reason) 
blocked the loading of the picture for the HTTP site.

If it does not cause any compatibility issue or other issues, please change the 
URL in  the antigravity library also to a HTTPS one. I request you to change 
this as this may go unnoticed to other people who are not aware of it.

I have attached a patch that changes the URL. You may use it if it's ok 
changing the URL.

--
components: Library (Lib)
files: antigravity-patch.patch
keywords: patch
messages: 276695
nosy: kaartic
priority: normal
severity: normal
status: open
title: Change URL in antigravity library file
type: behavior
versions: Python 3.7
Added file: http://bugs.python.org/file44690/antigravity-patch.patch

___
Python tracker 

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



[issue28180] sys.getfilesystemencoding() should default to utf-8

2016-09-16 Thread Emanuel Barry

Emanuel Barry added the comment:

This is a duplicate of issue27781.

--
nosy: +ebarry
resolution:  -> duplicate
stage:  -> resolved
status: open -> closed
superseder:  -> Change sys.getfilesystemencoding() on Windows to UTF-8

___
Python tracker 

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



[issue28180] sys.getfilesystemencoding() should default to utf-8

2016-09-16 Thread Jan Niklas Hasse

New submission from Jan Niklas Hasse:

Working with Docker I often end up with an environment where the locale isn't 
correctly set. In these cases it would be great if sys.getfilesystemencoding() 
could default to 'utf-8' instead of 'ascii', as it's the encoding of the future 
and ascii is a subset of it anyway.

Related: http://bugs.python.org/issue19846

--
components: Unicode
messages: 276693
nosy: Jan Niklas Hasse, ezio.melotti, haypo
priority: normal
severity: normal
status: open
title: sys.getfilesystemencoding() should default to utf-8
type: behavior
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



[issue27415] regression: BaseEventLoop.create_server does not accept port=None

2016-09-16 Thread Marcus Cobden

Marcus Cobden added the comment:

Ah thanks, that's fair.
It seems a shame since this regression was introduced to 3.4 by a 
security/bugfix release.
Since there's a workaround it's not a big deal.

--

___
Python tracker 

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



[issue27415] regression: BaseEventLoop.create_server does not accept port=None

2016-09-16 Thread Berker Peksag

Berker Peksag added the comment:

3.4 is in security-fix-only mode so it doesn't get bugfix updates anymore.

--
nosy: +berker.peksag
resolution:  -> out of date
status: open -> closed
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



  1   2   >