Jason R. Coombs <jar...@jaraco.com> added the comment:

> you added a late binding optimization for the whole uname return
tuple to save the effort of ... shell access.

It wasn't to save the effort and it wasn't an optimization. There was a 
fundamental race condition where it became impossible to implement a `uname` 
command using Python because `platform.system()` (or anything else that 
delegated to `platform.uname()`) would unconditionally shell out to `uname`, 
and this would happen early, before a library could intercept the behavior. See 
issue35967 for more details on the motivation and challenges.

> I think this would have been better implemented...

This idea is interesting, but I believe it also falls prey to the same race 
condition if any code calls `platform.uname()` before a Python-based uname 
implementation has a chance to monkeypatch the behavior.

May I suggest that you either revive the conversation in issue35967 or open a 
new ticket to discuss improving the implementation so that the details aren't 
lost in this ticket, which was specifically about compatibility issues?

> I don't think that deprecating standard tuple access is an option
for the uname() return value, since it's documented to be a tuple.

I'll address this concern in the ticket I opened about the deprecation.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue40570>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to