Justin Fay <johnplayerb...@gmail.com> added the comment:
>From looking at the code for this (note I am not a C programmer so may have >gotten this wrong) _PyTime_FromObject first checks if the object is a float >using PyFloat_Check(obj) this is evident as passing nan to time.sleep raises a >ValueError with the message "Invalid value NaN (not a number)". However if the >object is not a float it next assumes the only valid value to be an integer, >this logic appears fine to me. The problem however is if the object is not an >integer the code raises the error with the message that an integer is >required, it is unaware that a before this branch of the code executes a float >would have been an accepted value. In python I imagine the fix for this would >be along the lines try: float(obj) except (TypeError, ValueError): try: int(obj): except (TypeError, ValueError): raise TypeError('an float or integer is required') ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue37086> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com