Skip to content

Conversation

@pyup-bot
Copy link
Collaborator

This PR updates arrow from 0.15.8 to 1.4.0.

Changelog

1.4.0

------------------

- [ADDED] Added ``week_start`` parameter to ``floor()`` and ``ceil()`` methods. `PR 1222 <https://github.com/arrow-py/arrow/pull/1222>`_
- [ADDED] Added ``FORMAT_RFC3339_STRICT`` with a T separator. `PR 1201 <https://github.com/arrow-py/arrow/pull/1201>`_
- [ADDED] Added Macedonian in Latin locale support. `PR 1200 <https://github.com/arrow-py/arrow/pull/1200>`_
- [ADDED] Added Persian/Farsi locale support. `PR 1190 <https://github.com/arrow-py/arrow/pull/1190>`_
- [ADDED] Added week and weeks to Thai locale timeframes. `PR 1218 <https://github.com/arrow-py/arrow/pull/1218>`_
- [ADDED] Added weeks to Catalan locale. `PR 1189 <https://github.com/arrow-py/arrow/pull/1189>`_
- [ADDED] Added Persian names of months, month-abbreviations and day-abbreviations in Gregorian calendar. `PR 1172 <https://github.com/arrow-py/arrow/pull/1172>`_
- [CHANGED] Migrated Arrow to use ZoneInfo for timezones instead of pytz. `PR 1217 <https://github.com/arrow-py/arrow/pull/1217>`_
- [FIXED] Fixed humanize month limits. `PR 1224 <https://github.com/arrow-py/arrow/pull/1224>`_
- [FIXED] Fixed type hint of ``Arrow.__getattr__``. `PR 1171 <https://github.com/arrow-py/arrow/pull/1171>`_
- [FIXED] Fixed spelling and removed poorly used expressions in Korean locale. `PR 1181 <https://github.com/arrow-py/arrow/pull/1181>`_
- [FIXED] Updated ``shift()`` method for issue 1145. `PR 1194 <https://github.com/arrow-py/arrow/pull/1194>`_
- [FIXED] Improved Greek locale translations (seconds, days, "ago", and month typo). `PR 1184 <https://github.com/arrow-py/arrow/pull/1184>`_, `PR #1186 <https://github.com/arrow-py/arrow/pull/1186>`_
- [FIXED] Addressed ``datetime.utcnow`` deprecation warning. `PR 1182 <https://github.com/arrow-py/arrow/pull/1182>`_
- [INTERNAL] Added codecov test results. `PR 1223 <https://github.com/arrow-py/arrow/pull/1223>`_
- [INTERNAL] Updated CI dependencies (actions/setup-python, actions/checkout, codecov/codecov-action, actions/cache).
- [INTERNAL] Added docstrings to parser.py. `PR 1010 <https://github.com/arrow-py/arrow/pull/1010>`_
- [INTERNAL] Updated Python versions support and bumped CI dependencies. `PR 1177 <https://github.com/arrow-py/arrow/pull/1177>`_
- [INTERNAL] Added dependabot for GitHub actions. `PR 1193 <https://github.com/arrow-py/arrow/pull/1193>`_
- [INTERNAL] Moved dateutil types to test requirements. `PR 1183 <https://github.com/arrow-py/arrow/pull/1183>`_
- [INTERNAL] Added documentation link for ``arrow.format``. `PR 1180 <https://github.com/arrow-py/arrow/pull/1180>`_

1.3.0

------------------

- [ADDED] Added official support for Python 3.11 and 3.12.
- [ADDED] Added dependency on ``types-python-dateutil`` to improve Arrow mypy compatibility. `PR 1102 <https://github.com/arrow-py/arrow/pull/1102>`_
- [FIX] Updates to Italian, Romansh, Hungarian, Finish and Arabic locales.
- [FIX] Handling parsing of UTC prefix in timezone strings.
- [CHANGED] Update documentation to improve readability.
- [CHANGED] Dropped support for Python 3.6 and 3.7, which are end-of-life.
- [INTERNAL] Migrate from ``setup.py``/Twine to ``pyproject.toml``/Flit for packaging and distribution.
- [INTERNAL] Adopt ``.readthedocs.yaml`` configuration file for continued ReadTheDocs support.

