[issue32563] -Werror=declaration-after-statement expat build failure on Python 3.5

2018-03-30 Thread Nick Coghlan

Nick Coghlan  added the comment:

Tidying up old git branches, and I noticed this was still open even though 
Larry had long ago merged the PR.

--
resolution:  -> fixed
stage: patch review -> resolved
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



[issue33169] importlib.invalidate_caches() doesn't clear all caches

2018-03-30 Thread Ned Deily

Ned Deily  added the comment:

The current behavior is causing problems for at least some use cases so it does 
seems to be closer to a bug than a feature.  If there is agreement that it is 
desirable to make the change, I think it's better to do it now in 3.7 than 
later.

--

___
Python tracker 

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



[issue33169] importlib.invalidate_caches() doesn't clear all caches

2018-03-30 Thread Guido van Rossum

Guido van Rossum  added the comment:

SGTM.

On Fri, Mar 30, 2018, 06:41 Ned Deily  wrote:

>
> Ned Deily  added the comment:
>
> The current behavior is causing problems for at least some use cases so it
> does seems to be closer to a bug than a feature.  If there is agreement
> that it is desirable to make the change, I think it's better to do it now
> in 3.7 than later.
>
> --
>
> ___
> Python tracker 
> 
> ___
>

--

___
Python tracker 

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



[issue33185] Python 3.7.0b3 fails in pydoc where b2 did not.

2018-03-30 Thread Ned Batchelder

New submission from Ned Batchelder :

"pydoc coverage" worked with 3.7b2, but fails with a surprising 
ModuleNotFoundError for configparser with b3.  The configparser is importable 
in the Python interpreter.  I tried with -v to what imports were attempted, and 
configparser isn't even mentioned until the failure message.

Complete reproduction:

# Using 3.7.0b2
$ mktmpenv -p /usr/local/pythonz/pythons/CPython-3.7.0b2/bin/python3.7 -n -q
/Library/Python/2.7/site-packages/virtualenv.py:1098: DeprecationWarning: the 
imp module is deprecated in favour of importlib; see the module's documentation 
for alternative uses
  import imp
Collecting pip
  Using cached pip-9.0.3-py2.py3-none-any.whl
Collecting setuptools
  Using cached setuptools-39.0.1-py2.py3-none-any.whl
Installing collected packages: pip, setuptools
  Found existing installation: pip 7.1.2
Uninstalling pip-7.1.2:
  Successfully uninstalled pip-7.1.2
  Found existing installation: setuptools 18.2
Uninstalling setuptools-18.2:
  Successfully uninstalled setuptools-18.2
Successfully installed pip-9.0.3 setuptools-39.0.1
This is a temporary environment. It will be deleted when you run 'deactivate'.
$ python -V
Python 3.7.0b2
$ pip install -q coverage==4.5.1
$ pydoc coverage
 Help on package coverage:

 NAME
 coverage - Code coverage measurement for Python.

 DESCRIPTION
 Ned Batchelder
 https://nedbatchelder.com/code/coverage

 PACKAGE CONTENTS
 __main__
 annotate
 backunittest
 backward
 bytecode
 cmdline
 collector
 config
 control
 data
 debug
 env
 execfile
 files
 html
 misc
 multiproc
 parser
 phystokens
 pickle2json
 plugin
 plugin_support
 python
 pytracer
 report
 results
 summary
 templite
 tracer
 version
 xmlreport

 DATA
 __url__ = 'https://coverage.readthedocs.io'
 version_info = (4, 5, 1, 'final', 0)

 VERSION
 4.5.1

 FILE
 
/usr/local/virtualenvs/tmp-e3c595a6301312d/lib/python3.7/site-packages/coverage/__init__.py


$ deactivate
Removing temporary environment: tmp-e3c595a6301312d
Removing tmp-e3c595a6301312d...

# Using 3.7.0b3
$ mktmpenv -p /usr/local/pythonz/pythons/CPython-3.7.0b3/bin/python3.7 -n -q
/Library/Python/2.7/site-packages/virtualenv.py:1098: DeprecationWarning: the 
imp module is deprecated in favour of importlib; see the module's documentation 
for alternative uses
  import imp
Collecting pip
  Using cached pip-9.0.3-py2.py3-none-any.whl
Collecting setuptools
  Using cached setuptools-39.0.1-py2.py3-none-any.whl
Installing collected packages: pip, setuptools
  Found existing installation: pip 7.1.2
Uninstalling pip-7.1.2:
  Successfully uninstalled pip-7.1.2
  Found existing installation: setuptools 18.2
Uninstalling setuptools-18.2:
  Successfully uninstalled setuptools-18.2
Successfully installed pip-9.0.3 setuptools-39.0.1
This is a temporary environment. It will be deleted when you run 'deactivate'.
$ python -V
Python 3.7.0b3
$ pip install -q coverage==4.5.1
$ pydoc coverage
problem in coverage - ModuleNotFoundError: No module named 'configparser'

$ python -c 'import configparser; print(configparser)'


