[issue37482] Email address display name fails with both encoded words and special chars

2019-08-21 Thread B Siemerink


Change by B Siemerink :


--
pull_requests: +15090
pull_request: https://github.com/python/cpython/pull/15380

___
Python tracker 

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



[issue37074] os.stat() does not work for NUL and CON

2019-08-21 Thread Eryk Sun


Eryk Sun  added the comment:

> Where it was fixed?

It was addressed in issue 37834. PR 15231 includes a rewrite of 
win32_xstat_impl. The file type was needed, so the rewrite could also address 
the problem of character devices such as CON and NUL.

--

___
Python tracker 

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



[issue34410] itertools.tee not thread-safe; can segfault interpreter when wrapped iterator releases GIL

2019-08-21 Thread Serhiy Storchaka


Serhiy Storchaka  added the comment:

I tried to solve this issue myself, and figured out that it is not so simple. 
It is possible to make tee() nor crashing, but it is not possible to guarantee 
the order of the output without using a lock in tee(). It you can get a 
sequence 1, 2, 4, 3, ...

So we have the following options:

1. Document that the tee() iterator can not be consumed from different threads, 
even if an underlying iterator is thread-safe.
2. Detect the race condition and raise a RuntimeError (as for iterating 
modifying dicts).
3. Fix a crash, but document that the tee() iterator can return items out of 
order if consumed from different threads (PR 9254 basically does this). And 
exceptions can be raised out of order too.
4. Add a non-reentrant lock in the tee() object and raise a RuntimeError if it 
is re-entered.
5. Add a reentrant lock in the tee() object.

We can apply different solutions in developed and maintained versions. I would 
not backport options with locks.

--

___
Python tracker 

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



[issue26680] Incorporating float.is_integer into the numeric tower and Decimal

2019-08-21 Thread Raymond Hettinger


Raymond Hettinger  added the comment:

Marking this as closed:
* no forward movement for a year and half 
* opposition from multiple core devs

Feel free to revive this if you truly think this is needed and want to get the 
debate going again.

Also, expanding the numeric tower is always going to be problematic, because 
any user type that currently registers with it will be instantly non-compliant. 
 Concrete classes can grow APIs and keep backwards compatibility but abstract 
classes cannot easily grow new requirements.

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

___
Python tracker 

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



[issue32471] Add an UML class diagram to the collections.abc module documentation

2019-08-21 Thread Raymond Hettinger


Raymond Hettinger  added the comment:

See the rationale in the closed PR.  I rather liked this idea but it didn't 
prove to be a net win during user testing.

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

___
Python tracker 

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



[issue36906] Compile time textwrap.dedent() equivalent for str or bytes literals

2019-08-21 Thread Raymond Hettinger


Raymond Hettinger  added the comment:

We should consider dedicated syntax for compile-time dedenting:

d"""\
  This would be left aligned
  
  but this would only have four spaces

  And this would be left-justified.
"""   # Am not sure what to do about this last line

--

___
Python tracker 

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



[issue37754] Persistence of Shared Memory Segment after process exits

2019-08-21 Thread Eryk Sun


Eryk Sun  added the comment:

> register the shared the shared_memory only when it's created and 
> not when it's attached.

In Windows, the section object is reference counted. I haven't looked into the 
Unix implementation, but maybe it could use advisory locking. After opening 
shared memory via shm_open, a process would try to acquire a shared lock on the 
fd. If it can't acquire the lock, close the fd and fail the open. When exiting, 
a process would remove its shared lock and try to acquire an exclusive lock. If 
it acquires an exclusive lock, it should call shm_unlink because it's the last 
reference.

--

___
Python tracker 

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



[issue37792] xml.etree.ElementTree.Element.__eq__ does compare only objects identity

2019-08-21 Thread Marco Sulla


Marco Sulla  added the comment:

@rhettinger:

"Deprecating [...] just cause disruption to existing, deployed code"

How? Deprecating is used just to maintain intact the already existing code...

"Please do not go down of the path of making yourself the arbiter of what is 
Pythonic or standard.  The other core devs in this conversation are highly 
experienced.  Insulting them or the Fredrik Lundh's existing API won't help 
matters"

I'm not insulting anyone, I just said *IMHO* it's not pythonic. 

I think the example of a tree created with a simple dictionary is a clear 
signal that Python, in the Guido's mind, was created with the intention that 
equality should check the content of the objects and not just the ids, as Java, 
for example, does, even for objects that must be traversed to see if they are 
equal to another one.

The fact you can check if two objects are equal using simply == is, _IMHO_, 
more elegant, simple and useful. The fact that == checks the ids is not useful 
at all, since I can do it with id(elem1) == id(elem2). So what's the purpose of 
== ?

--

___
Python tracker 

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



[issue35889] sqlite3.Row doesn't have useful repr

2019-08-21 Thread Raymond Hettinger


Raymond Hettinger  added the comment:

If this goes forward, the maximum output size needs to be limited in some way 
(like what is done in reprlib).

Given Serhiy's doubts, I'm only +0 on this.  Feel free to close this if you 
like.  For the most part, I don't think people even look at Row objects.

--
versions: +Python 3.9 -Python 3.8

___
Python tracker 

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



[issue37074] os.stat() does not work for NUL and CON

2019-08-21 Thread Serhiy Storchaka


Serhiy Storchaka  added the comment:

Where it was fixed?

--

___
Python tracker 

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



[issue37862] Search doesn't find built-in functions

2019-08-21 Thread Terry J. Reedy


Terry J. Reedy  added the comment:

Even if click 'Library Reference', click '2. Built-in...', click name in the 
index at the top of the page to go to the entry I know I want to read is 
sometimes slower that 'click search box', enter word, hit Return, wait for 
results, scan results to find that entry, I prefer a consistent and dependable 
result.

That said, perhaps the search algorithm should start with looking words up in 
the builtins list, the module index, the glossary, and the index, and display 
those first  Index pages with definitions should get heavy weight too.  But is 
seems from your example that the obvious places might be downweighted instead.

As for my answer, I believe that the search once used Google, which was and 
still is terrible at returning results from the current doc.  For instance, 
just now, the 2nd return for 'Python zip' is the zip entry in chapter 2 ... for 
3.3.7!  'Python zip 3.7' does return
https://docs.python.org/3/library/functions.html
as first entry. I would rather click click to get to the same place.

If Julien and Ammar can improve Search [  ] to beat that, and be 
consistently useful to beginners, more power to them.

--

___
Python tracker 

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



[issue37754] Persistence of Shared Memory Segment after process exits

2019-08-21 Thread Vinay Sharma


Vinay Sharma  added the comment:

> In terms of providing "consistent behavior across platforms that can be
> reasonably supported", the behavior suggested above could not
> reasonably be supported in Windows.

I understand that persistence of a shared memory segment after all the 
processes using it exit, can be very difficult on Windows.

But, after testing shared_memory on Windows, the behavior on Windows and Unix 
is not consistent at the moment.

For instance:
Let's say a three processes P1, P2 and P3 are trying to communicate using 
shared memory.
 --> P1 creates the shared memory block, and waits for P2 and P3 to access it.
 --> P2 starts and attaches this shared memory segment, writes some data to it 
and exits.
 --> Now in case of Unix, shm_unlink is called as soon as P2 exits.
 --> Now, P3 starts and tries to attach the shared memory segment.
 --> P3 will not be able to attach the shared memory segment in Unix, because 
shm_unlink has been called on that segment.
 --> Whereas, P3 will be able to attach to the shared memory segment in Windows

One possible solution can be, to register the shared the shared_memory only 
when it's created and not when it's attached.

I think that might make Unix's implementation more consistent with windows.

Any thoughts on the same will be very helpful.

--

