Path to this page:
./
time/py-aniso8601,
Library for parsing ISO 8601 strings
Branch: CURRENT,
Version: 9.0.1nb1,
Package name: py310-aniso8601-9.0.1nb1,
Maintainer: pkgsrc-usersLibrary for parsing ISO 8601 strings
Features
* Pure Python implementation
* Python 3 support
* Logical behavior
- Parse a time, get a datetime.time
- Parse a date, get a datetime.date
- Parse a datetime, get a datetime.datetime
- Parse a duration, get a datetime.timedelta
- Parse an interval, get a tuple of dates or datetimes
- Parse a repeating interval, get a date or datetime generator
* UTC offset represented as fixed-offset tzinfo
* Parser separate from representation, allowing parsing to different datetime
formats
* No regular expressions
Required to run:[
lang/python310]
Master sites:
Filesize: 46.235 KB
Version history: (Expand)
- (2023-02-09) Updated to version: py310-aniso8601-9.0.1nb1
- (2022-01-05) Updated to version: py39-aniso8601-9.0.1nb1
- (2021-10-07) Updated to version: py39-aniso8601-9.0.1
- (2021-05-19) Updated to version: py38-aniso8601-9.0.1
- (2021-02-09) Updated to version: py38-aniso8601-8.1.1
- (2020-12-09) Updated to version: py38-aniso8601-8.1.0
CVS history: (Expand)
2023-03-29 11:34:15 by Thomas Klausner | Files touched by this commit (96) |
Log message:
*: use PYTHON_VERSION instead of _PYTHON_VERSION
|
2022-01-04 21:55:40 by Thomas Klausner | Files touched by this commit (1595) |
Log message:
*: bump PKGREVISION for egg.mk users
They now have a tool dependency on py-setuptools instead of a DEPENDS
|
2021-10-26 13:24:47 by Nia Alarie | Files touched by this commit (263) |
Log message:
time: Replace RMD160 checksums with BLAKE2s checksums
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
|
2021-10-07 17:04:23 by Nia Alarie | Files touched by this commit (263) |
Log message:
time: Remove SHA1 hashes for distfiles
|
2021-05-19 13:08:08 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message:
py-aniso8601: updated to 9.0.1
aniso8601 9.0.1
===============
Added
-----
* Development requirements handled by :code:`extras_require` (install with \
:code:`pip install -e .[dev]`)
* Pre-commit hooks, managed with `pre-commit <https://pre-commit.com/>`_ \
(install with :code:`pre-commit install`)
* Add :code:`readthedocs.yaml` to make configuration explicit
Changed
-------
* Code formatted with `Black \
<https://black.readthedocs.io/en/stable/index.html>`_
* Imports sorted with `isort <https://pycqa.github.io/isort/>`_
* Following `Keep a Changelog <https://keepachangelog.com/en/1.0.0/>`_ for \
this and future CHANGELOG entries
* Removed python-dateutil from :code:`BuildRequires` in specfile as they are no \
longer required since calendar level duration building was split to a separate \
project (6.0.0)
* Heading level of top of CHANGELOG
Fixed
-----
* Parsing prescribed durations with only hour and second time components (see \
`PR 14 <https://bitbucket.org/nielsenb/aniso8601/pull-requests/14>`_)
* Parsing prescribed durations with only year and day components
aniso8601 9.0.0
===============
Changes
-------
* Add support for concise interval format (see `27 \
<https://bitbucket.org/nielsenb/aniso8601/issues/27/support-for-short-syntax-for-intervals>`_)
* Add explicit bounds of [000, 366] to day of year component \
:code:`_parse_ordinal_date`, this adds the same limits to dates of the format \
YYYYDDD or YYYY-DDD when using :code:`parse_date`
* Add :code:`range_check_date`, :code:`range_check_time`, \
:code:`range_check_duration`, :code:`range_check_repeating_interval`, and \
:code:`range_check_timezone` range checking class methods to \
:code:`BaseTimeBuilder` there are no datetime or non-repeating interval check \
function as they are made of already checked parts
* :code:`PythonTimeBuilder` now calls the appropriate range check functions \
using the :code:`range_check_date`, :code:`range_check_time`, \
:code:`range_check_duration`, :code:`range_check_repeating_interval`, and \
:code:`range_check_timezone` methods defined in :code:`aniso8601.builders`
* Add :code:`range_check_duration` to :code:`PythonTimeBuilder` which calls \
:code:`BaseTimeBuilder.range_check_duration` and performs additional checks \
against maximum timedelta size
* Add :code:`range_check_interval` to :code:`PythonTimeBuilder` which handles \
building concise dates and performs additional checks against maximum timedelta \
size
* Add :code:`get_datetime_resolution` which behaves like \
:code:`get_time_resolution` but accepts a ISO 8601 date time as an argument, \
return value is a :code:`TimeResolution`
* Add :code:`exceptions.RangeCheckError` as a parent type of all failures in the \
range check methods, it descends from :code:`ValueError`
* Add :code:`get_duration_resolution` which behaves like other resolution \
helpers, return value is a :code:`DurationResolution`
* Add :code:`get_interval_resolution` which behaves like other resolution \
helpers, return value is a :code:`IntervalResolution`
* Negative durations now fail at the parse step and simply raise \
:code:`ISOFormatError`, calling a :code:`PythonTimeBuilder.build_duration` \
directly with a negative duration component will yield an :code:`ISOFormatError` \
in the range check
* Raise :code:`DayOutOfBoundsError` if calendar day exceeds number of days in \
calendar month
* Raise :code:`DayOutOfBoundsError` if ordinal day exceeds number of days in \
calendar year (366 now raises :code:`DayOutOfBoundsError` in non-leap year)
* Raise :code:`ISOFormatError` when date or time string contains extra whitespace
* Raise :code:`ISOFormatError` on multiple fraction separators (comma, \
full-stop) in a time string
* Raise :code:`ISOFormatError` when duration contains multiple duration \
designators ("P"), or time designators ("T")
* :code:`PythonTimeBuilder.build_duration` raises :code:`YearOutOfBoundsError`, \
:code:`MonthOutOfBoundsError`, :code:`WeekOutOfBoundsError`, \
:code:`HoursOutOfBoundsError`, :code:`MinutesOutOfBoundsError`, or \
:code:`SecondsOutOfBoundsError` when a given duration component would result in \
a :code:`timedelta` that would exceed the maximum size
* Raise :code:`ISOFormatError` if number of delimiters is not exactly 1 in \
:code:`parse_interval`
* Raise :code:`ISOFormatError` when either part of an interval string before of \
after the delimiter is empty
* Raise :code:`YearOutOfBoundsError` in :code:`PythonTimeBuilder.build_interval` \
if an interval with a duration would exceed the maximum or minimum years for \
Python date objects
* Simplify :code:`parse_date`, :code:`build_date` will now be called with \
explicit :code:`None` arguments instead of date components not in the parsed \
string excluded from the call
* Change :code:`get_date_resolution` to call :code:`parse_date` and return the \
resolution based on the smallest parsed component
* Simplify :code:`parse_time`, :code:`build_time` will now be called with \
explicit :code:`None` arguments instead of date components not in the parsed \
string excluded from the call
* Change :code:`get_time_resolution` to call :code:`parse_time` and return the \
resolution based on the smallest parsed component
* :code:`TupleBuilder` now builds :code:`DateTuple`, :code:`TimeTuple`, \
:code:`DatetimeTuple`, :code:`DurationTuple`, :code:`IntervalTuple`, \
:code:`RepeatingIntervalTuple` and :code:`TimezoneTuple` namedtuples
* Simplify :code:`parse_duration`, :code:`build_duration` will now be called \
with explicit :code:`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 :code:`decimalfraction.find_separator`
* Remove unused :code:`PythonTimeBuilder._split_to_microseconds`
* Removed :code:`NegativeDurationError`
Deprecation
-----------
* **Update on Python 2 support**: Python 2 support was slated to be removed in \
7.0.0 but was not, it will remain until a test fails on Python 2 but not Python \
3
* Using Setuptools to run tests (:code:`python setup.py tests`) will be removed \
in the next major or minor version (either 9.1.0, 10.0.0)
|
2021-02-09 07:58:55 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message:
py-aniso8601: updated to 8.1.1
Changes 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
|
2020-12-09 13:37:29 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
py-aniso8601: updated to 8.1.0
aniso8601 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
|
2019-11-15 15:02:20 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message:
py-aniso8601: updated to 8.0.0
Changes 8.0.0:
Handle ',' character as a fractional separator, as required by 4.2.2.4
Fix semver usage for prelease version, as required by clause 9
|