1.2.3

------------------

- [NEW] Added Amharic, Armenian, Georgian, Laotian and Uzbek locales.
- [FIX] Updated Danish locale and associated tests.
- [INTERNAL] Small fixes to CI.

1.2.2

------------------

- [NEW] Added Kazakh locale.
- [FIX] The Belarusian, Bulgarian, Czech, Macedonian, Polish, Russian, Slovak and Ukrainian locales now support ``dehumanize``.
- [FIX] Minor bug fixes and improvements to ChineseCN, Indonesian, Norwegian, and Russian locales.
- [FIX] Expanded testing for multiple locales.
- [INTERNAL] Started using ``xelatex`` for pdf generation in documentation.
- [INTERNAL] Split requirements file into ``requirements.txt``, ``requirements-docs.txt`` and ``requirements-tests.txt``.
- [INTERNAL] Added ``flake8-annotations`` package for type linting in ``pre-commit``.

1.2.1

------------------

- [NEW] Added quarter granularity to humanize, for example:

.. code-block:: python

 >>> import arrow
 >>> now = arrow.now()
 >>> four_month_shift = now.shift(months=4)
 >>> now.humanize(four_month_shift, granularity="quarter")
 'a quarter ago'
 >>> four_month_shift.humanize(now, granularity="quarter")
 'in a quarter'
 >>> thirteen_month_shift = now.shift(months=13)
 >>> thirteen_month_shift.humanize(now, granularity="quarter")
 'in 4 quarters'
 >>> now.humanize(thirteen_month_shift, granularity="quarter")
 '4 quarters ago'

- [NEW] Added Sinhala and Urdu locales.
- [NEW] Added official support for Python 3.10.
- [CHANGED] Updated Azerbaijani, Hebrew, and Serbian locales and added tests.
- [CHANGED] Passing an empty granularity list to ``humanize`` now raises a ``ValueError``.

1.2.0

------------------

- [NEW] Added Albanian, Tamil and Zulu locales.
- [NEW] Added support for ``Decimal`` as input to ``arrow.get()``.
- [FIX] The Estonian, Finnish, Nepali and Zulu locales now support ``dehumanize``.
- [FIX] Improved validation checks when using parser tokens ``A`` and ``hh``.
- [FIX] Minor bug fixes to Catalan, Cantonese, Greek and Nepali locales.

1.1.1

------------------

- [NEW] Added Odia, Maltese, Serbian, Sami, and Luxembourgish locales.
- [FIXED] All calls to ``arrow.get()`` should now properly pass the ``tzinfo`` argument to the Arrow constructor. See PR `968 <https://github.com/arrow-py/arrow/pull/968/>`_ for more info.
- [FIXED] Humanize output is now properly truncated when a locale class overrides ``_format_timeframe()``.
- [CHANGED] Renamed ``requirements.txt`` to ``requirements-dev.txt`` to prevent confusion with the dependencies in ``setup.py``.
- [CHANGED] Updated Turkish locale and added tests.

1.1.0

------------------

- [NEW] Implemented the ``dehumanize`` method for ``Arrow`` objects. This takes human readable input and uses it to perform relative time shifts, for example:

.. code-block:: python

 >>> arw
 <Arrow [2021-04-26T21:06:14.256803+00:00]>
 >>> arw.dehumanize("8 hours ago")
 <Arrow [2021-04-26T13:06:14.256803+00:00]>
 >>> arw.dehumanize("in 4 days")
 <Arrow [2021-04-30T21:06:14.256803+00:00]>
 >>> arw.dehumanize("in an hour 34 minutes 10 seconds")
 <Arrow [2021-04-26T22:40:24.256803+00:00]>
 >>> arw.dehumanize("hace 2 años", locale="es")
 <Arrow [2019-04-26T21:06:14.256803+00:00]>

- [NEW] Made the start of the week adjustable when using ``span("week")``, for example:

.. code-block:: python

 >>> arw
 <Arrow [2021-04-26T21:06:14.256803+00:00]>
 >>> arw.isoweekday()
 1  Monday
 >>> arw.span("week")
 (<Arrow [2021-04-26T00:00:00+00:00]>, <Arrow [2021-05-02T23:59:59.999999+00:00]>)
 >>> arw.span("week", week_start=4)
 (<Arrow [2021-04-22T00:00:00+00:00]>, <Arrow [2021-04-28T23:59:59.999999+00:00]>)

- [NEW] Added Croatian, Latin, Latvian, Lithuanian and Malay locales.
- [FIX] Internally standardize locales and improve locale validation. Locales should now use the ISO notation of a dash (``"en-gb"``) rather than an underscore (``"en_gb"``) however this change is backward compatible.
- [FIX] Correct type checking for internal locale mapping by using ``_init_subclass``. This now allows subclassing of locales, for example:

.. code-block:: python

 >>> from arrow.locales import EnglishLocale
 >>> class Klingon(EnglishLocale):
 ...     names = ["tlh"]
 ...
 >>> from arrow import locales
 >>> locales.get_locale("tlh")
 <__main__.Klingon object at 0x7f7cd1effd30>

- [FIX] Correct type checking for ``arrow.get(2021, 3, 9)`` construction.
- [FIX] Audited all docstrings for style, typos and outdated info.

1.0.3

------------------

- [FIX] Updated internals to avoid issues when running ``mypy --strict``.
- [FIX] Corrections to Swedish locale.
- [INTERNAL] Lowered required coverage limit until ``humanize`` month tests are fixed.

1.0.2

------------------

- [FIXED] Fixed an ``OverflowError`` that could occur when running Arrow on a 32-bit OS.

1.0.1

------------------

- [FIXED] A ``py.typed`` file is now bundled with the Arrow package to conform to PEP 561.

1.0.0

------------------

After 8 years we're pleased to announce Arrow v1.0. Thanks to the entire Python community for helping make Arrow the amazing package it is today!

- [CHANGE] Arrow has **dropped support** for Python 2.7 and 3.5.
- [CHANGE] There are multiple **breaking changes** with this release, please see the `migration guide <https://github.com/arrow-py/arrow/issues/832>`_ for a complete overview.
- [CHANGE] Arrow is now following `semantic versioning <https://semver.org/>`_.
- [CHANGE] Made ``humanize`` granularity="auto" limits more accurate to reduce strange results.
- [NEW] Added support for Python 3.9.
- [NEW] Added a new keyword argument "exact" to ``span``, ``span_range`` and ``interval`` methods. This makes timespans begin at the start time given and not extend beyond the end time given, for example:

.. code-block:: python

 >>> start = Arrow(2021, 2, 5, 12, 30)
 >>> end = Arrow(2021, 2, 5, 17, 15)
 >>> for r in arrow.Arrow.span_range('hour', start, end, exact=True):
 ...     print(r)
 ...
 (<Arrow [2021-02-05T12:30:00+00:00]>, <Arrow [2021-02-05T13:29:59.999999+00:00]>)
 (<Arrow [2021-02-05T13:30:00+00:00]>, <Arrow [2021-02-05T14:29:59.999999+00:00]>)
 (<Arrow [2021-02-05T14:30:00+00:00]>, <Arrow [2021-02-05T15:29:59.999999+00:00]>)
 (<Arrow [2021-02-05T15:30:00+00:00]>, <Arrow [2021-02-05T16:29:59.999999+00:00]>)
 (<Arrow [2021-02-05T16:30:00+00:00]>, <Arrow [2021-02-05T17:14:59.999999+00:00]>)

- [NEW] Arrow now natively supports PEP 484-style type annotations.
- [FIX] Fixed handling of maximum permitted timestamp on Windows systems.
- [FIX] Corrections to French, German, Japanese and Norwegian locales.
- [INTERNAL] Raise more appropriate errors when string parsing fails to match.

0.17.0

-------------------

