Vedran Čačić added the comment:

Unfortunately, this introduced a bug. It seems Mark Dickinson should go easier 
on his LGTMs. :-)

>>> import fractions
>>> fractions.Fraction(-1, 2) ** -1
Fraction(2, -1)

That is a really strange object, since it's not normalized, and many functions 
expect all Fractions to be. For example,

>>> _ == -2
False

Of course, the easy fix would be to change line 52 of fractions.py to 
_normalize=True - but that would reintroduce the slowness talked about in the 
original message. Alternative fix would be to be careful about sign of the 
base, which might be messy if we intend to be completely general -- for 
example, in finite quotient rings, fractions don't have well-defined signs. 
[I'm not quite sure why the code in fractions.py is so general, maybe someone 
really wanted such a level of generality. I don't, so I'd be fine with this 
working only on int/int Fractions.]

----------
nosy: +Vedran.Čačić
versions: +Python 3.6

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

Reply via email to