[issue42392] remove the 'loop' parameter from __init__ in all classes in asyncio.locks

2020-11-24 Thread Yurii Karabas


Yurii Karabas <1998uri...@gmail.com> added the comment:

Should I create a separate issue for every PR or they all can be done in the 
scope of this PR (we can update issue title to match what was done)?

--

___
Python tracker 

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



[issue42455] Add decorator_with_params function to functools module

2020-11-24 Thread Yurii Karabas


Yurii Karabas <1998uri...@gmail.com> added the comment:

Add Raymond Hettinger because he is at `Expert Index` for `functools` module

--
nosy: +rhettinger

___
Python tracker 

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



[issue42457] ArgumentParser nested subparsers resolve paths in improper order

2020-11-24 Thread Alexey Izbyshev


Change by Alexey Izbyshev :


--
nosy: +rhettinger
versions:  -Python 3.6, Python 3.7

___
Python tracker 

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



[issue42458] Pathlib resolve() on Mac Catalina prepends secret path

2020-11-24 Thread John Engelke


New submission from John Engelke :

On Mac OS X Catalina+, Pathlib's resolve() method prepends the System Integrity 
Protection (SIP) path to the front of the resolved Path, whether you like it or 
not. 

>>> from pathlib import Path
>>> host_path_str = "/home/somewhere/there/../nowhere"
>>> host_path = Path(host_path_str)
>>> host_path
PosixPath('/home/somewhere/there/../nowhere')
>>> host_path.resolve()
PosixPath('/System/Volumes/Data/home/somewhere/nowhere')
>>> import platform
>>> platform.platform()
'Darwin-19.6.0-x86_64-i386-64bit'
>>> import sys
>>> print (sys.version)
3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 16:52:21) 
[Clang 6.0 (clang-600.0.57)]
>>> 

In my particular case, I'm just using this feature to resolve paths for an FTP 
host, so the path is contrived and doesn't actually exist locally. As one may 
guess, this breaks my FTP transfers by foisting a path on me that isn't on the 
server. 

I know there are other tix for Pathlib's erratic behavior across platforms 
which don't talk about this specific issue. I don't think it a behavior across 
platforms thing, anyway. Pathlib obviously isn't behaving nicely with SIP and 
Apple's Firmlink wormhole like directory traversal stuffs. Oy vey!

--
components: macOS
messages: 381792
nosy: john.engelke, ned.deily, ronaldoussoren
priority: normal
severity: normal
status: open
title: Pathlib resolve() on Mac Catalina prepends secret path
type: behavior
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



[issue41878] python3 fails to use custom mapping object as symbols in eval()

2020-11-24 Thread Josh Rosenberg


Change by Josh Rosenberg :


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



[issue42454] Move slice creation to the compiler for constants

2020-11-24 Thread Josh Rosenberg


Josh Rosenberg  added the comment:

There is an open issue for this already, under #11107 (a reopen of the closed 
#2268, where the reopen was justified due to Python 3 making slice objects more 
common), just so you know.

I made a stab at this a while ago and gave up due to the problems with making 
slices constants while trying to keep them unhashable (and I never got to 
handling the marshal format updates properly). It doesn't seem right to 
incidentally make:

something[::-1] = something

actually work, and be completely nonsensical, when "something" happens to be a 
dict, when previously, you'd get a clear TypeError for trying to do it. I could 
definitely see code using duck-typing via slices to distinguish sequences from 
other iterables and mappings, and making mapping suddenly support slices in a 
nonsensical way is... odd.

--
nosy: +josh.r

___
Python tracker 

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



[issue42456] Logical Error

2020-11-24 Thread Tim Peters


Tim Peters  added the comment:

There's no bug here.

"&" is the bitwise Boolean logical-and operator on integers. For example,

>>> 1 & 2
0
>>> 1 & 3
1

It binds more tightly than the "==" equality-testing operator. To get the 
result you want, you would need to add more parentheses to override the natural 
operator precedence:

>>> (a == 10) & (not(a!=b)) & (b == 10)
True

But, more to the point, what you probably really want is the "and" logical 
operator, not the bitwise integer "&" operator:

>>> a == 10 and (not(a!=b)) and b == 10
True

--
nosy: +tim.peters
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



[issue42457] ArgumentParser nested subparsers resolve paths in improper order

2020-11-24 Thread Carson Wilber


New submission from Carson Wilber :

ArgumentParser improperly resolves arguments in an improper order when using 
nested subparsers if there are required arguments at more than one layer.

A minimum viable reproduction is to create a set of subparsers on a primary 
parser, and a set of subparsers on at least one of those parsers. On the main 
parser and the first-level subparser, add a required argument (in any position 
as they are appended to the end.)

If you attempt to, for example, print the help for a second-level subparser, an 
error will be thrown and the parser will exit due to the required argument(s) 
not being provided, despite the expected behavior and the nature of the -h flag 
not requiring those arguments to be provided.

For lack of an appropriate means to show a complete minimum viable reproduction 
here, please see this StackOverflow thread I initially created believing this 
to be user error (having now determined this is a bug in behavior):

https://stackoverflow.com/questions/64908447/printing-help-for-nested-subparsers-with-required-positional-arguments

--
messages: 381789
nosy: carsonwilber
priority: normal
severity: normal
status: open
title: ArgumentParser nested subparsers resolve paths in improper order
type: behavior
versions: Python 3.10, 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



[issue42454] Move slice creation to the compiler for constants

2020-11-24 Thread Raymond Hettinger


Raymond Hettinger  added the comment:

Mostly, +1 from me as well.

If anything starts to rely on hashability, it will need a fallback path since 
slice objects are allowed to contain arbitrary objects (which might not 
themselves be hashable):   s = slice([], []).

--

___
Python tracker 

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



[issue42456] Logical Error

2020-11-24 Thread Nishant Gautam


New submission from Nishant Gautam :

The python programming give wrong output. If any algorithm develop in python 
then, may be that will be affected by this.

--
files: 0_PROOF.png
hgrepos: 394
messages: 381787
nosy: Kshitish
priority: normal
severity: normal
status: open
title: Logical Error
type: behavior
versions: Python 3.8
Added file: https://bugs.python.org/file49617/0_PROOF.png

___
Python tracker 

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



[issue42101] Allow inheritance of Venvs

2020-11-24 Thread Matthias Bussonnier


Change by Matthias Bussonnier :


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

___
Python tracker 

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



[issue42410] Raise a pickleError when convert _functools module to use PyType_FromModuleAndSpec

2020-11-24 Thread hai shi


Change by hai shi :


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



[issue42410] Raise a pickleError when convert _functools module to use PyType_FromModuleAndSpec

2020-11-24 Thread hai shi


Change by hai shi :


--
resolution:  -> not a bug

___
Python tracker 

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



[issue42440] MACBOOK Python launcher

2020-11-24 Thread Rawad Bader


Rawad Bader  added the comment:

I installed Python 3.8 from Python.org,  the Mac version is 11.0.1 (20B29). I 
have no idea before but now it doesn't work anymore. I will include the Python 
script here

--
Added file: https://bugs.python.org/file49616/p.py

___
Python tracker 

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



[issue28913] "Fatal Python error: Cannot recover from stack overflow." from RecursionError in Python 3.5

