[Tim. on as_integer_ratio()] >> - I expect the audience is tiny. [Alexander Belopolsky] > The datetime module would benefit from having as_integer_ratio() > supported by more types. It's been hard to resist requests to allow > Decimal in timedelta constructors and/or arithmetics
I don't see the connection. That timedelta construction may use as_integer_ratio() today doesn't mean it _has_ to use as_integer_ratio() forever, and is no reason (to my mind) to add as_integer_ratio all over the place. Why not drop that, and in oddball cases see whether fractions.Fraction() can handle the input? >>> fractions.Fraction(decimal.Decimal("1.76")) Fraction(44, 25) Probably less efficient, but I don't care ;-) And then, e.g., timedelta would also automagically allow Fraction arguments (which, BTW, don't support as_integer_ratio() either). Bonus: if datetime is bothering with hand-coding rational arithmetic now out of concern to get every bit right, Fraction could handle that too by itself. At heart, the Fraction() constructor is _all about_ creating integer ratios, so is the most natural place to put knowledge of how to do so. A protocol for allowing new numeric types to get converted to Fraction would be more generally useful than just a weird method only datetime uses ;-) _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com