pendulum
pendulum copied to clipboard
Duration not compatible with timedelta
A timedelta stores microseconds as an int, whereas pendulum.duration is storing as a float.
>>> datetime.timedelta(0, 5, 499385).microseconds
499385
>>> pendulum.duration(0, 5, 499385).microseconds
499385.0
This subtle difference can cause errors if the pendulum.duration is passed instead of a pure timedelta to a function that assumes microseconds is an int. For example, formatting an iso string like this:
ms = '.{:06d}'.format(td.microseconds) if td.microseconds else ""
will raise an error if td is pendulum.duration:
ValueError: Unknown format code 'd' for object of type 'float'