[issue42265] Remove binhex module following PEP-594

2020-11-04 Thread Steven D'Aprano


Steven D'Aprano  added the comment:

PEP 594 is a draft, it has not been accepted. It is premature to start 
cancelling perfectly good modules and breaking people's code.

https://conroy.org/breaking-python-packages

If you have some concrete reason for removing the binhex module, other than 
just PEP 594, then we can consider depreciating it in 3.10 or 3.11, and 
removing it in 3.12 or 3.13, or possibly later.

--
nosy: +steven.daprano
resolution:  -> rejected
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



[issue42237] test_socket.SendfileUsingSendfileTest fails on illumos

2020-11-04 Thread Jakub Kulik


Change by Jakub Kulik :


--
versions: +Python 3.9

___
Python tracker 

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



[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2020-11-04 Thread Inada Naoki


Inada Naoki  added the comment:

Please note that tutorial is a tutorial. It is document to help new user who 
are learning Python.
Do you believe special attributes like __cause__ and __contexts__ are really 
worth to teach for tutorial readers?

Generally speaking, I think we should *reduce* some details from tutorial.

--
nosy: +methane

___
Python tracker 

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



[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2020-11-04 Thread Vladimir Ryabtsev


Change by Vladimir Ryabtsev :


--
keywords: +patch
pull_requests: +22072
stage:  -> patch review
pull_request: https://github.com/python/cpython/pull/23160

___
Python tracker 

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



[issue42225] Tkinter hangs or crashes when displaying astral chars

2020-11-04 Thread Terry J. Reedy

Terry J. Reedy  added the comment:

Kevin, Serhiy tried to report this upstream but failed.  msg380143.
Perhaps you could.

One person running my test program reported
"""
Fedora 32 x86-64
Cinnamon 4.6.7
Linux 5.8.16-200.fc32.x86_64
Python 3.8.6 (default, Sep 25 2020, 00:00:00)
[GCC 10.2.1 20200723 (Red Hat 10.2.1-1)] on linux

Running line-by-line in terminal, the for-loop crashes with:
<<<
X Error of failed request:  BadLength (poly request too large or internal Xlib 
length error)
  Major opcode of failed request:  138 (RENDER)
  Minor opcode of failed request:  20 (RenderAddGlyphs)
  Serial number of failed request:  3925
  Current serial number in output stream:  4865 
"""

Another reported "Seems to produce garbage on my system:
[ads@ADS4 x]$ uname -a
Linux ADS4 5.8.17-100.fc31.x86_64 #1 SMP Thu Oct 29 18:58:48 UTC 2020
x86_64 x86_64 x86_64 GNU/Linux"

But the program ran to completion without errors.  A copy of the output from 
the window was attached.  I have asked for the tcl/tk version. My response 
included:
"""
On *nix, Python (unicode) chars are utf-8 encoded by _tkinter for tk.  The 
encoding of astral non-BMP chars uses 4 bytes.  Perhaps tk on your ADS Linux 
(new to me) displays the 4 bytes as 4 chars instead of 1.   For each block of 
32, the first 3 are the same.  This is true in this file, but easily seeing 
this depends on the display software.

I don't know what you saw, but Notepad++ displays control chars with the high 
bit set (C1 controls) as their reversed type (white on black) 3 char acronym as 
defined on  
https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block) Character 
table.

Thus the first astral U+1 is encoded as b"\xF0\x90\x80\x80.  In Notepad++, 
what is in the file appears as 4 characters, not 1, displayed 'ðDCSPADPAD', 
with the part after ð being being the correct white on black triplets for code 
points U+90 and U+80.  The first char '\xf0' == 'ð' is the same for all 
quadruples shown by Notepad++. The next 3 vary as appropriate.  In some cases, 
all 4 are normal printable chars, such as 0x29aa0, a CJK char, showing as "𩪠"

If I cut the first 4 chars from Notepad++ to Thunderbird the result is "𐀀". 
I see only ð but the presence of 3 0-width chars is revealed by moving through 
the string with arrow keys. 
"""
Here on Firefox the C1 controls, invisible in Thunderbird, display as squares 
with digits 0090, 0080 in two rows. Serhiy probably understands these reports 
better than I do.  This tc in ADS4 Linux seems to doing something like what 
Serhiy described as "Tcl fails to decode the string from UTF-8 and falls back 
to Latin1" before his _tkinter fix.

As far as IDLE and Linux is concerned, I am just going to consider what to 
change or add in "User output in Shell" in the IDLE doc.

--

___
Python tracker 

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



[issue42266] LOAD_ATTR cache does not fully replicate PyObject_GetAttr behavior

2020-11-04 Thread Yonatan Goldschmidt


Change by Yonatan Goldschmidt :


--
nosy: +Yonatan Goldschmidt

___
Python tracker 

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



[issue38413] Remove or change "Multithreading" section

2020-11-04 Thread Vladimir Ryabtsev


Change by Vladimir Ryabtsev :


--
pull_requests: +22071
pull_request: https://github.com/python/cpython/pull/23159

___
Python tracker 

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



[issue42268] ./configure failing when --with-memory-sanitizer specified

2020-11-04 Thread JaonHax


JaonHax  added the comment:

Yeah, exactly as I thought, ran the exact same command except without 
--with-memory-sanitizer and the configuration was successful. The successful 
output has been attached in configure-out-1.txt for cross-comparison, if it's 
necessary.

--
Added file: https://bugs.python.org/file49570/configure-out-1.txt

___
Python tracker 

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



[issue37788] fix for bpo-36402 (threading._shutdown() race condition) causes reference leak

2020-11-04 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

I marked bpo-42263 as a duplicate of this issue.

This issue is implicated in preventing the desired fix for bpo-37193, where a 
thread wishes to remove the handle to itself after performing its duty. By 
removing its own handle, it can never be joined, and thus obviates the most 
straightforward way to directly remove the handle for a thread within that 
thread.

--
nosy: +jaraco

___
Python tracker 

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



[issue37788] fix for bpo-36402 (threading._shutdown() race condition) causes reference leak

2020-11-04 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
versions: +Python 3.10

___
Python tracker 

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



[issue42263] Removing thread reference in thread results in leaked reference

2020-11-04 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

Yes, I agree it's a duplicate of issue37788. 

And yes, it does still leak if the list is never created or if the target is a 
no-op.

--
resolution:  -> duplicate
stage:  -> resolved
status: open -> closed
superseder:  -> fix for bpo-36402 (threading._shutdown() race condition) causes 
reference leak

___
Python tracker 

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



[issue42268] ./configure failing when --with-memory-sanitizer specified

2020-11-04 Thread JaonHax


JaonHax  added the comment:

Additional note, since I forgot it in the initial message: I'm building Python 
3.9.0 from source on Debian v10, specifically the Debian VM on Chromebooks 
(which I believe is called Crostini).

I've made sure to install all the proper dependencies, as far as I know, and 
I'm 99% sure that I can successfully build it if I remove the 
--with-memory-sanitizer flag. Running the command again without it to 
double-check.

--

___
Python tracker 

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



[issue42263] Removing thread reference in thread results in leaked reference

2020-11-04 Thread Martin Panter


Martin Panter  added the comment:

Maybe this is related to (or duplicate of) Issue 37788? Python 3.7 has a 
regression where threads that are never joined cause leaks; previous code was 
written assuming you didn't need to join threads.

Do you still see the leak even if you don't clear the "threads" list (change 
the target to a no-op), or if you never create a list in the first place?

--

___
Python tracker 

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



[issue11346] Generator object should be mentioned in gc module document

2020-11-04 Thread Irit Katriel


Irit Katriel  added the comment:

This section is very different now: 
https://docs.python.org/3/library/gc.html#gc.garbage

Should this be closed as out of date?

--
nosy: +iritkatriel

___
Python tracker 

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



[issue42263] Removing thread reference in thread results in leaked reference

2020-11-04 Thread Martin Panter


Change by Martin Panter :


--
nosy: +martin.panter

___
Python tracker 

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



[issue42268] ./configure failing when --with-memory-sanitizer specified

2020-11-04 Thread JaonHax


New submission from JaonHax :

Exact command run is as follows:
sudo ./configure --with-pymalloc --with-assertions --enable-optimizations 
--enable-loadable-sqlite-extensions --enable-shared --with-address-sanitizer 
--with-undefined-behavior-sanitizer --with-memory-sanitizer -C

(ran with root because it seemed to make more things succeed in the checks 
without those flags)

The command's output is attached in configure-out.txt

--
Added file: https://bugs.python.org/file49569/configure-out.txt

___
Python tracker 

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



[issue30384] traceback.TracebackException.format shouldn't format_exc_only() when __traceback__ is None

2020-11-04 Thread Irit Katriel


Irit Katriel  added the comment:

The python-ideas list is where ideas for enhancements and improvements are 
discussed. I suggest you bring this up there. 

https://mail.python.org/mailman3/lists/python-ideas.python.org/

--

___
Python tracker 

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



[issue26584] pyclbr module needs to be more flexible on loader support

2020-11-04 Thread Batuhan Taskaya


Change by Batuhan Taskaya :


--
nosy: +BTaskaya, terry.reedy

___
Python tracker 

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



[issue42268] ./configure failing when --with-memory-sanitizer specified

2020-11-04 Thread JaonHax


Change by JaonHax :


--
components: Build
nosy: JaonHax
priority: normal
severity: normal
status: open
title: ./configure failing when --with-memory-sanitizer specified
type: behavior
versions: Python 3.9

___
Python tracker 

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



[issue42259] pprint: infinite recursion for saferepr() when using nested objects, but str() works

2020-11-04 Thread Irit Katriel


Irit Katriel  added the comment:

I think this is a bug. There is recursion detection in pprint for dicts, lists 
and tuples, but it only applies when __repr__ has not been overridden in a 
subclass.

If you remove the __repr__ definition from NiceObject then str(s) works.

--
nosy: +iritkatriel
versions: +Python 3.10, Python 3.9

___
Python tracker 

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



[issue30384] traceback.TracebackException.format shouldn't format_exc_only() when __traceback__ is None

2020-11-04 Thread Aaron Meurer


Aaron Meurer  added the comment:

Neither of those things preclude the possibility of the traceback module doing 
a better job of printing tracebacks for exceptions where __traceback__ = None.

--

___
Python tracker 

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



[issue42267] Python 3.9 broken installer

2020-11-04 Thread Axel Grullón

New submission from Axel Grullón :

Initially the Python 3.9 installer worked perfectly, I had every tool at my 
disposal and every component installed.

After I tried installing discord.py an error was shown and it was about certain 
components that were missing. To my ignorance I uninstalled Python 3.9 and 
deleted every key and sub-key related to it thinking it would allow me to do a 
fresh install of Python 3.9 and fix the issue.

What I get now is a disastrous incomplete installation when I try to install 
this Python version, a programmer with knowledge on it told me that no matter 
the registry keys deleted the installer should be able to install the version 
without issues.

Without further ado, this is the error I get:

Python path configuration:
  PYTHONHOME = (not set)
  PYTHONPATH = (not set)
  program name = 'python'
  isolated = 0
  environment = 1
  user site = 1
  import site = 1
  sys._base_executable = 
'C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python39\\python.exe'
  sys.base_prefix = ''
  sys.base_exec_prefix = ''
  sys.platlibdir = 'lib'
  sys.executable = 
'C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python39\\python.exe'
  sys.prefix = ''
  sys.exec_prefix = ''
  sys.path = [
'C:\\WINDOWS\\SYSTEM32\\python39.zip',
'C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python39\\Lib\\',
'C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python39\\DLLs\\',
'C:\\Program Files\\Python39\\Lib\\',
'C:\\Program Files\\Python39\\DLLs\\',
'C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python39',
  ]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the 
filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'

Current thread 0x2254 (most recent call first):


But of course I get such error because a plethora of essential files are 
missing.

 
C:\Users\user\AppData\Local\Programs\Python\Python39>tree /f
Folder PATH listing
Volume serial number is 8820-2829
C:.
│   LICENSE.txt
│   NEWS.txt
│   python.exe
│   pythonw.exe
│   vcruntime140.dll
│   vcruntime140_1.dll
│
├───DLLs
│   py.ico
│   pyc.ico
│   pyd.ico
│   tcl86t.dll
│   tk86t.dll
│   _tkinter.pyd
│
├───Doc
│   python390.chm
│
├───Lib
│   ├───idlelib
│   │   │   autocomplete.py
│   │   │   autocomplete_w.py
│   │   │   autoexpand.py
│   │   │   browser.py
│   │   │   calltip.py
│   │   │   calltip_w.py
│   │   │   ChangeLog
│   │   │   codecontext.py
│   │   │   colorizer.py
│   │   │   config-extensions.def
│   │   │   config-highlight.def
│   │   │   config-keys.def
│   │   │   config-main.def
│   │   │   config.py
│   │   │   configdialog.py
│   │   │   config_key.py
│   │   │   CREDITS.txt
│   │   │   debugger.py
│   │   │   debugger_r.py
│   │   │   debugobj.py
│   │   │   debugobj_r.py
│   │   │   delegator.py
│   │   │   dynoption.py
│   │   │   editor.py
│   │   │   extend.txt
│   │   │   filelist.py
│   │   │   format.py
│   │   │   grep.py
│   │   │   help.html
│   │   │   help.py
│   │   │   help_about.py
│   │   │   history.py
│   │   │   HISTORY.txt
│   │   │   hyperparser.py
│   │   │   idle.bat
│   │   │   idle.py
│   │   │   idle.pyw
│   │   │   iomenu.py
│   │   │   macosx.py
│   │   │   mainmenu.py
│   │   │   multicall.py
│   │   │   NEWS.txt
│   │   │   NEWS2x.txt
│   │   │   outwin.py
│   │   │   parenmatch.py
│   │   │   pathbrowser.py
│   │   │   percolator.py
│   │   │   pyparse.py
│   │   │   pyshell.py
│   │   │   query.py
│   │   │   README.txt
│   │   │   redirector.py
│   │   │   replace.py
│   │   │   rpc.py
│   │   │   run.py
│   │   │   runscript.py
│   │   │   scrolledlist.py
│   │   │   search.py
│   │   │   searchbase.py
│   │   │   searchengine.py
│   │   │   sidebar.py
│   │   │   squeezer.py
│   │   │   stackviewer.py
│   │   │   statusbar.py
│   │   │   textview.py
│   │   │   TODO.txt
│   │   │   tooltip.py
│   │   │   tree.py
│   │   │   undo.py
│   │   │   window.py
│   │   │   zoomheight.py
│   │   │   zzdummy.py
│   │   │   __init__.py
│   │   │   __main__.py
│   │   │
│   │   ├───Icons
│   │   │   folder.gif
│   │   │   idle.ico
│   │   │   idle_16.gif
│   │   │   idle_16.png
│   │   │   idle_256.png
│   │   │   idle_32.gif
│   │   │   idle_32.png
│   │   │   idle_48.gif
│   │   │   idle_48.png
│   │   │   minusnode.gif
│   │   │   openfolder.gif
│   │   │   plusnode.gif
│   │   │   python.gif
│   │   │   README.txt
│   │   │   tk.gif
│   │   │
│   │   ├───idle_test
│   │   │   │   htest.py
│   │   │   │   mock_idle.py
│   │   │   │   mock_tk.py
│   │   │   │   README.txt
│   │   │   │   template.py
│   │   │   │   test_autocomplete.py
│   │   │   │   test_autocomplete_w.py
│   │   │   │   test_autoexpand.py
│   │   │   │   test_browser.py
│   │   │   │   test_calltip.py
│   │   │   │   test_calltip_w.py
│   │   │   │   test_codecontext.py
│   │   │   │   test_colorizer.py
│   │   │   │ 

[issue42260] [C API] Add PyInterpreterState_SetConfig(): reconfigure an interpreter

2020-11-04 Thread STINNER Victor


STINNER Victor  added the comment:


New changeset 048a35659aa8074afe7d7d054e7cea1f8ee6d366 by Victor Stinner in 
branch 'master':
bpo-42260: Add _PyInterpreterState_SetConfig() (GH-23158)
https://github.com/python/cpython/commit/048a35659aa8074afe7d7d054e7cea1f8ee6d366


--

___
Python tracker 

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



[issue42263] Removing thread reference in thread results in leaked reference

2020-11-04 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

I don't think it's a race condition for two reasons: adding a `time.sleep(1)` 
after `.start` still raises errors, and in issue37193, there were 10 threads 
created, with at least 9 of those reaching termination before the test ended, 
yet it showed 10 reference leaks.

If you join the thread in the test, the leak is not detected. However, I 
believe that's because, in order to join on the thread, you must also hold a 
handle to the thread, so the condition isn't triggered.

--

___
Python tracker 

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



[issue42207] Python 3.9 testing fails when building with clang and optimizations are enabled

2020-11-04 Thread miss-islington


Change by miss-islington :


--
nosy: +miss-islington
nosy_count: 2.0 -> 3.0
pull_requests: +22070
pull_request: https://github.com/python/cpython/pull/23155

___
Python tracker 

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



[issue42260] [C API] Add PyInterpreterState_SetConfig(): reconfigure an interpreter

2020-11-04 Thread STINNER Victor


Change by STINNER Victor :


--
pull_requests: +22069
pull_request: https://github.com/python/cpython/pull/23158

___
Python tracker 

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



[issue42266] LOAD_ATTR cache does not fully replicate PyObject_GetAttr behavior

2020-11-04 Thread Pablo Galindo Salgado


Change by Pablo Galindo Salgado :


--
keywords: +patch
pull_requests: +22068
stage:  -> patch review
pull_request: https://github.com/python/cpython/pull/23157

___
Python tracker 

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



[issue42266] LOAD_ATTR cache does not fully replicate PyObject_GetAttr behavior

2020-11-04 Thread Pablo Galindo Salgado


Pablo Galindo Salgado  added the comment:

s/the attribute itself is a class/the attribute itself is in the class/

--

___
Python tracker 

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



[issue42142] FAIL tkinter ttk LabeledScale test_resize, and more

2020-11-04 Thread E. Paine


Change by E. Paine :


--
keywords: +patch
pull_requests: +22067
stage:  -> patch review
pull_request: https://github.com/python/cpython/pull/23156

___
Python tracker 

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



[issue42142] FAIL tkinter ttk LabeledScale test_resize, and more

2020-11-04 Thread Terry J. Reedy


Terry J. Reedy  added the comment:

All 3 of these timeout failures are Ubuntu.  They are a $*#(*&(#& nuisance for 
a required test.  Please submit a PR to skip on Ubuntu, if we can detect that, 
or linux, if not.

I have the impression that LabeledScale and Combobox are both composite 
widgets, in some sense.  Correct?  If so, we might limit the skip to those 
until the wait fails for something else.

--

___
Python tracker 

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



[issue42266] LOAD_ATTR cache does not fully replicate PyObject_GetAttr behavior

2020-11-04 Thread Pablo Galindo Salgado


Pablo Galindo Salgado  added the comment:

We could also store the tag of the type object if is a descriptor and compare 
against that on the cache hit to check that our assumptions are valid. The 
price here would be an extra pointer on the cache per opcode that may not even 
be used most of the time.

--

___
Python tracker 

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



[issue42266] LOAD_ATTR cache does not fully replicate PyObject_GetAttr behavior

2020-11-04 Thread Pablo Galindo Salgado


Pablo Galindo Salgado  added the comment:

Yury, any preference here?

--
nosy: +yselivanov

___
Python tracker 

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



[issue42266] LOAD_ATTR cache does not fully replicate PyObject_GetAttr behavior

2020-11-04 Thread Pablo Galindo Salgado


Pablo Galindo Salgado  added the comment:

Given that having attributes that are classes is quite uncommon, I think we can 
not optimize of the attribute itself is a class instead of checking for 
descriptors on every hit, hurting the performance gains

--

___
Python tracker 

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



[issue42266] LOAD_ATTR cache does not fully replicate PyObject_GetAttr behavior

2020-11-04 Thread Pablo Galindo Salgado


Pablo Galindo Salgado  added the comment:

Good catch, Kevin! Would you like to submit a PR for fixing this?

--

___
Python tracker 

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



[issue37351] Drop libpython38.a from Windows release

2020-11-04 Thread Olivier Croquette


Olivier Croquette  added the comment:

I don't know what version of gendef is meant, but the one from MSYS2 / MinGW64 
doesn't output the result on stdout, but rather writes the file "python38.def" 
itself. So the commands are the following:

cd libs
gendef ..\python38.dll
dlltool --dllname python38.dll --def python38.def --output-lib libpython38.a

--
nosy: +ocroquette

___
Python tracker 

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



[issue30384] traceback.TracebackException.format shouldn't format_exc_only() when __traceback__ is None

2020-11-04 Thread Irit Katriel


Irit Katriel  added the comment:

I'm going to close this issue because it's not a bug.

I understand your question now, as well as the source of your confusion: you 
thought that traceback is "the thing that is printed to the screen when an 
exception is raised" and that __traceback__ is something that controls how it's 
printed.  Those are two misunderstandings and I can see why you thought, on 
that basis, that there is a bug.

The traceback is only part of what is printed to the screen when an exception 
is raised, and the __traceback__ field of an exception is a pointer to the 
actual traceback data.

--
resolution:  -> not a bug
status: open -> closed

___
Python tracker 

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



[issue42142] FAIL tkinter ttk LabeledScale test_resize, and more

2020-11-04 Thread E. Paine


E. Paine  added the comment:

I was wrong trying to blame Azure. I have now seen this happen on an Ubuntu 
Github Action for PR-22947 
(https://github.com/python/cpython/pull/22947/checks?check_run_id=1354118848).

test_virtual_event (tkinter.test.test_ttk.test_widgets.ComboboxTest) ... 
Timeout (0:20:00)!
Thread 0x7f549f9d6080 (most recent call first):
  File "/home/runner/work/cpython/cpython/Lib/tkinter/__init__.py", line 696 in 
wait_visibility
  File 
"/home/runner/work/cpython/cpython/Lib/tkinter/test/test_ttk/test_widgets.py", 
line 452 in test_virtual_event

I am tempted just to remove all calls to `wait_visibility` in our tests.

--

___
Python tracker 

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



[issue42266] LOAD_ATTR cache does not fully replicate PyObject_GetAttr behavior

2020-11-04 Thread pmp-p


Change by pmp-p :


--
nosy: +pmpp

___
Python tracker 

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



[issue42266] LOAD_ATTR cache does not fully replicate PyObject_GetAttr behavior

2020-11-04 Thread Kevin Modzelewski


New submission from Kevin Modzelewski :

The problem is that the descriptor-ness of a type-level attribute is only 
checked at opcache-set time, not at opcache-hit time.

$ python3.8 test.py
2

$ ./python --version
Python 3.10.0a2+
$ git rev-parse --short HEAD
789359f47c
$ ./python test.py
1

--
components: Interpreter Core
files: test.py
messages: 380370
nosy: Kevin Modzelewski, pablogsal
priority: normal
severity: normal
status: open
title: LOAD_ATTR cache does not fully replicate PyObject_GetAttr behavior
type: behavior
versions: Python 3.10
Added file: https://bugs.python.org/file49568/test.py

___
Python tracker 

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



[issue30384] traceback.TracebackException.format shouldn't format_exc_only() when __traceback__ is None

2020-11-04 Thread Irit Katriel


Irit Katriel  added the comment:

__traceback__  doesn't disable printing tracebacks.  It *is* the traceback. By 
setting it to None you erased the exception's traceback.

--

___
Python tracker 

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



[issue26031] Add stat caching option to pathlib

2020-11-04 Thread Guido van Rossum


Guido van Rossum  added the comment:

Okay, I am giving up on this.

--
resolution:  -> out of date
stage: test needed -> 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



[issue42265] Remove binhex module following PEP-594

2020-11-04 Thread Eric V. Smith


Eric V. Smith  added the comment:

PEP 594 hasn't been accepted yet.

--
nosy: +eric.smith

___
Python tracker 

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



[issue30384] traceback.TracebackException.format shouldn't format_exc_only() when __traceback__ is None

2020-11-04 Thread Aaron Meurer


Aaron Meurer  added the comment:

I don't think it's helpful to make such a literalistic interpretation. Just 
because the variable is called "traceback" doesn't mean it should apply only to 
the things that are *technically* a traceback (and I don't agree anyway that 
the line containing the exception isn't part of the "traceback").

> I guess you're saying that the __context__ exception of the TypeError in your 
> example has an empty traceback, which means it was never raised

Does it mean that? Again, __traceback__ isn't documented anywhere, so I don't 
know what it being None really means.

All I know is that it apparently disables the printing of tracebacks in the 
traceback module, but fails to omit the exception line itself, leading to an 
unreadable traceback in my example.

--

___
Python tracker 

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



[issue26394] Have argparse provide ability to require a fallback value be present

2020-11-04 Thread Brett Cannon


Change by Brett Cannon :


--
nosy:  -brett.cannon

___
Python tracker 

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



[issue26584] pyclbr module needs to be more flexible on loader support

2020-11-04 Thread Brett Cannon


Change by Brett Cannon :


--
nosy:  -brett.cannon

___
Python tracker 

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



[issue26388] Disabling changing sys.argv[0] with runpy.run_module(...alter_sys=True)

2020-11-04 Thread Brett Cannon


Change by Brett Cannon :


--
nosy:  -brett.cannon

___
Python tracker 

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



[issue26285] Garbage collection of unused input sections from CPython binaries

2020-11-04 Thread Brett Cannon


Change by Brett Cannon :


--
nosy:  -brett.cannon

___
Python tracker 

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



[issue26300] "unpacked" bytecode

2020-11-04 Thread Brett Cannon


Change by Brett Cannon :


--
nosy:  -brett.cannon

___
Python tracker 

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



[issue26031] Add stat caching option to pathlib

2020-11-04 Thread Brett Cannon


Change by Brett Cannon :


--
nosy:  -brett.cannon

___
Python tracker 

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



[issue26153] PyImport_GetModuleDict: no module dictionary! when `__del__` triggers a warning

2020-11-04 Thread Brett Cannon


Change by Brett Cannon :


--
nosy:  -brett.cannon

___
Python tracker 

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



[issue26137] [idea] use the Microsoft Antimalware Scan Interface

2020-11-04 Thread Brett Cannon


Change by Brett Cannon :


--
nosy:  -brett.cannon

___
Python tracker 

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



[issue26205] Better specify number of nested scopes

2020-11-04 Thread Brett Cannon


Change by Brett Cannon :


--
nosy:  -brett.cannon

___
Python tracker 

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



[issue26216] run runtktests.py error when test tkinter

2020-11-04 Thread Brett Cannon


Change by Brett Cannon :


--
nosy:  -brett.cannon

___
Python tracker 

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



[issue42265] Remove binhex module following PEP-594

2020-11-04 Thread Anatoliy Platonov


New submission from Anatoliy Platonov :

https://www.python.org/dev/peps/pep-0594/#id163

--
components: Library (Lib), Tests
messages: 380365
nosy: p4m-dev
priority: normal
severity: normal
status: open
title: Remove binhex module following PEP-594
versions: Python 3.10

___
Python tracker 

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



[issue30384] traceback.TracebackException.format shouldn't format_exc_only() when __traceback__ is None

2020-11-04 Thread Irit Katriel


Irit Katriel  added the comment:

The traceback is only one part of an exception. It is simply a list of frames 
that show where the exception travelled between being raised and being caught.

An exception contains information about an error, including the type of the 
exception, sometimes some parameters like an exception message, and sometimes a 
traceback.

When exception is just created and before it is ever raised, its traceback is 
None. But you can still print the rest of the information in it (its type and 
args). 

I guess you're saying that the __context__ exception of the TypeError in your 
example has an empty traceback, which means it was never raised, which doesn't 
make sense because then how did it end up being the __context__ of another 
exception?

Yeah, __context__ is in a funny state, and the traceback module doesn't try to 
inspect it and interpret what you may have meant by doing that, it just prints 
the exception like it prints any other exception and you get a funny output.

I still don't a bug.

--

___
Python tracker 

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



[issue42264] Deprecate or remove sqlite3.OptimizedUnicode

2020-11-04 Thread Erlend Egeberg Aasland


New submission from Erlend Egeberg Aasland :

Ref. discussion on GH-23148: 
https://github.com/python/cpython/pull/23148#discussion_r517536083

OptimizedUnicode was obsoleted and undocumented in Python 3.3 (see commit 
86dc732f1f).

Suggesting to either deprecate OptimizedUnicode in 3.10 and remove it in 3.11, 
or just simply remove it in 3.10.

Relevant history:
48b13f0427 (undoc)
bc35bebb45 (clean up and undoc, closing bpo-13921)

(Pablo, adding you to nosy since you're the release manager; hope that's ok)

--
components: Library (Lib)
messages: 380363
nosy: berker.peksag, erlendaasland, pablogsal, vstinner
priority: normal
severity: normal
status: open
title: Deprecate or remove sqlite3.OptimizedUnicode
versions: Python 3.10

___
Python tracker 

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



[issue42237] test_socket.SendfileUsingSendfileTest fails on illumos

2020-11-04 Thread Jakub Stasiak


Jakub Stasiak  added the comment:

Thank you! I submitted a PR with a slightly modified patch (the comparison only 
happens on Solaris family of systems), I'd appreciate your confirmation that it 
still works (it's working for me on openindiana).

--

___
Python tracker 

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



[issue42237] test_socket.SendfileUsingSendfileTest fails on illumos

2020-11-04 Thread Jakub Stasiak


Change by Jakub Stasiak :


--
pull_requests: +22066
pull_request: https://github.com/python/cpython/pull/23154

___
Python tracker 

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



[issue30384] traceback.TracebackException.format shouldn't format_exc_only() when __traceback__ is None

2020-11-04 Thread Aaron Meurer


Aaron Meurer  added the comment:

I think I found another way to achieve what I was trying to do, which is why I 
never pursued this. But I still think it's a bug.

__traceback__ = None isn't documented anywhere that I could find, so I was only 
able to deduce how it should work from reading the source code. If it is 
documented somewhere let me know.

I admit my initial report is a bit unclear. If you play with the test.py you 
can see what is going on

import traceback

try:
raise ValueError
except Exception as e:
e.__traceback__ = None
try:
raise TypeError
except:
traceback.print_exc()

produces this output:


ValueError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "test.py", line 8, in 
raise TypeError
TypeError

My goal is to completely hide the caught exception in the traceback printed 
from the traceback module. It seems odd that it hides everything except for the 
actual ValueError.

--
status: pending -> open

___
Python tracker 

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



[issue30384] traceback.TracebackException.format shouldn't format_exc_only() when __traceback__ is None

2020-11-04 Thread Irit Katriel


Change by Irit Katriel :


--
status: open -> pending

___
Python tracker 

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



[issue30384] traceback.TracebackException.format shouldn't format_exc_only() when __traceback__ is None

2020-11-04 Thread Irit Katriel


Irit Katriel  added the comment:

I had no intention to insult you and apologize if I did. I assumed that you 
forgot about this issue since you didn't chase it for 3 years, but you are 
right that I should have asked. 

I am reopening it so that you can explain the question. Since you didn't get a 
response so far, I'm probably not the only one who needs that. 

What do you mean by "completely hide an exception", and why do you think that 
setting __traceback__ to None should achieve that?

--
resolution: not a bug -> 
status: closed -> open

___
Python tracker 

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



[issue30384] traceback.TracebackException.format shouldn't format_exc_only() when __traceback__ is None

2020-11-04 Thread Aaron Meurer


Aaron Meurer  added the comment:

> It's not entirely clear to me what you are trying to do (what is the output 
> you are hoping to get?) but this looks more like a question than a bug 
> report, so I am closing this issue. If this is still relevant, I'd suggest 
> you ask on the python users list or StackOverflow - you are more likely to 
> receive a prompt response there.

If you don't understand an issue, the correct response isn't to close it 
because you don't understand it. If an issue is unclear, you should ask for 
clarification, not insult the person who opened it. 

What you described *is* the bug report. If you read even the title you would 
see that the report is that setting __traceback__ to None doesn't affect the 
printing of the exception.

--
nosy: +asmeurer

___
Python tracker 

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



[issue42237] test_socket.SendfileUsingSendfileTest fails on illumos

2020-11-04 Thread Jakub Kulik


Jakub Kulik  added the comment:

I did some further digging, and this is indeed not possible on Oracle Solaris 
(that is, sendfile() cannot write bytes and fail during the same call). We 
considered this a bug and changed/fixed it several years ago.

Manual page doesn't mention that either:
https://docs.oracle.com/cd/E88353_01/html/E37843/sendfile-3c.html

I am not sure whether Illumos will want to change this as well (probably not 
since it is mentioned in the man page as expected behavior), but either way, 
the proposed change doesn't harm Oracle Solaris because 'if (offset != 
original_offset)' can never be true.

--
nosy: +kulikjak

___
Python tracker 

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



[issue42263] Removing thread reference in thread results in leaked reference

2020-11-04 Thread Ronald Oussoren


Ronald Oussoren  added the comment:

Could this be a race condition?  The thread that's created in the test is not 
waited on (join), it may or may not have exited by the time the test function 
returns.

--
nosy: +ronaldoussoren

___
Python tracker 

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



[issue42131] [zipimport] Update zipimport to use specs

2020-11-04 Thread Brett Cannon


Change by Brett Cannon :


--
resolution:  -> duplicate
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



[issue42131] [zipimport] Update zipimport to use specs

2020-11-04 Thread Brett Cannon


Change by Brett Cannon :


--
superseder:  -> zipimport is not PEP 3147 or PEP 488 compliant

___
Python tracker 

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



[issue42237] test_socket.SendfileUsingSendfileTest fails on illumos

2020-11-04 Thread Sebastian Wiedenroth


Sebastian Wiedenroth  added the comment:

Excellent analysis, that's it! I've also tested your patch on SmartOS and it 
works great.

--

___
Python tracker 

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



[issue38197] Meaning of tracebacklimit differs between sys.tracebacklimit and traceback module

2020-11-04 Thread Carl Friedrich Bolz-Tereick


Carl Friedrich Bolz-Tereick  added the comment:

It's still inconsistent between the two ways to get a traceback, and the 
inconsistency is not documented.

--

___
Python tracker 

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



[issue37193] Memory leak while running TCP/UDPServer with socketserver.ThreadingMixIn

2020-11-04 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

I filed issue42263 to capture the underlying cause of the memory leak that led 
to the buildbot failures and the rollback.

--

___
Python tracker 

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



[issue40170] [C API] Make PyTypeObject structure an opaque structure in the public C API

2020-11-04 Thread STINNER Victor


Change by STINNER Victor :


--
pull_requests: +22065
pull_request: https://github.com/python/cpython/pull/23153

___
Python tracker 

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



[issue42263] Removing thread reference in thread results in leaked reference

2020-11-04 Thread Jason R. Coombs


New submission from Jason R. Coombs :

In issue37193, I'd worked on an implementation in which a thread reference 
would be removed as the thread was closing, but this led to a memory leak 
caught by the buildbots (https://bugs.python.org/issue37193#msg380172).

As I tracked down the issue in GH-23127, I discovered that removing the 
reference to the thread from within the thread triggered the reference leak 
detection.

I've distilled that behavior into its own test which fails on master:

```
cpython master $ git diff
diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py
index e0e5406ac2..2b4924d4d0 100644
--- a/Lib/test/test_threading.py
+++ b/Lib/test/test_threading.py
@@ -443,6 +443,15 @@ def _run(self, other_ref, yet_another):
  msg=('%d references still around' %
   sys.getrefcount(weak_raising_cyclic_object(
 
+def test_remove_thread_ref_in_thread(self):
+def remove_ref():
+threads[:] = []
+
+threads = [
+threading.Thread(target=remove_ref),
+]
+threads[0].start()
+
 def test_old_threading_api(self):
 # Just a quick sanity check to make sure the old method names are
 # still present
```

Running that test with refcount checks leads to this failure:

```
cpython master $ ./python.exe Tools/scripts/run_tests.py -R 3:3 
test.test_threading -m test_remove_thread_ref_in_thread
/Users/jaraco/code/public/cpython/python.exe -u -W default -bb -E -m test -r -w 
-j 0 -u all,-largefile,-audio,-gui -R 3:3 test.test_threading -m 
test_remove_thread_ref_in_thread
Using random seed 8650903
0:00:00 load avg: 1.76 Run tests in parallel using 10 child processes
0:00:01 load avg: 1.78 [1/1/1] test.test_threading failed

== Tests result: FAILURE ==

1 test failed:
test.test_threading
0:00:01 load avg: 1.78
0:00:01 load avg: 1.78 Re-running failed tests in verbose mode
0:00:01 load avg: 1.78 Re-running test.test_threading in verbose mode
beginning 6 repetitions
123456
..
test.test_threading leaked [1, 1, 1] references, sum=3
test.test_threading leaked [3, 1, 1] memory blocks, sum=5
beginning 6 repetitions
123456
test_remove_thread_ref_in_thread (test.test_threading.ThreadTests) ... ok

--

Ran 1 test in 0.001s

OK
.test_remove_thread_ref_in_thread (test.test_threading.ThreadTests) ... ok

--

Ran 1 test in 0.001s

OK
.test_remove_thread_ref_in_thread (test.test_threading.ThreadTests) ... ok

--

Ran 1 test in 0.001s

OK
.test_remove_thread_ref_in_thread (test.test_threading.ThreadTests) ... ok

--

Ran 1 test in 0.001s

OK
.test_remove_thread_ref_in_thread (test.test_threading.ThreadTests) ... ok

--

Ran 1 test in 0.001s

OK
.test_remove_thread_ref_in_thread (test.test_threading.ThreadTests) ... ok

--

Ran 1 test in 0.001s

OK
.
test.test_threading leaked [1, 1, 1] references, sum=3
test.test_threading leaked [1, 1, 1] memory blocks, sum=3
1 test failed again:
test.test_threading

== Tests result: FAILURE then FAILURE ==

1 test failed:
test.test_threading

1 re-run test:
test.test_threading

Total duration: 2.0 sec
Tests result: FAILURE then FAILURE
```

Is that behavior by design? Is it simply not possible to remove a reference to 
a thread from within the thread?

--
messages: 380353
nosy: jaraco
priority: normal
severity: normal
status: open
title: Removing thread reference in thread results in leaked reference
versions: Python 3.10

___
Python tracker 

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



[issue38197] Meaning of tracebacklimit differs between sys.tracebacklimit and traceback module

2020-11-04 Thread Irit Katriel

Irit Katriel  added the comment:

If you change your script to do
sys.tracebacklimit = abs(limit)
and run it with arg -3, then you get the output you expect:

C:\Users\User\src\cpython>python.bat x.py -3
Running Release|Win32 interpreter...
limit -3
from traceback module:
Traceback (most recent call last):
  File "C:\Users\User\src\cpython\x.py", line 14, in x3
x2()
  File "C:\Users\User\src\cpython\x.py", line 12, in x2
x1()
  File "C:\Users\User\src\cpython\x.py", line 10, in x1
1 / 0
ZeroDivisionError: division by zero

from interpreter:
Traceback (most recent call last):
  File "C:\Users\User\src\cpython\x.py", line 14, in x3
x2()
  File "C:\Users\User\src\cpython\x.py", line 12, in x2
x1()
  File "C:\Users\User\src\cpython\x.py", line 10, in x1
1 / 0
ZeroDivisionError: division by zero


The documentation for traceback mentions the possibility of using negative 
limits and their meaning:

Print up to limit stack trace entries from traceback object tb (starting from 
the caller’s frame) if limit is positive. Otherwise, print the last abs(limit) 
entries. 

https://docs.python.org/3/library/traceback.html#traceback.print_tb

--
nosy: +iritkatriel
versions: +Python 3.10, Python 3.8, Python 3.9 -Python 3.7

___
Python tracker 

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



[issue1635741] Py_Finalize() doesn't clear all Python objects at exit

2020-11-04 Thread STINNER Victor


STINNER Victor  added the comment:


New changeset 789359f47c2a744caa9a405131706099fd7ad6bd by Erlend Egeberg 
Aasland in branch 'master':
bpo-1635741: _sqlite3 uses PyModule_AddObjectRef() (GH-23148)
https://github.com/python/cpython/commit/789359f47c2a744caa9a405131706099fd7ad6bd


--

___
Python tracker 

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



[issue14379] Several traceback docs improvements

2020-11-04 Thread Irit Katriel


Irit Katriel  added the comment:

Closing this issue is out of date. Most if not all of the points mentioned have 
been resolved by now, and there is also a section on traceback objects [1] 
which is linked from the exc_info doc [2].

[1] https://docs.python.org/3/reference/datamodel.html#traceback-objects
[2] https://docs.python.org/3/library/sys.html#sys.exc_info

--
nosy: +iritkatriel
resolution:  -> out of date
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



[issue34463] Discrepancy between traceback.print_exception and sys.__excepthook__

2020-11-04 Thread Irit Katriel


Irit Katriel  added the comment:

Reproduced on 3.10:

Running Release|Win32 interpreter...
Python 3.10.0a1+ (heads/exceptionGroup-stage1-dirty:928c211ad8, Oct 28 2020, 
14:36:37) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> raise SyntaxError("some message")
Traceback (most recent call last):
  File "", line 1, in 
SyntaxError: some message

>>> import traceback
>>> import sys
>>> sys.excepthook = traceback.print_exception
>>> raise SyntaxError("some message")
Traceback (most recent call last):
  File "", line 1, in 
  File "", line None
SyntaxError: some message

--
components: +Library (Lib) -Demos and Tools
nosy: +iritkatriel
versions: +Python 3.10

___
Python tracker 

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



[issue42237] test_socket.SendfileUsingSendfileTest fails on illumos

2020-11-04 Thread Jakub Stasiak


Jakub Stasiak  added the comment:

I thought I'd give it a shot and I believe i found the issue. Let's use the 
testCount test as an example.

The client side (or the data sending side) looks like this:

def _testCount(self):
address = self.serv.getsockname()
file = open(os_helper.TESTFN, 'rb')
sock = socket.create_connection(address,
timeout=support.LOOPBACK_TIMEOUT)
with sock, file:
count = 507
meth = self.meth_from_sock(sock)
sent = meth(file, count=count)
self.assertEqual(sent, count)
self.assertEqual(file.tell(), count)

So we're sending 507 bytes of data at once to a socket that has a timeout 
of 5.0 seconds set (default in those tests).

Somewhere along the way socket._sendfile_use_sendfile() is called and in it 
there's a loop:

try:
while True:
(...)
try:
sent = os_sendfile(sockno, fileno, offset, blocksize)
except BlockingIOError:
if not timeout:
# Block until the socket is ready to send some
# data; avoids hogging CPU resources.
selector_select()
continue
(...)
return total_sent

On my test VM running openindiana 5.11 (I think that's the version number?) 
this is basically an infinite loop (I think it'll end at some point, but I 
didn't have the patience to verify this). That's because trying to send 507 
bytes to that socket with 5 seconds timeout will trigger BlockingIOError. Why?

This is the relevant part of os.sendfile() implementation from posixmodule.c:

do {
Py_BEGIN_ALLOW_THREADS
ret = sendfile(out_fd, in_fd, , count);
Py_END_ALLOW_THREADS
} while (ret < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
if (ret < 0)
return (!async_err) ? posix_error() : NULL;
return Py_BuildValue("n", ret);


offset is 0 in our case, but its exact value doesn't matter. The trouble is 
this is what illumos sendfile man page[1] says:


RETURN VALUES

   (...) In some error cases sendfile() may still write some
   data before encountering an error and returning -1.  When that occurs,
   off is updated to point to the byte that follows the last byte copied and
   should be compared with its value before calling sendfile() to determine
   how much data was sent.

After some input from Jakub Kulik I believe this is a unique behavior (Linux, 
Oracle Solaris, Mac OS, FreeBSD and likely all or almost all other OSes don't 
do this) and it lacks handling on the Python side.

I tested this and indeed the sendfile(out_fd, in_fd, , count) call 
*does* do partial writes in our case which gets reported as EAGAIN which gets 
converted to BlockingIOError which makes socket._sendfile_use_sendfile() retry 
again and again, each time resending the very beginning of the data and not 
going any further, therefore accumulating a lot of garbage on the receiving 
socket's side.

This patch works for me and I run the whole test_socket test suite with it, no 
more failures:

diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 203f98515dfd..eeff11b5b8ea 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -9475,13 +9475,20 @@ os_sendfile_impl(PyObject *module, int out_fd, int 
in_fd, PyObject *offobj,
}
#endif

+off_t original_offset = offset;
do {
Py_BEGIN_ALLOW_THREADS
ret = sendfile(out_fd, in_fd, , count);
Py_END_ALLOW_THREADS
} while (ret < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
-if (ret < 0)
-return (!async_err) ? posix_error() : NULL;
+if (ret < 0) {
+   if (offset != original_offset) {
+   ret = offset - original_offset;
+   }
+   else {
+   return (!async_err) ? posix_error() : NULL;
+   }
+}
return Py_BuildValue("n", ret);
#endif
}

If it's verified to be a good change I'm happy to resubmit it in a PR with 
appropriate illumos-specific #ifndefs.


[1] https://illumos.org/man/3ext/sendfile

--
nosy: +jstasiak

___
Python tracker 

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



[issue11007] stack tracebacks should give the relevant class name

2020-11-04 Thread Irit Katriel


Change by Irit Katriel :


--
versions: +Python 3.10 -Python 3.7

___
Python tracker 

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



[issue42262] [C API] Add Py_NewRef() function to get a new strong reference to an object

2020-11-04 Thread Erlend Egeberg Aasland


Change by Erlend Egeberg Aasland :


--
nosy: +erlendaasland

___
Python tracker 

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



[issue23915] [doc] traceback set with BaseException.with_traceback() pushed back on raise

2020-11-04 Thread Irit Katriel


Change by Irit Katriel :


--
title: traceback set with BaseException.with_traceback() overwritten on raise 
-> [doc] traceback set with BaseException.with_traceback() pushed back on raise
versions: +Python 3.10, Python 3.8, Python 3.9 -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



[issue1514420] Traceback display code can attempt to open a file named ""

2020-11-04 Thread Irit Katriel


Irit Katriel  added the comment:

I was able to reproduce it on 3.8, but I'm confused about where the open is 
happening because linecache.updatecache tries to avoid this:

if not filename or (filename.startswith('<') and filename.endswith('>')):
return []

--
nosy: +iritkatriel
versions: +Python 3.10, Python 3.8, Python 3.9 -Python 3.5

___
Python tracker 

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



[issue1635741] Py_Finalize() doesn't clear all Python objects at exit

2020-11-04 Thread STINNER Victor


STINNER Victor  added the comment:


New changeset 7184218e186811e75be663be78e57d5302bf8af6 by Mohamed Koubaa in 
branch 'master':
bpo-1635741: Fix PyInit_pyexpat() error handling (GH-22489)
https://github.com/python/cpython/commit/7184218e186811e75be663be78e57d5302bf8af6


--

___
Python tracker 

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



[issue1346874] httplib simply ignores CONTINUE

2020-11-04 Thread Mattias Amnefelt


Change by Mattias Amnefelt :


--
nosy: +Mattias Amnefelt

___
Python tracker 

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



[issue42252] Embeddable Python indicates that it uses PYTHONPATH

2020-11-04 Thread Steve Dower


Steve Dower  added the comment:

> I'd been expecting this was commonly used as the way to give access to 
> python3X.dll.

Yeah, both. The idea is to delete the files you don't want - so if you don't 
need python.exe, just don't include it. Same goes for some of the native 
modules (e.g. deleting _socket.pyd and _ssl.pyd are an easy way to make sure 
you aren't offering networking).

> I've been mostly focusing on `PYTHONPATH` because that's where I encountered 
> the issue. Which if any of the other env variables are respected? 

It's the equivalent of passing -I. That's the flag that gets set when a ._pth 
is detected: PC/getpathp.c#L563

> Would there be an argument to add additional command line options that could 
> be used as a more secure alternative to the env variables? ... Maybe this 
> doesn't make sense since you said it is the ._pth that causes this...just 
> thinking aloud.

Yeah, the ._pth file is the more secure alternative. To change the import 
search path, an attacker has to be able to modify a (likely admin-only) file on 
disk, rather than just launching an executable with a specific command line. 
(For a bit more context, many exploits try to schedule tasks, which allows 
arbitrary executable path and arguments. So anything resembling a security 
feature can't be allowed to be overridden by environment or arguments.)

> The two options you mention (modify ._pth and append to sys.path) aren't 
> great because we 1) would prefer to use the un-modified python distro 2) 
> don't own the scripts that we are embedding, they are from a 3rd party so 
> modifications are complicated.

None of the other options are better :)

Overriding the ._pth file should just be a matter of replacing the file. It's 
deliberately relative to its location, which means it should almost always be 
static. If you need your embedded interpreter to pick up paths from the local 
environment, just delete the file instead of updating it (which will make your 
copy of Python exploitable, but that's the tradeoff).

I don't know what your particular scripts look like, but I've had to go through 
and modify a number of third-party packages to make them work with this kind of 
setup. It's certainly possible to work around the limitation in a number of 
ways, often transparently to the code that's eventually going to be executed - 
the runpy module is often helpful. (And yeah, an attacker could do it as well, 
just not as trivially as it would be without the restriction.)

--

___
Python tracker 

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



[issue40747] sysconfig.get_config_var("py_version_nodot") should return 3_10

2020-11-04 Thread STINNER Victor


STINNER Victor  added the comment:

Links about the "AssertionError: would build wheel with unsupported tag 
('cp310', 'cp310', 'linux_x86_64')" error:

* PEP 641 -- Using an underscore in the version portion of Python 3.10 
compatibility tags
  https://www.python.org/dev/peps/pep-0641/
* PEP 641 discussion:
  
https://discuss.python.org/t/pep-641-using-an-underscore-in-the-version-portion-of-python-3-10-compatibility-tags/5513
* CPython PR 20333: "bpo-40747: Make py_version_nodot 3_10 not 310"
  https://github.com/python/cpython/pull/20333
* wheel: "Fails to build wheel for Python 3.10"
  https://github.com/pypa/wheel/issues/354
* python3-setuptools: "python-setuptools fails to build with Python 3.10: 
AssertionError: would build wheel with unsupported tag ('cp310', 'cp310', 
'linux_x86_64')"
https://bugzilla.redhat.com/show_bug.cgi?id=1891840

--
nosy: +vstinner

___
Python tracker 

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



[issue19206] Support disabling file I/O when doing traceback formatting

2020-11-04 Thread Irit Katriel


Change by Irit Katriel :


--
versions: +Python 3.10, Python 3.9

___
Python tracker 

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



[issue42261] Windows legacy I/O mode mistakenly ignores the device encoding

2020-11-04 Thread Eryk Sun


Eryk Sun  added the comment:

> It would be nice to get an unit test for this case.

The process code page from GetACP() is either an ANSI code page or CP_UTF8 
(65001). It should never be a Western OEM code page such as 850. In that case, 
a reliable unit test would check that the configured encoding is a particular 
OEM code page. For example, spawn a new interpreter in a windowless console 
session (i.e. creationflags=CREATE_NO_WINDOW). Set the session's input code 
page to 850 via ctypes.WinDLL('kernel32').SetConsoleCP(850). Set 
os.environ['PYTHONLEGACYWINDOWSSTDIO'] = '1'. Then spawn [sys.executable, '-c', 
'import sys; print(sys.stdin.encoding)'], and verify that the output is 'cp850'.

--

___
Python tracker 

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



[issue16855] traceback module leaves off module name in last line of formatted tracebacks

2020-11-04 Thread Irit Katriel


Irit Katriel  added the comment:

This is a python 2 only issue.

--
nosy: +iritkatriel
resolution:  -> out of date
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



[issue42260] [C API] Add PyInterpreterState_SetConfig(): reconfigure an interpreter

2020-11-04 Thread STINNER Victor


STINNER Victor  added the comment:


New changeset af1d64d9f7a7cf673279725fdbaf4adcca51d41f by Victor Stinner in 
branch 'master':
bpo-42260: Main init modify sys.flags in-place (GH-23150)
https://github.com/python/cpython/commit/af1d64d9f7a7cf673279725fdbaf4adcca51d41f


--

___
Python tracker 

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



[issue12535] Chained tracebacks are confusing because the first traceback is minimal

2020-11-04 Thread Irit Katriel


Change by Irit Katriel :


--
versions: +Python 3.10, Python 3.9 -Python 3.4

___
Python tracker 

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



[issue42262] [C API] Add Py_NewRef() function to get a new strong reference to an object

2020-11-04 Thread Simon Cross


Change by Simon Cross :


--
nosy: +hodgestar

___
Python tracker 

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



[issue1635741] Py_Finalize() doesn't clear all Python objects at exit

2020-11-04 Thread STINNER Victor


STINNER Victor  added the comment:


New changeset 58ca33b4674f39189b03c9a39fa7b676b43b3d08 by Victor Stinner in 
branch 'master':
bpo-1635741: Fix ref leak in _PyWarnings_Init() error path (GH-23151)
https://github.com/python/cpython/commit/58ca33b4674f39189b03c9a39fa7b676b43b3d08


--

___
Python tracker 

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



[issue42262] [C API] Add Py_NewRef() function to get a new strong reference to an object

2020-11-04 Thread STINNER Victor


STINNER Victor  added the comment:

> The problem in these patterns is that the object has to be written twice.

I'm talking about the variable name which has to be repeated (written twice) in 
the source code.

--

___
Python tracker 

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



[issue42262] [C API] Add Py_NewRef() function to get a new strong reference to an object

2020-11-04 Thread STINNER Victor


Change by STINNER Victor :


--
keywords: +patch
pull_requests: +22064
stage:  -> patch review
pull_request: https://github.com/python/cpython/pull/23152

___
Python tracker 

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



[issue14655] traceback module docs should show how to print/fomat an exception object

2020-11-04 Thread Irit Katriel


Irit Katriel  added the comment:

As of 3.5 there is this option:

traceback.TracebackException.from_exception(exc).format()


Perhaps that can be mentioned in the doc for traceback.format_exception().

--
assignee:  -> docs@python
components: +Documentation
nosy: +docs@python, iritkatriel
versions: +Python 3.10, Python 3.8, Python 3.9 -Python 2.7, Python 3.2, Python 
3.3

___
Python tracker 

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



[issue42262] [C API] Add Py_NewRef() function to get a new strong reference to an object

2020-11-04 Thread STINNER Victor


New submission from STINNER Victor :

In C, the following pattern (A) is very common:

Py_INCREF(sysdict);
interp->sysdict = sysdict;

* (1) Increment the reference counter
* (2) Store a reference to the object somewhere

Similar pattern (B) using return:

Py_INCREF(temp);
return temp;

The problem in these patterns is that the object has to be written twice. I 
propose to add a simple new Py_NewRef() function which returns a new strong 
reference. In short, it's just:

static inline PyObject* Py_NewRef(PyObject *obj)
{
Py_INCREF(obj);
return obj;
}

(The actual implementation is just a little bit more complex, to also export it 
as a regular function.)

Pattern (A) becomes:

interp->sysdict = Py_NewRef(sysdict);

Pattern (B) becomes:


return Py_NewRef(temp);

Py_NewRef() might help to prepare a C extension to be converted to HPy which 
uses a HPy_Dup() function. HPy_Dup() is different than "Py_INCREF(obj), obj" 
for subtle reasons. I let you dig into HPy documentation for the rationale:

https://hpy.readthedocs.io/en/latest/api.html#handles

Even if you ignore HPy, Py_NewRef() avoids to repeat the object variable, and 
so makes the code simpler. Simple example:

-#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None
+#define Py_RETURN_NONE return Py_NewRef(Py_None)

--
components: C API
messages: 380337
nosy: vstinner
priority: normal
severity: normal
status: open
title: [C API] Add Py_NewRef() function to get a new strong reference to an 
object
versions: Python 3.10

___
Python tracker 

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



[issue30384] traceback.TracebackException.format shouldn't format_exc_only() when __traceback__ is None

2020-11-04 Thread Irit Katriel


Irit Katriel  added the comment:

Setting __traceback__ to None is not going to make the exception disappear.  
Note that TracebackException does not represent a traceback, it represent an 
exception (for rendering in tracebacks). So all information of the exception is 
rendered by TracebackException.format(), not only the exception's traceback.

It's not entirely clear to me what you are trying to do (what is the output you 
are hoping to get?) but this looks more like a question than a bug report, so I 
am closing this issue. If this is still relevant, I'd suggest you ask on the 
python users list or StackOverflow - you are more likely to receive a prompt 
response there.

--
nosy: +iritkatriel
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



[issue42261] Windows legacy I/O mode mistakenly ignores the device encoding

2020-11-04 Thread Eryk Sun


Eryk Sun  added the comment:

> The solution here is to fix config_init_stdio_encoding() to use 
> GetConsoleCP() and GetConsoleOutputCP() to build a "cpXXX" string.

But, as I mentioned, that's only possible by replacing config->stdio_encoding 
with three separate settings: config->stdin_encoding, config->stdout_encoding, 
and config->stderr_encoding.

--

___
Python tracker 

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



[issue25573] FrameSummary repr() does not support previously working uses of repr in traceback module

2020-11-04 Thread Irit Katriel


Irit Katriel  added the comment:

I think the fourth element (the code line) was omitted from repr because it is 
not one of the constructor args for FrameSummary (it is derived from them), so 
it's redundant in terms of describing this instance.

--
nosy: +iritkatriel
versions: +Python 3.10, Python 3.8, Python 3.9 -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



[issue1635741] Py_Finalize() doesn't clear all Python objects at exit

2020-11-04 Thread Christian Heimes


Change by Christian Heimes :


--
nosy:  -christian.heimes

___
Python tracker 

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



[issue1635741] Py_Finalize() doesn't clear all Python objects at exit

2020-11-04 Thread STINNER Victor


Change by STINNER Victor :


--
pull_requests: +22063
pull_request: https://github.com/python/cpython/pull/23151

___
Python tracker 

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



  1   2   >