___
Python tracker 

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



[issue37074] os.stat() does not work for NUL and CON

2019-08-21 Thread Eryk Sun


Change by Eryk Sun :


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



[issue29250] islink and stat follow_symlinks are inconsistent on Windows

2019-08-21 Thread Eryk Sun


Change by Eryk Sun :


--
dependencies:  -os.walk always follows Windows junctions
resolution:  -> out of date
stage: needs patch -> resolved
status: open -> closed

___
Python tracker 

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



[issue37751] In codecs, function 'normalizestring' should convert both spaces and hyphens to underscores.

2019-08-21 Thread Jordon.X


Jordon.X <9651...@qq.com> added the comment:

Thanks vstinner. I also don't think it's necessary to backport to the old 
version. Close this issue is fine.

--

___
Python tracker 

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



[issue37894] [win] shutil.which can not find the path if 'cmd' include directory path and not include extension name

2019-08-21 Thread Eryk Sun


Eryk Sun  added the comment:

The code that sets up the PATHEXT `files` could be moved up. It also needs to 
be fixed in order to implement the correct behavior. For example:

use_bytes = isinstance(cmd, bytes)

files = [cmd]
if _WINDOWS:
# Also look for the name plus each PATHEXT extension.
default_pathext = '.COM;.EXE;.BAT;.CMD;.VBS;.JS;.WS;.MSC'
pathext = os.environ.get('PATHEXT', default_pathext)
if use_bytes:
pathext = os.fsencode(pathext).split(b';')
else:
pathext = pathext.split(';')
for ext in pathext:
files.append(cmd + ext)

# If we're given a path with a directory part, look it up directly rather
# than referring to PATH directories. This includes checking relative to the
# current directory, e.g. ./script.
if os.path.dirname(cmd):
for file in files:
if _access_check(file, mode):
return file
return None

The author of the PATHEXT code in shutil.which() was following a source that 
documented the behavior incorrectly. CMD always looks for the filename before 
trying to append the PATHEXT extensions. It does not limit its search to 
PATHEXT extensions. The only exception is a file that has no extension, in 
which case "." has to be set in PATHEXT to get CMD to find the file. However, 
where.exe finds a file that has no extension, regardless of PATHEXT, so 
Python's which() should be free to follow that example.

--
nosy: +eryksun
stage:  -> needs patch
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



[issue34690] Store startup modules as C structures for 20%+ startup speed improvement

2019-08-21 Thread Paulo Henrique Silva


Change by Paulo Henrique Silva :


--
nosy: +phsilva

___
Python tracker 

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



[issue36710] Pass _PyRuntimeState as an argument rather than using the _PyRuntime global variable

2019-08-21 Thread Paulo Henrique Silva


Change by Paulo Henrique Silva :


--
nosy: +phsilva

___
Python tracker 

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



[issue37862] Search doesn't find built-in functions

2019-08-21 Thread Ammar Askar


Ammar Askar  added the comment:

See also https://bugs.python.org/issue34398

There is some related work done by Julien there as well: 
https://github.com/JulienPalard/pydocsearch

--
nosy: +ammar2

___
Python tracker 

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



[issue36877] [meta] Move fields from _PyRuntimeState to PyInterpreterState.

2019-08-21 Thread Paulo Henrique Silva


Change by Paulo Henrique Silva :


--
nosy: +phsilva

___
Python tracker 

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



[issue37862] Search doesn't find built-in functions

2019-08-21 Thread Kim Oldfield


Kim Oldfield  added the comment:

Usually the search page is the quickest way to find documentation about a 
module or function - quicker than navigating through a couple of levels of 
pages (documentation home, index, index by letter, scroll or search in page to 
find desired name, click on name).

Searching for builtin functions is inconsistent. Some functions (eg getattr) 
are found as expected in a search, while other functions (eg zip and many 
others) aren't found in the search results. This could easily lead someone to 
incorrectly concluding that the function they are search for doesn't exist in 
python.

I find the response of "The search page is the last thing one should use" 
strange. Surely as the option to search is there, and it mostly works, we 
should be making incremental improvements as necessary to make it better so 
that everyone can easily find the right parts of the python documentation.

--

___
Python tracker 

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



[issue24554] GC should happen when a subinterpreter is destroyed

2019-08-21 Thread Paulo Henrique Silva


Change by Paulo Henrique Silva :


--
nosy: +phsilva

___
Python tracker 

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



[issue36854] GC operates out of global runtime state.

2019-08-21 Thread Paulo Henrique Silva


Change by Paulo Henrique Silva :


--
nosy: +phsilva

___
Python tracker 

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



[issue36876] Global C variables are a problem.

2019-08-21 Thread Paulo Henrique Silva


Change by Paulo Henrique Silva :


--
nosy: +phsilva

___
Python tracker 

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



[issue37910] argparse wrapping fails with metavar="" (no metavar)

2019-08-21 Thread Karthikeyan Singaravelan


Change by Karthikeyan Singaravelan :


--
nosy: +paul.j3

___
Python tracker 

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



[issue37911] Minor error in PEP567 code example

2019-08-21 Thread Karthikeyan Singaravelan


Karthikeyan Singaravelan  added the comment:

PEPs have their own GitHub issue tracker though I am not sure of edits to this 
PEP.
 GitHub : https://github.com/python/peps/issues . This can be closed as third 
party.

--
nosy: +xtreak

___
Python tracker 

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



[issue37912] fstring with quotation marks conflict

2019-08-21 Thread Eric V. Smith


Eric V. Smith  added the comment:

The lexer sees an f-string:
f'some text {something.split('
next to a normal string:
')}'

The first of those is not a valid f-string because of the unmatched left brace, 
so it's an error.

I'm contemplating making the f-string parser smarter to be able to detect this, 
but it's a long way off.

For an explanation of why it works the way it does currently, see 
https://mail.python.org/archives/list/python-...@python.org/message/BDZCXGRW5KTUOGMRT6OHH6S3UD4BV5ZV/
 . This post also has an example similar to yours.

--
assignee:  -> eric.smith
nosy: +eric.smith
resolution:  -> not a bug
stage:  -> 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



[issue9949] os.path.realpath on Windows does not follow symbolic links

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:

At this point, I'm inclined to say let's wait and see what the 3.8.0b4 feedback 
looks like.

Given that WSL has been fudging the boundaries here and hasn't suffered as a 
result, I don't expect much of a problem (and this change does actually make 
realpath() consistent between Windows native and WSL, which is nice). But I'm 
definitely open to making changes to this again if it turns out we need to.

--
status: open -> closed

___
Python tracker 

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



[issue37834] readlink on Windows cannot read app exec links

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:

That should be all the buildbot issues fixes, so I'm marking this resolved and 
will wait for the inevitable 3.8.0b4 feedback!

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

___
Python tracker 

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



[issue37834] readlink on Windows cannot read app exec links

2019-08-21 Thread miss-islington


miss-islington  added the comment:


New changeset 967d625a6df27fb490f035045ec8fe4675001d63 by Miss Islington (bot) 
in branch '3.8':
bpo-37834: Fix test on Windows 7 (GH-15377)
https://github.com/python/cpython/commit/967d625a6df27fb490f035045ec8fe4675001d63


--
nosy: +miss-islington

___
Python tracker 

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



[issue37912] fstring with quotation marks conflict

2019-08-21 Thread Seaky Lone


New submission from Seaky Lone :

For example, I have the following code:

something = 'some thing'
string = f'some text {something.split(' ')}'

The second expression is thought to be invalid because it is regarded as two 
strings ['some text {something.split(', ')}']. I have to change either pair of 
'' to "" in order to make things work.
I think this should not be an invalid expression because the ' ' or any other 
expressions inside the {} should be independent of the outer ''.

