Changelog
### 0.15.7
```
-------------------
- [NEW] Added a number of built-in format strings. See the `docs <https://arrow.readthedocs.io/built-in-formats>`_ for a complete list of supported formats. For example:
.. code-block:: python
>>> arw = arrow.utcnow()
>>> arw.format(arrow.FORMAT_COOKIE)
'Wednesday, 27-May-2020 10:30:35 UTC'
- [NEW] Arrow is now fully compatible with Python 3.9 and PyPy3.
- [NEW] Added Makefile, tox.ini, and requirements.txt files to the distribution bundle.
- [NEW] Added French Canadian and Swahili locales.
- [NEW] Added ``humanize`` week granularity translation for Hebrew, Greek, Macedonian, Swedish, Slovak.
- [FIX] ms and μs timestamps are now normalized in ``arrow.get()``, ``arrow.fromtimestamp()``, and ``arrow.utcfromtimestamp()``. For example:
.. code-block:: python
>>> ts = 1591161115194556
>>> arw = arrow.get(ts)
<Arrow [2020-06-03T05:11:55.194556+00:00]>
>>> arw.timestamp
1591161115
- [FIX] Refactored and updated Macedonian, Hebrew, Korean, and Portuguese locales.
```
### 0.15.6
```
-------------------
- [NEW] Added support for parsing and formatting `ISO 8601 week dates <https://en.wikipedia.org/wiki/ISO_week_date>`_ via a new token ``W``, for example:
.. code-block:: python
>>> arrow.get("2013-W29-6", "W")
<Arrow [2013-07-20T00:00:00+00:00]>
>>> utc=arrow.utcnow()
>>> utc
<Arrow [2020-01-23T18:37:55.417624+00:00]>
>>> utc.format("W")
'2020-W04-4'
- [NEW] Formatting with ``x`` token (microseconds) is now possible, for example:
.. code-block:: python
>>> dt = arrow.utcnow()
>>> dt.format("x")
'1585669870688329'
>>> dt.format("X")
'1585669870'
- [NEW] Added ``humanize`` week granularity translation for German, Italian, Polish & Taiwanese locales.
- [FIX] Consolidated and simplified German locales.
- [INTERNAL] Moved testing suite from nosetest/Chai to pytest/pytest-mock.
- [INTERNAL] Converted xunit-style setup and teardown functions in tests to pytest fixtures.
- [INTERNAL] Setup Github Actions for CI alongside Travis.
- [INTERNAL] Help support Arrow's future development by donating to the project on `Open Collective <https://opencollective.com/arrow>`_.
```
### 0.15.5
```
-------------------
- [WARN] Python 2 reached EOL on 2020-01-01. arrow will **drop support** for Python 2 in a future release to be decided (see `739 <https://github.com/crsmithdev/arrow/issues/739>`_).
- [NEW] Added bounds parameter to ``span_range``, ``interval`` and ``span`` methods. This allows you to include or exclude the start and end values.
- [NEW] ``arrow.get()`` can now create arrow objects from a timestamp with a timezone, for example:
.. code-block:: python
>>> arrow.get(1367900664, tzinfo=tz.gettz('US/Pacific'))
<Arrow [2013-05-06T21:24:24-07:00]>
- [NEW] ``humanize`` can now combine multiple levels of granularity, for example:
.. code-block:: python
>>> later140 = arrow.utcnow().shift(seconds=+8400)
>>> later140.humanize(granularity="minute")
'in 139 minutes'
>>> later140.humanize(granularity=["hour", "minute"])
'in 2 hours and 19 minutes'
- [NEW] Added Hong Kong locale (``zh_hk``).
- [NEW] Added ``humanize`` week granularity translation for Dutch.
- [NEW] Numbers are now displayed when using the seconds granularity in ``humanize``.
- [CHANGE] ``range`` now supports both the singular and plural forms of the ``frames`` argument (e.g. day and days).
- [FIX] Improved parsing of strings that contain punctuation.
- [FIX] Improved behaviour of ``humanize`` when singular seconds are involved.
```
### 0.15.4
```
-------------------
- [FIX] Fixed an issue that caused package installs to fail on Conda Forge.
```
### 0.15.3
```
-------------------
- [NEW] ``factory.get()`` can now create arrow objects from a ISO calendar tuple, for example:
.. code-block:: python
>>> arrow.get((2013, 18, 7))
<Arrow [2013-05-05T00:00:00+00:00]>
- [NEW] Added a new token ``x`` to allow parsing of integer timestamps with milliseconds and microseconds.
- [NEW] Formatting now supports escaping of characters using the same syntax as parsing, for example:
.. code-block:: python
>>> arw = arrow.now()
>>> fmt = "YYYY-MM-DD h [h] m"
>>> arw.format(fmt)
'2019-11-02 3 h 32'
- [NEW] Added ``humanize`` week granularity translations for Chinese, Spanish and Vietnamese.
- [CHANGE] Added ``ParserError`` to module exports.
- [FIX] Added support for midnight at end of day. See `703 <https://github.com/crsmithdev/arrow/issues/703>`_ for details.
- [INTERNAL] Created Travis build for macOS.
- [INTERNAL] Test parsing and formatting against full timezone database.
```
### 0.15.2
```
-------------------
- [NEW] Added ``humanize`` week granularity translations for Portuguese and Brazilian Portuguese.
- [NEW] Embedded changelog within docs and added release dates to versions.
- [FIX] Fixed a bug that caused test failures on Windows only, see `668 <https://github.com/crsmithdev/arrow/issues/668>`_ for details.
```
### 0.15.1
```
-------------------
- [NEW] Added ``humanize`` week granularity translations for Japanese.
- [FIX] Fixed a bug that caused Arrow to fail when passed a negative timestamp string.
- [FIX] Fixed a bug that caused Arrow to fail when passed a datetime object with ``tzinfo`` of type ``StaticTzInfo``.
```
### 0.15.0
```
.. code-block:: python
>>> arrow.get("1565358758", "X")
>>> arrow.get("1565358758.123413", "X")
>>> arrow.get(1565358758)
>>> arrow.get(1565358758.123413)
- [CHANGE] When a meridian token (a|A) is passed and no meridians are available for the specified locale (e.g. unsupported or untranslated) a ``ParserError`` is raised.
- [CHANGE] The timestamp token (``X``) will now match float timestamps of type ``str``: ``arrow.get(“1565358758.123415”, “X”)``.
- [CHANGE] Strings with leading and/or trailing whitespace will no longer be parsed without a format string. Please see `the docs <https://arrow.readthedocs.io/en/latest/regular-expressions>`_ for ways to handle this.
- [FIX] The timestamp token (``X``) will now only match on strings that **strictly contain integers and floats**, preventing incorrect matches.
- [FIX] Most instances of ``arrow.get()`` returning an incorrect ``Arrow`` object from a partial parsing match have been eliminated. The following issue have been addressed: `91 <https://github.com/crsmithdev/arrow/issues/91>`_, `196 <https://github.com/crsmithdev/arrow/issues/196>`_, `396 <https://github.com/crsmithdev/arrow/issues/396>`_, `434 <https://github.com/crsmithdev/arrow/issues/434>`_, `447 <https://github.com/crsmithdev/arrow/issues/447>`_, `456 <https://github.com/crsmithdev/arrow/issues/456>`_, `519 <https://github.com/crsmithdev/arrow/issues/519>`_, `538 <https://github.com/crsmithdev/arrow/issues/538>`_, `560 <https://github.com/crsmithdev/arrow/issues/560>`_.
```
### 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.
```
### 0.14.5
```
-------------------
- [NEW] Added Afrikaans locale.
- [CHANGE] Removed deprecated ``replace`` shift functionality. Users looking to pass plural properties to the ``replace`` function to shift values should use ``shift`` instead.
- [FIX] Fixed bug that occurred when ``factory.get()`` was passed a locale kwarg.
```
### 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 `495 <https://github.com/crsmithdev/arrow/issues/495>`_.
```
### 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 `612 <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.
```
### 0.14.2
```
-------------------
- [CHANGE] Travis CI builds now use tox to lint and run tests.
- [FIX] Fixed UnicodeDecodeError on certain locales (600).
```
### 0.14.1
```
-------------------
- [FIX] Fixed ``ImportError: No module named 'dateutil'`` (598).
```
### 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.
```
Links
- PyPI: https://pypi.org/project/arrow
- Changelog: https://pyup.io/changelogs/arrow/
- Docs: https://arrow.readthedocs.io
This PR updates arrow from 0.13.2 to 0.15.7.
Changelog
### 0.15.7 ``` ------------------- - [NEW] Added a number of built-in format strings. See the `docs <https://arrow.readthedocs.io/built-in-formats>`_ for a complete list of supported formats. For example: .. code-block:: python >>> arw = arrow.utcnow() >>> arw.format(arrow.FORMAT_COOKIE) 'Wednesday, 27-May-2020 10:30:35 UTC' - [NEW] Arrow is now fully compatible with Python 3.9 and PyPy3. - [NEW] Added Makefile, tox.ini, and requirements.txt files to the distribution bundle. - [NEW] Added French Canadian and Swahili locales. - [NEW] Added ``humanize`` week granularity translation for Hebrew, Greek, Macedonian, Swedish, Slovak. - [FIX] ms and μs timestamps are now normalized in ``arrow.get()``, ``arrow.fromtimestamp()``, and ``arrow.utcfromtimestamp()``. For example: .. code-block:: python >>> ts = 1591161115194556 >>> arw = arrow.get(ts) <Arrow [2020-06-03T05:11:55.194556+00:00]> >>> arw.timestamp 1591161115 - [FIX] Refactored and updated Macedonian, Hebrew, Korean, and Portuguese locales. ``` ### 0.15.6 ``` ------------------- - [NEW] Added support for parsing and formatting `ISO 8601 week dates <https://en.wikipedia.org/wiki/ISO_week_date>`_ via a new token ``W``, for example: .. code-block:: python >>> arrow.get("2013-W29-6", "W") <Arrow [2013-07-20T00:00:00+00:00]> >>> utc=arrow.utcnow() >>> utc <Arrow [2020-01-23T18:37:55.417624+00:00]> >>> utc.format("W") '2020-W04-4' - [NEW] Formatting with ``x`` token (microseconds) is now possible, for example: .. code-block:: python >>> dt = arrow.utcnow() >>> dt.format("x") '1585669870688329' >>> dt.format("X") '1585669870' - [NEW] Added ``humanize`` week granularity translation for German, Italian, Polish & Taiwanese locales. - [FIX] Consolidated and simplified German locales. - [INTERNAL] Moved testing suite from nosetest/Chai to pytest/pytest-mock. - [INTERNAL] Converted xunit-style setup and teardown functions in tests to pytest fixtures. - [INTERNAL] Setup Github Actions for CI alongside Travis. - [INTERNAL] Help support Arrow's future development by donating to the project on `Open Collective <https://opencollective.com/arrow>`_. ``` ### 0.15.5 ``` ------------------- - [WARN] Python 2 reached EOL on 2020-01-01. arrow will **drop support** for Python 2 in a future release to be decided (see `739 <https://github.com/crsmithdev/arrow/issues/739>`_). - [NEW] Added bounds parameter to ``span_range``, ``interval`` and ``span`` methods. This allows you to include or exclude the start and end values. - [NEW] ``arrow.get()`` can now create arrow objects from a timestamp with a timezone, for example: .. code-block:: python >>> arrow.get(1367900664, tzinfo=tz.gettz('US/Pacific')) <Arrow [2013-05-06T21:24:24-07:00]> - [NEW] ``humanize`` can now combine multiple levels of granularity, for example: .. code-block:: python >>> later140 = arrow.utcnow().shift(seconds=+8400) >>> later140.humanize(granularity="minute") 'in 139 minutes' >>> later140.humanize(granularity=["hour", "minute"]) 'in 2 hours and 19 minutes' - [NEW] Added Hong Kong locale (``zh_hk``). - [NEW] Added ``humanize`` week granularity translation for Dutch. - [NEW] Numbers are now displayed when using the seconds granularity in ``humanize``. - [CHANGE] ``range`` now supports both the singular and plural forms of the ``frames`` argument (e.g. day and days). - [FIX] Improved parsing of strings that contain punctuation. - [FIX] Improved behaviour of ``humanize`` when singular seconds are involved. ``` ### 0.15.4 ``` ------------------- - [FIX] Fixed an issue that caused package installs to fail on Conda Forge. ``` ### 0.15.3 ``` ------------------- - [NEW] ``factory.get()`` can now create arrow objects from a ISO calendar tuple, for example: .. code-block:: python >>> arrow.get((2013, 18, 7)) <Arrow [2013-05-05T00:00:00+00:00]> - [NEW] Added a new token ``x`` to allow parsing of integer timestamps with milliseconds and microseconds. - [NEW] Formatting now supports escaping of characters using the same syntax as parsing, for example: .. code-block:: python >>> arw = arrow.now() >>> fmt = "YYYY-MM-DD h [h] m" >>> arw.format(fmt) '2019-11-02 3 h 32' - [NEW] Added ``humanize`` week granularity translations for Chinese, Spanish and Vietnamese. - [CHANGE] Added ``ParserError`` to module exports. - [FIX] Added support for midnight at end of day. See `703 <https://github.com/crsmithdev/arrow/issues/703>`_ for details. - [INTERNAL] Created Travis build for macOS. - [INTERNAL] Test parsing and formatting against full timezone database. ``` ### 0.15.2 ``` ------------------- - [NEW] Added ``humanize`` week granularity translations for Portuguese and Brazilian Portuguese. - [NEW] Embedded changelog within docs and added release dates to versions. - [FIX] Fixed a bug that caused test failures on Windows only, see `668 <https://github.com/crsmithdev/arrow/issues/668>`_ for details. ``` ### 0.15.1 ``` ------------------- - [NEW] Added ``humanize`` week granularity translations for Japanese. - [FIX] Fixed a bug that caused Arrow to fail when passed a negative timestamp string. - [FIX] Fixed a bug that caused Arrow to fail when passed a datetime object with ``tzinfo`` of type ``StaticTzInfo``. ``` ### 0.15.0 ``` .. code-block:: python >>> arrow.get("1565358758", "X") >>> arrow.get("1565358758.123413", "X") >>> arrow.get(1565358758) >>> arrow.get(1565358758.123413) - [CHANGE] When a meridian token (a|A) is passed and no meridians are available for the specified locale (e.g. unsupported or untranslated) a ``ParserError`` is raised. - [CHANGE] The timestamp token (``X``) will now match float timestamps of type ``str``: ``arrow.get(“1565358758.123415”, “X”)``. - [CHANGE] Strings with leading and/or trailing whitespace will no longer be parsed without a format string. Please see `the docs <https://arrow.readthedocs.io/en/latest/regular-expressions>`_ for ways to handle this. - [FIX] The timestamp token (``X``) will now only match on strings that **strictly contain integers and floats**, preventing incorrect matches. - [FIX] Most instances of ``arrow.get()`` returning an incorrect ``Arrow`` object from a partial parsing match have been eliminated. The following issue have been addressed: `91 <https://github.com/crsmithdev/arrow/issues/91>`_, `196 <https://github.com/crsmithdev/arrow/issues/196>`_, `396 <https://github.com/crsmithdev/arrow/issues/396>`_, `434 <https://github.com/crsmithdev/arrow/issues/434>`_, `447 <https://github.com/crsmithdev/arrow/issues/447>`_, `456 <https://github.com/crsmithdev/arrow/issues/456>`_, `519 <https://github.com/crsmithdev/arrow/issues/519>`_, `538 <https://github.com/crsmithdev/arrow/issues/538>`_, `560 <https://github.com/crsmithdev/arrow/issues/560>`_. ``` ### 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. ``` ### 0.14.5 ``` ------------------- - [NEW] Added Afrikaans locale. - [CHANGE] Removed deprecated ``replace`` shift functionality. Users looking to pass plural properties to the ``replace`` function to shift values should use ``shift`` instead. - [FIX] Fixed bug that occurred when ``factory.get()`` was passed a locale kwarg. ``` ### 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 `495 <https://github.com/crsmithdev/arrow/issues/495>`_. ``` ### 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 `612 <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. ``` ### 0.14.2 ``` ------------------- - [CHANGE] Travis CI builds now use tox to lint and run tests. - [FIX] Fixed UnicodeDecodeError on certain locales (600). ``` ### 0.14.1 ``` ------------------- - [FIX] Fixed ``ImportError: No module named 'dateutil'`` (598). ``` ### 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. ```Links
- PyPI: https://pypi.org/project/arrow - Changelog: https://pyup.io/changelogs/arrow/ - Docs: https://arrow.readthedocs.io