Eric Snow <ericsnowcurren...@gmail.com> added the comment:

tl;dr It's too late to change anything here.  Also, is it actually a problem in 
practice?

----

At this point enhancements can not go into 2.7 (you're welcome to appeal to the 
release manager).  The changes to `PyStructSequence` (from bpo-1820) appear to 
have been merged for 3.2 in July 2010.  However, this is just after 2.7 went 
final and 3 months after the first beta release (where no more enhancements are 
allowed).

Likewise, at this point we cannot revert the original change (from bpo-1820).  
Doing so in 3.7 (the only one taking bug fixes) or 3.8 (upcoming) would break 
compatibility with 3.2 and up.

Notably, this discrepancy has been there since 2.7/3.2 were released (8+ 
years).  I don't recall any previous reports of a problem here, so I expect the 
impact is small.

Regardless, from what I understand the problem is that pytorch was returning 
tuples and (with that PR) was going to return "named" tuples. 
 For C-extension functions it wouldn't actually be a tuple any more but a 
structseq instead.  So user code that checked for a tuple would suddenly work 
differently.  Is that right?

If so, I'm not clear on when this would be a problem in practice.  Why would 
users of pytorch (or any similar library) be checking the type returned from a 
specific function in the library's documented API?  If it was returning a tuple 
before then I'd expect them to be using unpacking or index access.  That would 
keep working if the library switched to namedtuple and structseq.

----------
nosy: +benjamin.peterson, christian.heimes, eric.snow, rhettinger
type: behavior -> enhancement

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

Reply via email to