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

Reply via email to