Mark Dickinson <dicki...@gmail.com> added the comment: Thanks for the patch, Victor. I think this is the right thing to do, though I'm still not sure why anyone would care about getting longs instead of ints back from int(x).
Comments and questions: (0) Please could you add some tests! (1) Shouldn't the first line you added include a check for res == NULL? (2) It looks as though the patched code ends up calling PyLong_Check twice when __int__ returns a long. Can you find a clear rewrite that avoids this duplication? By the way, I realized after posting my last comment that the issue with Fraction has nothing to do with extreme int values. For example, with the current trunk (not including Victor's patch): >>> int(Fraction(2L)) 2L >>> int(int(Fraction(2L))) 2 I don't think should be considered a bug in Fraction---I think Victor's solution of making the int() machinery always return int when possible is the right one here. The need to call int(int(x)) if you *really* want an int seems a little ugly. ---------- stage: -> test needed _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue5377> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com