* Tue Apr 13 2021 Steve Kowalik <steven.kowalik@suse.com>
- Update to 9.0.1:
* Parsing prescribed durations with only hour and second time components (see PR 14)
* Parsing prescribed durations with only year and day components
* Add support for concise interval format (see 27)
* Add explicit bounds of [000, 366] to day of year component _parse_ordinal_date, this adds the same limits to dates of the format YYYYDDD or YYYY-DDD when using parse_date
* Add range_check_date, range_check_time, range_check_duration, range_check_repeating_interval, and range_check_timezone range checking class methods to BaseTimeBuilder there are no datetime or non-repeating interval check function as they are made of already checked parts
* PythonTimeBuilder now calls the appropriate range check functions using the range_check_date, range_check_time, range_check_duration, range_check_repeating_interval, and range_check_timezone methods defined in aniso8601.builders
* Add range_check_duration to PythonTimeBuilder which calls BaseTimeBuilder.range_check_duration and performs additional checks against maximum timedelta size
* Add range_check_interval to PythonTimeBuilder which handles building concise dates and performs additional checks against maximum timedelta size
* Add get_datetime_resolution which behaves like get_time_resolution but accepts a ISO 8601 date time as an argument, return value is a TimeResolution
* Add exceptions.RangeCheckError as a parent type of all failures in the range check methods, it descends from ValueError
* Add get_duration_resolution which behaves like other resolution helpers, return value is a DurationResolution
* Add get_interval_resolution which behaves like other resolution helpers, return value is a IntervalResolution
* Negative durations now fail at the parse step and simply raise ISOFormatError, calling a PythonTimeBuilder.build_duration directly with a negative duration component will yield an ISOFormatError in the range check
* Raise DayOutOfBoundsError if calendar day exceeds number of days in calendar month
* Raise ISOFormatError when date or time string contains extra whitespace
* Raise ISOFormatError when duration contains multiple duration designators ("P"), or time designators ("T")
* PythonTimeBuilder.build_duration raises YearOutOfBoundsError, MonthOutOfBoundsError, WeekOutOfBoundsError, HoursOutOfBoundsError, MinutesOutOfBoundsError, or SecondsOutOfBoundsError when a given duration component would result in a timedelta that would exceed the maximum size
* Raise ISOFormatError if number of delimiters is not exactly 1 in parse_interval
* Raise ISOFormatError when either part of an interval string before of after the delimiter is empty
* Raise YearOutOfBoundsError in PythonTimeBuilder.build_interval if an interval with a duration would exceed the maximum or minimum years for Python date objects
* Simplify parse_date, build_date will now be called with explicit None arguments instead of date components not in the parsed string excluded from the call
* Change get_date_resolution to call parse_date and return the resolution based on the smallest parsed component
* Simplify parse_time, build_time will now be called with explicit None arguments instead of date components not in the parsed string excluded from the call
* Change get_time_resolution to call parse_time and return the resolution based on the smallest parsed component
* TupleBuilder now builds DateTuple, TimeTuple, DatetimeTuple, DurationTuple, IntervalTuple, RepeatingIntervalTuple and TimezoneTuple namedtuples
* Simplify parse_duration, build_duration will now be called with explicit None arguments when components of a prescribed duration are not present in the ISO 8601 duration string instead of being excluded from the call
* Remove unused decimalfraction.find_separator
* Remove unused PythonTimeBuilder._split_to_microseconds
* Removed NegativeDurationError
- Switch %pyunittest macro for running tests.
* Mon Feb 01 2021 Dirk Müller <dmueller@suse.com>
- update to 8.1.1:
* Deprecate running tests with python setup.py tests as the test suite
support in Setuptools is deprecated
* Add version to __init__.py
* Cleaner reading of README.rst into the long_description field of setup.py
* Define long_description_content_type as text/x-rst
* Simplify Sphinx configuration
* Add compat.is_string method, returns True for str, unicode types, False
otherwise, used to fix 28
* Sun Dec 20 2020 Dirk Müller <dmueller@suse.com>
- update to 8.1.0:
* Empty string arguments to get_date_resolution and parse_date now raise ISOFormatError, fixes 26
* None and non-string arguments to get_date_resolution and parse_date now raise ValueError
* Empty string arguments to parse_duration now raise ISOFormatError
* None and non-string arguments to parse_duration now raise ValueError
* Empty string arguments to parse_interval and parse_repeating_interval now raise ISOFormatError
* None and non-string arguments to parse_interval and parse_repeating_internval now raise ValueError
* Empty string arguments to get_time_resolution and parse_time now raise ISOFormatError
* None and non-string arguments to parse_time now raise ValueError
* None and non-string arguments to parse_timezone now raise ValueError
* Empty string arguments to parse_datetime now raise ISOFormatError
* None and non-string arguments to parse_datetime now raise ValueError
* Missing delimiter in datetime strings when calling parse_datetime now raises ISOFormatError
* Missing delimiter in regular and repeating interval strings when calling parse_interval and parse_repeating_interval now raises ISOFormatError
* get_time_resolution now correctly throws ISOFormatError when a time component has too many characters in a time using ":" as a separator