$ python -v -m pydoc coverage
import _frozen_importlib # frozen
import _imp # builtin
import '_thread' # 
import '_warnings' # 
import '_weakref' # 
import '_frozen_importlib_external' # 
import '_io' # 
import 'marshal' # 
import 'posix' # 
import _thread # previously loaded ('_thread')
import '_thread' # 
import _weakref # previously loaded ('_weakref')
import '_weakref' # 
# installing zipimport hook
import 'zipimport' # 
# installed zipimport hook
import _thread # previously loaded ('_thread')
import '_thread' # 
import _weakref # previously loaded ('_weakref')
import '_weakref' # 
# 
/usr/local/virtualenvs/tmp-95cdcd5f6881b25d/lib/python3.7/encodings/__pycache__/__init__.cpython-37.pyc
 matches 
/usr/local/virtualenvs/tmp-95cdcd5f6881b25d/lib/python3.7/encodings/__init__.py
# code object from 
'/usr/local/virtualenvs/tmp-95cdcd5f6881b25d/lib/python3.7/encodings/__pycache__/__init__.cpython-37.pyc'
# 
/usr/local/virtualenvs/tmp-95cdcd5f6881b25d/lib/python3.7/__pycache__/codecs.cpython-37.pyc
 matches /usr/local/virtualenvs/tmp-95cdcd5f6881b25d/lib/python3.7/codecs.py
# code object from 
'/usr/local/virtualenvs/tmp-95cdcd5f6881b25d/lib/python3.7/__pycache__/codecs.cpython-37.pyc'
import '_codecs' # 
import 'codecs' # <_frozen_importlib_external.SourceFileLoader object at 
0x1005da438>
# 
/usr/local/virtualenvs/tmp-95cdcd5f6881b25d/lib/python3.7/encodings/__pycache__/aliases.cpython-37.pyc
 matches 
/usr/local/virtualenvs/tmp-95cdcd5f6881b25d/lib/python3.7/encodings/aliases.py
# code object from 
'/usr/local/virtualenvs/tmp-95cdcd5f6881b25d/lib/python3.7/encodings/__pycache__/aliases.cpython-37.pyc'
import 'encodings.aliases' # <_frozen_importlib_external.SourceFileLoader 
object at 0x1005e7f60>
import 'encodings' # <_frozen_import

[issue33181] SimpleHTTPRequestHandler shouldn't redirect to directories with code 301

2018-03-30 Thread Matt Eaton

Matt Eaton  added the comment:

Oliver,

A possible option that would work for both the client side caching and the 
server would be to pass back a Cache-Control header with a max-age attached 
when the 301 is returned.

I am thinking something like this:

if os.path.isdir(path):
parts = urllib.parse.urlsplit(self.path)
if not parts.path.endswith('/'):
# redirect browser - doing basically what apache does
self.send_response(HTTPStatus.MOVED_PERMANENTLY)
new_parts = (parts[0], parts[1], parts[2] + '/',
 parts[3], parts[4])
new_url = urllib.parse.urlunsplit(new_parts)
self.send_header("Location", new_url)
self.send_header("Cache-Control", "max-age=600")
self.end_headers()
return None
for index in "index.html", "index.htm":
index = os.path.join(path, index)
if os.path.exists(index):
path = index
break


Possibly we could even provide some way for the max age to be variable.
Thoughts?

--
nosy: +agnosticdev

___
Python tracker 

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



[issue33186] Memory corruption with urllib.parse

2018-03-30 Thread ale...@altlinux.org

Change by ale...@altlinux.org :


Added file: https://bugs.python.org/file47507/data.txt.gz

___
Python tracker 

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



[issue33186] Memory corruption with urllib.parse

2018-03-30 Thread ale...@altlinux.org

New submission from ale...@altlinux.org :

There is a strange behavior while processing data in a "for" loop with 
urllib.parse.unquote() - looks like memory corruption - a list contains 
elements that have never been appended.

I'll explain the testcase.

I spotted the problem by checking for any remains of url encoding left in 
output_list. There were these strings with url encoding left - "bad_boys" dict 
in testcase. Now, when iterating through input_list (read from "data.txt"), I'm 
checking for those problematic entries and printing what is being appended to 
the output_list as well as all problematic (unwanted, "Bad Boys") and converted 
problematic entries ("Normal conversions") existing in the output_list. At some 
point, unwanted entries appear in output_list. The resulting output_list 
contains converted and unconverted problematic entries, though input_list's 
length equals output_list's length.

data.txt needs to be saved along with testcase.py, and then you can run 
testcase.py.

The output of running testcase.py:

Bad Boys are:
 seil%2fturbo_firmware 140335684191552
 intelligent_platforms_proficy_hmi%2fscada_cimplicity 140335684515920
 seil%2fneu_2fe_plus_firmware 140335684536080
 seil%2fb1_firmware 140335684134640
 eil%2fx2_firmware 140335684191984
 seil%2fx1_firmware 140335684190832
 seil%2fx2_firmware 140335684190904
 seil%2fx86_firmware 140335684192488

Input list length is: 17094 

Bad Boy detected
Element type: 
Convertation: seil%2fb1_firmware 140335679096848 >> seil/b1_firmware 
140335681345768
Just appended: seil/b1_firmware 140335681345768
Normal conversions in output list:
 seil/b1_firmware 140335681345768

Bad Boy detected
Element type: 
Convertation: seil%2fx1_firmware 140335679096920 >> seil/x1_firmware 
140335681345840
Just appended: seil/x1_firmware 140335681345840
Normal conversions in output list:
 seil/b1_firmware 140335681345768
 seil/x1_firmware 140335681345840

