Message 86283 - Python tracker (original) (raw)
When the Fractions module was first added to Python, it was decided that when constructing from a string, decimal strings should be allowed, but not those including an exponent. For example, Fraction('1.1') is currently valid, but Fraction('1.1e6') is not.
I think exponents should be permitted, for a couple of reasons:
(1) consistency: there's a clearly-defined notion of a numeric string of the form ([sign] integer_part [fractional_part] [exponent]); the float and Decimal constructors both accept all numeric strings. Fraction currently accepts some, but not all of these.
(2) Easy interactions with floats: with this addition, a Fraction can always be constructed from the str() or repr() of a finite float or finite Decimal; without it, only some of those strings can be converted.
(3) Ease of parsing files containing numeric strings.
(4) It's a very simple change! See attached patch.
Jeffrey, any thoughts?