For example, -PT8H is a valid IOS 8601 duration. But pendulum raises an error when trying to parse it.
>>> pendulum.parse('-PT8H')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/j/workspace/service-dev/p/env/lib/python3.7/site-packages/pendulum/parser.py", line 29, in parse
return _parse(text, **options)
File "/Users/j/workspace/service-dev/p/env/lib/python3.7/site-packages/pendulum/parser.py", line 45, in _parse
parsed = base_parse(text, **options)
File "/Users/j/workspace/service-dev/p/env/lib/python3.7/site-packages/pendulum/parsing/__init__.py", line 74, in parse
return _normalize(_parse(text, **_options), **_options)
File "/Users/j/workspace/service-dev/p/env/lib/python3.7/site-packages/pendulum/parsing/__init__.py", line 128, in _parse
raise ParserError("Unable to parse string [{}]".format(text))
pendulum.parsing.exceptions.ParserError: Unable to parse string [-PT8H]
This would be a nice addition. Technically, ISO 8601 section 2.1.6 defines duration as a "non-negative quantity" (so afaik it is not a "valid" ISO8601 duration) but otherlibraries have consolidated negative durations nonetheless.
For example,
-PT8H
is a valid IOS 8601 duration. But pendulum raises an error when trying to parse it.