- [WARN] Arrow will **drop support** for Python 2.7 and 3.5 in the upcoming 1.0.0 release. This is the last major release to support Python 2.7 and Python 3.5.
- [NEW] Arrow now properly handles imaginary datetimes during DST shifts. For example:

.. code-block:: python

 >>> just_before = arrow.get(2013, 3, 31, 1, 55, tzinfo="Europe/Paris")
 >>> just_before.shift(minutes=+10)
 <Arrow [2013-03-31T03:05:00+02:00]>

.. code-block:: python

 >>> before = arrow.get("2018-03-10 23:00:00", "YYYY-MM-DD HH:mm:ss", tzinfo="US/Pacific")
 >>> after = arrow.get("2018-03-11 04:00:00", "YYYY-MM-DD HH:mm:ss", tzinfo="US/Pacific")
 >>> result=[(t, t.to("utc")) for t in arrow.Arrow.range("hour", before, after)]
 >>> for r in result:
 ...     print(r)
 ...
 (<Arrow [2018-03-10T23:00:00-08:00]>, <Arrow [2018-03-11T07:00:00+00:00]>)
 (<Arrow [2018-03-11T00:00:00-08:00]>, <Arrow [2018-03-11T08:00:00+00:00]>)
 (<Arrow [2018-03-11T01:00:00-08:00]>, <Arrow [2018-03-11T09:00:00+00:00]>)
 (<Arrow [2018-03-11T03:00:00-07:00]>, <Arrow [2018-03-11T10:00:00+00:00]>)
 (<Arrow [2018-03-11T04:00:00-07:00]>, <Arrow [2018-03-11T11:00:00+00:00]>)

- [NEW] Added ``humanize`` week granularity translation for Tagalog.
- [CHANGE] Calls to the ``timestamp`` property now emit a ``DeprecationWarning``. In a future release, ``timestamp`` will be changed to a method to align with Python's datetime module. If you would like to continue using the property, please change your code to use the ``int_timestamp`` or ``float_timestamp`` properties instead.
- [CHANGE] Expanded and improved Catalan locale.
- [FIX] Fixed a bug that caused ``Arrow.range()`` to incorrectly cut off ranges in certain scenarios when using month, quarter, or year endings.
- [FIX] Fixed a bug that caused day of week token parsing to be case sensitive.
- [INTERNAL] A number of functions were reordered in arrow.py for better organization and grouping of related methods. This change will have no impact on usage.
- [INTERNAL] A minimum tox version is now enforced for compatibility reasons. Contributors must use tox >3.18.0 going forward.

0.16.0

-------------------

- [WARN] Arrow will **drop support** for Python 2.7 and 3.5 in the upcoming 1.0.0 release. The 0.16.x and 0.17.x releases are the last to support Python 2.7 and 3.5.
- [NEW] Implemented `PEP 495 <https://www.python.org/dev/peps/pep-0495/>`_ to handle ambiguous datetimes. This is achieved by the addition of the ``fold`` attribute for Arrow objects. For example:

.. code-block:: python

 >>> before = Arrow(2017, 10, 29, 2, 0, tzinfo='Europe/Stockholm')
 <Arrow [2017-10-29T02:00:00+02:00]>
 >>> before.fold
 0
 >>> before.ambiguous
 True
 >>> after = Arrow(2017, 10, 29, 2, 0, tzinfo='Europe/Stockholm', fold=1)
 <Arrow [2017-10-29T02:00:00+01:00]>
 >>> after = before.replace(fold=1)
 <Arrow [2017-10-29T02:00:00+01:00]>

- [NEW] Added ``normalize_whitespace`` flag to ``arrow.get``. This is useful for parsing log files and/or any files that may contain inconsistent spacing. For example:

.. code-block:: python

 >>> arrow.get("Jun 1 2005     1:33PM", "MMM D YYYY H:mmA", normalize_whitespace=True)
 <Arrow [2005-06-01T13:33:00+00:00]>
 >>> arrow.get("2013-036 \t  04:05:06Z", normalize_whitespace=True)
 <Arrow [2013-02-05T04:05:06+00:00]>
Links

@pyup-bot pyup-bot mentioned this pull request Oct 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants