Alex Martelli wrote:
> But this doesn't apply to the Python Standard Library, for example see
> line 1348 of imaplib.py: "if isinstance(date_time, (int, float)):".
[...]
> Being able to change imaplib to use basenumber instead of (int, float)
> won't make it SIMPLER, but it will surely make it BETTER -- why should
> a long be rejected, or a Decimal, for that matter? 

Right. I think this function should read

  if isinstance(date_time, str) and \
     (date_time[0],date_time[-1]) == ('"','"'):
        return date_time        # Assume in correct format


  if isinstance(date_time, (tuple, time.struct_time)):
     tt = date_time
  else:
     tt = time.localtime(date_time)

If this is something that time.localtime can't handle, it will
give a TypeError. This is much better than

    raise ValueError("date_time not of a known type")
    # (why does it raise a ValueError if it says "type"?)

Regards,
Martin
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to