Bad Boy detected
Element type: 
Convertation: seil%2fx2_firmware 140335679096992 >> seil/x2_firmware 
140335681345912
Just appended: seil/x2_firmware 140335681345912
Normal conversions in output list:
 seil/b1_firmware 140335681345768
 seil/x1_firmware 140335681345840
 seil/x2_firmware 140335681345912

Bad Boy detected
Element type: 
Convertation: seil%2fx86_firmware 140335679134936 >> seil/x86_firmware 
140335681346704
Just appended: seil/x86_firmware 140335681346704
Normal conversions in output list:
 seil/b1_firmware 140335681345768
 seil/x1_firmware 140335681345840
 seil/x2_firmware 140335681345912
 seil/x86_firmware 140335681346704
Bad Boys in output list:
 eil%2fx2_firmware 140335681346272

Bad Boy detected
Element type: 
Convertation: seil%2fturbo_firmware 140335679200976 >> seil/turbo_firmware 
140335679269456
Just appended: seil/turbo_firmware 140335679269456
Normal conversions in output list:
 seil/b1_firmware 140335681345768
 seil/x1_firmware 140335681345840
 seil/x2_firmware 140335681345912
 seil/x86_firmware 140335681346704
 seil/turbo_firmware 140335679269456
Bad Boys in output list:
 eil%2fx2_firmware 140335681346272
 seil%2fb1_firmware 140335679267800
 seil%2fx1_firmware 140335679267872
 seil%2fx2_firmware 140335679267944
 seil%2fx86_firmware 140335679269384

Bad Boy detected
Element type: 
Convertation: seil%2fneu_2fe_plus_firmware 140335678867056 >> 
seil/neu_2fe_plus_firmware 140335680328928
Just appended: seil/neu_2fe_plus_firmware 140335680328928
Normal conversions in output list:
 seil/b1_firmware 140335681345768
 seil/x1_firmware 140335681345840
 seil/x2_firmware 140335681345912
 seil/x86_firmware 140335681346704
 seil/turbo_firmware 140335679269456
 seil/neu_2fe_plus_firmware 140335680328928
Bad Boys in output list:
 eil%2fx2_firmware 140335681346272
 seil%2fb1_firmware 140335679267800
 seil%2fx1_firmware 140335679267872
 seil%2fx2_firmware 140335679267944
 seil%2fx86_firmware 140335679269384
 seil%2fturbo_firmware 140335679849576

Bad Boy detected
Element type: 
Convertation: intelligent_platforms_proficy_hmi%2fscada_cimplicity 
140335678546800 >> intelligent_platforms_proficy_hmi/scada_cimplicity 
140335681194376
Just appended: intelligent_platforms_proficy_hmi/scada_cimplicity 
140335681194376
Normal conversions in output list:
 seil/b1_firmware 140335681345768
 seil/x1_firmware 140335681345840
 seil/x2_firmware 140335681345912
 seil/x86_firmware 140335681346704
 seil/turbo_firmware 140335679269456
 seil/neu_2fe_plus_firmware 140335680328928
 intelligent_platforms_proficy_hmi/scada_cimplicity 140335681194376
Bad Boys in output list:
 eil%2fx2_firmware 140335681346272
 seil%2fb1_firmware 140335

[issue33185] Python 3.7.0b3 fails in pydoc where b2 did not.

2018-03-30 Thread Ned Batchelder

Ned Batchelder  added the comment:

Turns out it's even simpler:

$ pydoc itertools
No module named 'ast'

# !!!

--

___
Python tracker 

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



[issue33185] Python 3.7.0b3 fails in pydoc where b2 did not.

2018-03-30 Thread Ned Batchelder

Ned Batchelder  added the comment:

Oh, sorry, I forgot that import attempts aren't shown until -vv

--

___
Python tracker 

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



[issue33186] Memory corruption with urllib.parse

2018-03-30 Thread Ivan Zakharyaschev

Change by Ivan Zakharyaschev :


--
nosy: +imz

___
Python tracker 

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



[issue33187] Document ElementInclude (XInclude) support in ElementTree

2018-03-30 Thread Stefan Behnel

New submission from Stefan Behnel :

The ElementInclude module in ElementTree seems undocumented. I couldn't find 
any documentation in the stdlib docs. Pretty much the only source that I could 
find is here:

http://effbot.org/zone/element-xinclude.htm

I noticed it while looking for a place to document the changes of #20928.

--
assignee: docs@python
components: Documentation
messages: 314691
nosy: docs@python, scoder
priority: normal
severity: normal
status: open
title: Document ElementInclude (XInclude) support in ElementTree
type: enhancement

___
Python tracker 

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



[issue33186] Memory corruption with urllib.parse

2018-03-30 Thread Ivan Zakharyaschev

Ivan Zakharyaschev  added the comment:

I've tested this on a e2k machine (e2k is a VLIW/EPIC architecture, similar to 
ia64), where python3 3.5 has been compiled with a completely different 
proprietary compiler, and got the same bad result.

python3-3.5.1-alt7.3

(This has also been tested with the same results on an Ubuntu machine.)

So, this probably means that this is not a matter of wrong compiler 
optimizations.

--

___
Python tracker 

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



[issue20928] xml.etree.ElementInclude does not include nested xincludes

2018-03-30 Thread Stefan Behnel

Stefan Behnel  added the comment:

There seems to be no documentation currently for ElementInclude. Would be nice 
if someone who's interested in this feature could take the time to write 
something up. I created a documentation ticket as issue #33187.

--

___
Python tracker 

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



[issue20928] xml.etree.ElementInclude does not include nested xincludes

2018-03-30 Thread Stefan Behnel

Stefan Behnel  added the comment:

PR is complete now, ready for merging.

--

___
Python tracker 

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



[issue33186] Memory corruption with urllib.parse

2018-03-30 Thread Ivan Zakharyaschev

Ivan Zakharyaschev  added the comment:

The bad results are also reproducible with:

# dpkg -l python3.2
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name  Version   
  ArchitectureDescription
+++-=-===-===-===
ii  python3.2 3.2.3-7   
  ia64Interactive 
high-level object-oriented language (version 3.2)

--

___
Python tracker 

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



[issue33185] Python 3.7.0b3 fails in pydoc where b2 did not.

2018-03-30 Thread Geoffrey Spear

Geoffrey Spear  added the comment:

This behavior seems to have been introduced in commit 
ee3784594b33c72c3fdca6a71892d22f14045ab6

--
nosy: +geoffreyspear, ncoghlan

___
Python tracker 

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



[issue33185] Python 3.7.0b3 fails in pydoc where b2 did not.

2018-03-30 Thread Ned Deily

Change by Ned Deily :


--
nosy: +ned.deily
priority: normal -> critical

___
Python tracker 

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



[issue33181] SimpleHTTPRequestHandler shouldn't redirect to directories with code 301

2018-03-30 Thread Oliver Urs Lenz

Oliver Urs Lenz  added the comment:

That would definitely take the sting out of that permanent redirect. But I am 
still wondering why we redirect at all. Why not leave redirects to the user and 
do:

if os.path.isdir(path):
if not path.endswith('/'):
path = path + '/'
for index in "index.html", "index.htm":
index = os.path.join(path, index)
if os.path.exists(index):
path = index
break

--

___
Python tracker 

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



[issue33181] SimpleHTTPRequestHandler shouldn't redirect to directories with code 301

2018-03-30 Thread Oliver Urs Lenz

Oliver Urs Lenz  added the comment:

In fact, since we use os.path.join, we could remove that condition altogether:

if os.path.isdir(path):
for index in "index.html", "index.htm":
index = os.path.join(path, index)
if os.path.exists(index):
path = index
break

--

___
Python tracker 

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



[issue29595] Expose max_queue_size in ThreadPoolExecutor

2018-03-30 Thread Stephen ONeal

Stephen ONeal  added the comment:

My project we're going into the underlying _work_queue and blocking adding more 
elements based on unfinished_tasks to accomplish this, bubbling this up to the 
API would be a welcome addition.

--
nosy: +stephen.oneal...@gmail.com

___
Python tracker 

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



[issue33176] Allow memoryview.cast(readonly=...)

2018-03-30 Thread Pablo Galindo Salgado

Change by Pablo Galindo Salgado :


--
keywords: +patch
pull_requests: +6030
stage:  -> patch review

___
Python tracker 

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



[issue33176] Allow memoryview.cast(readonly=...)

2018-03-30 Thread Pablo Galindo Salgado

Pablo Galindo Salgado  added the comment:

I have created an initial implementation in PR 6314.

--
nosy: +pablogsal

___
Python tracker 

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



[issue33181] SimpleHTTPRequestHandler shouldn't redirect to directories with code 301

2018-03-30 Thread Matt Eaton

Matt Eaton  added the comment:

It looks like the 301 redirect is in place to emulate the behavior that Apache 
provides when it runs into a trailing slash.  This is observed when this 
condition is met:

parts = urllib.parse.urlsplit(self.path)
if not parts.path.endswith('/'):

Apache Directory Index Redirect:
http://httpd.apache.org/docs/current/mod/mod_dir.html#DirectoryIndexRedirect

--

___
Python tracker 

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



[issue33181] SimpleHTTPRequestHandler shouldn't redirect to directories with code 301

2018-03-30 Thread Oliver Urs Lenz

Oliver Urs Lenz  added the comment:

Yes, but Apache's redirect can be turned off, whereas this can't, so it seems 
unnecessarily limiting to force this on users. Note that most of the motivation 
given by Apache doesn't apply here: with my proposed simplification, both types 
of indices would still be served whether the path contains a trailing slash or 
not.

--

___
Python tracker 

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



[issue33188] dataclass MRO entry resolution for type variable metaclasses: TypeError

2018-03-30 Thread Rick Teachey

New submission from Rick Teachey :

I'm getting the following error at when attempting to create a new `dataclass` 
with any base class that is supplied a type variable:

TypeError: type() doesn't support MRO entry resolution; use 
types.new_class()

In principle, it seems like this shouldn't cause any problems, since this works 
as expected:

@dataclass
class MyClass(Generic[MyTypeVar]):
pass

The problem seems to be the call to `type` in `make_dataclass` for 
instantiating the class object, since `type` doesn't support type variables. If 
I replace the `dataclass` line that produces the error with the following code 
block, it seems to work:

try:
cls = type(cls_name, bases, namespace)
except TypeError:
cls = types.new_class(cls_name, bases, namespace)

I haven't tested, but it might be possible to just remove the call to `type` 
altogether.

I've attached a file demonstrating the issue.