2020-11-24 Thread STINNER Victor


STINNER Victor  added the comment:

> This appears to happen in 3.5, and not in 3.6 so perhaps whatever fix was 
> applied to 3.6 can be backported to 3.5 so that it doesn't core dump?

I removed the stack usage for function calls in Python 3.6. See the "Stack 
consumption" section of:
https://vstinner.github.io/contrib-cpython-2017q1.html

> Hi Richard, 3.5 is no longer maintained. Does this issue exist in current (>= 
> 3.8) versions?

He wrote that 3.6 is not affected. 3.5 no longer accept bugfixes, so I close 
the issue as out of date.

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



[issue28913] "Fatal Python error: Cannot recover from stack overflow." from RecursionError in Python 3.5

2020-11-24 Thread STINNER Victor


STINNER Victor  added the comment:

https://github.com/Naddiseo/python-core-dump reproducer no longer works on 
Python 3.10.

# in Python source code directory
git clone https://github.com/Naddiseo/python-core-dump
make
./python -m venv ENV
ENV/bin/python -m pip install -r python-core-dump/requirements.txt 
cd python-core-dump/
../ENV/bin/python manage.py migrate

Output:
---
/home/vstinner/python/master/ENV/lib/python3.10/site-packages/django/db/models/sql/query.py:11:
 DeprecationWarning: Using or importing the ABCs from 'collections' instead of 
from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop 
working
  from collections import Counter, Iterator, Mapping, OrderedDict
/home/vstinner/python/master/ENV/lib/python3.10/site-packages/django/core/paginator.py:101:
 DeprecationWarning: Using or importing the ABCs from 'collections' instead of 
from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop 
working
  class Page(collections.Sequence):
Traceback (most recent call last):
  File "/home/vstinner/python/master/python-core-dump/manage.py", line 22, in 

execute_from_command_line(sys.argv)
  File 
"/home/vstinner/python/master/ENV/lib/python3.10/site-packages/django/core/management/__init__.py",
 line 367, in execute_from_command_line
utility.execute()
  File 
"/home/vstinner/python/master/ENV/lib/python3.10/site-packages/django/core/management/__init__.py",
 line 341, in execute
django.setup()
  File 
"/home/vstinner/python/master/ENV/lib/python3.10/site-packages/django/__init__.py",
 line 27, in setup
apps.populate(settings.INSTALLED_APPS)
  File 
"/home/vstinner/python/master/ENV/lib/python3.10/site-packages/django/apps/registry.py",
 line 108, in populate
app_config.import_models(all_models)
  File 
"/home/vstinner/python/master/ENV/lib/python3.10/site-packages/django/apps/config.py",
 line 199, in import_models
self.models_module = import_module(models_module_name)
  File "/home/vstinner/python/master/Lib/importlib/__init__.py", line 126, in 
import_module
return _bootstrap._gcd_import(name[level:], package, level)
  File "", line 1037, in _gcd_import
  File "", line 1014, in _find_and_load
  File "", line 993, in _find_and_load_unlocked
  File "", line 687, in _load_unlocked
  File "", line 831, in exec_module
  File "", line 235, in _call_with_frames_removed
  File 
"/home/vstinner/python/master/ENV/lib/python3.10/site-packages/django/contrib/auth/models.py",
 line 4, in 
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
  File 
"/home/vstinner/python/master/ENV/lib/python3.10/site-packages/django/contrib/auth/base_user.py",
 line 52, in 
class AbstractBaseUser(models.Model):
RuntimeError: __class__ not set defining 'AbstractBaseUser' as . Was __classcell__ propagated 
to type.__new__?
---

--
nosy: +vstinner
status: pending -> open

___
Python tracker 

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



[issue28913] "Fatal Python error: Cannot recover from stack overflow." from RecursionError in Python 3.5

2020-11-24 Thread Irit Katriel


Irit Katriel  added the comment:

Hi Richard, 3.5 is no longer maintained. Does this issue exist in current (>= 
3.8) versions?

--
nosy: +iritkatriel
status: open -> pending

___
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-24 Thread STINNER Victor


STINNER Victor  added the comment:

I opened a thread on python-dev about this issue:
"Configure Python initialization (PyConfig) in Python"
https://mail.python.org/archives/list/python-...@python.org/thread/HQNFTXOCDD5ROIQTDXPVMA74LMCDZUKH/#X45X2K4PICTDJQYK3YPRPR22IGT2CDXB

--

___
Python tracker 

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



[issue26878] Allow doctest to deep copy globals

2020-11-24 Thread Irit Katriel


Change by Irit Katriel :


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



[issue26451] CSV documentation doesn't open with an example

2020-11-24 Thread Irit Katriel


Irit Katriel  added the comment:

The example in the patch is very similar to the example that's in the doc under 
"A short usage example::", which is not that far below the beginning of the doc.

--
nosy: +iritkatriel
status: open -> pending

___
Python tracker 

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



[issue42392] remove the 'loop' parameter from __init__ in all classes in asyncio.locks

2020-11-24 Thread Kyle Stanley


Kyle Stanley  added the comment:

> Is there anyone who is assigned to removing the deprecated `loop` parameter 
> from `asyncio` codebase?

> If not I can take this task, I believe I have enough free time and curiosity 
> to do that :)

You can certainly feel free to work on that and it would definitely be 
appreciated! However, I would recommend splitting it into several PRs, 
basically as "Remove *loop* parameter from x` rather than doing a massive PR 
that removes it from everywhere that it was deprecated. This makes the review 
process easier.

Also, keep in mind that there are some uses of *loop* that are still perfectly 
valid and will remain so, such as in `asyncio.run_coroutine_threadsafe()`. It 
should only be removed in locations where there was a deprecation warning from 
3.8 or sooner present (as we give two major versions of deprecation notice 
before most breaking changes are made -- this has been made official policy as 
of PEP 387).

--

___
Python tracker 

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



[issue16346] maximum recursion installing readline package

2020-11-24 Thread Irit Katriel


Irit Katriel  added the comment:

write_pkg_file looks very different now.

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



[issue42410] Raise a pickleError when convert _functools module to use PyType_FromModuleAndSpec

2020-11-24 Thread STINNER Victor


STINNER Victor  added the comment:

> I think it's can be closed if I can update test_functools.py in PR23405 :)

Well, it's your issue, you can close the attached PR and close the issue.

--

___
Python tracker 

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



[issue42115] Caching infrastructure for the evaluation loop: specialised opcodes

2020-11-24 Thread STINNER Victor


Change by STINNER Victor :


--
nosy:  -vstinner

___
Python tracker 

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



[issue42115] Caching infrastructure for the evaluation loop: specialised opcodes

2020-11-24 Thread Pablo Galindo Salgado


Pablo Galindo Salgado  added the comment:

I may not know the what is the average airspeed velocity of a laden swallow, 
but I know the average speed of adding a LOAD_METHOD opcode cache as in PR 
23503 (measured with PGO + LTO + CPU isolation):

+-+--+---+
| Benchmark   | 2020-11-24_18-08-master-0ec34cab9dd4 | 
2020-11-24_19-41-load_method-0c43ca99644b |
+=+==+===+
| pidigits| 266 ms   | 233 ms: 
1.14x faster (-12%)   |
+-+--+---+
| regex_v8| 32.7 ms  | 30.4 ms: 
1.07x faster (-7%)   |
+-+--+---+
| unpickle| 17.7 us  | 17.1 us: 
1.04x faster (-4%)   |
+-+--+---+
| scimark_sparse_mat_mult | 6.21 ms  | 5.99 ms: 
1.04x faster (-3%)   |
+-+--+---+
| go  | 283 ms   | 274 ms: 
1.03x faster (-3%)|
+-+--+---+
| mako| 20.4 ms  | 19.9 ms: 
1.03x faster (-3%)   |
+-+--+---+
| pickle_pure_python  | 546 us   | 531 us: 
1.03x faster (-3%)|
+-+--+---+
| logging_simple  | 9.58 us  | 9.34 us: 
1.03x faster (-3%)   |
+-+--+---+
| telco   | 8.21 ms  | 8.03 ms: 
1.02x faster (-2%)   |
+-+--+---+
| regex_effbot| 3.97 ms  | 3.88 ms: 
1.02x faster (-2%)   |
+-+--+---+
| regex_dna   | 267 ms   | 261 ms: 
1.02x faster (-2%)|
+-+--+---+
| pathlib | 21.2 ms  | 21.7 ms: 
1.02x slower (+2%)   |
+-+--+---+
| xml_etree_iterparse | 129 ms   | 132 ms: 
1.02x slower (+2%)|
+-+--+---+
| xml_etree_parse | 186 ms   | 193 ms: 
1.03x slower (+3%)|
+-+--+---+

Not significant (46): scimark_fft; nbody; pickle; pickle_list; pickle_dict; 
logging_format; scimark_lu; deltablue; chaos; meteor_contest; 
sqlalchemy_imperative; scimark_sor; raytrace; scimark_monte_carlo; 
sympy_integrate; unpickle_pure_python; dulwich_log; logging_silent; nqueens; 
json_loads; crypto_pyaes; hexiom; django_template; sympy_str; regex_compile; 
sympy_expand; xml_etree_generate; unpack_sequence; spectral_norm; 
xml_etree_process; sqlite_synth; genshi_xml; pyflate; json_dumps; 
python_startup_no_site; 2to3; python_startup; genshi_text; unpickle_list; 
fannkuch; sympy_sum; sqlalchemy_declarative; chameleon; float; richards; 
tornado_http;

--

___
Python tracker 

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



[issue42115] Caching infrastructure for the evaluation loop: specialised opcodes

2020-11-24 Thread Pablo Galindo Salgado


Change by Pablo Galindo Salgado :


--
pull_requests: +22392
pull_request: https://github.com/python/cpython/pull/23503

___
Python tracker 

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



[issue42392] remove the 'loop' parameter from __init__ in all classes in asyncio.locks

2020-11-24 Thread Yurii Karabas


Yurii Karabas <1998uri...@gmail.com> added the comment:

Is there anyone who is assigned to removing the deprecated `loop` parameter 
from `asyncio` codebase?

If not I can take this task, I believe I have enough free time and curiosity to 
do that :)

--

___
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-24 Thread STINNER Victor


STINNER Victor  added the comment:


New changeset ed1a5a5baca8f61e9a99c5be3adc16b1801514fe by Hai Shi in branch 
'master':
bpo-40170: Hide impl detail of Py_TRASHCAN_BEGIN macro (GH-23235)
https://github.com/python/cpython/commit/ed1a5a5baca8f61e9a99c5be3adc16b1801514fe


--

___
Python tracker 

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



[issue42088] types.SimpleNamespace.__repr__ documentation inconsistency

2020-11-24 Thread Zackery Spytz


Change by Zackery Spytz :


--
keywords: +patch
nosy: +ZackerySpytz
nosy_count: 1.0 -> 2.0
pull_requests: +22391
stage:  -> patch review
pull_request: https://github.com/python/cpython/pull/23502

___
Python tracker 

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



[issue42142] test_ttk timeout: FAIL tkinter ttk LabeledScale test_resize, and more

2020-11-24 Thread Terry J. Reedy


Terry J. Reedy  added the comment:

'Intermittent' appears to mean under 1%, but to much to ignore.  Serhiy's patch 
is based on some definite hypothesis as to the reason.  The test of his patch 
would be to merge it and see if failure re-occurs or not. Doing so seems better 
than nothing.  Additional comment on the PR.

--

___
Python tracker 

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



[issue42455] Add decorator_with_params function to functools module

2020-11-24 Thread Yurii Karabas


Change by Yurii Karabas <1998uri...@gmail.com>:


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

___
Python tracker 

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



[issue42455] Add decorator_with_params function to functools module

2020-11-24 Thread Yurii Karabas


New submission from Yurii Karabas <1998uri...@gmail.com>:

In the current python codebases, there are a lot of decorators with parameters, 
and their code in most cases contains a lot of code boilerplates. The purpose 
of this issue is to add `decorator_with_params` function to `functools` module. 
This function will allow using a wrapped function as a simple decorator and 
decorator with parameter. 

I believe the real example will bring more context, for instance, 
`typing._tp_cache` function can be rewritten from:
```
def _tp_cache(func=None, /, *, typed=False):
"""Internal wrapper caching __getitem__ of generic types with a fallback to
original function for non-hashable arguments.
"""
def decorator(func):
cached = functools.lru_cache(typed=typed)(func)
_cleanups.append(cached.cache_clear)

@functools.wraps(func)
def inner(*args, **kwds):
try:
return cached(*args, **kwds)
except TypeError:
pass
return func(*args, **kwds)
return inner

if func is not None:
return decorator(func)

return decorator
```
To
```
@decorator_with_params
def _tp_cache(func=None, /, *, typed=False):
"""Internal wrapper caching __getitem__ of generic types with a fallback to
original function for non-hashable arguments.
"""
cached = functools.lru_cache(typed=typed)(func)
_cleanups.append(cached.cache_clear)

@functools.wraps(func)
def inner(*args, **kwds):
try:
return cached(*args, **kwds)
except TypeError:
pass  # All real errors (not unhashable args) are raised below.
return func(*args, **kwds)

return inner
```

And `_tp_cache` can be used as:
```
@_tp_cache(typed=True)
def __getitem__(self, parameters):
return self._getitem(self, parameters)
...
@_tp_cache
def __getitem__(self, parameters):
return self._getitem(self, parameters)
```

Proposed implementation is quite simple (I used it in a lot of projects):
```
def decorator_with_params(deco):
@wraps(deco)
def decorator(func=None, /, *args, **kwargs):
if func is not None:
return deco(func, *args, **kwargs)

def wrapper(f):
return deco(f, *args, **kwargs)

return wrapper

return decorator
```

I believe it will be a great enhancement for the Python standard library and 
will save such important indentations.

--
components: Library (Lib)
messages: 381773
nosy: uriyyo
priority: normal
severity: normal
status: open
title: Add decorator_with_params function to functools module
type: enhancement
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



[issue42299] Remove formatter module

2020-11-24 Thread Terry J. Reedy


Terry J. Reedy  added the comment:

I took a look at the module and its doc.  It is based on a 1980s model of 
document processing that has been somewhat superseded by html, xml, and pdf.  
The module itself has been pretty well superseded by stdlib and external 
moudles.  IDLE, for instance, displays idle.html in a tkinter Text widget about 
160 lines by subclassing htmlparser.  

One obsolescent 'feature' is that fonts are defined by (size, italic, bold, 
teletype), where 'teletype' is a bool of undefined meaning.  There is no way I 
saw to designate a font family like 'Source Code Pro' or 'Monaco'.

Since the module is unmaintained and frozen, anyone importing it can 
incorporate whatever class code they need.

--

___
Python tracker 

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



[issue42392] remove the 'loop' parameter from __init__ in all classes in asyncio.locks

2020-11-24 Thread Yurii Karabas


Change by Yurii Karabas <1998uri...@gmail.com>:


--
pull_requests: +22389
pull_request: https://github.com/python/cpython/pull/23499

___
Python tracker 

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



[issue42392] remove the 'loop' parameter from __init__ in all classes in asyncio.locks

2020-11-24 Thread Yury Selivanov


Yury Selivanov  added the comment:

Sorry, there are a few things in the committed patch that should be fixed. See 
the PR for my comments.

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

___
Python tracker 

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



[issue42454] Move slice creation to the compiler for constants

2020-11-24 Thread Batuhan Taskaya


Batuhan Taskaya  added the comment:

As a side effect, we also now fold some esoteric cases which are not very 
common. Like;
"""
test
"""[1:-1]

We reviewed only optimizing this a while back and decided these are not that 
common to add a code path. Just wanted to mention that now we optimize these 
away without any extra additions / maintenance cost.

--

___
Python tracker 

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



[issue42454] Move slice creation to the compiler for constants

2020-11-24 Thread Christian Heimes


Christian Heimes  added the comment:

Good point and excellent explanation. I'm no longer concerned! :)

--

___
Python tracker 

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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread Christian Heimes


Christian Heimes  added the comment:

>From PR discussion on GH:

I made ID_LIKE a special case because it's likely a users will use the field in 
a wrong way. The issue won't be detected in common CI because the field is 
either not present or contains a single item for majority of Linux distros. 
Common values are debian or fedora. For example Ubuntu has ID_LIKE=debian. Only 
very few distros have an ID_LIKE with multiple entries.

Victor asked me to remove the special case because splitting is trivial. In 
that case users would have to split the field and always check for "name in 
info["ID_LIKE"].split()".

The special case makes it less likely that users get the field wrong and 
reduces their burden.

--

___
Python tracker 

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



[issue42454] Move slice creation to the compiler for constants

2020-11-24 Thread Batuhan Taskaya


Batuhan Taskaya  added the comment:

> I'm slightly concerned about hashability of slice objects. Currently the 
> slice constructor does not ensure that any slice parameter is a number. You 
> can do horrible stuff like this:

The same thing can be applied to tuples, which are hashable if all the items 
are hashable. Since the underlying slice hash uses a tuple of start, stop, step 
I think we are safe on that.

>>> hash((None, {}, None))
Traceback (most recent call last):
  File "", line 1, in 
TypeError: unhashable type: 'dict'
>>> hash(slice(None, {}, None))
Traceback (most recent call last):
  File "", line 1, in 
TypeError: unhashable type: 'dict'

Also I limited the scope of the optimization only for integers, so the folded 
slices can only have arguments as either integers or Nones.

--

___
Python tracker 

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



[issue42392] remove the 'loop' parameter from __init__ in all classes in asyncio.locks

2020-11-24 Thread Andrew Svetlov


Change by Andrew Svetlov :


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

___
Python tracker 

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



[issue42392] remove the 'loop' parameter from __init__ in all classes in asyncio.locks

2020-11-24 Thread Andrew Svetlov


Andrew Svetlov  added the comment:


New changeset 0ec34cab9dd4a7bcddafaeeb445fae0f26afcdd1 by Yurii Karabas in 
branch 'master':
bpo-42392: Remove loop parameter form asyncio locks and Queue (#23420)
https://github.com/python/cpython/commit/0ec34cab9dd4a7bcddafaeeb445fae0f26afcdd1


--

___
Python tracker 

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



[issue42454] Move slice creation to the compiler for constants

2020-11-24 Thread Christian Heimes


Christian Heimes  added the comment:

I'm slightly concerned about hashability of slice objects. Currently the slice 
constructor does not ensure that any slice parameter is a number. You can do 
horrible stuff like this:

>>> slice({})
slice(None, {}, None)

which of course fails later on:

>>> [][slice({})]
Traceback (most recent call last):
  File "", line 1, in 
TypeError: slice indices must be integers or None or have an __index__ method

Would it be possible to move type checks to slice constructor?

--
nosy: +christian.heimes

___
Python tracker 

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



[issue42370] test_ttk_guionly: test_to() fails on the GitHub Ubuntu job

2020-11-24 Thread miss-islington


miss-islington  added the comment:


New changeset 8388a333070e3a0022b0fc4ce1ac876a2805c0a0 by Miss Islington (bot) 
in branch '3.8':
bpo-42370: Check element before making mouse click in ttk tests (GH-23491)
https://github.com/python/cpython/commit/8388a333070e3a0022b0fc4ce1ac876a2805c0a0


--

___
Python tracker 

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



[issue42410] Raise a pickleError when convert _functools module to use PyType_FromModuleAndSpec

2020-11-24 Thread hai shi


hai shi  added the comment:

> Does it mean that this issue is invalid and can be closed?

I think it's can be closed if I can update test_functools.py in PR23405 :)

--

___
Python tracker 

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



[issue42454] Move slice creation to the compiler for constants

2020-11-24 Thread Pablo Galindo Salgado


Pablo Galindo Salgado  added the comment:

Unless we see something fundamentally broken with the hashability, I am +1 on 
this. Even if it does not show in macro benchmarks over the 3% mark, the 
microbenchmarks are positive and the code changes are very scoped, so there is 
not a maintainability problem IMHO

--

___
Python tracker 

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



[issue42370] test_ttk_guionly: test_to() fails on the GitHub Ubuntu job

2020-11-24 Thread miss-islington


Change by miss-islington :


--
pull_requests: +22388
pull_request: https://github.com/python/cpython/pull/23498

___
Python tracker 

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



[issue42370] test_ttk_guionly: test_to() fails on the GitHub Ubuntu job

2020-11-24 Thread miss-islington


Change by miss-islington :


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

___
Python tracker 

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



[issue42370] test_ttk_guionly: test_to() fails on the GitHub Ubuntu job

2020-11-24 Thread Serhiy Storchaka


Serhiy Storchaka  added the comment:


New changeset b0b428510cfd604a8eef1f245f039331e671ea4a by Serhiy Storchaka in 
branch 'master':
bpo-42370: Check element before making mouse click in ttk tests (GH-23491)
https://github.com/python/cpython/commit/b0b428510cfd604a8eef1f245f039331e671ea4a


--

___
Python tracker 

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



[issue42454] Move slice creation to the compiler for constants

2020-11-24 Thread Raymond Hettinger


Change by Raymond Hettinger :


--
nosy: +mark.dickinson, rhettinger

___
Python tracker 

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



[issue42410] Raise a pickleError when convert _functools module to use PyType_FromModuleAndSpec

2020-11-24 Thread STINNER Victor


STINNER Victor  added the comment:

> I updated the test_functools.py in PR23405, the CI have all passed.

Does it mean that this issue is invalid and can be closed?

--

___
Python tracker 

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



[issue42454] Move slice creation to the compiler for constants

2020-11-24 Thread Batuhan Taskaya


Change by Batuhan Taskaya :


--
nosy: +Mark.Shannon, serhiy.storchaka

___
Python tracker 

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



[issue42454] Move slice creation to the compiler for constants

2020-11-24 Thread Batuhan Taskaya


Change by Batuhan Taskaya :


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

___
Python tracker 

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



[issue42454] Move slice creation to the compiler for constants

2020-11-24 Thread Batuhan Taskaya


New submission from Batuhan Taskaya :

Currently, all the slices are created by the interpreter with BUILD_SLICE 
preceded by 2/3 LOAD_CONSTS. We can move the slice creation into the compiler 
and deduce the cost of these 3/4 instructions into a single LOAD_CONST 
operation where all values in the slices are constants (like [:1], [::2], [-1]) 
which I assume the most common type.

There are over 93.000 constant slices in 3.200~ PyPI packages, which I'd assume 
is a huge amount (ofc I don't claim to know that whether these are in loops / 
hot functions or static globals).

Making these folding could save up to 1.32x on very common slicing behaviors 
(like [:1]). Here are the benchmarks (thanks to @pablogsal);

*** -s "a=list(range(200))" "a[:1]"
Mean +- std dev: [baseline] 61.8 ns +- 0.3 ns -> [optimized] 47.1 ns +- 0.2 ns: 
1.31x faster (-24%)

*** -s "a=list(range(200))" "a[1:1:1], a[::1], a[1::], a[1::1], a[::-1], 
a[-1::], a[:], a[::]"
Mean +- std dev: [baseline] 2.38 us +- 0.02 us -> [optimized] 2.24 us +- 0.02 
us: 1.06x faster (-6%)

The macro benchmarks appeared to be +1.03x increase which is assumed as noise, 
so this is a targeted optimization.

One problem with slices being constants is that, the code objects are hashable 
so does all the items in the co_consts tuple (also the internal dict that the 
compiler uses to store all co_const items). For allowing slices to be stored in 
the code objects, and not changing any behavior in a backward-incompatible way 
I'm proposing to make the slice objects hashable. It might not be seen as a 
feature, but a side-effect caused by this optimization.

--
messages: 381759
nosy: BTaskaya, pablogsal
priority: normal
severity: normal
status: open
title: Move slice creation to the compiler for constants
type: performance
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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread STINNER Victor


STINNER Victor  added the comment:

The distro module has been mentioned multiple times. I looked at its code base 
and I suggest to not add it to  the Python stdlib. It contains code specific to 
some Linux distributions. Examples.

elif 'ubuntu_codename' in props:
# Same as above but a non-standard field name used on older Ubuntus
props['codename'] = props['ubuntu_codename']

NORMALIZED_LSB_ID = {
'enterpriseenterpriseas': 'oracle',  # Oracle Enterprise Linux 4
'enterpriseenterpriseserver': 'oracle',  # Oracle Linux 5
'redhatenterpriseworkstation': 'rhel',  # RHEL 6, 7 Workstation
'redhatenterpriseserver': 'rhel',  # RHEL 6, 7 Server
'redhatenterprisecomputenode': 'rhel',  # RHEL 6 ComputeNode
}

basenames = ['SuSE-release',
 'arch-release',
 'base-release',
 'centos-release',
 'fedora-release',
 'gentoo-release',
 'mageia-release',
 'mandrake-release',
 'mandriva-release',
 'mandrivalinux-release',
 'manjaro-release',
 'oracle-release',
 'redhat-release',
 'sl-release',
 'slackware-version']

platform.linux_distribution() has been removed because it was difficult to keep 
the implementation up to date, whereas Python are rarely or not updated during 
the lifecycle of a Linux distribution version.

--

The os-release file is different: the filename is standardized and the file 
format is standardized. I expect really minor maintenance on a function parsing 
it.

Note: distro doesn't specify an encoding when opening os-release, but use the 
locale encoding. I suggest to use UTF-8.

The distro module remains useful since it tries to better API. For example, 
variable names are converted to lowercase and it extracts the codebase from the 
version variable:

elif 'version' in props:
# If there is no version_codename, parse it from the version
codename = re.search(r'(\(\D+\))|,(\s+)?\D+', props['version'])
if codename:
codename = codename.group()
codename = codename.strip('()')
codename = codename.strip(',')
codename = codename.strip()
# codename appears within paranthese.
props['codename'] = codename

But again, I don't think that we should implement such heuristics (code 
specific to some Linux distributions) in the stdlib, to minimize the 
maintenance burden.

--

___
Python tracker 

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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread Christian Heimes


Christian Heimes  added the comment:

Correction: It was ArchLinux, not Alpine. ArchLinux used to have 
/usr/lib/os-release only. Recent ArchLinux releases has a symlink from 
/etc/os-release to /usr/lib/os-release.

--

___
Python tracker 

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



[issue42453] utf-8 codec error when pip uninstalling a package which has files containing unicode filename on Windows

2020-11-24 Thread 赵豪杰

赵豪杰 <1292756...@qq.com> added the comment:

got it.

--

___
Python tracker 

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



[issue42443] Provide Thread creation hook support

2020-11-24 Thread Piotr Stanczyk


Piotr Stanczyk  added the comment:

Thanks Christian for looking into this, please find my responses inlined:

> * IMO it should be called after profiling and tracing hook, so non-trivial 
> hooks can be profiled and traced.
Makes sense, Done.

> * It's important to define and document, which thread runs the hook (calling 
> thread or new thread).
Will update documentation when we agree upon appropriate API.

> * Since the hook is designed to monitor thread creation, would it make sense 
> to pass the thread object to the hook?
As it's called within the context of the created thread I guess this is not 
needed (but as you prefer).

> * How does the hook behave when the callback raises an exception?
I guess it makes sense to do similar thing as in case of profile/trace hooks 
(Error in the profile function will cause itself unset). WDYT?

> * Is a single hook good enough or should the API behave more like atexit, 
> which supports an arbitrary amount of hooks?
Feels like it makes sense to keep API similar to what profile/trace provides, 
otherwise it would be inconsistent.


> * Instead of just a creation hook, how about lifetime hooks are also called 
> when a thread ends?
Sounds fine, do you mean two independent hooks (_thread_creation_hook, 
_thread_termination_hook) or some other form?

--

___
Python tracker 

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



[issue42453] utf-8 codec error when pip uninstalling a package which has files containing unicode filename on Windows

2020-11-24 Thread STINNER Victor


STINNER Victor  added the comment:

Please report the issue to https://github.com/pypa/pip

pip is not part of Python stdlib.

--
nosy: +vstinner
resolution:  -> third party
stage:  -> resolved
status: open -> closed

___
Python tracker 

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



[issue42453] utf-8 codec error when pip uninstalling a package which has files containing unicode filename on Windows

2020-11-24 Thread 赵豪杰

New submission from 赵豪杰 <1292756...@qq.com>:

When using `pip install package_name` installing a package, it will generate a 
`installed-files.txt` file, which records the file that the package contains. 

When updating or uninstalling the package, pip will need to read the 
`installed-files.txt` file, then delete the old files. 

If the package installed contains files whose name has unicode character like 
`文件`, the problem will occur. 

In China (I don't know other places), for historical reasons, the Windows 
default system codec is `gbk`, so the `installed-files.txt` file is also 
written with `gbk` codec when installing a package. 

When it comes to updating or uninstalling, the pip will use `utf-8` codec to 
read the `installed-files.txt` file. Since the file contains non ascii 
characters, it went error: 

```
  File 
"d:\users\haujet\appdata\local\programs\python\python39\lib\site-packages\pip\_vendor\pkg_resources\__init__.py",
 line 1424, in get_metadata
return value.decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb8 in position 343: 
invalid start byte in installed-files.txt file at path: 
d:\users\haujet\appdata\local\programs\python\python39\lib\site-packages\Markdown_Toolbox-0.0.8-py3.9.egg-info\installed-files.txt
```

I hate that default `gbk` system codec, but this set is fixed on Windows. 

So, my suggestion is, make a `try except` at the error point, if the `utf-8` 
codec went wrong reading `installed-files.txt`, then let `gbk` codec have a go. 

Or, more foundamental solution is, when pip writing text files, strictly use 
`utf-8` codec instead of the default system codec.

--
components: Windows
messages: 381753
nosy: HaujetZhao, paul.moore, steve.dower, tim.golden, zach.ware
priority: normal
severity: normal
status: open
title: utf-8 codec error when pip uninstalling a package which has files 
containing unicode filename on Windows
type: crash
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



[issue42410] Raise a pickleError when convert _functools module to use PyType_FromModuleAndSpec

2020-11-24 Thread hai shi


hai shi  added the comment:

I updated the test_functools.py in PR23405, the CI have all passed.

--

___
Python tracker 

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



[issue36159] Modify Formatter Class to handle arbitrary objects

2020-11-24 Thread Eric V. Smith


Eric V. Smith  added the comment:

I just stumbled across this. I don't think the idea is totally without merit, 
although maybe it's too niche to warrant being in the stdlib. It should 
probably be discussed on python-ideas first.

--
versions: +Python 3.10 -Python 2.7, Python 3.8

___
Python tracker 

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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread Matthias Klose


Matthias Klose  added the comment:

> In the case of this it's mood to even discuss requiring
> os-release. (a) the PR does not add a hard dependency
> on os-release, and (b) the file is present anyway.

For anything outside cpython, there is the distro module, and the distro module 
is checking os-release first if it exists.  I don't see a good value to add a 
second API for a subset of the distro module.  Apparently the distro module is 
used by other projects.

$ apt rdepends python3-distro | grep '^  [DRS]' | wc -l
33

If you think, distro information is needed to run cpython's tests, then make 
that function available as part of the tests, and don't promote that as a new 
API, although it is better in many cases to rely on feature tests instead of 
version information and distro names.  Don't expose it as yet another API.

--

___
Python tracker 

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



[issue42142] test_ttk timeout: FAIL tkinter ttk LabeledScale test_resize, and more

2020-11-24 Thread E. Paine


E. Paine  added the comment:

PR 23156 [Skip select ttk tests when on Ubuntu] proposes Ubuntu-specific test 
skips and is given as a justification for PR 28468 [Add 
platform.freedesktop_osrelease]. However, PR 23474 [Fix timeouts in ttk tests] 
attempts to correctly address the issue, though proving it does this will be 
hard as the issue is an intermittent failure and I don't believe any of us can 
reproduce locally (hence why it was initially blamed on Azure).

Serhiy also raised concerns about skipping on Ubuntu (though for slightly 
different reasons) and I have attempted to explain the reasoning in 
https://github.com/python/cpython/pull/23156#issuecomment-732056985.

My problem with using PR 23156 as a justification for PR 28468 is that the 
changes I proposed were only intended to be temporary (hence why I considered 
it acceptable to use the os.uname hack rather than something more reliable) and 
I don't think it, in itself, should cause a permanent API addition.

--

___
Python tracker 

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



[issue42452] FIX Optimize 'rgb_to_hls'

2020-11-24 Thread Julien Jerphanion


New submission from Julien Jerphanion :

This issue has been created after the PR.

--
components: Library (Lib)
messages: 381748
nosy: jjerphan
priority: normal
pull_requests: 22385
severity: normal
status: open
title: FIX Optimize 'rgb_to_hls'
type: enhancement
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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread Christian Heimes


Christian Heimes  added the comment:

> IMO it's interesting to see which Linux distributions provide os-release. The 
> list of quite long!

As I said before I could not find any supported release of a Linux distribution 
without a proper os-release file. It might be possible that there are micro 
container images or Linux From Scratch builds without os-release. So far I 
haven't found any distribution and I have tested almost two dozen.

> Christian, is it necessary to start with threats?

I'm sorry that you feel threatened. It was not my intention to make you feel 
that way.

IMHO the Python core team can define requirements for vendors and distributors. 
PEP 11 an PEP 394 contain examples of recommendations and requirements. After 
all it's in our interest to ensure that our users get a good and consistent 
experience on supported platforms. Of course vendors are free to ignore our 
requirements and recommendations.

In the case of this it's mood to even discuss requiring os-release. (a) the PR 
does not add a hard dependency on os-release, and (b) the file is present 
anyway.

--

___
Python tracker 

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



[issue42246] Implement PEP 626

2020-11-24 Thread STINNER Victor


Change by STINNER Victor :


--
nosy:  -vstinner

___
Python tracker 

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



[issue42246] Implement PEP 626

2020-11-24 Thread Mark Shannon


Change by Mark Shannon :


--
pull_requests: +22384
pull_request: https://github.com/python/cpython/pull/23495

___
Python tracker 

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



[issue42299] Remove formatter module

2020-11-24 Thread Karthikeyan Singaravelan


Karthikeyan Singaravelan  added the comment:

This was proposed earlier : https://bugs.python.org/issue39352

--
nosy: +xtreak

___
Python tracker 

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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread STINNER Victor


STINNER Victor  added the comment:

pmp-p:
> android and aosp, termux are also linux distributions without /etc/os-release

I replied ealier. It's fine that platform.freedesktop_os_release() (I prefer a 
name with two underscores :-)) raises an error on embedded Linux distributions. 
Usually, when you work on embedded devices, you fully control your toolkit and 
what is shipped on it.

For Android, there is already 
https://docs.python.org/dev/library/sys.html#sys.getandroidapilevel function.

Open question: is Android a Linux distribution? ;-)


> the only thing reliable there is probably 
> sysconfig.get_config_vars('MULTIARCH') when properly used.

It looks unrelated. It doesn't provide the Linux distribution name or version.

--

___
Python tracker 

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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread STINNER Victor


STINNER Victor  added the comment:

Matthias Klose:
> There's no need to expose a second implementation as another API in the 
> standard library.

When linux_distribution() has been removed, platform.platform() became less 
useful. Example:

$ python2 -m platform
Linux-5.9.8-200.fc33.x86_64-x86_64-with-fedora-33-Thirty_Three

$ python3 -m platform
Linux-5.9.8-200.fc33.x86_64-x86_64-with-glibc2.32

Python 2 provides *more* information than Python 3. I see this as a regression.

It would be great if we could again add again the Linux distribution name and 
vresion in platform.platform().

For example, I'm using platform.platform() on buildbots to quickly identify on 
which operating systems an issue happens: see test.pythoninfo script ("make 
pythoninfo" used by buildbots).

Right now, it's annoying to have to manually dig into the buildbot worker 
details to get informations, usually outdated (when the machine is upgraded, 
but not the worker description).

--

___
Python tracker 

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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread pmp-p


pmp-p  added the comment:

-1

android and aosp, termux are also linux distributions without /etc/os-release

the only thing reliable there is probably 
sysconfig.get_config_vars('MULTIARCH') when properly used.

--
nosy: +pmpp

___
Python tracker 

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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread STINNER Victor


STINNER Victor  added the comment:

> Python could also follow the lead of other software like D-Bus and make the 
> presence of os-release mandatory on Linux. Any Linux platform without it 
> would be considered broken. I don't think it is necessary to impose such 
> restriction on vendors.

I don't see the point. Also, your function raises an error if the file is 
missing. That's fine. There is no need to go further.

--

___
Python tracker 

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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread STINNER Victor


STINNER Victor  added the comment:

> os-release is covered by the distro module.

Ah, I didn't know.

https://pypi.org/project/distro/

"""
The distro package implements a robust and inclusive way of retrieving the 
information about a distribution based on new standards and old methods, namely 
from these data sources (from high to low precedence):

The os-release file /etc/os-release, if present.
The output of the lsb_release command, if available.
The distro release file (/etc/*(-|_)(release|version)), if present.
The uname command for BSD based distrubtions.
"""

You're right, not only os-release is used, but it has the highest priority.


> There's no need to expose a second implementation as another API in the 
> standard library.

Usually, a new experimental feature is developed on PyPI. Once it becomes 
stable and mature enough, we consider to include it into the stdlib.

Since the file format became standard and the file became available on almost 
all Linux distributions, it seems like we reached this point, no?


Christian: can you please try to contact the distro maintainer, Nir Cohen, to 
ask him to help us on this issue?

--

___
Python tracker 

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



[issue42418] PyType_GetModule() should warn/fail when type has Py_TPFLAGS_BASETYPE

2020-11-24 Thread Petr Viktorin


Petr Viktorin  added the comment:

> I missed it when I ported some of my code to heap types and multiphase init.

I guess PyType_GetModule() is not good for that use case.
If your code is open, could you add a link?

--

___
Python tracker 

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



[issue42142] test_ttk timeout: FAIL tkinter ttk LabeledScale test_resize, and more

2020-11-24 Thread Matthias Klose


Matthias Klose  added the comment:

how is this test run on the CI?  at least it succeeds for me when run locally.

--

___
Python tracker 

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



[issue42212] Check if generated files are up-to-date in Github Actions

2020-11-24 Thread STINNER Victor

STINNER Victor  added the comment:

Thanks Filipe Laíns! I merged your PR on 3.8, 3.9 and master branches.

--
components: +Build
resolution:  -> fixed
stage: patch review -> resolved
status: open -> closed
versions: +Python 3.10, 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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread Matthias Klose


Matthias Klose  added the comment:

Christian, is it necessary to start with threats?

> Python could also follow the lead of other software like D-Bus
> and make the presence of os-release mandatory on Linux.
> Any Linux platform without it would be considered broken.
> I don't think it is necessary to impose such restriction on vendors.

Python *does* follow this lead with the distro module. And no, I don't see yet 
any argument why you need a second API for that.

--

___
Python tracker 

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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread STINNER Victor


STINNER Victor  added the comment:

Matthias Klose
> "The os-release file has been a well-defined standard for over 8 years."
> ... doesn't implicate that it's a good style to base your checks on that 
> information.

IMO /etc/os-release is a reliable way to retrieve the Linux distribution name. 
What do you suggest to get the Linux distribution otherwise?


> the Chef repo seems to be a little bit out-of-date, but anyway. I don't see 
> the relevance for this issue.

Someone can use it to test the implementation.

IMO it's interesting to see which Linux distributions provide os-release. The 
list of quite long!

* alpine_3_8
* amazon_2
* amazon_2018
* antergos
* arch
* archarm
* centos_7
* clearlinux_1
* clearos_7
* cumulus_3_7
* debian_7
* debian_8
* debian_9
* elementary_5
* fedora_28
* gentoo
* ios_xr_6
* kali_2018_4
* linuxmint_18_2
* linuxmint_19
* mangeia_6
* manjaro
* nexus_7
* nixos
* opensuseleap_15_0
* opensuseleap_15_1
* opensuseleap_42_3
* oracle_7
* rancheros_1_4
* raspbian_10
* raspbian_8
* redhat_7
* redhat_8
* scientific_7
* slackware_14_2
* sled_12_3
* sled_15
* sles_11_4
* sles_12_3
* sles_15_0
* sles_15_1
* sles_sap_12_0
* sles_sap_12_1
* sles_sap_12_2
* sles_sap_12_3
* ubuntu_1404
* ubuntu_1604
* ubuntu_1804
* xbian
* xcp_7_5_0
* xenserver_7_6

It's not like no Linux distribution provide the file. I don't know most of 
these Linux distributions :-D

--

___
Python tracker 

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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread Matthias Klose


Matthias Klose  added the comment:

> * /etc/os-release file <= this PR
> * /etc/*release file <= covered by the PyPI distro module

no Victor, you are wrong.  os-release is covered by the distro module. There's 
no need to expose a second implementation as another API in the standard 
library.

--

___
Python tracker 

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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread Christian Heimes


Christian Heimes  added the comment:

The os-release file is not tight to systemd. Only the reverse relationship is 
true: systemd, d-bus and other software require os-release.

The file is present in the minimal base image of distributions like Alpine, 
ArchLinux, CentOS, Debian, Fedora, RHEL, SUSE, and Ubuntu plus all derivates. 
In the last three years I have not seen any Linux distribution that is missing 
the file. The only odd-ball in the list is Alpine. It ships /usr/lib/os-release 
without the optional but recommended /etc/os-release symlink.

If you know any Linux platform without os-release, please let me know. I'm 
curious to know which platforms don't have the file and why the platform 
excludes it.

Python could also follow the lead of other software like D-Bus and make the 
presence of os-release mandatory on Linux. Any Linux platform without it would 
be considered broken. I don't think it is necessary to impose such restriction 
on vendors.

--

___
Python tracker 

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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread STINNER Victor


STINNER Victor  added the comment:

"How to Check Linux Version" article:
https://linuxize.com/post/how-to-check-linux-version/

* lsb_release command <= is it still used nowadays?
* /etc/os-release file <= this PR
* /etc/issue file
* hostnamectl command
* /etc/*release file <= covered by the PyPI distro module
* uname command <= platform.uname()

--

___
Python tracker 

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



[issue42212] Check if generated files are up-to-date in Github Actions

2020-11-24 Thread miss-islington


miss-islington  added the comment:


New changeset b55a276a18e7c46f1e4e09fa24e9854deb0ed334 by Miss Islington (bot) 
in branch '3.8':
bpo-42212: Check if generated files are up-to-date in GitHub Actions (GH-23042)
https://github.com/python/cpython/commit/b55a276a18e7c46f1e4e09fa24e9854deb0ed334


--

___
Python tracker 

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



[issue42212] Check if generated files are up-to-date in Github Actions

2020-11-24 Thread miss-islington


miss-islington  added the comment:


New changeset 15d42d7ec6ad4305ea20c7b98ab093bd33bc254c by Miss Islington (bot) 
in branch '3.9':
bpo-42212: Check if generated files are up-to-date in GitHub Actions (GH-23042)
https://github.com/python/cpython/commit/15d42d7ec6ad4305ea20c7b98ab093bd33bc254c


--

___
Python tracker 

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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread STINNER Victor


STINNER Victor  added the comment:

Article about os-release:
https://opensource.com/article/18/6/linux-version

--

___
Python tracker 

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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread Matthias Klose


Matthias Klose  added the comment:

the Chef repo seems to be a little bit out-of-date, but anyway. I don't see the 
relevance for this issue.

--

___
Python tracker 

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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread Matthias Klose


Matthias Klose  added the comment:

"The os-release file has been a well-defined standard for over 8 years."

... doesn't implicate that it's a good style to base your checks on that 
information.

--

___
Python tracker 

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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread STINNER Victor


STINNER Victor  added the comment:

The Chef Software seems to maintain a copy of the os-release of major Linux 
distribution:
https://github.com/chef/os_release

Copy of the project README:

# os_release

This repo contains the /etc/os-release file from Linux distros.

## About os-release

/etc/os-release is a standard Linux file used to identify the OS, os release, 
and similar distros. It's now a standard file in systemd distros, but it can be 
found in just about every Linux distro released over the last 3-4 years.

## Why collect them

The fields in /etc/os-release are standardized, but the values are not. The 
only way to know that Redhat Enterprise Linux is 'rhel' or that openSUSE 15 is 
'opensuse-leap' is to install the distros and check the file. This repo is a 
large collection of os-release files so you don't need to install each and 
every distro.

--

___
Python tracker 

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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread Matthias Klose


Matthias Klose  added the comment:

> Since the filename is now fixed and the format is well specified,
> IMO it's perfectly fine to add PR 23492.

I disagree with that. The distro module is the preferred way to do this (which 
cannot be used in the Python core).  The rationale given is an not yet 
investigated issue with a timeout in tk/ttk, which from my point of view is not 
good enough to add a public API.

--

___
Python tracker 

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



[issue42299] Remove formatter module

2020-11-24 Thread Dong-hee Na


Dong-hee Na  added the comment:

@christian.heimes

Thank you Christian

I also discuss this issue on python-dev and everybody agree with removing this 
module.

I will remove this module ;)

--

___
Python tracker 

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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread STINNER Victor


STINNER Victor  added the comment:

Matthias Klose:
> I'm not aware of any embedded Linux distro using systemd (no, I don't 
> consider Raspian an embedded Linux distro).

As soon as the function is documented to return an error if the file doesn't 
exist, I don't see how this is a blocker issue.

Matthias: I don't understand your arguments against adding a Python function to 
read a standardize configuration file.

The platform module is the right place to add such function.

The distro module exists on PyPI because there is a need for such a function. 
The function even existed previously in platform. It only had to be removed 
because it was a pain in the *** to maintain it. The stdlib is slow to be 
updated, whereas Linux vendors were creative for the filename and the format of 
the filename.

Since the filename is now fixed and the format is well specified, IMO it's 
perfectly fine to add PR 23492.

--

___
Python tracker 

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



[issue42142] test_ttk timeout: FAIL tkinter ttk LabeledScale test_resize, and more

2020-11-24 Thread Matthias Klose


Matthias Klose  added the comment:

I became aware of this by the patch proposal "Please submit a PR to skip on 
Ubuntu", which results in the re-introduction of a distro specific API.

I would rather help fixing this issue, instead on relying on some distro 
behavor.

--
nosy: +doko

___
Python tracker 

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



[issue42299] Remove formatter module

2020-11-24 Thread Dong-hee Na


Change by Dong-hee Na :


--
title: Add test_formatter (or remove deprecated formatter module?) -> Remove 
formatter module

___
Python tracker 

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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread Christian Heimes


Christian Heimes  added the comment:

What do you mean by "that"? Python never had any code to parse and handle 
freekdesktop.org's os-release file. Are you referring to linux_distribution() 
function? Petr removed platform.linux_distribution() in bpo-28167 because the 
function was problematic on so many levels and relied on ill defined behavior.

The os-release file has been a well-defined standard for over 8 years. These 
days it's available in the base image of all major Linux distributions and 
countless other distributions. os-release became *the* standard to identify the 
version and vendor of a Linux distribution. In my opinion that's reason enough 
to include the feature.

--

___
Python tracker 

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



[issue42212] Check if generated files are up-to-date in Github Actions

2020-11-24 Thread miss-islington


Change by miss-islington :


--
pull_requests: +22383
pull_request: https://github.com/python/cpython/pull/23494

___
Python tracker 

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



[issue42212] Check if generated files are up-to-date in Github Actions

2020-11-24 Thread miss-islington


Change by miss-islington :


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

___
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-24 Thread Senthil Kumaran


Change by Senthil Kumaran :


--
nosy: +orsenthil

___
Python tracker 

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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread Matthias Klose


Matthias Klose  added the comment:

it's easy to say "we need it". It took a while to remove that, so I don't think 
it should be easily re-introduced.

so why do you need it, and why should it be exposed as part of the standard 
library?

--

___
Python tracker 

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



[issue42212] Check if generated files are up-to-date in Github Actions

2020-11-24 Thread STINNER Victor


STINNER Victor  added the comment:


New changeset ac7d0169d2bce2021b8d88973e649889d7dc1b03 by Victor Stinner in 
branch 'master':
bpo-42212: smelly.py also checks the dynamic library (GH-23423)
https://github.com/python/cpython/commit/ac7d0169d2bce2021b8d88973e649889d7dc1b03


--

___
Python tracker 

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



[issue28468] Add platform.freedesktop_osrelease()

2020-11-24 Thread Christian Heimes


Christian Heimes  added the comment:

Since we need distribution information in tests and code, I decided to reopen 
the bug.

I named the new function freedesktop_osrelease because it's technically not 
restricted to Linux. It's freedesktop.org standard that may be used by 
non-Linux platforms, too.

Note: os-release is **not** tight to systemd. It just happens that the standard 
was defined in the systemd space of freedesktop.org. I'm not aware of any major 
Linux platform that does not ship the file in its base os.

--
resolution: wont fix -> 
stage: test needed -> patch review
status: closed -> open
title: Add platform.linux_os_release() -> Add platform.freedesktop_osrelease()
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



[issue28468] Add platform.linux_os_release()

2020-11-24 Thread Christian Heimes


Change by Christian Heimes :


--
pull_requests: +22381
pull_request: https://github.com/python/cpython/pull/23492

___
Python tracker 

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



  1   2   >