Skip to content

Scheduled weekly dependency update for week 17#145

Open
pyup-bot wants to merge 36 commits intomasterfrom
pyup-scheduled-update-2020-04-27
Open

Scheduled weekly dependency update for week 17#145
pyup-bot wants to merge 36 commits intomasterfrom
pyup-scheduled-update-2020-04-27

Conversation

@pyup-bot
Copy link
Contributor

Update arrow from 0.12.1 to 0.15.5.

Changelog

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.

0.13.2

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

- [NEW] Add is_between method.
- [FIX] Improved humanize behaviour for near zero durations (416).
- [FIX] Correct humanize behaviour with future days (541).
- [FIX] Documentation updates.
- [FIX] Improvements to German Locale.

0.13.1

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

- [NEW] Add support for Python 3.7.
- [CHANGE] Remove deprecation decorators for Arrow.range(), Arrow.span_range() and Arrow.interval(), all now return generators, wrap with list() to get old behavior.
- [FIX] Documentation and docstring updates.

0.13.0

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

- [NEW] Added support for Python 3.6.
- [CHANGE] Drop support for Python 2.6/3.3.
- [CHANGE] Return generator instead of list for Arrow.range(), Arrow.span_range() and Arrow.interval().
- [FIX] Make arrow.get() work with str & tzinfo combo.
- [FIX] Make sure special RegEx characters are escaped in format string.
- [NEW] Added support for ZZZ when formatting.
- [FIX] Stop using datetime.utcnow() in internals, use datetime.now(UTC) instead.
- [FIX] Return NotImplemented instead of TypeError in arrow math internals.
- [NEW] Added Estonian Locale.
- [FIX] Small fixes to Greek locale.
- [FIX] TagalogLocale improvements.
- [FIX] Added test requirements to setup.
- [FIX] Improve docs for get, now and utcnow methods.
- [FIX] Correct typo in depreciation warning.
Links

Update biopython from 1.72 to 1.76.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update click from 7.0 to 7.1.1.

Changelog

7.1.1

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

Released 2020-03-09

-   Fix ``ClickException`` output going to stdout instead of stderr.
 :issue:`1495`

7.1

-----------

Released 2020-03-09

-   Fix PyPI package name, "click" is lowercase again.
-   Fix link in ``unicode_literals`` error message. :pr:`1151`
-   Add support for colored output on UNIX Jupyter notebooks.
 :issue:`1185`
-   Operations that strip ANSI controls will strip the cursor hide/show
 sequences. :issue:`1216`
-   Remove unused compat shim for ``bytes``. :pr:`1195`
-   Expand testing around termui, especially getchar on Windows.
 :issue:`1116`
-   Fix output on Windows Python 2.7 built with MSVC 14. :pr:`1342`
-   Fix ``OSError`` when running in MSYS2. :issue:`1338`
-   Fix ``OSError`` when redirecting to ``NUL`` stream on Windows.
 :issue:`1065`
-   Fix memory leak when parsing Unicode arguments on Windows.
 :issue:`1136`
-   Fix error in new AppEngine environments. :issue:`1462`
-   Always return one of the passed choices for ``click.Choice``
 :issue:`1277`, :pr:`1318`
-   Add ``no_args_is_help`` option to ``click.Command``, defaults to
 False :pr:`1167`
-   Add ``show_defaults`` parameter to ``Context`` to enable showing
 defaults globally. :issue:`1018`
-   Handle ``env MYPATH=''`` as though the option were not passed.
 :issue:`1196`
-   It is once again possible to call ``next(bar)`` on an active
 progress bar instance. :issue:`1125`
-   ``open_file`` with ``atomic=True`` retains permissions of existing
 files and respects the current umask for new files. :issue:`1376`
-   When using the test ``CliRunner`` with ``mix_stderr=False``, if
 ``result.stderr`` is empty it will not raise a ``ValueError``.
 :issue:`1193`
-   Remove the unused ``mix_stderr`` parameter from
 ``CliRunner.invoke``. :issue:`1435`
-   Fix ``TypeError`` raised when using bool flags and specifying
 ``type=bool``. :issue:`1287`
-   Newlines in option help text are replaced with spaces before
 re-wrapping to avoid uneven line breaks. :issue:`834`
-   ``MissingParameter`` exceptions are printable in the Python
 interpreter. :issue:`1139`
-   Fix how default values for file-type options are shown during
 prompts. :issue:`914`
-   Fix environment variable automatic generation for commands
 containing ``-``. :issue:`1253`
-   Option help text replaces newlines with spaces when rewrapping, but
 preserves paragraph breaks, fixing multiline formatting.
 :issue:`834, 1066, 1397`
-   Option help text that is wrapped adds an extra newline at the end to
 distinguish it from the next option. :issue:`1075`
-   Consider ``sensible-editor`` when determining the editor to use for
 ``click.edit()``. :pr:`1469`
-   Arguments to system calls such as the executable path passed to
 ``click.edit`` can contains spaces. :pr:`1470`
-   Add ZSH completion autoloading and error handling. :issue:`1348`
-   Add a repr to ``Command``, ``Group``, ``Option``, and ``Argument``,
 showing the name for friendlier debugging. :issue:`1267`
-   Completion doesn't consider option names if a value starts with
 ``-`` after the ``--`` separator. :issue:`1247`
-   ZSH completion escapes special characters in values. :pr:`1418`
-   Add completion support for Fish shell. :pr:`1423`
-   Decoding bytes option values falls back to UTF-8 in more cases.
 :pr:`1468`
-   Make the warning about old 2-arg parameter callbacks a deprecation
 warning, to be removed in 8.0. This has been a warning since Click
 2.0. :pr:`1492`
Links

Update coverage from 4.5.1 to 5.1.

Changelog

5.1

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

- The JSON report now includes counts of covered and missing branches. Thanks,
Salvatore Zagaria.

- On Python 3.8, try-finally-return reported wrong branch coverage with
decorated async functions (`issue 946`_).  This is now fixed. Thanks, Kjell
Braden.

- The :meth:`~coverage.Coverage.get_option` and
:meth:`~coverage.Coverage.set_option` methods can now manipulate the
``[paths]`` configuration setting.  Thanks to Bernát Gábor for the fix for
`issue 967`_.