--
components: Interpreter Core
messages: 350147
nosy: Seaky Lone
priority: normal
severity: normal
status: open
title: fstring with quotation marks conflict
versions: Python 3.7

___
Python tracker 

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



[issue9949] os.path.realpath on Windows does not follow symbolic links

2019-08-21 Thread Eryk Sun


Eryk Sun  added the comment:

>> We can find code that does `relpath(realpath(target), 
>> realpath(start))` to compute the relative path to target 
>> for a symlink. 
>> ...
> I don't know how common this scenario is, but I can certainly 
> say that it's never worked on Windows. You'd also end up with a 
> relative symlink in a _real_ directory somewhere (that the 
> junction was pointing at) that is unable to reach `target`, 
> because it's now being resolved against the wrong start.

With ntpath.realpath == ntpath.abspath, it actually works fine for just 
junctions because in most cases a mount point in Windows should be handled 
simply as just a directory, not resolved as its target. Revisit my example. 
This is what I showed when "C:/spam/scripts" is a junction. It's only wrong if 
the junction targets a directory symlink -- a chimeric mount-point-link that NT 
has made the mistake of allowing. (The kernel developers should have known to 
disallow this when they introduced Unix-like symlinks. When evaluating a mount 
point that targets a symlink, or any name-surrogate reparse point, it should 
fail the call as an invalid reparse point. For simplicity and our sanity, a 
mount point should always have consistent semantics in path parsing as a hard 
component that behaves like a regular directory. Then we could *always* handle 
it as just a directory -- whether it's local or remote. They messed up badly, 
IMO.)

--

___
Python tracker 

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



[issue37834] readlink on Windows cannot read app exec links

2019-08-21 Thread miss-islington


Change by miss-islington :


--
pull_requests: +15089
pull_request: https://github.com/python/cpython/pull/15378

___
Python tracker 

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



[issue37834] readlink on Windows cannot read app exec links

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:


New changeset 374be59b8e479afa8c7a8ae6e77e98915e2f6d45 by Steve Dower in branch 
'master':
bpo-37834: Fix test on Windows 7 (GH-15377)
https://github.com/python/cpython/commit/374be59b8e479afa8c7a8ae6e77e98915e2f6d45


--

___
Python tracker 

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



[issue9949] os.path.realpath on Windows does not follow symbolic links

2019-08-21 Thread Eryk Sun


Eryk Sun  added the comment:

> Aware code can handle it [the exception] by getting a real path and 
> taking appropriate measures.

That should be "by getting a final path".

--

___
Python tracker 

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



[issue37528] test_tarfile: test_extractall_symlinks() fails on Windows with: [WinError 206] The filename or extension is too long

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:

I disabled the long path support on my own build and can reproduce this by 
passing a long path to --tempdir

Unfortunately, I'm not familiar enough with what tarfile is trying to do here - 
why is it recreating the entire directory structure within itself?

Browsing through lib/tarfile.py, I suspect it's the mix of "/" literals and 
os.path functions that's at fault here. It probably requires a much bigger job 
to go through and fix it up than simply fixing tests.

--
components: +Windows
nosy: +paul.moore, steve.dower, tim.golden

___
Python tracker 

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



[issue37834] readlink on Windows cannot read app exec links

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:

Adding a small fix for the Win7 buildbots in PR 15377

--

___
Python tracker 

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



[issue37834] readlink on Windows cannot read app exec links

2019-08-21 Thread Steve Dower


Change by Steve Dower :


--
pull_requests: +15088
pull_request: https://github.com/python/cpython/pull/15377

___
Python tracker 

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



[issue9949] os.path.realpath on Windows does not follow symbolic links

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:


New changeset a50d2f7e199f3be60c70c1586ee60ec60bf36642 by Steve Dower in branch 
'3.8':
bpo-9949: Call normpath() in realpath() and avoid unnecessary prefixes 
(GH-15376)
https://github.com/python/cpython/commit/a50d2f7e199f3be60c70c1586ee60ec60bf36642


--

___
Python tracker 

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



[issue9949] os.path.realpath on Windows does not follow symbolic links

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:

> We can find code that does `relpath(realpath(target), realpath(start))` to 
> compute the relative path to target for a symlink. 

> In other words, the caller wants a solidified form of `start` that can be 
> used to compute the path to a target for a relative symlink, but one that 
> works when accessed from `start`, not the final path of `start`. 

I don't know how common this scenario is, but I can certainly say that it's 
never worked on Windows. You'd also end up with a relative symlink in a _real_ 
directory somewhere (that the junction was pointing at) that is unable to reach 
`target`, because it's now being resolved against the wrong start.

Relative symlinks are nearly as evil as symlink loops :)

Given there is no POSIX concept of a "final" path, a real path is the closest 
analogy. If this is the quality of edge case where that happens to break down, 
I'm okay with leaving it broken.

(Similarly for the junction/symlink combination on remote systems. I don't see 
any way that POSIX emulation can properly support that, but it seems like the 
far more rare case - and I say this as someone whose employer *lives and 
breathes* unnecessarily complicated SMB shares ;) I've never seen this become 
an issue.)

--

___
Python tracker 

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



[issue9949] os.path.realpath on Windows does not follow symbolic links

2019-08-21 Thread Eryk Sun


Eryk Sun  added the comment:

I'm tentatively reopening this issue for you to consider the following point, 
Steve.

A real path is not always the same as a final path. We can find code that does 
`relpath(realpath(target), realpath(start))` to compute the relative path to 
target for a symlink. The final path can't be relied on for this unless we 
always evaluate the symlink from the final path to `start`. In particular, it 
cannot be relied on if the relative path traverses a junction. 

What code like this needs from a realpath() implementation is a solid (real) 
path, not a final path. In other words, the caller wants a solidified form of 
`start` that can be used to compute the path to a target for a relative 
symlink, but one that works when accessed from `start`, not the final path of 
`start`. Generally this means resolving symlinks in the path, but not mount 
points. That's what Unix realpath() does, but of course there it's simpler 
because the only name surrogate in Unix is a symlink, which is never a mount 
point and never a directory.

Here's an example. In this first case "scripts" is a junction mount point that 
targets "C:/spam/etc/scripts":

>>> eggs = r'C:\spam\dlls\eggs.dll'
>>> scripts = r'C:\spam\scripts'

>>> rel_eggs_right = os.path.relpath(eggs, scripts)
>>> print(rel_eggs_right)
..\dlls\eggs.dll
>>> os.symlink(rel_eggs_right, 'C:/spam/scripts/eggs_right.dll')
>>> os.path.exists('C:/spam/scripts/eggs_right.dll')
True

>>> scripts_final = os.path._getfinalpathname(scripts)[4:]
>>> print(scripts_final)
C:\spam\etc\scripts
>>> rel_eggs_wrong = os.path.relpath(eggs, scripts_final)
>>> print(rel_eggs_wrong)
..\..\dlls\eggs.dll
>>> os.symlink(rel_eggs_wrong, 'C:/spam/scripts/eggs_wrong.dll')
>>> os.path.exists('C:/spam/scripts/eggs_wrong.dll')
False

If we remove the junction and replace it with a 'soft' symlink that targets the 
same directory, then using the final path works, and using the given path no 
longer works.

>>> print(os.readlink('C:/spam/scripts'))
C:\spam\etc\scripts
>>> scripts_final = os.path._getfinalpathname(scripts)[4:]
>>> rel_eggs_right_2 = os.path.relpath(eggs, scripts_final)
>>> print(rel_eggs_right_2)
..\..\dlls\eggs.dll
>>> os.symlink(rel_eggs_right_2, 'C:/spam/scripts/eggs_right_2.dll')
>>> os.path.exists('C:/spam/scripts/eggs_right_2.dll')
True

>>> rel_eggs_wrong_2 = os.path.relpath(eggs, scripts)
>>> print(rel_eggs_wrong_2)
..\dlls\eggs.dll
>>> os.symlink(rel_eggs_wrong_2, 'C:/spam/scripts/eggs_wrong_2.dll')
>>> os.path.exists('C:/spam/scripts/eggs_wrong_2.dll')
False

When the kernel traverses "scripts" as a soft link, it collapses to the target 
(i.e. "C:/spam/etc/scripts"), so our relative path that was computed from the 
final path is right in this case. On the other hand, if "scripts" is is a mount 
point (junction), it's a hard (solid) component. It does not collapse to the 
target (the kernel even checks the junction's security descriptor, which it 
does not do for a symlink), so ".." in the relative symlink traverses the 
junction component as if it were an actual directory.

What we need is an implementation of realpath("C:/spam/scripts") that returns 
"C:\\spam\\scripts" when "scripts" is a mount point and returns 
"C:\\spam\\etc\\scripts" when "scripts" is a symlink.

This means we need an implementation of realpath() that looks a lot like 
posixpath.realpath. Generally a mount point should be walked over like a 
directory, just as mount points are handled in Unix. The difference is that a 
mount point in Windows is allowed to target a symlink. (This is a design flaw; 
Unix doesn't allow it.) Since we need to know the target of a junction, we have 
to read the reparse point, until we hit a real directory target. As long as it 
targets another junction, it remains a hard component. As soon as it targets a 
symlink, however, it becomes a soft component that needs to be resolved. If the 
junction targets a name surrogate reparse point that we can't read, then our 
only option is to get a final path. This is dysfunctional. We should raise an 
exception for this case. Code can handle the exception and knowingly get a 
final path instead of a real path.

This also means we can't reliably compute a real path for a remote path (UNC) 
because we can't manually evaluate the target of a remote junction. A remote 
junction is meaningless to us. If we're evaluating a UNC path and reach a 
junction, we have to give up on a real path and settle for a final path. We can 
get a final path because that lets the kernel in the server talk to our kernel 
to resolve any combination of mount points (handled on the server side) and 
symlinks (handled on our side). This case should also raise an exception. Aware 
code can handle it by getting a real path and taking appropriate measures.

--
status: closed -> open

___

[issue36311] Flaw in Windows code page decoder for large input

2019-08-21 Thread miss-islington


miss-islington  added the comment:


New changeset 735a960ac98cf414caf910565220ab2761fa542a by Miss Islington (bot) 
in branch '3.7':
bpo-36311: Fixes decoding multibyte characters around chunk boundaries and 
improves decoding performance (GH-15083)
https://github.com/python/cpython/commit/735a960ac98cf414caf910565220ab2761fa542a


--

___
Python tracker 

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



[issue36311] Flaw in Windows code page decoder for large input

2019-08-21 Thread miss-islington


miss-islington  added the comment:


New changeset f93c15aedc2ea2cb8b56fc9dbb0d412918992e86 by Miss Islington (bot) 
in branch '3.8':
bpo-36311: Fixes decoding multibyte characters around chunk boundaries and 
improves decoding performance (GH-15083)
https://github.com/python/cpython/commit/f93c15aedc2ea2cb8b56fc9dbb0d412918992e86


--
nosy: +miss-islington

___
Python tracker 

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



[issue9949] os.path.realpath on Windows does not follow symbolic links

2019-08-21 Thread Steve Dower


Change by Steve Dower :


--
pull_requests: +15087
pull_request: https://github.com/python/cpython/pull/15376

___
Python tracker 

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



[issue9949] os.path.realpath on Windows does not follow symbolic links

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:


New changeset 06be2c7f357d12249445e95def1fb708a087b357 by Steve Dower in branch 
'master':
bpo-9949: Call normpath() in realpath() and avoid unnecessary prefixes 
(GH-15369)
https://github.com/python/cpython/commit/06be2c7f357d12249445e95def1fb708a087b357


--

___
Python tracker 

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



[issue29988] with statements are not ensuring that __exit__ is called if __enter__ succeeds

2019-08-21 Thread Gregory P. Smith


Gregory P. Smith  added the comment:

The signal handler in this case is CPython's internal signal handling system 
thus any such onus falls on us...

The great signal handling hack of "set a flag that the interpreter loop checks 
on occasion" trick lasted a long time, but our VM has since evolved to be much 
more complicated than every bytecode being a safe interrupt point.

FYI - Most of the in-room conversation we tried to capture on this issue thread 
was at the core dev sprint a couple years ago (Sept 2017).  It'll similarly 
take me a while to swap this context back in.

--

___
Python tracker 

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



[issue36311] Flaw in Windows code page decoder for large input

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:

I'll get the 3.7 and 3.8 backports merged - looks like they're trivial. 

Going to need some help with the 2.7 backport, but I'm happy to approve a PR.

--
stage: patch review -> backport needed

___
Python tracker 

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



[issue36311] Flaw in Windows code page decoder for large input

2019-08-21 Thread miss-islington


Change by miss-islington :


--
pull_requests: +15086
pull_request: https://github.com/python/cpython/pull/15375

___
Python tracker 

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



[issue36311] Flaw in Windows code page decoder for large input

2019-08-21 Thread miss-islington


Change by miss-islington :


--
pull_requests: +15085
pull_request: https://github.com/python/cpython/pull/15374

___
Python tracker 

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



[issue37531] Fix regrtest timeout for subprocesses: regrtest -jN --timeout=SECONDS

2019-08-21 Thread Jeremy Kloth


Jeremy Kloth  added the comment:

I happened to catch a stuck build prior to the process being killed:

https://buildbot.python.org/all/#/builders//builds/2887

In short, the PR doesn't change the problem.  The regrtest main will wait 
indefinitely on the successfully killed process.

I have some ideas to try, but creating a reproducer is not exactly easy...

--

___
Python tracker 

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



[issue36311] Flaw in Windows code page decoder for large input

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:


New changeset 7ebdda0dbee7df6f0c945a7e1e623e47676e112d by Steve Dower in branch 
'master':
bpo-36311: Fixes decoding multibyte characters around chunk boundaries and 
improves decoding performance (GH-15083)
https://github.com/python/cpython/commit/7ebdda0dbee7df6f0c945a7e1e623e47676e112d


--

___
Python tracker 

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



[issue37482] Email address display name fails with both encoded words and special chars

2019-08-21 Thread miss-islington


miss-islington  added the comment:


New changeset c5bba853d5e7836f6d4340e18721d3fb3a6ee0f7 by Miss Islington (bot) 
in branch '3.7':
bpo-37482: Fix email address name with encoded words and special chars 
(GH-14561)
https://github.com/python/cpython/commit/c5bba853d5e7836f6d4340e18721d3fb3a6ee0f7


--

___
Python tracker 

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



[issue37910] argparse wrapping fails with metavar="" (no metavar)

2019-08-21 Thread Sam Franklin


Change by Sam Franklin :


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

___
Python tracker 

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



[issue37482] Email address display name fails with both encoded words and special chars

2019-08-21 Thread miss-islington


Change by miss-islington :


--
pull_requests: +15083
pull_request: https://github.com/python/cpython/pull/15371

___
Python tracker 

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



[issue37911] Minor error in PEP567 code example

2019-08-21 Thread Semyon


New submission from Semyon :

In PEP-567 there is a code example in `contextvars.Context` section 
(https://www.python.org/dev/peps/pep-0567/#contextvars-context):

```
# Print all context variables and their values in 'ctx':
print(ctx.items())
```

But `ctx.items()` doesn't return a list of tuples as probably expected by this 
code; instead it returns a `items` object which, unlike `dict_items`, does not 
contain any sensible `repr` or `str`. So this print statement will output 
something like ``.

I think this code example should be chaned to something like 
`print(list(ctx.items()))`.

--
assignee: docs@python
components: Documentation
messages: 350129
nosy: MarSoft, docs@python
priority: normal
severity: normal
status: open
title: Minor error in PEP567 code example
versions: Python 3.7

___
Python tracker 

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



[issue37482] Email address display name fails with both encoded words and special chars

2019-08-21 Thread miss-islington


miss-islington  added the comment:


New changeset df0c21ff46c5c37b6913828ef8c7651f523432f8 by Miss Islington (bot) 
(bsiem) in branch 'master':
bpo-37482: Fix email address name with encoded words and special chars 
(GH-14561)
https://github.com/python/cpython/commit/df0c21ff46c5c37b6913828ef8c7651f523432f8


--
nosy: +miss-islington

___
Python tracker 

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



[issue37663] Making venv activation script prompts consistent

2019-08-21 Thread Brett Cannon


Brett Cannon  added the comment:


New changeset 48ede6b8f685669f53d26ae8456647af42ae3dae by Brett Cannon in 
branch 'master':
bpo-37663: have venv activation scripts all consistently use __VENV_PROMPT__ 
for prompt customization (GH-14941)
https://github.com/python/cpython/commit/48ede6b8f685669f53d26ae8456647af42ae3dae


--

___
Python tracker 

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



[issue1311] os.path.exists(os.devnull) regression on windows

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:


New changeset 9eb3d5463976068900e94b860ced7e035885835c by Steve Dower in branch 
'3.8':
bpo-37834: Normalise handling of reparse points on Windows (GH-15370)
https://github.com/python/cpython/commit/9eb3d5463976068900e94b860ced7e035885835c


--

___
Python tracker 

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



[issue37834] readlink on Windows cannot read app exec links

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:


New changeset 9eb3d5463976068900e94b860ced7e035885835c by Steve Dower in branch 
'3.8':
bpo-37834: Normalise handling of reparse points on Windows (GH-15370)
https://github.com/python/cpython/commit/9eb3d5463976068900e94b860ced7e035885835c


--

___
Python tracker 

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



[issue1311] os.path.exists(os.devnull) regression on windows

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:

Well, I was trying not to resurrect this old issue, but looks like I did it 
accidentally.

Hi there, old hands! We miss you :)

We also figured out a new [l]stat() implementation on Windows that handles 
symlinks and junctions better, and also non-file types such as NUL. So I guess 
I'll mark this as resolved in Python 3.8

--
resolution: not a bug -> fixed
stage:  -> resolved
versions: +Python 3.8, Python 3.9 -Python 2.5

___
Python tracker 

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



[issue1311] os.path.exists(os.devnull) regression on windows

2019-08-21 Thread Steve Dower


Change by Steve Dower :


--
pull_requests: +15082
pull_request: https://github.com/python/cpython/pull/15370

___
Python tracker 

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



[issue37834] readlink on Windows cannot read app exec links

2019-08-21 Thread Steve Dower


Change by Steve Dower :


--
pull_requests: +15081
stage: commit review -> patch review
pull_request: https://github.com/python/cpython/pull/15370

___
Python tracker 

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



[issue37834] readlink on Windows cannot read app exec links

2019-08-21 Thread Steve Dower


Change by Steve Dower :


--
stage: patch review -> commit review

___
Python tracker 

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



[issue1311] os.path.exists(os.devnull) regression on windows

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:


New changeset df2d4a6f3d5da2839c4fc11d31511c8e028daf2c by Steve Dower in branch 
'master':
bpo-37834: Normalise handling of reparse points on Windows (GH-15231)
https://github.com/python/cpython/commit/df2d4a6f3d5da2839c4fc11d31511c8e028daf2c


--
nosy: +steve.dower

___
Python tracker 

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



[issue29988] with statements are not ensuring that __exit__ is called if __enter__ succeeds

2019-08-21 Thread Raymond Hettinger


Raymond Hettinger  added the comment:

Historically, in C, Python, and and low-level interrupt programming it was the 
responsibility of a person writing a signal handler to make minimal variable 
edits and not disrupt anything else in the ecosystem.  

Are we changing that rule?  (I'm still at the cringing stage and possibly 
haven't evolved my views yet).

--
nosy: +rhettinger

___
Python tracker 

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



[issue37834] readlink on Windows cannot read app exec links

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:


New changeset df2d4a6f3d5da2839c4fc11d31511c8e028daf2c by Steve Dower in branch 
'master':
bpo-37834: Normalise handling of reparse points on Windows (GH-15231)
https://github.com/python/cpython/commit/df2d4a6f3d5da2839c4fc11d31511c8e028daf2c


--

___
Python tracker 

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



[issue9949] os.path.realpath on Windows does not follow symbolic links

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:

And sorry, the test_ntpath traceback was half listed in Pablo's message, but 
was missing the critical lines :)

--

___
Python tracker 

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



[issue9949] os.path.realpath on Windows does not follow symbolic links

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:

Okay, the venv break is related (and it should have broken more frequently).

The new realpath() implementation leaves the \\?\ prefix behind if the path 
doesn't exist, since that's the error you get when the path is longer than 
MAX_PATH and you're on a system that can't handle it.

I think the best fix is probably to strip the prefix if the file didn't exist 
at the start and still doesn't exist afterwards.

--

___
Python tracker 

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



[issue29988] with statements are not ensuring that __exit__ is called if __enter__ succeeds

2019-08-21 Thread Gregory P. Smith


Change by Gregory P. Smith :


--
versions: +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



[issue32949] Simplify "with"-related opcodes

2019-08-21 Thread Gregory P. Smith


Change by Gregory P. Smith :


--
versions: +Python 3.9 -Python 3.8

___
Python tracker 

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



[issue37792] xml.etree.ElementTree.Element.__eq__ does compare only objects identity

2019-08-21 Thread Raymond Hettinger


Raymond Hettinger  added the comment:

Macro, we appreciate your sentiments.  Please consider this module has been 
around for a long time and that others aren't reacting to the API the same way 
you are.  Deprecating SubElement, fromstringlist() and tostringlist() because 
you don't like them will just cause disruption to existing, deployed code.  
You're about 15 years too late for a design discussion ;-)  That ship has 
sailed. 

Your proposal to add a new feature for comparing elements is in the realm of 
the possible.  That said, the other respondents made a reasonable case the 
different people would want to do it differently.  Despite your insistence that 
only your way makes sense, we do have to consider other users as well.  The 
other respondents provided you with other ways to meet your needs. Their 
disinclination to not add this feature is backed-up by years of experience with 
this module and with lxml.

Communication note: Please do not go down of the path of making yourself the 
arbiter of what is Pythonic or standard.  The other core devs in this 
conversation are highly experienced.  Insulting them or the Fredrik Lundh's 
existing API won't help matters.

We should add a clear note to the docs:  "Comparing the string serialized XML 
should not be used to establish semantic equality.  The preferred ways are to 
use C14N canonicalization or to write a tree walker where the notion of 
equivalence can be customized to include/exclude attribute order, to 
include/exclude comments or processing instructions, to include/exclude 
whitespace at non-leaf nodes".

--

___
Python tracker 

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



[issue37910] argparse wrapping fails with metavar="" (no metavar)

2019-08-21 Thread Sam Franklin


New submission from Sam Franklin :

When argparse wraps the usage text, it can fail its assertion tests with 
whitespace differences. This can occur when metavar="", needed if a user wishes 
to avoid having a metavar print. It also could occur if a   user specifies any 
other whitespace.
Here's a minimum example (depending on $COLUMNS):

import argparse
# based on Vajrasky Kok's script in https://bugs.python.org/issue11874
parser = argparse.ArgumentParser(prog='PROG')
parser.add_argument('--nil', metavar='', required=True)
parser.add_argument('--a', metavar='a' * 165)
parser.parse_args()

This produces the AssertionError at the bottom of this comment.

A solution is to have the two asserts ignore whitespace. I'll submit a pull 
request very shortly for this. (First time so happy for any comments or 
critiques!)

A more extensive example:
import argparse
# based on Vajrasky Kok's script in https://bugs.python.org/issue11874
parser = argparse.ArgumentParser(prog='PROG')

parser.add_argument('--nil', metavar='', required=True)
parser.add_argument('--Line-Feed', metavar='\n', required=True)
parser.add_argument('--Tab', metavar='\t', required=True)
parser.add_argument('--Carriage-Return', metavar='\r', required=True)
parser.add_argument('--Carriage-Return-and-Line-Feed',
metavar='\r\n', required=True)
parser.add_argument('--vLine-Tabulation', metavar='\v', required=True)
parser.add_argument('--x0bLine-Tabulation', metavar='\x0b', required=True)
parser.add_argument('--fForm-Feed', metavar='\f', required=True)
parser.add_argument('--x0cForm-Feed', metavar='\x0c', required=True)
parser.add_argument('--File-Separator', metavar='\x1c', required=True)
parser.add_argument('--Group-Separator', metavar='\x1d', required=True)
parser.add_argument('--Record-Separator', metavar='\x1e', required=True)
parser.add_argument('--C1-Control-Code', metavar='\x85', required=True)
parser.add_argument('--Line-Separator', metavar='\u2028', required=True)
parser.add_argument('--Paragraph-Separator', metavar='\u2029', required=True)
parser.add_argument('--a', metavar='a' * 165)
parser.parse_args()

This is related to https://bugs.python.org/issue17890 and 
https://bugs.python.org/issue32867.

  File "/minimum_argparse_bug.py", line 7, in 
parser.parse_args()
  File "/path/to/cpython/Lib/argparse.py", line 1758, in parse_args
args, argv = self.parse_known_args(args, namespace)
  File "/path/to/cpython/Lib/argparse.py", line 1790, in parse_known_args
namespace, args = self._parse_known_args(args, namespace)
  File "/path/to/cpython/Lib/argparse.py", line 1996, in _parse_known_args
start_index = consume_optional(start_index)
  File "/path/to/cpython/Lib/argparse.py", line 1936, in consume_optional
take_action(action, args, option_string)
  File "/path/to/cpython/Lib/argparse.py", line 1864, in take_action
action(self, namespace, argument_values, option_string)
  File "/path/to/cpython/Lib/argparse.py", line 1037, in __call__
parser.print_help()
  File "/path/to/cpython/Lib/argparse.py", line 2483, in print_help
self._print_message(self.format_help(), file)
  File "/path/to/cpython/Lib/argparse.py", line 2467, in format_help
return formatter.format_help()
  File "/path/to/cpython/Lib/argparse.py", line 281, in format_help
help = self._root_section.format_help()
  File "/path/to/cpython/Lib/argparse.py", line 212, in format_help
item_help = join([func(*args) for func, args in self.items])
  File "/path/to/cpython/Lib/argparse.py", line 212, in 
item_help = join([func(*args) for func, args in self.items])
  File "/path/to/cpython/Lib/argparse.py", line 336, in _format_usage
assert ' '.join(opt_parts) == opt_usage
AssertionError

--
components: Library (Lib)
messages: 350117
nosy: sjfranklin
priority: normal
severity: normal
status: open
title: argparse wrapping fails with metavar="" (no metavar)
type: crash
versions: Python 2.7, Python 3.5, Python 3.6, Python 3.7, Python 3.8, Python 3.9

___
Python tracker 

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



[issue9949] os.path.realpath on Windows does not follow symbolic links

2019-08-21 Thread Steve Dower


Change by Steve Dower :


--
pull_requests: +15080
pull_request: https://github.com/python/cpython/pull/15369

___
Python tracker 

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



[issue9949] os.path.realpath on Windows does not follow symbolic links

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:

I suspect the relevant failure here (which is not listed in Pablo's post) is 
this one:

==
ERROR: test_realpath_curdir (test.test_ntpath.TestNtpath)
--
Traceback (most recent call last):
  File "C:\buildbot.python.org\3.x.kloth-win64\build\lib\test\test_ntpath.py", 
line 210, in test_realpath_curdir
tester("ntpath.realpath('/'.join(['.'] * 100))", expected)
  File "C:\buildbot.python.org\3.x.kloth-win64\build\lib\test\test_ntpath.py", 
line 30, in tester
raise TestFailed("%s should return: %s but returned: %s" \
test.support.TestFailed: ntpath.realpath('/'.join(['.'] * 100)) should return: 
C:\buildbot.python.org\3.x.kloth-win64\build\build\test_python_5340\test_python_worker_1408
 but returned: 
\\?\C:\buildbot.python.org\3.x.kloth-win64\build\build\test_python_5340\test_python_worker_1408\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.

The path being normalized is longer than MAX_PATH, which is clearly causing 
failures with Windows APIs as implemented on Windows 7.

I can add the normpath() call back in, which should remove all the dots before 
ever actually testing realpath() and get it back down under MAX_PATH. That 
won't help anyone using real long paths on Win7 though, but then again the only 
reason this test was passing before was because there was a normpath() call, so 
we're no worse off (apart from performance-wise).

The venv issues seem unrelated. I'll get the realpath one fixed first and then 
take a look at those once I've finished today's tasks.

--

___
Python tracker 

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



[issue37792] xml.etree.ElementTree.Element.__eq__ does compare only objects identity

2019-08-21 Thread Marco Sulla


Marco Sulla  added the comment:

@scoder: 

1. the fact that == does not traverse the Element is IMHO unpythonic and 
non-standard. A trivial example:

>>> a = {1: {2: 3}}
>>> b = {1: {2: 3}}
>>> a == b
True

You can have a dictionary complicated as you want, but if they have the same 
structure, the two dictionaries will be always equals, even if their id are 
not. 

I think that no one could say to remove this dictionary feature and simply 
check the ids, leaving the deep comparison to the user, without raising a 
rebellion :)

2. the fact that SubElement seems a constructor is not an implementation 
detail. It's misleading and confusing, since a programmer expects that it will 
return an object of type SubElement, while there's no SubElement class. This is 
peculiar. I can be wrong, but I never encountered such a bizarre naming in the 
standard library. IMHO SubElement should be deprecated and it should call 
`subElement()`, a simply copy of the old SubElement

3. I'm not suggesting to remove fromstringlist and tostringlist, but that they 
could be deprecated and simply call fromstring and tostring, that should use 
duck typing for doing what fromstringlist and tostringlist did.

--

___
Python tracker 

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



[issue9949] os.path.realpath on Windows does not follow symbolic links

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:

On it

--

___
Python tracker 

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



[issue37902] Add scrolling for IDLE browsers

2019-08-21 Thread Terry J. Reedy


Terry J. Reedy  added the comment:

I won't merge with mousescroll duplicated, or worse, triplicated.  If 
'self.text/canvas' is replaced with 'event.widget', then the 'self' parameter 
can be deleted and the function made a standalone module function.  For now, 
put it in tree, copied with the docstring from editor.py.  Then import it into 
editor.  (Reason: Avoid creating more import loops.)

This will make mousescroll depend on IDLE not subclassing text/canvas and 
overriding yview_scroll.  It currently does not and I expect it never will.  
But, to be safe, this should be added to the docstring, and tested (fairly 
simple) along with other added tests.

The labels partially blocking the canvas bindings is nasty.  Mousescroll is 
wrapped as a tk script for each label.  I expect to eventually replace  the 
labels and other visual tree stuff with a ttk.Treeview.  Then no canvas wheel 
bindings will be needed.  In anticipation of that, replace 'yview_scroll(' with 
the equivalent 'yview(SCROLL,' (Treeview only has the latter.)  The resulting 
line will be
event.widget.yview(SCROLL, lines, "units")

For some reason, creating a module browser for pyshell takes 3 times as long 
with my repository 3.9 debug build as with my 3.8 installed normal build.  (The 
ration is usually about 2.)  But the patch with the extra bindings and 
wrappings  does not make it much worse, if any.

Scrolling by moving mouse while holding down middle mouse wheel seems to be 
built into Text.  But I never/seldom use it and have not tried to add it to 
anything else.  At least on Windows, it works differently than on Firefox.  
Text only moved with drag, which makes it jerky, not with distance from start 
position.  And one cannot only scroll part of a large file, not to top and 
bottom.  Notepad and notepad++ do not have it.  So skip it for now.

When one edits a branch and pushes commits to ones github fork, the changes 
appear on any existing PR.  Closing a PR and reopening a new one is unusual and 
loses comments.  Post to core-mentorship if you need help with git and our 
workflow.  My PR-15360 comment applies to the current one.

--
stage: patch review -> test needed

___
Python tracker 

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



[issue9949] os.path.realpath on Windows does not follow symbolic links

2019-08-21 Thread Steve Dower


Change by Steve Dower :


--
assignee:  -> steve.dower

___
Python tracker 

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



[issue9949] os.path.realpath on Windows does not follow symbolic links

2019-08-21 Thread Steve Dower


Change by Steve Dower :


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

___
Python tracker 

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



[issue31226] shutil.rmtree fails when target has an internal directory junction (Windows)

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:

I think this definitely conflicts with the behaviour we've been working on for 
the last week over on issue37834 (the PR is going to conflict for sure).

I am making a change to rmtree() that will cause it to delete junction point 
without trying to recursively remove their contents, which should avoid the 
listdir() that was failing here. That should be enough to cover the original 
issue.

We also ended up settling on isdir/islink semantics for directory junctions 
that don't quite match those discussed here. I'm inclined to agree that we 
should figure out the best way to distinguish volume mounts from directory 
junctions, but that is going to be best layered on top of the other changes 
that I'm working on getting merged right now. 

The commit messages or doc changes in PR 15231 are the best place to see where 
we ended up.

--

___
Python tracker 

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



[issue9949] os.path.realpath on Windows does not follow symbolic links

2019-08-21 Thread Pablo Galindo Salgado


Pablo Galindo Salgado  added the comment:

There are multiple failures on several buildbots after commit 
75e064962ee0e31ec19a8081e9d9cc957baf6415 was merged:

BUILDBOT FAILURE REPORT
===

Builder name: AMD64 Windows7 SP1 3.x
Builder url: https://buildbot.python.org/all/#/builders/40/
Build url: https://buildbot.python.org/all/#/builders/40/builds/2886

Failed tests


- test_realpath_curdir (test.test_ntpath.TestNtpath)

- test_unicode_in_batch_file (test.test_venv.BasicTest)


Test leaking resources
--



Build summary
-

== Tests result: FAILURE then FAILURE ==

384 tests OK.

10 slowest tests:
- test_multiprocessing_spawn: 2 min 45 sec
- test_tools: 2 min 5 sec
- test_distutils: 1 min 50 sec
- test_tokenize: 1 min 41 sec
- test_concurrent_futures: 1 min 39 sec
- test_lib2to3: 1 min 14 sec
- test_mmap: 1 min 11 sec
- test_largefile: 1 min 8 sec
- test_asyncio: 1 min 4 sec
- test_io: 1 min 3 sec

2 tests failed:
test_ntpath test_venv

33 tests skipped:
test_curses test_dbm_gnu test_dbm_ndbm test_devpoll test_epoll
test_fcntl test_fork1 test_gdb test_grp test_ioctl test_kqueue
test_multiprocessing_fork test_multiprocessing_forkserver test_nis
test_openpty test_ossaudiodev test_pipes test_poll test_posix
test_pty test_pwd test_readline test_resource test_spwd
test_syslog test_threadsignals test_tix test_tk test_ttk_guionly
test_wait3 test_wait4 test_xxtestfuzz test_zipfile64

2 re-run tests:
test_ntpath test_venv

Total duration: 13 min 17 sec


Tracebacks
--

```traceback
Traceback (most recent call last):
  File "C:\buildbot.python.org\3.x.kloth-win64\build\lib\test\test_venv.py", 
line 337, in test_unicode_in_batch_file
out, err = check_output(
  File "C:\buildbot.python.org\3.x.kloth-win64\build\lib\test\test_venv.py", 
line 42, in check_output
raise subprocess.CalledProcessError(
subprocess.CalledProcessError: Command 
'['?\\C:\\Users\\Buildbot\\AppData\\Local\\Temp\\tmpsbwlxx8h\\\u03fc\u045e\u0422\u03bb\u0424\u0419\\Scripts\\activate.bat',
 '&', 'python_d.exe', '-c', 'print(0)']' returned non-zero exit status 1.


Traceback (most recent call last):
  File "C:\buildbot.python.org\3.x.kloth-win64\build\lib\test\test_venv.py", 
line 337, in test_unicode_in_batch_file
out, err = check_output(
  File "C:\buildbot.python.org\3.x.kloth-win64\build\lib\test\test_venv.py", 
line 42, in check_output
raise subprocess.CalledProcessError(
subprocess.CalledProcessError: Command 
'['?\\C:\\Users\\Buildbot\\AppData\\Local\\Temp\\tmpxl3ubg90\\\u03fc\u045e\u0422\u03bb\u0424\u0419\\Scripts\\activate.bat',
 '&', 'python_d.exe', '-c', 'print(0)']' returned non-zero exit status 1.


Traceback (most recent call last):
  File "C:\buildbot.python.org\3.x.kloth-win64\build\lib\test\test_ntpath.py", 
line 210, in test_realpath_curdir
tester("ntpath.realpath('/'.join(['.'] * 100))", expected)
  File "C:\buildbot.python.org\3.x.kloth-win64\build\lib\test\test_ntpath.py", 
line 30, in tester
raise TestFailed("%s should return: %s but returned: %s" \

```

Current builder status
--

The builder is failing currently

Commits
---

- bcc446f525421156fe693139140e7051d000592e

- 75e064962ee0e31ec19a8081e9d9cc957baf6415


Other builds with similar failures
--

-  https://buildbot.python.org/all/#/builders/208/builds/279
-  https://buildbot.python.org/all/#/builders/12/builds/2985
-  https://buildbot.python.org/all/#/builders/12/builds/2986
-  https://buildbot.python.org/all/#/builders/219/builds/190
-  https://buildbot.python.org/all/#/builders/40/builds/2885
-  https://buildbot.python.org/all/#/builders/3/builds/3298
-  https://buildbot.python.org/all/#/builders/3/builds/3299

Steve, can you take a look?

--
nosy: +pablogsal

___
Python tracker 

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



[issue37902] Add scrolling for IDLE browsers

2019-08-21 Thread George Zhang


George Zhang  added the comment:

Looks like my PRs are getting out of hand... This is the final PR :P

--

___
Python tracker 

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



[issue37902] Add scrolling for IDLE browsers

2019-08-21 Thread George Zhang


Change by George Zhang :


--
pull_requests: +15079
pull_request: https://github.com/python/cpython/pull/15368

___
Python tracker 

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



[issue9949] os.path.realpath on Windows does not follow symbolic links

2019-08-21 Thread miss-islington


miss-islington  added the comment:


New changeset c30c869e8dec5eefdee7977943ffa11a8e3c8d75 by Miss Islington (bot) 
in branch '3.8':
bpo-9949: Enable symlink traversal for ntpath.realpath (GH-15287)
https://github.com/python/cpython/commit/c30c869e8dec5eefdee7977943ffa11a8e3c8d75


--
nosy: +miss-islington

___
Python tracker 

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



[issue37909] Thread pool return ref hold memory

2019-08-21 Thread Raymond Hettinger


Change by Raymond Hettinger :


--
nosy: +pablogsal

___
Python tracker 

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



[issue37909] Thread pool return ref hold memory

2019-08-21 Thread Tianshu Gao


New submission from Tianshu Gao :

This is very similar to issue35715. But this is happen for thread.

After the func in thread finished, the memory is still hold and accumulate.

import asyncio
import time
import concurrent
import threading

loop = asyncio.get_event_loop()

def prepare_a_giant_list():
m = []
for i in range(1000*1000):
m.append("There's a fat fox jump over a sheep" + str(i))

th_num = threading.active_count()
print("Thread number is {}".format(th_num))
return m

@asyncio.coroutine
def main():
global loop
global counter
async_executor = concurrent.futures.ThreadPoolExecutor(max_workers=20)
loop.run_in_executor(async_executor, prepare_a_giant_list)
time.sleep(15)
loop.run_in_executor(async_executor, prepare_a_giant_list)
time.sleep(15)
loop.run_in_executor(async_executor, prepare_a_giant_list)
time.sleep(15)
loop.run_in_executor(async_executor, prepare_a_giant_list)
time.sleep(15)

if __name__ == "__main__":
loop.run_until_complete(main())
loop.close()

--
components: asyncio
messages: 350108
nosy: Tianshu Gao, asvetlov, yselivanov
priority: normal
severity: normal
status: open
title: Thread pool return ref hold memory
type: resource usage
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



[issue9949] os.path.realpath on Windows does not follow symbolic links

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:


New changeset 75e064962ee0e31ec19a8081e9d9cc957baf6415 by Steve Dower in branch 
'master':
bpo-9949: Enable symlink traversal for ntpath.realpath (GH-15287)
https://github.com/python/cpython/commit/75e064962ee0e31ec19a8081e9d9cc957baf6415


--

___
Python tracker 

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



[issue9949] os.path.realpath on Windows does not follow symbolic links

2019-08-21 Thread miss-islington


Change by miss-islington :


--
pull_requests: +15078
pull_request: https://github.com/python/cpython/pull/15367

___
Python tracker 

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



[issue37902] Add scrolling for IDLE browsers

2019-08-21 Thread George Zhang


Change by George Zhang :


--
pull_requests:  -15077

___
Python tracker 

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



[issue37902] Add scrolling for IDLE browsers

2019-08-21 Thread George Zhang


Change by George Zhang :


--
pull_requests:  -15076

___
Python tracker 

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



[issue37810] ndiff reports incorrect location when diff strings contain tabs

2019-08-21 Thread Tim Peters


Change by Tim Peters :


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

___
Python tracker 

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



[issue37905] Improve docs for NormalDist

2019-08-21 Thread Raymond Hettinger


Change by Raymond Hettinger :


--
title: Improve docs for NormalDist.overlap() -> Improve docs for NormalDist

___
Python tracker 

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



[issue37834] readlink on Windows cannot read app exec links

2019-08-21 Thread Steve Dower


Steve Dower  added the comment:

So my colleagues confirmed that they deliberately represent junction points as 
symlinks within WSL, including translating the target to the mounted location 
(assuming it is mounted) and letting the Linux code traverse it normally. They 
also said they haven't heard any feedback suggesting it causes any trouble.

However, the more I've thought about the implications of islink() returning 
true for a junction, the more I've come around to Eryk's point of view, so I'm 
going to merge this as is (the PR currently only sets S_IFLNK for actual 
symlinks).

That said, nt.readlink() will still be able to read the target of a junction, 
and code like I have in PR 15287 that uses readlink() to follow links will 
resolve them (noting that that implementation of realpath() attempts to let the 
OS follow it first). I think that covers the intended use cases best.

The only updates left are a couple of docs here, but I'll finish up issue9949 
first and rebase on those changes as well.

--

___
Python tracker 

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



[issue37905] Improve docs for NormalDist.overlap()

2019-08-21 Thread Raymond Hettinger


Raymond Hettinger  added the comment:

> Raymond and others interested in this topic - thoughts?

Please do submit a PR with an improved example for the MonteCarlo simulation.  
I'm not fond of that example at all.  It should be as short as possible while 
getting the core idea across.  But it should be something that doesn't have a 
simple analytic solution so as to motivate the concept.  Go ahead and use a 
fixed numeric seed as well.

--
components: +Documentation -Library (Lib)
title: Remove NormalDist.overlap() or improve documentation? -> Improve docs 
for NormalDist.overlap()

___
Python tracker 

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



[issue37905] Remove NormalDist.overlap() or improve documentation?

2019-08-21 Thread Raymond Hettinger


Raymond Hettinger  added the comment:

BTW, I get your concern about the statistics module as a whole.  From the point 
of view of an expert numpy/scipy user, the whole module seems pointless.  
However, the purpose of the module is to put a useful subset of statistical 
tools into the hands of everyday Python users who aren't part of that numeric 
ecosystem (think of the same people who use MS Excel as part of this group).  
The module doesn't require extra pip installation, an Anaconda distribution, or 
even knowledge of array broadcasting and whatnot.

For the past few months, I've been user testing the new components of the 
statistics module and have had good success.  Some of the examples in the docs 
were born from those interactions.

I also get your concern about what is usually found in statistics textbooks; 
however, those books tend to cover a wide range of distributions, include 
proofs, and heavily weight hypothesis testing.  Typically, little space is 
given to descriptive statistics, q-q plots, or other things that are handy in 
day-to-day practice.

The NormalDist class encapsulates a lot of knowledge that is easily forgotten 
(that variances are additive, how to translate and rescale), or that a constant 
divided by a normal distribution doesn't give another normal distribution.  
I've tried this out on otherwise not mathematically inclined users and they've 
found it to be useful and intuitive.  In contrast, the scipy ecosystem presumes 
much more sophistication.

--

___
Python tracker 

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



[issue37902] Add scrolling for IDLE browsers

2019-08-21 Thread George Zhang


Change by George Zhang :


--
pull_requests: +15076
pull_request: https://github.com/python/cpython/pull/15360

___
Python tracker 

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



[issue37902] Add scrolling for IDLE browsers

2019-08-21 Thread George Zhang


Change by George Zhang :


--
pull_requests: +15076, 15077
pull_request: https://github.com/python/cpython/pull/15360

___
Python tracker 

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



[issue36375] PEP 499 implementation: "python -m foo" binds the main module as both __main__ and foo in sys.modules

2019-08-21 Thread Greg Price


Change by Greg Price :


--
nosy: +Greg Price

___
Python tracker 

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



[issue37902] Add scrolling for IDLE browsers

2019-08-21 Thread George Zhang


Change by George Zhang :


--
pull_requests:  -15072

___
Python tracker 

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



[issue20410] Argument Clinic: add 'self' return converter

2019-08-21 Thread Serhiy Storchaka


Serhiy Storchaka  added the comment:

Batuhan, argument converters and return converters are different things.

I have no opinion about the idea itself. You can try, Zachary, and see whether 
it makes the code clearer.

--
nosy: +serhiy.storchaka

___
Python tracker 

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



  1   2   >