Overview

Request 884807 accepted

- 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.

Request History
Steve Kowalik's avatar

StevenK created request

- 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.


Factory Auto's avatar

factory-auto added opensuse-review-team as a reviewer

Please review sources


Factory Auto's avatar

factory-auto accepted review

Check script succeeded


Saul Goodman's avatar

licensedigger accepted review

ok


Dominique Leuenberger's avatar

dimstar_suse added openSUSE:Factory:Staging:adi:39 as a reviewer

Being evaluated by staging project "openSUSE:Factory:Staging:adi:39"


Dominique Leuenberger's avatar

dimstar_suse accepted review

Picked "openSUSE:Factory:Staging:adi:39"


Dominique Leuenberger's avatar

dimstar accepted review


Dominique Leuenberger's avatar

dimstar_suse accepted review

Staging Project openSUSE:Factory:Staging:adi:39 got accepted.


Dominique Leuenberger's avatar

dimstar_suse approved review

Staging Project openSUSE:Factory:Staging:adi:39 got accepted.


Dominique Leuenberger's avatar

dimstar_suse accepted request

Staging Project openSUSE:Factory:Staging:adi:39 got accepted.

openSUSE Build Service is sponsored by