.. _issue 946: https://github.com/nedbat/coveragepy/issues/946
.. _issue 967: https://github.com/nedbat/coveragepy/issues/967


.. _changes_504:

5.0.4

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

- If using the ``[run] relative_files`` setting, the XML report will use
relative files in the ``<source>`` elements indicating the location of source
code.  Closes `issue 948`_.

- The textual summary report could report missing lines with negative line
numbers on PyPy3 7.1 (`issue 943`_).  This is now fixed.

- Windows wheels for Python 3.8 were incorrectly built, but are now fixed.
(`issue 949`_)

- Updated Python 3.9 support to 3.9a4.

- HTML reports couldn't be sorted if localStorage wasn't available. This is now
fixed: sorting works even though the sorting setting isn't retained. (`issue
944`_ and `pull request 945`_). Thanks, Abdeali Kothari.

.. _issue 943: https://github.com/nedbat/coveragepy/issues/943
.. _issue 944: https://github.com/nedbat/coveragepy/issues/944
.. _pull request 945: https://github.com/nedbat/coveragepy/pull/945
.. _issue 948: https://github.com/nedbat/coveragepy/issues/948
.. _issue 949: https://github.com/nedbat/coveragepy/issues/949


.. _changes_503:

5.0.3

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

- A performance improvement in 5.0.2 didn't work for test suites that changed
directory before combining data, causing "Couldn't use data file: no such
table: meta" errors (`issue 916`_).  This is now fixed.

- Coverage could fail to run your program with some form of "ModuleNotFound" or
"ImportError" trying to import from the current directory. This would happen
if coverage had been packaged into a zip file (for example, on Windows), or
was found indirectly (for example, by pyenv-virtualenv).  A number of
different scenarios were described in `issue 862`_ which is now fixed.  Huge
thanks to Agbonze O. Jeremiah for reporting it, and Alexander Waters and
George-Cristian Bîrzan for protracted debugging sessions.

- Added the "premain" debug option.

- Added SQLite compile-time options to the "debug sys" output.

.. _issue 862: https://github.com/nedbat/coveragepy/issues/862
.. _issue 916: https://github.com/nedbat/coveragepy/issues/916


.. _changes_502:

5.0.2

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

- Programs that used multiprocessing and changed directories would fail under
coverage.  This is now fixed (`issue 890`_).  A side effect is that debug
information about the config files read now shows absolute paths to the
files.

- When running programs as modules (``coverage run -m``) with ``--source``,
some measured modules were imported before coverage starts.  This resulted in
unwanted warnings ("Already imported a file that will be measured") and a
reduction in coverage totals (`issue 909`_).  This is now fixed.

- If no data was collected, an exception about "No data to report" could happen
instead of a 0% report being created (`issue 884`_).  This is now fixed.

- The handling of source files with non-encodable file names has changed.
Previously, if a file name could not be encoded as UTF-8, an error occurred,
as described in `issue 891`_.  Now, those files will not be measured, since
their data would not be recordable.

- A new warning ("dynamic-conflict") is issued if two mechanisms are trying to
change the dynamic context.  Closes `issue 901`_.

- ``coverage run --debug=sys`` would fail with an AttributeError. This is now
fixed (`issue 907`_).

.. _issue 884: https://github.com/nedbat/coveragepy/issues/884
.. _issue 890: https://github.com/nedbat/coveragepy/issues/890
.. _issue 891: https://github.com/nedbat/coveragepy/issues/891
.. _issue 901: https://github.com/nedbat/coveragepy/issues/901
.. _issue 907: https://github.com/nedbat/coveragepy/issues/907
.. _issue 909: https://github.com/nedbat/coveragepy/issues/909


.. _changes_501:

5.0.1

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

- If a 4.x data file is the cause of a "file is not a database" error, then use
a more specific error message, "Looks like a coverage 4.x data file, are you
mixing versions of coverage?"  Helps diagnose the problems described in
`issue 886`_.

- Measurement contexts and relative file names didn't work together, as
reported in `issue 899`_ and `issue 900`_.  This is now fixed, thanks to
David Szotten.

- When using ``coverage run --concurrency=multiprocessing``, all data files
should be named with parallel-ready suffixes.  5.0 mistakenly named the main
process' file with no suffix when using ``--append``.  This is now fixed,
closing `issue 880`_.

- Fixed a problem on Windows when the current directory is changed to a
different drive (`issue 895`_).  Thanks, Olivier Grisel.

- Updated Python 3.9 support to 3.9a2.

.. _issue 880: https://github.com/nedbat/coveragepy/issues/880
.. _issue 886: https://github.com/nedbat/coveragepy/issues/886
.. _issue 895: https://github.com/nedbat/coveragepy/issues/895
.. _issue 899: https://github.com/nedbat/coveragepy/issues/899
.. _issue 900: https://github.com/nedbat/coveragepy/issues/900


.. _changes_50:

5.0

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

Nothing new beyond 5.0b2.


.. _changes_50b2:

5.0b2

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

- An experimental ``[run] relative_files`` setting tells coverage to store
relative file names in the data file. This makes it easier to run tests in
one (or many) environments, and then report in another.  It has not had much
real-world testing, so it may change in incompatible ways in the future.

- When constructing a :class:`coverage.Coverage` object, `data_file` can be
specified as None to prevent writing any data file at all.  In previous
versions, an explicit `data_file=None` argument would use the default of
".coverage". Fixes `issue 871`_.

- Python files run with ``-m`` now have ``__spec__`` defined properly.  This
fixes `issue 745`_ (about not being able to run unittest tests that spawn
subprocesses), and `issue 838`_, which described the problem directly.

- The ``[paths]`` configuration section is now ordered. If you specify more
than one list of patterns, the first one that matches will be used.  Fixes
`issue 649`_.

- The :func:`.coverage.numbits.register_sqlite_functions` function now also
registers `numbits_to_nums` for use in SQLite queries.  Thanks, Simon
Willison.

- Python 3.9a1 is supported.

- Coverage.py has a mascot: :ref:`Sleepy Snake <sleepy>`.

.. _issue 649: https://github.com/nedbat/coveragepy/issues/649
.. _issue 745: https://github.com/nedbat/coveragepy/issues/745
.. _issue 838: https://github.com/nedbat/coveragepy/issues/838
.. _issue 871: https://github.com/nedbat/coveragepy/issues/871


.. _changes_50b1:

5.0b1

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

- The HTML and textual reports now have a ``--skip-empty`` option that skips
files with no statements, notably ``__init__.py`` files.  Thanks, Reya B.

- Configuration can now be read from `TOML`_ files.  This requires installing
coverage.py with the ``[toml]`` extra.  The standard "pyproject.toml" file
will be read automatically if no other configuration file is found, with
settings in the ``[tool.coverage.]`` namespace.  Thanks to Frazer McLean for
implementation and persistence.  Finishes `issue 664`_.

- The ``[run] note`` setting has been deprecated. Using it will result in a
warning, and the note will not be written to the data file.  The
corresponding :class:`.CoverageData` methods have been removed.

- The HTML report has been reimplemented (no more table around the source
code). This allowed for a better presentation of the context information,
hopefully resolving `issue 855`_.

- Added sqlite3 module version information to ``coverage debug sys`` output.

- Asking the HTML report to show contexts (``[html] show_contexts=True`` or
``coverage html --show-contexts``) will issue a warning if there were no
contexts measured (`issue 851`_).

.. _TOML: https://github.com/toml-lang/tomlreadme
.. _issue 664: https://github.com/nedbat/coveragepy/issues/664
.. _issue 851: https://github.com/nedbat/coveragepy/issues/851
.. _issue 855: https://github.com/nedbat/coveragepy/issues/855


.. _changes_50a8:

5.0a8

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

- The :class:`.CoverageData` API has changed how queries are limited to
specific contexts.  Now you use :meth:`.CoverageData.set_query_context` to
set a single exact-match string, or :meth:`.CoverageData.set_query_contexts`
to set a list of regular expressions to match contexts.  This changes the
command-line ``--contexts`` option to use regular expressions instead of
filename-style wildcards.


.. _changes_50a7:

5.0a7

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

- Data can now be "reported" in JSON format, for programmatic use, as requested
in `issue 720`_.  The new ``coverage json`` command writes raw and summarized
data to a JSON file.  Thanks, Matt Bachmann.

- Dynamic contexts are now supported in the Python tracer, which is important
for PyPy users.  Closes `issue 846`_.

- The compact line number representation introduced in 5.0a6 is called a
"numbits."  The :mod:`coverage.numbits` module provides functions for working
with them.

- The reporting methods used to permanently apply their arguments to the
configuration of the Coverage object.  Now they no longer do.  The arguments
affect the operation of the method, but do not persist.

- A class named "test_something" no longer confuses the ``test_function``
dynamic context setting.  Fixes `issue 829`_.

- Fixed an unusual tokenizing issue with backslashes in comments.  Fixes
`issue 822`_.

- ``debug=plugin`` didn't properly support configuration or dynamic context
plugins, but now it does, closing `issue 834`_.

.. _issue 720: https://github.com/nedbat/coveragepy/issues/720
.. _issue 822: https://github.com/nedbat/coveragepy/issues/822
.. _issue 834: https://github.com/nedbat/coveragepy/issues/834
.. _issue 829: https://github.com/nedbat/coveragepy/issues/829
.. _issue 846: https://github.com/nedbat/coveragepy/issues/846


.. _changes_50a6:

5.0a6

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

- Reporting on contexts. Big thanks to Stephan Richter and Albertas Agejevas
for the contribution.

- The ``--contexts`` option is available on the ``report`` and ``html``
 commands.  It's a comma-separated list of shell-style wildcards, selecting
 the contexts to report on.  Only contexts matching one of the wildcards
 will be included in the report.

- The ``--show-contexts`` option for the ``html`` command adds context
 information to each covered line.  Hovering over the "ctx" marker at the
 end of the line reveals a list of the contexts that covered the line.

- Database changes:

- Line numbers are now stored in a much more compact way.  For each file and
 context, a single binary string is stored with a bit per line number.  This
 greatly improves memory use, but makes ad-hoc use difficult.

- Dynamic contexts with no data are no longer written to the database.

- SQLite data storage is now faster.  There's no longer a reason to keep the
 JSON data file code, so it has been removed.

- Changes to the :class:`.CoverageData` interface:

- The new :meth:`.CoverageData.dumps` method serializes the data to a string,
 and a corresponding :meth:`.CoverageData.loads` method reconstitutes this
 data.  The format of the data string is subject to change at any time, and
 so should only be used between two installations of the same version of
 coverage.py.

- The :meth:`CoverageData constructor<.CoverageData.__init__>` has a new
 argument, `no_disk` (default: False).  Setting it to True prevents writing
 any data to the disk.  This is useful for transient data objects.

- Added the classmethod :meth:`.Coverage.current` to get the latest started
Coverage instance.

- Multiprocessing support in Python 3.8 was broken, but is now fixed.  Closes
`issue 828`_.

- Error handling during reporting has changed slightly.  All reporting methods
now behave the same.  The ``--ignore-errors`` option keeps errors from
stopping the reporting, but files that couldn't parse as Python will always
be reported as warnings.  As with other warnings, you can suppress them with
the ``[run] disable_warnings`` configuration setting.

- Coverage.py no longer fails if the user program deletes its current
directory. Fixes `issue 806`_.  Thanks, Dan Hemberger.

- The scrollbar markers in the HTML report now accurately show the highlighted
lines, regardless of what categories of line are highlighted.

- The hack to accommodate ShiningPanda_ looking for an obsolete internal data
file has been removed, since ShiningPanda 0.22 fixed it four years ago.

- The deprecated `Reporter.file_reporters` property has been removed.

.. _ShiningPanda: https://wiki.jenkins.io/display/JENKINS/ShiningPanda+Plugin
.. _issue 806: https://github.com/nedbat/coveragepy/pull/806
.. _issue 828: https://github.com/nedbat/coveragepy/issues/828


.. _changes_50a5:

5.0a5

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

- Drop support for Python 3.4

- Dynamic contexts can now be set two new ways, both thanks to Justas
Sadzevičius.

- A plugin can implement a ``dynamic_context`` method to check frames for
 whether a new context should be started.  See
 :ref:`dynamic_context_plugins` for more details.

- Another tool (such as a test runner) can use the new
 :meth:`.Coverage.switch_context` method to explicitly change the context.

- The ``dynamic_context = test_function`` setting now works with Python 2
old-style classes, though it only reports the method name, not the class it
was defined on.  Closes `issue 797`_.

- ``fail_under`` values more than 100 are reported as errors.  Thanks to Mike
Fiedler for closing `issue 746`_.

- The "missing" values in the text output are now sorted by line number, so
that missing branches are reported near the other lines they affect. The
values used to show all missing lines, and then all missing branches.

- Access to the SQLite database used for data storage is now thread-safe.
Thanks, Stephan Richter. This closes `issue 702`_.

- Combining data stored in SQLite is now about twice as fast, fixing `issue
761`_.  Thanks, Stephan Richter.

- The ``filename`` attribute on :class:`.CoverageData` objects has been made
private.  You can use the ``data_filename`` method to get the actual file
name being used to store data, and the ``base_filename`` method to get the
original filename before parallelizing suffixes were added.  This is part of
fixing `issue 708`_.

- Line numbers in the HTML report now align properly with source lines, even
when Chrome's minimum font size is set, fixing `issue 748`_.  Thanks Wen Ye.

.. _issue 702: https://github.com/nedbat/coveragepy/issues/702
.. _issue 708: https://github.com/nedbat/coveragepy/issues/708
.. _issue 746: https://github.com/nedbat/coveragepy/issues/746
.. _issue 748: https://github.com/nedbat/coveragepy/issues/748
.. _issue 761: https://github.com/nedbat/coveragepy/issues/761
.. _issue 797: https://github.com/nedbat/coveragepy/issues/797


.. _changes_50a4:

5.0a4

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

- You can specify the command line to run your program with the ``[run]
command_line`` configuration setting, as requested in `issue 695`_.

- Coverage will create directories as needed for the data file if they don't
exist, closing `issue 721`_.

- The ``coverage run`` command has always adjusted the first entry in sys.path,
to properly emulate how Python runs your program.  Now this adjustment is
skipped if sys.path[0] is already different than Python's default.  This
fixes `issue 715`_.

- Improvements to context support:

- The "no such table: meta" error is fixed.: `issue 716`_.

- Combining data files is now much faster.

- Python 3.8 (as of today!) passes all tests.

.. _issue 695: https://github.com/nedbat/coveragepy/issues/695
.. _issue 715: https://github.com/nedbat/coveragepy/issues/715
.. _issue 716: https://github.com/nedbat/coveragepy/issues/716
.. _issue 721: https://github.com/nedbat/coveragepy/issues/721


.. _changes_50a3:

5.0a3

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

- Context support: static contexts let you specify a label for a coverage run,
which is recorded in the data, and retained when you combine files.  See
:ref:`contexts` for more information.

- Dynamic contexts: specifying ``[run] dynamic_context = test_function`` in the
config file will record the test function name as a dynamic context during
execution.  This is the core of "Who Tests What" (`issue 170`_).  Things to
note:

- There is no reporting support yet.  Use SQLite to query the .coverage file
 for information.  Ideas are welcome about how reporting could be extended
 to use this data.

- There's a noticeable slow-down before any test is run.

- Data files will now be roughly N times larger, where N is the number of
 tests you have.  Combining data files is therefore also N times slower.

- No other values for ``dynamic_context`` are recognized yet.  Let me know
 what else would be useful.  I'd like to use a pytest plugin to get better
 information directly from pytest, for example.

.. _issue 170: https://github.com/nedbat/coveragepy/issues/170

- Environment variable substitution in configuration files now supports two
syntaxes for controlling the behavior of undefined variables: if ``VARNAME``
is not defined, ``${VARNAME?}`` will raise an error, and ``${VARNAME-default
value}`` will use "default value".

- Partial support for Python 3.8, which has not yet released an alpha. Fixes
`issue 707`_ and `issue 714`_.

.. _issue 707: https://github.com/nedbat/coveragepy/issues/707
.. _issue 714: https://github.com/nedbat/coveragepy/issues/714


.. _changes_50a2:

5.0a2

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

- Coverage's data storage has changed.  In version 4.x, .coverage files were
basically JSON.  Now, they are SQLite databases.  This means the data file
can be created earlier than it used to.  A large amount of code was
refactored to support this change.

- Because the data file is created differently than previous releases, you
 may need ``parallel=true`` where you didn't before.

- The old data format is still available (for now) by setting the environment
 variable COVERAGE_STORAGE=json. Please tell me if you think you need to
 keep the JSON format.

- The database schema is guaranteed to change in the future, to support new
 features.  I'm looking for opinions about making the schema part of the
 public API to coverage.py or not.

- Development moved from `Bitbucket`_ to `GitHub`_.

- HTML files no longer have trailing and extra whitespace.

- The sort order in the HTML report is stored in local storage rather than
cookies, closing `issue 611`_.  Thanks, Federico Bond.

- pickle2json, for converting v3 data files to v4 data files, has been removed.

.. _Bitbucket: https://bitbucket.org/ned/coveragepy
.. _GitHub: https://github.com/nedbat/coveragepy

.. _issue 611: https://github.com/nedbat/coveragepy/issues/611


.. _changes_50a1:

5.0a1

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

- Coverage.py no longer supports Python 2.6 or 3.3.

- The location of the configuration file can now be specified with a
``COVERAGE_RCFILE`` environment variable, as requested in `issue 650`_.

- Namespace packages are supported on Python 3.7, where they used to cause
TypeErrors about path being None. Fixes `issue 700`_.

- A new warning (``already-imported``) is issued if measurable files have
already been imported before coverage.py started measurement.  See
:ref:`cmd_warnings` for more information.

- Running coverage many times for small runs in a single process should be
faster, closing `issue 625`_.  Thanks, David MacIver.

- Large HTML report pages load faster.  Thanks, Pankaj Pandey.

.. _issue 625: https://bitbucket.org/ned/coveragepy/issues/625/lstat-dominates-in-the-case-of-small
.. _issue 650: https://bitbucket.org/ned/coveragepy/issues/650/allow-setting-configuration-file-location
.. _issue 700: https://github.com/nedbat/coveragepy/issues/700


.. _changes_454:

4.5.4

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

- Multiprocessing support in Python 3.8 was broken, but is now fixed.  Closes
`issue 828`_.

.. _issue 828: https://github.com/nedbat/coveragepy/issues/828


.. _changes_453:

4.5.3

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

- Only packaging metadata changes.


.. _changes_452:

4.5.2

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

- Namespace packages are supported on Python 3.7, where they used to cause
TypeErrors about path being None. Fixes `issue 700`_.

- Python 3.8 (as of today!) passes all tests.  Fixes `issue 707`_ and
`issue 714`_.

- Development moved from `Bitbucket`_ to `GitHub`_.

.. _issue 700: https://github.com/nedbat/coveragepy/issues/700
.. _issue 707: https://github.com/nedbat/coveragepy/issues/707
.. _issue 714: https://github.com/nedbat/coveragepy/issues/714

.. _Bitbucket: https://bitbucket.org/ned/coveragepy
.. _GitHub: https://github.com/nedbat/coveragepy


.. _changes_451:
Links

Update croniter from 0.3.25 to 0.3.31.

Changelog

0.3.31

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

- Fix get_next() when start_time less then 1s before next instant
[AlexHill]

0.3.30

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

- credits

0.3.29

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

- credits
- history stripping (security)
- Handle -Sun notation, This fixes `119 <https://github.com/taichino/croniter/issues/119>`_.
[kiorky]
- Handle invalid ranges correctly,  This fixes `114 <https://github.com/taichino/croniter/issues/114>`_.
[kiorky]
Links