--
components: Library (Lib)
files: dataclass_metaclass_issue.py
messages: 314703
nosy: Ricyteach, eric.smith
priority: normal
severity: normal
status: open
title: dataclass MRO entry resolution for type variable metaclasses: TypeError
type: behavior
versions: Python 3.7, Python 3.8
Added file: https://bugs.python.org/file47508/dataclass_metaclass_issue.py

___
Python tracker 

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



[issue33188] dataclass MRO entry resolution for type variable metaclasses: TypeError

2018-03-30 Thread Rick Teachey

Rick Teachey  added the comment:

Sorry: to be clear, the error only occurs when attempting to create the class 
using `make_dataclass`.

--

___
Python tracker 

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



[issue33181] SimpleHTTPRequestHandler shouldn't redirect to directories with code 301

2018-03-30 Thread Matt Eaton

Matt Eaton  added the comment:

I agree with you in regards to the statement, "Apache's redirect can be turned 
off, whereas this can't."  That is why my first thought would be to try and 
control this response to the client a bit better by providing a variable 
max-age.

self.send_header("Cache-Control", "max-age=xxx")

Removing the condition completely would be good idea as well, but would be my 
second course of action due to this functionality being in the Python code base 
for awhile now.

if os.path.isdir(path):
for index in "index.html", "index.htm":
index = os.path.join(path, index)
if os.path.exists(index):
path = index
break


Those are my thoughts on the matter at least, possibly someone else in the 
community could weigh in as well?

--

___
Python tracker 

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



[issue33180] Flag for unusable sys.executable

2018-03-30 Thread Jakub Wilk

Change by Jakub Wilk :


--
nosy: +jwilk

___
Python tracker 

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



[issue33152] Use list comprehension in timeit module instead of loop with append

2018-03-30 Thread Éric Araujo

Change by Éric Araujo :


--
components: +Library (Lib) -Distutils
resolution:  -> not a bug
stage: patch review -> resolved
status: open -> closed
type: behavior -> 

___
Python tracker 

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



[issue33069] Maintainer information discarded when writing PKG-INFO

2018-03-30 Thread Éric Araujo

Éric Araujo  added the comment:

+1 to have a warning from distutils for cases not handled by older Metadata PEP.

--

___
Python tracker 

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



[issue33186] Memory corruption with urllib.parse

2018-03-30 Thread Ivan Zakharyaschev

Ivan Zakharyaschev  added the comment:

> a list contains elements that have never been appended

Why do we think that it's true?

1. The described result can be valid if there are "doubly quoted" strings in 
the input list.

2. Also, there could be a bug in unquote() which doesn't corrupt the list as a 
side effect, but simply returns a wrong result value, which is indeed appended 
to the output list at its turn.

--

___
Python tracker 

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



[issue33188] dataclass MRO entry resolution for type variable metaclasses: TypeError

2018-03-30 Thread Eric V. Smith

Eric V. Smith  added the comment:

You can also cause this same error without dataclasses:

from typing import TypeVar, Generic
from types import new_class
MyTypeVar = TypeVar("MyTypeVar")
MyParent = new_class("MyParent", (Generic[MyTypeVar],), {})
c = type('MyChild', (MyParent[int],), {})  # error in 3.8

I assume you get the same error in 3.7, but I can't compile it just now.

The above code works in 3.6. And the code in dataclass_metaclass_issue.py works 
in 3.6, using the backported dataclasses.py from PyPI.

So it seems this is a typing problem, not a dataclasses problem.

+Ivan, in case he has some insights.

--
nosy: +levkivskyi

___
Python tracker 

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



[issue33188] dataclass MRO entry resolution for type variable metaclasses: TypeError

2018-03-30 Thread Rick Teachey

Rick Teachey  added the comment:

Same error on 3.7.

Probably getting beyond my knowledge here but from the error message, it seems 
like the answer is simply that:

type('MyChild', (MyParent[int],), {})

...is just the wrong way to make a new `type` when utilizing type variables.

--

___
Python tracker 

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



[issue33188] dataclass MRO entry resolution for type variable metaclasses: TypeError

2018-03-30 Thread Ivan Levkivskyi

Ivan Levkivskyi  added the comment:

This is not a bug but an explicit design decision. Generic classes are _static_ 
typing concept and therefore are not supposed to work freely with _dynamic_ 
class creation. During discussion of PEP 560 it was decided that there should 
be at least one way to dynamically create generic classes, `types.new_class` 
was chosen for this, see 
https://www.python.org/dev/peps/pep-0560/#dynamic-class-creation-and-types-resolve-bases

Also the exception message is quite clear about this. Unfortunately, PEPs 560 
and 557 were discussed in parallel so not every possible interactions where 
thought out. But is it critical for dataclasses to call `type`? I believe there 
should be no other differences with `types.new_class`. I would say the latter 
is even better than `type` because it correctly treats `__prepare__` on the 
metaclass IIRC. So I would propose to switch from `type()` to 
`types.new_class()` for dynamic creation of dataclasses.

--

___
Python tracker 

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



[issue33186] Memory corruption with urllib.parse

2018-03-30 Thread Ivan Zakharyaschev

Ivan Zakharyaschev  added the comment:

> 1. The described result can be valid if there are "doubly quoted" strings in 
> the input list.

To check this I've modified your testcase.py:

diff --git a/testcase.py b/testcase.py
index b597205..fefcef2 100755
--- a/testcase.py
+++ b/testcase.py
@@ -53,6 +53,11 @@ for entry in input_list:
# Conveting
conv_entry=urllib.parse.unquote(entry)
 
+   if conv_entry in bad_boys:
+   flag=True
+   print("ABOUT TO APPEND A BAD BOY")
+   print("Conversion:",entry,id(entry),end=" ")
+
# Printing (debug)
if flag:
print(">>",conv_entry,id(conv_entry))
@@ -61,7 +66,7 @@ for entry in input_list:
output_list.append(conv_entry)
 
# Printing (debug)
-   if entry in bad_boys:
+   if flag:
print("Just appended:", output_list[-1], id(output_list[-1]))
flag=False  
for x in output_list:

Let's run it and look for my new message:

$ ./testcase.py | fgrep -A1 -e ABOUT
ABOUT TO APPEND A BAD BOY
Conversion: eil%252fx2_firmware 139920242273280 >> eil%2fx2_firmware 
139920244465360
--
ABOUT TO APPEND A BAD BOY
Conversion: seil%252fb1_firmware 139920242325448 >> seil%2fb1_firmware 
139920241899608
--
ABOUT TO APPEND A BAD BOY
Conversion: seil%252fx1_firmware 139920242325520 >> seil%2fx1_firmware 
139920241899752
--
ABOUT TO APPEND A BAD BOY
Conversion: seil%252fx2_firmware 139920242325592 >> seil%2fx2_firmware 
139920241899896
--
ABOUT TO APPEND A BAD BOY
Conversion: seil%252fx86_firmware 139920242356704 >> seil%2fx86_firmware 
139920241901408
--
ABOUT TO APPEND A BAD BOY
Conversion: seil%252fturbo_firmware 139920242416280 >> seil%2fturbo_firmware 
139920242993744
--
ABOUT TO APPEND A BAD BOY
Conversion: seil%252fneu_2fe_plus_firmware 139920242065856 >> 
seil%2fneu_2fe_plus_firmware 139920243007536
--
ABOUT TO APPEND A BAD BOY
Conversion: intelligent_platforms_proficy_hmi%252fscada_cimplicity 
139920241710560 >> intelligent_platforms_proficy_hmi%2fscada_cimplicity 
139920244342480
$ fgrep -ne 'seil%252fneu_2fe_plus_firmware' data.txt
15191:seil%252fneu_2fe_plus_firmware
$ 

So, there is indeed a "doubly" quoted data, at 15191 in data.txt.

This is not a bug, everything work correctly.

This issue needs to be closed.

--

___
Python tracker 

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



[issue33189] pygettext doesn't work with f-strings

2018-03-30 Thread Riccardo Polignieri

New submission from Riccardo Polignieri :

Tested (on windows) with python 3.6, but I guess it's the same in py3.7: 

# test.py
def hello(x):
  print(_(f'hello {x}'))



> py pygettext.py test.py
Traceback (most recent call last):
  File "C:\Program Files\Python36\Tools\i18n\pygettext.py", line 623, in 

if __name__ == '__main__':
  File "C:\Program Files\Python36\Tools\i18n\pygettext.py", line 597, in main
for _token in tokens:
  File "C:\Program Files\Python36\Tools\i18n\pygettext.py", line 328, in 
__call__
##  'tstring:', tstring
  File "C:\Program Files\Python36\Tools\i18n\pygettext.py", line 382, in 
__openseen
elif ttype == tokenize.STRING:
  File "C:\Program Files\Python36\Tools\i18n\pygettext.py", line 236, in 
safe_eval
# unwrap quotes, safely
  File "", line 1, in 
NameError: name 'x' is not defined

--
components: Demos and Tools
messages: 314712
nosy: Riccardo Polignieri
priority: normal
severity: normal
status: open
title: pygettext doesn't work with f-strings
type: behavior
versions: Python 3.6, Python 3.7

___
Python tracker 

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



[issue33130] functools.reduce signature/docstring discordance

2018-03-30 Thread Terry J. Reedy

Terry J. Reedy  added the comment:

inspect.signature(functools.reduce) raises, so I presume you mean the header 
for the reduce entry at
https://docs.python.org/3/library/functools.html#functools.reduce.  The first 
line of the docstring, functools.reduce.__doc__, also displayed by 
help(functools.reduce) has an old version of the signature, which disagrees 
also on the 3rd parameter name. 
doc header: functools.reduce(function, iterable[, initializer])
.__doc__:   reduce(function, sequence[, initial]) -> value

The current PR only touches the body of the doc entry, not what we call the 
docstring.  It replaces 'sequence' with 'iterable'.

Functools does not have a Python-coded backup for the C-coded reduce, which 
only accepts arguments by position.  I have not looked at the C code, whose 
names are not accessible from Python.  The doc and docstring should match, and 
should use the parameter names we would want to use of args were ever passed by 
name.  So I think the docstring (in the C code) should be changed to match the 
doc.

There should really be a '/,' to indicate that args must be passed by position, 
or do we only use that in ArgClinic signatures (which show up in help output)?

--
nosy: +terry.reedy

___
Python tracker 

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



[issue33190] problem with ABCMeta.__prepare__ when called after types.new_class

2018-03-30 Thread Rick Teachey

New submission from Rick Teachey :

I am pretty sure this is a bug. If not I apologize.

Say I want to dynamically create a new `C` class, with base class `MyABC` (and 
dynamically assigned abstract method `m`). This works fine if I use `type`, but 
if I use `new_class`, the keyword argument to the `m` method implementation 
gets lost somewhere in the call to `ABCMeta.__prepare___`.

I've attached a file to demo. Thanks.

--
components: Library (Lib)
files: abcmeta_prepare.py
messages: 314714
nosy: Ricyteach, levkivskyi
priority: normal
severity: normal
status: open
title: problem with ABCMeta.__prepare__ when called after types.new_class
type: behavior
versions: Python 3.7, Python 3.8
Added file: https://bugs.python.org/file47509/abcmeta_prepare.py

___
Python tracker 

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



[issue33147] Update references for RFC 3548 to RFC 4648

2018-03-30 Thread Terry J. Reedy

Terry J. Reedy  added the comment:

Ewa handles recording of CAs.

--
assignee:  -> docs@python
components: +Documentation
nosy: +Ewa.Jodlowska, docs@python, terry.reedy
stage:  -> patch review
versions: +Python 3.8

___
Python tracker 

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



[issue33190] problem with ABCMeta.__prepare__ when called after types.new_class

2018-03-30 Thread Ivan Levkivskyi

Ivan Levkivskyi  added the comment:

This is not a bug, but a misunderstanding:

* First, ABCMeta doesn't have `__prepare__`, it is just `type.__prepare__`
* Second, the third argument to `types.new_class` is called `kwds` for a 
reason. It is not a namespace like in `type` but the set of keywords in the 
equivalent class definition. For example:

types.new_class('Test', (A, B), {'metaclass': Meta, 'foo': 42})

id equivalent to

class Test(A, B, metaclass=Meta, foo=42):
pass

If you want to populate the namespace, then you should use the fourth argument 
`exec_body` which should be a callable that takes newly created dictionary and 
populates it with items. For your case it should be:

C = new_class("C", (MyABC,), {}, exec_body=lambda ns: ns.update(namespace))

If you want to clarify the corresponding docstring, then please open a PR. 
Otherwise you can close the issue.

--

___
Python tracker 

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



[issue33190] problem with ABCMeta.__prepare__ when called after types.new_class

2018-03-30 Thread Rick Teachey

Rick Teachey  added the comment:

Excellent; thank you very much for the explanation.

I have never done a PR on a project this size but I'll give it a try.

--

___
Python tracker 

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



[issue33190] problem with ABCMeta.__prepare__ when called after types.new_class

2018-03-30 Thread Ivan Levkivskyi

Ivan Levkivskyi  added the comment:

https://devguide.python.org/ will help you.

--

___
Python tracker 

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



[issue33191] Refleak in posix_spawn

2018-03-30 Thread Zachary Ware

New submission from Zachary Ware :

There is a refleak in posix_spawn; see for example 
http://buildbot.python.org/all/#/builders/114/builds/53

The attached PR fixes it, but I am not confident that I did it correctly.

--
components: Interpreter Core
messages: 314719
nosy: gregory.p.smith, ned.deily, pablogsal, vstinner, zach.ware
priority: critical
severity: normal
status: open
title: Refleak in posix_spawn
versions: Python 3.7, Python 3.8

___
Python tracker 

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



[issue33191] Refleak in posix_spawn

2018-03-30 Thread Zachary Ware

Change by Zachary Ware :


--
keywords: +patch
pull_requests: +6031
stage:  -> patch review

___
Python tracker 

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



[issue33150] Signature error for methods of class configparser.Interpolation

2018-03-30 Thread Terry J. Reedy

Terry J. Reedy  added the comment:

Can you write a test case that raises the exception?  Use .read_string to 
create the CF instance, as that calls .read_file, which calls ._read, which 
calls ._join_multiline_values.

I wonder if we could delete .before_read and replace its call with the value 
passed and intended to be returned.  None of the Interpolation subclasses 
override it, and it is undocumented in both code and docs.  Ditto for 
.before_write.

--
components:  -Build, asyncio
nosy: +terry.reedy
versions: +Python 3.7, Python 3.8

___
Python tracker 

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



[issue33188] dataclass MRO entry resolution for type variable metaclasses: TypeError

2018-03-30 Thread Rick Teachey

Rick Teachey  added the comment:

Eric: see also Ivan's comment on Issue 33190, which will factor into the 
solution to this I think. It seems you can't just pass the `namespace` to the 
`kwds` argument (as I have done in my solution above).

--

___
Python tracker 

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



[issue31455] ElementTree.XMLParser() mishandles exceptions

2018-03-30 Thread Zachary Ware

Zachary Ware  added the comment:

This added a refleak on 2.7, see 
http://buildbot.python.org/all/#/builders/78/builds/122 and later builds.  
Also, the bug ID in the blurb is incorrect (31544 vs 31455).

--
nosy: +zach.ware
status: closed -> open

___
Python tracker 

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



[issue32823] Regression in test -j behavior and time in 3.7.0b1

2018-03-30 Thread Zachary Ware

Zachary Ware  added the comment:

Terry, could you give me the full command you use to get that result?

--

___
Python tracker 

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



[issue33188] dataclass MRO entry resolution for type variable metaclasses: TypeError

2018-03-30 Thread Eric V. Smith

Eric V. Smith  added the comment:

If we're going to call new_class in make_dataclass, then we should change the 
signature of make_dataclass to have the new_class parameters.

--

___
Python tracker 

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



[issue33034] urllib.parse.urlparse and urlsplit not raising ValueError for bad port

2018-03-30 Thread Matt Eaton

Matt Eaton  added the comment:

I was able to get some time together today and created a rough draft for the 
idea that you had Berker on introducing a new API with more strict parsing 
rules.

This will allow the ValueError to be raised when the URL is parsed rather than 
when the computed property is used.  

Jonathan, this will help address your concern on the consistency of when the 
error message is raised.

I added the rough draft on my Github account here:
https://github.com/agnosticdev/cpython-apis/tree/master/url
https://github.com/agnosticdev/cpython-apis/blob/master/url/url.py

Please take a look and let me know what you think.
You can contact me directly to continue the conversation at my email: 
agnostic...@gmail.com

--

___
Python tracker 

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



[issue33188] dataclass MRO entry resolution for type variable metaclasses: TypeError

2018-03-30 Thread Ivan Levkivskyi

Ivan Levkivskyi  added the comment:

> If we're going to call new_class in make_dataclass, then we should change the 
> signature of make_dataclass to have the new_class parameters.

Why? I think we should care about what API/signature is reasonable/typical for 
dataclasses use cases, while new_class is really just an implementation detail. 
IMO passing keyword arguments to metaclass will be much more rare for 
dataclasses than passing a ready namespace.

--

___
Python tracker 

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



[issue33186] Memory corruption with urllib.parse

2018-03-30 Thread Steven D'Aprano

Steven D'Aprano  added the comment:

Alexey, I'm afraid I can't make heads or tails of your bug report. You've gone 
into a detailed description of the "bad results" you have, but you haven't 
explained *why* they're bad, or what you were expecting.

I'm afraid that I found understanding your test case code a hard slog. A much 
simpler test case showing input, expected output, and actual output is 
appreciated. It might help if you read this:

http://sscce.org/

Its written for Java programmers, but the same applies to any programming 
language.

Please don't go straight to assumptions about the cause of the bug ("memory 
corruption") until you can demonstrate that there actually is a bug.

Ivan has spent significant effort to understand your test case, thank you Ivan, 
and concludes:

> This is not a bug, everything work correctly.

so I'm going to close the bug report. If you disagree with Ivan's conclusion, 
please write back with reasons why you disagree.

It would also significantly help if you can provide a simpler test case that 
demonstrates expected results and actual results (and preferably input data 
small enough to fit inline in the testcase script, if possible).

--
nosy: +steven.daprano
resolution:  -> not a bug
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



[issue33188] dataclass MRO entry resolution for type variable metaclasses: TypeError

2018-03-30 Thread Rick Teachey

Rick Teachey  added the comment:

> passing keyword arguments to metaclass will be much more rare for dataclasses 
> than passing a ready namespace

The impetus of my running into these issues was assuming that things like 
`Generic[MyTypeVar]` would "just work" with `make_dataclass`, which seemed like 
a valid assumption since the class creation approach made heavy use of by 
`dataclasses` implies this:

@dataclass
class MyDclass(Generic[MyTypeVar]):
var: MyTypeVar

The fact that I cannot do this, then, without error is surprising:

MyDclass = make_dataclass("MyDclass", (("var", MyTypeVar),), 
bases=(Generic[MyTypeVar],))

I'm not stating it HAS to be fixed. Maybe it doesn't have to. But to me, the 
above seems like the reason to do it if it's going to be done.

--

___
Python tracker 

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



[issue33188] dataclass MRO entry resolution for type variable metaclasses: TypeError

2018-03-30 Thread Rick Teachey

Rick Teachey  added the comment:

I'll also say: one of the biggest reasons I was excited to read the 
`dataclasses` PEP was because I thought "AWESOME! Now I can delete all of the 
stupid boilerplate __init__ and __repr__ methods for those `typing.Sequences`, 
`typing.Mapping`, etc etc subclasses!"

--

___
Python tracker 

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



[issue23495] The writer.writerows method should be documented as accepting any iterable (not only a list)

2018-03-30 Thread Zackery Spytz

Change by Zackery Spytz :


--
keywords: +patch
pull_requests: +6032
stage: needs patch -> patch review

___
Python tracker 

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



[issue23495] The writer.writerows method should be documented as accepting any iterable (not only a list)

2018-03-30 Thread Zackery Spytz

Zackery Spytz  added the comment:

Commit 7901b48a1f89b9bfa9d111ae3725400b466a9baa removed the unnecessary list 
conversion (3.5+), but the documentation issue remains.

--
nosy: +ZackerySpytz
versions: +Python 3.6, Python 3.7, Python 3.8 -Python 3.4, Python 3.5

___
Python tracker 

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



[issue33190] problem with ABCMeta.__prepare__ when called after types.new_class

2018-03-30 Thread Rick Teachey

Change by Rick Teachey :


--
keywords: +patch
pull_requests: +6033
stage:  -> patch review

___
Python tracker 

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



[issue33190] problem with ABCMeta.__prepare__ when called after types.new_class

2018-03-30 Thread Rick Teachey

Rick Teachey  added the comment:

Thank you; I gave it a go. Hopefully didn't cause too much additional work for 
someone.

--

___
Python tracker 

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