Version 2.8.1:
Data updates
- Updated tzdata version to 2019c.
Bugfixes
- Fixed a race condition in the ``tzoffset`` and ``tzstr`` "strong" caches on
Python 2.7.
- Parsing errors will now raise ``ParserError``, a subclass of ``ValueError``,
which has a nicer string representation.
- ``parser.parse`` will now raise ``TypeError`` when ``tzinfos`` is passed a
type that cannot be interpreted as a time zone. Prior to this change, it
would raise an ``UnboundLocalError`` instead.
- Changed error message raised when when passing a ``bytes`` object as the time
zone name to gettz in Python 3.
- Changed compatibility logic to support a potential Python 4.0 release.
- Updated many modules to use ``tz.UTC`` in favor of ``tz.tzutc()`` internally,
to avoid an unnecessary function call.
- Fixed issue where ``dateutil.tz`` was using a backported version of
``contextlib.nullcontext`` even in Python 3.7 due to a malformed import
statement.
Tests
- Switched from using assertWarns to using pytest.warns in the test suite.
- Fix typo in setup.cfg causing PendingDeprecationWarning to not be explicitly
specified as an error in the warnings filter.
- Fixed issue where ``test_tzlocal_offset_equal`` would fail in certain
environments (such as FreeBSD) due to an invalid assumption about what time
zone names are provided.
- Fixed a minor bug in ``test_isoparser`` related to ``bytes``/``str``
handling.
- Explicitly listed all markers used in the pytest configuration.
- Extensive improvements to the parser test suite, including the adoption of
``pytest``-style tests and the addition of parametrization of several test
cases.
- Added tests for tzinfos input types.
- Fixed failure of test suite when changing the TZ variable is forbidden.
- Pinned all test dependencies on Python 3.3.
Documentation changes
- Fixed many misspellings, typos and styling errors in the comments and
documentation.
Misc
- Added Python 3.8 to the trove classifiers.
- Moved as many keys from ``setup.py`` to ``setup.cfg`` as possible.
- Reorganized ``parser`` methods by functionality.
- Switched ``release.py`` over to using ``pep517.build`` for creating releases,
rather than direct invocations of ``setup.py``.
- Added a "build" environment into the tox configuration, to handle dependency
management when making releases.
Changes in 3.0.6:
Handle both COUNT and UNTIL in RRULEs
Fix RRULE BYDAY with INTERVAL=2 conflict
Various fuzzification fixes
New publicly available function:
icaltimezone_truncate_vtimezone()
Add option to disable building the test suite
Built-in timezones updated to tzdata2019c
Changes in 3.0.5:
New publicly available function:
icalproperty_get_datetime_with_component()
Allow reset DATE/DATE-TIME VALUE parameter for all-day events
icalproperty_get_datetime_with_component() will use location as TZID fallback.
New CMake option ENABLE_GTK_DOC for disabling the libical-glib developer documentation
GObject Introspection - use $MAJOR-0 versioning
libical-glib API is considered unstable:
define LIBICAL_GLIB_UNSTABLE_API=1 before including <libical-glib/libical-glib.h>
Built-in timezones updated to tzdata2019a
De-fuzzifications and Coverity fixes
Changes in 3.0.4:
Silently fail RSCALE recurrence clauses when RSCALE is disabled
Fixed icalcomponent_set_comment() and icalcomponent_set_uid()
fix FREQ=MONTHLY;BYMONTH
Skip UTF-8 marker when parsing
Fix parsing ? in VCF files produced by Outlook
Fix TZID on DATE-TIME value can override time specified in UTC
CMake discovery module for ICU uses pkg-config now
New publicly available function:
icalparameter_kind_is_valid()
Built-in timezones updated to tzdata2018e
0.23 2019-08-14
- Rewrite property folding to be faster (and clearer)(thanks to Calvin Morrison)
- Linewrap tests: add a stronger assertion about expectation(thanks to Ricardo Signes)
Note that as the folding code is rewritten, there is a tiny behavior change:
Long folded strings will always contain CRLF at the end no matter if
original strings have that or not(they should have according to RFC).
Please report if this is an issue to you.
0.32 Sat Sep 14 2019
- add support for offset timezones without a space separator and
formatted HH:MM '2019-09-03T10:42:00.000-04:00'
- thanks Stijn Heymans
- allow negative timezone offsets in 2 and 4 digit lengths with and without spaces
- now works: 2007-05-06T04:44:44-0800
- now works: 2007-05-06T04:44:44-08
- now works: 2007-05-06T04:44:44 -08
- validate all timezone offsets
0.7.2:
Features:
* Extended Czech support
* Added `time` to valid periods
* Added timezone information to dates found with `search_dates()`
* Support strings as date formats
Improvements:
* Fixed Collections ABCs depreciation warning
* Fixed dates with trailing colons not being parsed
* Fixed date format override on any settings change
* Fixed parsing current weekday as past date, regardless of settings
* Added UTC -2:30 as a valid offset
* Added Python 3.7 to supported versions, dropped support for Python 3.3 and 3.4
* Moved to importlib from imp where possible
* Improved support for Catalan
* Documentation improvements
Upstream changes:
2.37 2019-09-11
- This release is based on version 2019c of the Olson database. This release
includes contemporary changes for Fiji and Norfolk Island.
2.36 2019-07-01
- This release is based on version 2019b of the Olson database. This release
includes contemporary changes for Brazil and Palestine.
Upstream changes:
1.15 2019 July 26
- Fix a bug in the test suite due to floating-point rounding. Thanks to
Slaven Rezic (see CPAN RT bug 130150:
https://rt.cpan.org/Ticket/Display.html?id=130150)
- Also improved __DATA__ handling, so as not to hold a lock on the library.
1.14 2019 July 22
- Fix CPAN RT bug 87484 (https://rt.cpan.org/Ticket/Display.html?id=87484),
concerning very small floating-point values (e.g. "2.1458e-06").
- Fix CPAN RT Bug 95447, concerning floating-point numerical time values.
- Fix CPAN RT Bug 121367, concerning loading perl-only routines after forking.
This might (?) also fix bug 74880, but I can't reproduce that.
- Skip locale tests on openbsd platform.
- Fix accented strings in locale.t
1.13 2019 July 18
- Fix CPAN RT bug 85001.
This was a problem in the test suite only; no code changes were made
in the main module lib/Time/Format.pm.
The problem existed in how the test suite checked for whether certain
CPAN modules were installed, and especially in how it attempted to
unload them from memory afterward.
Thanks to Sendu Bala for reporting this -- and to Jim Keenan for
pushing me to fix this.
0.14.7
- [CHANGE] `ArrowParseWarning` will no longer be printed on every call to `arrow.get()` with a datetime string. The purpose of the warning was to start a conversation about the upcoming 0.15.0 changes and we appreciate all the feedback that the community has given us!
0.14.6
- [NEW] Added support for `week` granularity in `Arrow.humanize()`. For example, `arrow.utcnow().shift(weeks=-1).humanize(granularity="week")` outputs "a week ago". This change introduced two new untranslated words, `week` and `weeks`, to all locale dictionaries, so locale contributions are welcome!
- [NEW] Fully translated the Brazilian Portugese locale.
- [CHANGE] Updated the Macedonian locale to inherit from a Slavic base.
- [FIX] Fixed a bug that caused `arrow.get()` to ignore tzinfo arguments of type string (e.g. `arrow.get(tzinfo="Europe/Paris")`).
- [FIX] Fixed a bug that occurred when `arrow.Arrow()` was instantiated with a `pytz` tzinfo object.
- [FIX] Fixed a bug that caused Arrow to fail when passed a sub-second token, that when rounded, had a value greater than 999999 (e.g. `arrow.get("2015-01-12T01:13:15.9999995")`). Arrow should now accurately propagate the rounding for large sub-second tokens.
5.61.0
Add public holidays' substitute days in Russia, for 2019-2020
Update holidays in Russia
5.60.0
Update UK Early May bank holiday for 2020
Fix ISO code for Hesse / Germany
5.58.0
holidays/plan2/holiday_zm_en-gb - add Zambia holidays
holidays/plan2/holiday_lv_lv - fix Midsummer's Day
holiday_mu_en - Holidays 2019 in Mauritius
holiday_th_en-gb - update for 2019
Update Japanese holidays
Add public holidays for Lower Saxony (Germany)
2.0.0:
Major differences since 1.5.1
- When no time zone configuration can be find, tzlocal now return UTC.
This is a major difference from 1.x, where an exception would be raised.
This change is because Docker images often have no configuration at all,
and the unix utilities will then default to UTC, so we follow that.
- If tzlocal on Unix finds a timezone name in a /etc config file, then
tzlocal now verifies that the timezone it fouds has the same offset as
the local computer is configured with. If it doesn't, something is
configured incorrectly.
- Get timezone via Termux `getprop` wrapper on Android. It's not officially
supported because we can't test it, but at least we make an effort.
Minor differences and bug fixes
- Skip comment lines when parsing /etc/timezone.
- Don't load timezone from current directory.
- Now verifies that the config files actually contain something before
reading them.
- Got rid of a BytesWarning
- Now handles if config file paths exists, but are directories.
- Moved tests out from distributions
- Support wheels
The canonical form [1] of an R package Makefile includes the
following:
- The first stanza includes R_PKGNAME, R_PKGVER, PKGREVISION (as
needed), and CATEGORIES.
- HOMEPAGE is not present but defined in math/R/Makefile.extension to
refer to the CRAN web page describing the package. Other relevant
web pages are often linked from there via the URL field.
This updates all current R packages to this form, which will make
regular updates _much_ easier, especially using pkgtools/R2pkg.
[1] http://mail-index.netbsd.org/tech-pkg/2019/08/02/msg021711.html
0.14.4
- [FIX] Fixed a regression in 0.14.3 that prevented a tzinfo argument of type string to be passed to the get() function. Functionality such as arrow.get("2019072807", "YYYYMMDDHH", tzinfo="UTC") should work as normal again.
- [CHANGE] Moved backports.functools_lru_cache dependency from extra_requires to install_requires for Python 2.7 installs to fix
0.14.3
- [NEW] Added full support for Python 3.8.
- [CHANGE] Added warnings for upcoming factory.get() parsing changes in 0.15.0. Please see https://github.com/crsmithdev/arrow/issues/612 for full details.
- [FIX] Extensive refactor and update of documentation.
- [FIX] factory.get() can now construct from kwargs.
- [FIX] Added meridians to Spanish Locale.
2.0.5:
Fixed
* Fixed ISO week dates not being parsed properly in from_format().
* Fixed loading of some timezones with empty posix spec.
* Fixed deprecation warnings.
Locales
* Added RU locale.
PR pkg/54340.
A small Python library to parse various kinds of time expressions,
inspired by a StackOverflow question.
The single function pytimeparse.timeparse.timeparse defined in the
library (also available as pytimeparse.parse) parses time expressions
like the following:
32m
2h32m
3d2h32m
1w3d2h32m
1w 3d 2h 32m
1 w 3 d 2 h 32 m
...
0.14.2
- [CHANGE] Travis CI builds now use tox to lint and run tests.
- [FIX] Fixed UnicodeDecodeError on certain locales.
0.14.1
- [FIX] Fixed "ImportError: No module named 'dateutil'".
0.14.0
- [NEW] Added provisional support for Python 3.8.
- [CHANGE] Removed support for EOL Python 3.4.
- [FIX] Updated setup.py with modern Python standards.
- [FIX] Upgraded dependencies to latest versions.
- [FIX] Enabled flake8 and black on travis builds.
- [FIX] Formatted code using black and isort.