Update distro from 1.3.0 to 1.5.0.

Changelog

1.5.0

BACKWARD COMPATIBILITY:
* Keep output as native string so we can compatible with python2 interface [[248](https://github.com/nir0s/distro/pull/248)]

ENHANCEMENTS:

BUG FIXES:
* Fix detection of RHEL 6 ComputeNode [[255](https://github.com/nir0s/distro/issues/255)]
* Fix Oracle 4/5 lsb_release id and names [[250](https://github.com/nir0s/distro/pull/250)]
* Ignore /etc/plesk-release file while parsing distribution [[246](https://github.com/nir0s/distro/pull/246)]

TESTS:
* Test on MidnightBSD [[254](https://github.com/nir0s/distro/issues/254)]

RELEASE:
* Remove build testing on Python 3.3 and add pypy 3.5 and Python 3.7 and 3.8 [[244](https://github.com/nir0s/distro/pull/244)]
* Fix Windows build due to Appveyor not supporting builds on Python 2.7 anymore [[257](https://github.com/nir0s/distro/pull/257)]

Additionally, The Python2.6 branch was fixed to support distro version 1.4.0. It is now passing all tests. Thanks [abadger](https://github.com/abadger)!

1.4.0

BACKWARD COMPATIBILITY:
* Prefer the VERSION_CODENAME field of os-release to parsing it from VERSION [[230](https://github.com/nir0s/distro/pull/230)]

BUG FIXES:
* Return _uname_info from the uname_info() method [[233](https://github.com/nir0s/distro/pull/233)]
* Fixed CloudLinux id discovery [[234](https://github.com/nir0s/distro/pull/234)]
* Update Oracle matching [[224](https://github.com/nir0s/distro/pull/224)]

DOCS:
* Update Fedora package link [[225](https://github.com/nir0s/distro/pull/225)]
* Distro is the recommended replacement for platform.linux_distribution [[220](https://github.com/nir0s/distro/pull/220)]

RELEASE:
* Use Markdown for long description in setup.py [[219](https://github.com/nir0s/distro/pull/219)]

Additionally, The Python2.6 branch was fixed and rebased on top of master. It is now passing all tests. Thanks [abadger](https://github.com/abadger)!
Links

Update flask-rq2[cli] from 18.0 to 18.3.

Changelog

18.3

~~~~~~~~~~~~~~~~~

- **IMPORTANT!** Reqires redis-py >= 3.0 since RQ and rq-scheduler have
switched to that requirement. Please upgrade as soon as possible.

18.2.2

~~~~~~~~~~~~~~~~~~~

- **Last release to support redis-py < 3.0.0!** Fixes version incompatibility
with rq-scheduler. Requires rq-scheduler < 0.9.0.

18.2

~~~~~~~~~~~~~~~~~~~~~~~~~

- Requires redis-py < 3.0.0 as long as RQ hasn't been made compatible to
that version. Please don't update redis-py to 3.x yet, it will break
using RQ.

More infos:

- https://github.com/rq/rq/issues/1014
- https://github.com/rq/Flask-RQ2/issues/75

- Require rq < 0.13.0 to cater to a possible Redis 3.0.0 compatible version.

18.1

~~~~~~~~~~~~~~~~~

- Requires rq >= 0.12.0 and rq-scheduler >= 0.8.3 now.

- Fixes imcompatibility with the new rq 0.12.0 release with which the
``flask rq worker`` command would raise an error because of changes
in handling of the ``worker_ttl`` parameter defaults.

- Added support for Python 3.7. Since 'async' is a keyword in Python 3.7,
`RQ(async=True)` has been changed to `RQ(is_async=True)`. The `async`
keyword argument will still work, but raises a `DeprecationWarning`.

- Documentation fixes.
Links

Update flask from 1.0.2 to 1.1.2.

Changelog

1.1.2

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

Released 2020-04-03

-   Work around an issue when running the ``flask`` command with an
 external debugger on Windows. :issue:`3297`
-   The static route will not catch all URLs if the ``Flask``
 ``static_folder`` argument ends with a slash. :issue:`3452`

1.1.1

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

Released 2019-07-08

-   The ``flask.json_available`` flag was added back for compatibility
 with some extensions. It will raise a deprecation warning when used,
 and will be removed in version 2.0.0. :issue:`3288`

1.1.0

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

Released 2019-07-04

-   Bump minimum Werkzeug version to >= 0.15.
-   Drop support for Python 3.4.
-   Error handlers for ``InternalServerError`` or ``500`` will always be
 passed an instance of ``InternalServerError``. If they are invoked
 due to an unhandled exception, that original exception is now
 available as ``e.original_exception`` rather than being passed
 directly to the handler. The same is true if the handler is for the
 base ``HTTPException``. This makes error handler behavior more
 consistent. :pr:`3266`

 -   :meth:`Flask.finalize_request` is called for all unhandled
     exceptions even if there is no ``500`` error handler.

-   :attr:`Flask.logger` takes the same name as
 :attr:`Flask.name` (the value passed as
 ``Flask(import_name)``. This reverts 1.0's behavior of always
 logging to ``"flask.app"``, in order to support multiple apps in the
 same process. A warning will be shown if old configuration is
 detected that needs to be moved. :issue:`2866`
-   :meth:`flask.RequestContext.copy` includes the current session
 object in the request context copy. This prevents ``session``
 pointing to an out-of-date object. :issue:`2935`
-   Using built-in RequestContext, unprintable Unicode characters in
 Host header will result in a HTTP 400 response and not HTTP 500 as
 previously. :pr:`2994`
-   :func:`send_file` supports :class:`~os.PathLike` objects as
 described in PEP 0519, to support :mod:`pathlib` in Python 3.
 :pr:`3059`
-   :func:`send_file` supports :class:`~io.BytesIO` partial content.
 :issue:`2957`
-   :func:`open_resource` accepts the "rt" file mode. This still does
 the same thing as "r". :issue:`3163`
-   The :attr:`MethodView.methods` attribute set in a base class is used
 by subclasses. :issue:`3138`
-   :attr:`Flask.jinja_options` is a ``dict`` instead of an
 ``ImmutableDict`` to allow easier configuration. Changes must still
 be made before creating the environment. :pr:`3190`
-   Flask's ``JSONMixin`` for the request and response wrappers was
 moved into Werkzeug. Use Werkzeug's version with Flask-specific
 support. This bumps the Werkzeug dependency to >= 0.15.
 :issue:`3125`
-   The ``flask`` command entry point is simplified to take advantage
 of Werkzeug 0.15's better reloader support. This bumps the Werkzeug
 dependency to >= 0.15. :issue:`3022`
-   Support ``static_url_path`` that ends with a forward slash.
 :issue:`3134`
-   Support empty ``static_folder`` without requiring setting an empty
 ``static_url_path`` as well. :pr:`3124`
-   :meth:`jsonify` supports :class:`dataclasses.dataclass` objects.
 :pr:`3195`
-   Allow customizing the :attr:`Flask.url_map_class` used for routing.
 :pr:`3069`
-   The development server port can be set to 0, which tells the OS to
 pick an available port. :issue:`2926`
-   The return value from :meth:`cli.load_dotenv` is more consistent
 with the documentation. It will return ``False`` if python-dotenv is
 not installed, or if the given path isn't a file. :issue:`2937`
-   Signaling support has a stub for the ``connect_via`` method when
 the Blinker library is not installed. :pr:`3208`
-   Add an ``--extra-files`` option to the ``flask run`` CLI command to
 specify extra files that will trigger the reloader on change.
 :issue:`2897`
-   Allow returning a dictionary from a view function. Similar to how
 returning a string will produce a ``text/html`` response, returning
 a dict will call ``jsonify`` to produce a ``application/json``
 response. :pr:`3111`
-   Blueprints have a ``cli`` Click group like ``app.cli``. CLI commands
 registered with a blueprint will be available as a group under the
 ``flask`` command. :issue:`1357`.
-   When using the test client as a context manager (``with client:``),
 all preserved request contexts are popped when the block exits,
 ensuring nested contexts are cleaned up correctly. :pr:`3157`
-   Show a better error message when the view return type is not
 supported. :issue:`3214`
-   ``flask.testing.make_test_environ_builder()`` has been deprecated in
 favour of a new class ``flask.testing.EnvironBuilder``. :pr:`3232`
-   The ``flask run`` command no longer fails if Python is not built
 with SSL support. Using the ``--cert`` option will show an
 appropriate error message. :issue:`3211`
-   URL matching now occurs after the request context is pushed, rather
 than when it's created. This allows custom URL converters to access
 the app and request contexts, such as to query a database for an id.
 :issue:`3088`

1.0.4

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

Released 2019-07-04

-   The key information for ``BadRequestKeyError`` is no longer cleared
 outside debug mode, so error handlers can still access it. This
 requires upgrading to Werkzeug 0.15.5. :issue:`3249`
-   ``send_file`` url quotes the ":" and "/" characters for more
 compatible UTF-8 filename support in some browsers. :issue:`3074`
-   Fixes for PEP451 import loaders and pytest 5.x. :issue:`3275`
-   Show message about dotenv on stderr instead of stdout. :issue:`3285`

1.0.3

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

Released 2019-05-17

-   :func:`send_file` encodes filenames as ASCII instead of Latin-1
 (ISO-8859-1). This fixes compatibility with Gunicorn, which is
 stricter about header encodings than PEP 3333. :issue:`2766`
-   Allow custom CLIs using ``FlaskGroup`` to set the debug flag without
 it always being overwritten based on environment variables.
 :pr:`2765`
-   ``flask --version`` outputs Werkzeug's version and simplifies the
 Python version. :pr:`2825`
-   :func:`send_file` handles an ``attachment_filename`` that is a
 native Python 2 string (bytes) with UTF-8 coded bytes. :issue:`2933`
-   A catch-all error handler registered for ``HTTPException`` will not
 handle ``RoutingException``, which is used internally during
 routing. This fixes the unexpected behavior that had been introduced
 in 1.0. :pr:`2986`
-   Passing the ``json`` argument to ``app.test_client`` does not
 push/pop an extra app context. :issue:`2900`
Links

Update gunicorn from 19.9.0 to 20.0.4.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update itsdangerous from 0.24 to 1.1.0.

Changelog

1.1.0

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

Released 2018-10-26

-   Change default signing algorithm back to SHA-1. :pr:`113`
-   Added a default SHA-512 fallback for users who used the yanked 1.0.0
 release which defaulted to SHA-512. :pr:`114`
-   Add support for fallback algorithms during deserialization to
 support changing the default in the future without breaking existing
 signatures. :pr:`113`
-   Changed capitalization of packages back to lowercase as the change
 in capitalization broke some tooling. :pr:`113`

1.0.0

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

Released 2018-10-18

YANKED

*Note*: This release was yanked from PyPI because it changed the default
algorithm to SHA-512. This decision was reverted in 1.1.0 and it remains
at SHA1.

-   Drop support for Python 2.6 and 3.3.
-   Refactor code from a single module to a package. Any object in the
 API docs is still importable from the top-level ``itsdangerous``
 name, but other imports will need to be changed. A future release
 will remove many of these compatibility imports. :pr:`107`
-   Optimize how timestamps are serialized and deserialized. :pr:`13`
-   ``base64_decode`` raises ``BadData`` when it is passed invalid data.
 :pr:`27`
-   Ensure value is bytes when signing to avoid a ``TypeError`` on
 Python 3. :issue:`29`
-   Add a ``serializer_kwargs`` argument to ``Serializer``, which is
 passed to ``dumps`` during ``dump_payload``. :pr:`36`
-   More compact JSON dumps for unicode strings. :issue:`38`
-   Use the full timestamp rather than an offset, allowing dates before
 2011. :issue:`46`

 To retain compatibility with signers from previous versions,
 consider using `this shim <https://github.com/pallets/itsdangerous
 /issues/120issuecomment-456913331>`_ when unsigning.
-   Detect a ``sep`` character that may show up in the signature itself
 and raise a ``ValueError``. :issue:`62`
-   Use a consistent signature for keyword arguments for
 ``Serializer.load_payload`` in subclasses. :issue:`74`, :pr:`75`
-   Change default intermediate hash from SHA-1 to SHA-512. :pr:`80`
-   Convert JWS exp header to an int when loading. :pr:`99`
Links

Update jinja2 from 2.10 to 2.11.2.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update markupsafe from 1.0 to 1.1.1.

Changelog

1.1.1

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

Released 2019-02-23

-   Fix segfault when ``__html__`` method raises an exception when using
 the C speedups. The exception is now propagated correctly. :pr:`109`

1.1.0

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

Released 2018-11-05

-   Drop support for Python 2.6 and 3.3.
-   Build wheels for Linux, Mac, and Windows, allowing systems without
 a compiler to take advantage of the C extension speedups. :pr:`104`
-   Use newer CPython API on Python 3, resulting in a 1.5x speedup.
 :pr`64`
-   ``escape`` wraps ``__html__`` result in ``Markup``, consistent with
 documented behavior. :pr:`69`
Links

Update meld3 from 1.0.2 to 2.0.1.

Changelog

2.0.1

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

- No further development of the meld3 package is planned.  The meld3 package
should be considered unmaintained as of April 2020.  Since 2007, meld3
received only minimal updates to keep compatible with newer Python versions.
It was only maintained because it was a dependency of the Supervisor package.
Since Supervisor 4.1.0 (released in October 2019), the meld3 package is
no longer a dependency of Supervisor.

- Fixed a ``DeprecationWarning`` on Python 3.8.

2.0.0

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

- Removed support for older Python versions.  On Python 2, meld3 now
requires Python 2.7.  On Python 3, meld3 now requires Python 3.4 or later.

- Added Python 3.7 classifier to ``setup.py``.  No code changes were
needed for Python 3.7 compatibility.
Links

Update numpy from 1.15.2 to 1.18.3.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update orderedmultidict from 1.0 to 1.0.1.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update prometheus-client from 0.4.2 to 0.7.1.

Changelog

0.7.1

[BUGFIX] multiprocess: don't crash on missing gauge_live/sum files (424)
[BUGFIX] correctly bind method on Python 2.x (403)

0.7.0

[ENHANCEMENT] Multiprocess exposition speed boost (421)
[ENHANCEMENT] optimize openmetrics text parsing (~4x perf) (402)
[ENHANCEMENT] Add python3.7 support (418)
[ENHANCEMENT] Change exemplar length limit to be only for label names+values (397)
[BUGFIX] Disable gcCollector for pypy (380)

0.6.0

[ENHANCEMENT] Better exceptions on exposition failure (364)
[BUGFIX] Fix deadlock in gcCollector, metrics are now different (371)
[BUGFIX] Fix thread leak in Python 3.7 (356)
[BUGFIX] Make the format strings compatible with Python 2.6 (361)
[BUGFIX] parser: ensure samples are of type Sample (358)

0.5.0

[ENHANCEMENT] Be more resilient to certain file corruptions (329)
[ENHANCEMENT] Permit subclassing of MetricsHandler (339)
[ENHANCEMENT] Updates based on latest OpenMetrics draft spec discussions (338 346)
[BUGFIX] In multiprocess mode, ensure that metrics initialise to the correct file (346)
[BUGFIX] Avoid re-entrant calls to GC collector's callback (343)
Links

Update python-dateutil from 2.7.3 to 2.8.1.

Changelog

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. Reported by kainjow (gh issue 901).
- Parsing errors will now raise ``ParserError``, a subclass of ``ValueError``,
which has a nicer string representation. Patch by gfyoung (gh pr 881).
- ``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.  Patch by jbrockmendel (gh pr
891).
- Changed error message raised when when passing a ``bytes`` object as the time
zone name to gettz in Python 3.  Reported and fixed by labrys () (gh issue
927, gh pr 935).
- Changed compatibility logic to support a potential Python 4.0 release. Patch
by Hugo van Kemenade (gh pr 950).
- Updated many modules to use ``tz.UTC`` in favor of ``tz.tzutc()`` internally,
to avoid an unnecessary function call. (gh pr 910).
- Fixed issue where ``dateutil.tz`` was using a backported version of
``contextlib.nullcontext`` even in Python 3.7 due to a malformed import
statement. (gh pr 963).


Tests
-----

- Switched from using assertWarns to using pytest.warns in the test suite. (gh
pr 969).
- Fix typo in setup.cfg causing PendingDeprecationWarning to not be explicitly
specified as an error in the warnings filter. (gh pr 966)
- 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. Reported and fixed by Kubilay Kocak (gh issue 918,
pr 928).
- Fixed a minor bug in ``test_isoparser`` related to ``bytes``/``str``
handling. Fixed by fhuang5 (gh issue 776, gh pr 879).
- Explicitly listed all markers used in the pytest configuration. (gh pr 915)
- Extensive improvements to the parser test suite, including the adoption of
``pytest``-style tests and the addition of parametrization of several test
cases. Patches by jbrockmendel (gh prs 735, 890, 892, 894).
- Added tests for tzinfos input types. Patch by jbrockmendel (gh pr 891).
- Fixed failure of test suite when changing the TZ variable is forbidden.
Patch by shadchin (gh pr 893).
- Pinned all test dependencies on Python 3.3. (gh prs 934, 962)


Documentation changes
---------------------

- Fixed many misspellings, typos and styling errors in the comments and
documentation. Patch by Hugo van Kemenade (gh pr 952).


Misc
----

- Added Python 3.8 to the trove classifiers. (gh pr 970)
- Moved as many keys from ``setup.py`` to ``setup.cfg`` as possible.  Fixed by
FakeNameSE, aquinlan82, jachen20, and gurgenz221 (gh issue 871, gh pr
880).
- Reorganized ``parser`` methods by functionality. Patch by jbrockmendel (gh
pr 882).
- Switched ``release.py`` over to using ``pep517.build`` for creating releases,
rather than direct invocations of ``setup.py``. Fixed by smeng10 (gh issue
869, gh pr 875).
- Added a "build" environment into the tox configuration, to handle dependency
management when making releases. Fixed by smeng10 (gh issue 870,r
gh pr 876).
- GH 916, GH 971

2.8.0

==========================

Data updates
------------

- Updated tzdata version to to 2018i.


Features
--------

- Added support for ``EXDATE`` parameters when parsing ``rrule`` strings.
Reported by mlorant (gh issue 410), fixed by nicoe (gh pr 859).
- Added support for sub-minute time zone offsets in Python 3.6+.
Fixed by cssherry (gh issue 582, pr 763)
- Switched the ``tzoffset``, ``tzstr`` and ``gettz`` caches over to using weak
references, so that the cache expires when no other references to the
original ``tzinfo`` objects exist. This cache-expiry behavior is not
guaranteed in the public interface and may change in the future. To improve
performance in the case where transient references to the same time zones
are repeatedly created but no strong reference is continuously held, a
smaller "strong value" cache was also added. Weak value cache implemented by
cs-cordero (gh pr 672, 801), strong cache added by
Gökçen Nurlu (gh issue 691, gh pr 761)


Bugfixes
--------

- Add support for ISO 8601 times with comma as the decimal separator in the
``dateutil.parser.isoparse`` function. (gh pr 721)
- Changed handling of ``T24:00`` to be compliant with the standard. ``T24:00``
now represents midnight on the *following* day.
Fixed by cheukting (gh issue 658, gh pr 751)
- Fixed an issue where ``isoparser.parse_isotime`` was unable to handle the
``24:00`` variant representation of midnight. (gh pr 773)
- Added support for more than 6 fractional digits in `isoparse`.
Reported and fixed by jayschwa (gh issue 786, gh pr 787).
- Added 'z' (lower case Z) as valid UTC time zone in isoparser.
Reported by cjgibson (gh issue 820). Fixed by Cheukting (gh pr 822)
- Fixed a bug with base offset changes during DST in ``tzfile``, and refactored
the way base offset changes are detected. Originally reported on
Stack Overflow by MartinThoma. (gh issue 812, gh pr 810)
- Fixed error condition in ``tz.gettz`` when a non-ASCII timezone is passed on
Windows in Python 2.7. (gh issue 802, pr 861)
- Improved performance and inspection properties of ``tzname`` methods.
(gh pr 811)
- Removed unnecessary binary_type compatibility shims.
Added by jdufresne (gh pr 817)
- Changed ``python setup.py test`` to print an error to ``stderr`` and exit
with 1 instead of 0. Reported and fixed by hroncok (gh pr 814)
- Added a ``pyproject.toml`` file with build requirements and an explicitly
specified build backend. (gh issue 736, gh prs 746, 863)


Documentation changes
---------------------

- Added documentation for the ``rrule.rrulestr`` function.
Fixed by prdickson (gh issue 623, gh pr 762)
- Add documentation for the ``dateutil.tz.win`` module and mocked out certain
Windows-specific modules so that autodoc can still be run on non-Windows
systems. (gh issue 442, pr 715)
- Added changelog to documentation. (gh issue 692, gh pr 707)
- Improved documentation on the use of ``until`` and ``count`` parameters in
``rrule``. Fixed by lucaferocino (gh pr 755).
- Added an example of how to use a custom ``parserinfo`` subclass to parse
non-standard datetime formats in the examples documentation for ``parser``.
Added by prdickson (gh 753)
- Expanded the description and examples in the ``relativedelta`` class.
Contributed by andrewcbennett (gh pr 759)
- Improved the contributing documentation to clarify where to put new changelog
files. Contributed by andrewcbennett (gh pr 757)
- Fixed a broken doctest in the ``relativedelta`` module.
Fixed by nherriot (gh pr 758).
- Reorganized ``dateutil.tz`` documentation and fixed issue with the
``dateutil.tz`` docstring. (gh pr 714)


Misc
----

- GH 720, GH 723, GH 726, GH 727, GH 740, GH 750, GH 760, GH 767,
GH 772, GH 773, GH 780, GH 784, GH 785, GH 791, GH 799, GH 813,
GH 836, GH 839, GH 857

2.7.5

==========================

Data updates
------------

- Update tzdata to 2018g

2.7.4

==========================

Data updates
------------

- Updated tzdata version to 2018f.
Links

Update raven[flask] from 6.9.0 to 6.10.0.

Changelog

6.10.0

------

* [Core] Fixed stackframes in some situations be

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.

1 participant