Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scheduled weekly dependency update for week 47 #8654

Closed
wants to merge 5 commits into from

Conversation

pyup-bot
Copy link
Collaborator

Update Sphinx from 5.3.0 to 7.2.6.

Changelog

7.2.6

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

Bugs fixed
----------

* 11679: Add the :envvar:`!SPHINX_AUTODOC_RELOAD_MODULES` environment variable,
which if set reloads modules when using autodoc with ``TYPE_CHECKING = True``.
Patch by Matt Wozniski and Adam Turner.
* 11679: Use :py:func:`importlib.reload` to reload modules in autodoc.
Patch by Matt Wozniski and Adam Turner.

7.2.5

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

Bugs fixed
----------

* 11645: Fix a regression preventing autodoc from importing modules within
packages that make use of ``if typing.TYPE_CHECKING:`` to guard circular
imports needed by type checkers.
Patch by Matt Wozniski.
* 11634: Fixed inheritance diagram relative link resolution
for sibling files in a subdirectory.
Patch by Albert Shih.
* 11659: Allow ``?config=...`` in :confval:`mathjax_path`.
* 11654: autodoc: Fail with a more descriptive error message
when an object claims to be an instance of ``type``,
but is not a class.
Patch by James Braza.
* 11620: Cease emitting :event:`source-read` events for files read via
the :dudir:`include` directive.
* 11620: Add a new :event:`include-read` for observing and transforming
the content of included files via the :dudir:`include` directive.
* 11627: Restore support for copyright lines of the form ``YYYY``
when ``SOURCE_DATE_EPOCH`` is set.

7.2.4

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

Bugs fixed
----------

* 11618: Fix a regression in the MoveModuleTargets transform,
introduced in 10478 (9662).
* 11649: linkcheck: Resolve hanging tests for timezones west of London
and incorrect conversion from UTC to offsets from the UNIX epoch.
Patch by Dmitry Shachnev and Adam Turner.

7.2.3

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

Dependencies
------------

* 11576: Require sphinxcontrib-serializinghtml 1.1.9.

Bugs fixed
----------

* Fix regression in ``autodoc.Documenter.parse_name()``.
* Fix regression in JSON serialisation.
* 11543: autodoc: Support positional-only parameters in ``classmethod`` methods
when ``autodoc_preserve_defaults`` is ``True``.
* Restore support string methods on path objects.
This is deprecated and will be removed in Sphinx 8.
Use :py:func:`os.fspath` to convert :py:class:`~pathlib.Path` objects to strings,
or :py:class:`~pathlib.Path`'s methods to work with path objects.

7.2.2

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

Bugs fixed
----------

* Fix the signature of the ``StateMachine.insert_input()`` patch,
for when calling with keyword arguments.
* Fixed membership testing (``in``) for the :py:class:`str` interface
of the asset classes (``_CascadingStyleSheet`` and ``_JavaScript``),
which several extensions relied upon.
* Fixed a type error in ``SingleFileHTMLBuilder._get_local_toctree``,
``includehidden`` may be passed as a string or a boolean.
* Fix ``:noindex:`` for ``PyModule`` and ``JSModule``.

7.2.1

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

Bugs fixed
----------

* Restored the the :py:class:`str` interface of the asset classes
(``_CascadingStyleSheet`` and ``_JavaScript``), which several extensions relied upon.
This will be removed in Sphinx 9.
* Restored calls to ``Builder.add_{css,js}_file()``,
which several extensions relied upon.
* Restored the private API ``TocTree.get_toctree_ancestors()``,
which several extensions relied upon.

7.2.0

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

Dependencies
------------

* 11511: Drop Python 3.8 support.
* 11576: Require Pygments 2.14 or later.

Deprecated
----------

* 11512: Deprecate ``sphinx.util.md5`` and ``sphinx.util.sha1``.
Use ``hashlib`` instead.
* 11526: Deprecate ``sphinx.testing.path``.
Use ``os.path`` or ``pathlib`` instead.
* 11528: Deprecate ``sphinx.util.split_index_msg`` and ``sphinx.util.split_into``.
Use ``sphinx.util.index_entries.split_index_msg`` instead.
* Deprecate ``sphinx.builders.html.Stylesheet``
and ``sphinx.builders.html.Javascript``.
Use ``sphinx.application.Sphinx.add_css_file()``
and ``sphinx.application.Sphinx.add_js_file()`` instead.
* 11582: Deprecate ``sphinx.builders.html.StandaloneHTMLBuilder.css_files`` and
``sphinx.builders.html.StandaloneHTMLBuilder.script_files``.
Use ``sphinx.application.Sphinx.add_css_file()``
and ``sphinx.application.Sphinx.add_js_file()`` instead.
* 11459: Deprecate ``sphinx.ext.autodoc.preserve_defaults.get_function_def()``.
Patch by Bénédikt Tran.

Features added
--------------

* 11526: Support ``os.PathLike`` types and ``pathlib.Path`` objects
in many more places.
* 5474: coverage: Print summary statistics tables.
Patch by Jorge Leitao.
* 6319: viewcode: Add :confval:`viewcode_line_numbers` to control
whether line numbers are added to rendered source code.
Patch by Ben Krikler.
* 9662: Add the ``:no-typesetting:`` option to suppress textual output
and only create a linkable anchor.
Patch by Latosha Maltba.
* 11221: C++: Support domain objects in the table of contents.
Patch by Rouslan Korneychuk.
* 10938: doctest: Add :confval:`doctest_show_successes` option.
Patch by Trey Hunner.
* 11533: Add ``:no-index:``, ``:no-index-entry:``, and ``:no-contents-entry:``.
* 11572: Improve ``debug`` logging of reasons why files are detected as out of
date.
Patch by Eric Larson.
* 10678: Emit :event:`source-read` events for files read via
the :dudir:`include` directive.
Patch by Halldor Fannar.
* 11570: Use short names when using :pep:`585` built-in generics.
Patch by Riccardo Mori.
* 11300: Improve ``SigElementFallbackTransform`` fallback logic and signature
text elements nodes. See :doc:`the documentation </extdev/nodes>` for more
details.
Patch by Bénédikt Tran.
* Allow running Sphinx with ``python -m sphinx build ...``.

Bugs fixed
----------

* 11077: graphviz: Fix relative links from within the graph.
Patch by Ralf Grubenmann.
* 11529: Line Block in LaTeX builder outputs spurious empty token.
Patch by Adrian Vollmer.
* 11196: autosummary: Summary line extraction failed with "e.g."
* 10614: Fixed a number of bugs in inheritance diagrams that resulted in
missing or broken links.
Patch by Albert Shih.
* 9428: Exclude substitution definitions when running the ``gettext`` builder.
Patch by Alvin Wong.
* 10795: Raise a descriptive error if ``graphviz_dot`` is falsy.
* 11546: Translated nodes identical to their original text are now marked
with the ``translated=True`` attribute.
* 10049: html: Change "Permalink" to "Link" for title text in link anchors.
* 4225: Relax Pygments parsing on lexing failures.
* 11246: Allow inline links in the first line of a docstring and one-line
type comments ``: :meta ...:`` when using :mod:`sphinx.ext.napoleon`.
Patch by Bénédikt Tran.
* 10930: Highlight all search terms on the search results page.
Patch by Dmitry Shachnev.
* 11473: Type annotations containing :py:data:`~typing.Literal` enumeration
values now render correctly.
Patch by Bénédikt Tran.
* 11591: Fix support for C coverage in ``sphinx.ext.coverage`` extension.
Patch by Stephen Finucane.
* 11594: HTML Theme: Enhancements to horizontal scrolling on smaller
devices in the ``agogo`` theme.
Patch by Lukas Engelter.
* 11459: Fix support for async and lambda functions in
``sphinx.ext.autodoc.preserve_defaults``.
Patch by Bénédikt Tran.

Testing
-------

* 11577: pytest: Fail tests on "XPASS".
* 11577: pytest: Use "importlib" import mode.
* 11577: pytest: Set PYTHONWARNINGS=error.
* 11577: pytest: Set strict config and strict markers.

7.1.2

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

Bugs fixed
----------

* 11542: linkcheck: Properly respect :confval:`linkcheck_anchors`
and do not spuriously report failures to validate anchors.
Patch by James Addison.

7.1.1

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

Bugs fixed
----------

* 11514: Fix ``SOURCE_DATE_EPOCH`` in multi-line copyright footer.
Patch by Bénédikt Tran.

7.1.0

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

Incompatible changes
--------------------

* Releases are no longer signed, given the `change in PyPI policy`_.

.. _change in PyPI policy: https://blog.pypi.org/posts/2023-05-23-removing-pgp/

Deprecated
----------

* 11412: Emit warnings on using a deprecated Python-specific index entry type
(namely, ``module``, ``keyword``, ``operator``, ``object``, ``exception``,
``statement``, and ``builtin``) in the :rst:dir:`index` directive, and
set the removal version to Sphinx 9. Patch by Adam Turner.

Features added
--------------

* 11415: Add a checksum to JavaScript and CSS asset URIs included within
generated HTML, using the CRC32 algorithm.
* :meth:`~sphinx.application.Sphinx.require_sphinx` now allows the version
requirement to be specified as ``(major, minor)``.
* 11011: Allow configuring a line-length limit for object signatures, via
:confval:`maximum_signature_line_length` and the domain-specific variants.
If the length of the signature (in characters) is greater than the configured
limit, each parameter in the signature will be split to its own logical line.
This behaviour may also be controlled by options on object description
directives, for example :rst:dir:`py:function:single-line-parameter-list`.
Patch by Thomas Louf, Adam Turner, and Jean-François B.
* 10983: Support for multiline copyright statements in the footer block.
Patch by Stefanie Molin
* ``sphinx.util.display.status_iterator`` now clears the current line
with ANSI control codes, rather than overprinting with space characters.
* 11431: linkcheck: Treat SSL failures as broken links.
Patch by James Addison.
* 11157: Keep the ``translated`` attribute on translated nodes.
* 11451: Improve the traceback displayed when using :option:`sphinx-build -T`
in parallel builds. Patch by Bénédikt Tran
* 11324: linkcheck: Use session-basd HTTP requests.
* 11438: Add support for the :rst:dir:`py:class` and :rst:dir:`py:function`
directives for PEP 695 (generic classes and functions declarations) and
PEP 696 (default type parameters).  Multi-line support (11011) is enabled
for type parameters list and can be locally controlled on object description
directives, e.g., :rst:dir:`py:function:single-line-type-parameter-list`.
Patch by Bénédikt Tran.
* 11484: linkcheck: Allow HTML anchors to be ignored on a per-URL basis
via :confval:`linkcheck_anchors_ignore_for_url` while
still checking the validity of the page itself.
Patch by Bénédikt Tran
* 1246: Add translation progress statistics and inspection support,
via a new substitution (``|translation progress|``) and a new
configuration variable (:confval:`translation_progress_classes`).
These enable determining the percentage of translated elements within
a document, and the remaining translated and untranslated elements.

Bugs fixed
----------

* Restored the ``footnote-reference`` class that has been removed in
the latest (unreleased) version of Docutils.
* 11486: Use :rfc:`8081` font file MIME types in the EPUB builder.
Using the correct MIME type will prevent warnings from ``epubcheck``
and will generate a valid EPUB.
* 11435: Use microsecond-resolution timestamps for outdated file detection
in ``BuildEnvironment.get_outdated_files``.
* 11437: Top-level headings starting with a reStructuredText role
now render properly when :confval:`rst_prolog` is set.
Previously, a file starting with the below would have
improperly rendered due to where the prologue text
was inserted into the document.

.. code:: rst

  :mod:`lobster` -- The lobster module
  ====================================

  ...

Patch by Bénédikt Tran.
* 11337: Fix a ``MemoryError`` in ``sphinx.ext.intersphinx`` when using ``None``
or ``typing.*`` as inline type references. Patch by Bénédikt Tran (picnixz)

Testing
-------

* 11345: Always delete ``docutils.conf`` in test directories when running
``SphinxTestApp.cleanup()``.

7.0.1

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

Dependencies
------------

* 11411: Support `Docutils 0.20`_. Patch by Adam Turner.

.. _Docutils 0.20: https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-20-2023-05-04

Bugs fixed
----------

* 11418: Clean up remaining references to ``sphinx.setup_command``
following the removal of support for setuptools.
Patch by Willem Mulder.

7.0.0

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

Incompatible changes
--------------------

* 11359: Remove long-deprecated aliases for ``MecabSplitter`` and
``DefaultSplitter`` in ``sphinx.search.ja``.
* 11360: Remove deprecated ``make_old_id`` functions in domain object
description classes.
* 11363: Remove the Setuptools integration (``build_sphinx`` hook in
``setup.py``).
* 11364: Remove deprecated ``sphinx.ext.napoleon.iterators`` module.
* 11365: Remove support for the ``jsdump`` format in ``sphinx.search``.
* 11366: Make ``locale`` a required argument to
``sphinx.util.i18n.format_date()``.
* 11370: Remove deprecated ``sphinx.util.stemmer`` module.
* 11371: Remove deprecated ``sphinx.pycode.ast.parse()`` function.
* 11372: Remove deprecated ``sphinx.io.read_doc()`` function.
* 11373: Removed deprecated ``sphinx.util.get_matching_files()`` function.
* 11378: Remove deprecated ``sphinx.util.docutils.is_html5_writer_available()``
function.
* 11379: Make the ``env`` argument to ``Builder`` subclasses required.
* 11380: autosummary: Always emit grouped import exceptions.
* 11381: Remove deprecated ``style`` key for HTML templates.
* 11382: Remove deprecated ``sphinx.writers.latex.LaTeXTranslator.docclasses``
attribute.
* 11383: Remove deprecated ``sphinx.builders.html.html5_ready`` and
``sphinx.builders.html.HTMLTranslator`` attributes.
* 11385: Remove support for HTML 4 output.

6.2.1

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

Bugs fixed
----------

* 11355: Revert the default type of :confval:`nitpick_ignore` and
:confval:`nitpick_ignore_regex` to ``list``.

6.2.0

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

Dependencies
------------

* Require Docutils 0.18.1 or greater.

Incompatible changes
--------------------

* LaTeX: removal of some internal TeX ``\dimen`` registers (not previously
publicly documented) as per 5.1.0 code comments in ``sphinx.sty``:
``\sphinxverbatimsep``, ``\sphinxverbatimborder``, ``\sphinxshadowsep``,
``\sphinxshadowsize``, and ``\sphinxshadowrule``. (refs: 11105)
* Remove ``.egg`` support from pycode ``ModuleAnalyser``; Python eggs are a
now-obsolete binary distribution format
* 11089: Remove deprecated code in ``sphinx.builders.linkcheck``.
Patch by Daniel Eades
* Remove internal-only ``sphinx.locale.setlocale``

Deprecated
----------

* 11247: Deprecate the legacy ``intersphinx_mapping`` format
* ``sphinx.util.osutil.cd`` is deprecated in favour of ``contextlib.chdir``.

Features added
--------------

* 11277: :rst:dir:`autoproperty` allows the return type to be specified as
a type comment (e.g., `` type: () -> int``). Patch by Bénédikt Tran
* 10811: Autosummary: extend ``__all__`` to imported members for template rendering
when option ``autosummary_ignore_module_all`` is set to ``False``. Patch by
Clement Pinard
* 11147: Add a ``content_offset`` parameter to ``nested_parse_with_titles()``,
allowing for correct line numbers during nested parsing.
Patch by Jeremy Maitin-Shepard
* Update to Unicode CLDR 42
* Add a ``--jobs`` synonym for ``-j``. Patch by Hugo van Kemenade
* LaTeX: a command ``\sphinxbox`` for styling text elements with a (possibly
rounded) box, optional background color and shadow, has been added.
See :ref:`sphinxbox`. (refs: 11224)
* LaTeX: add ``\sphinxstylenotetitle``, ..., ``\sphinxstylewarningtitle``, ...,
for an extra layer of mark-up freeing up ``\sphinxstrong`` for other uses.
See :ref:`latex-macros`. (refs: 11267)
* LaTeX: :dudir:`note`, :dudir:`hint`, :dudir:`important` and :dudir:`tip` can
now each be styled as the other admonitions, i.e. possibly with a background
color, individual border widths and paddings, possibly rounded corners, and
optional shadow.  See :ref:`additionalcss`. (refs: 11234)
* LaTeX: admonitions and :dudir:`topic` (and
:dudir:`contents <table-of-contents>`) directives, and not only
:rst:dir:`code-block`, support ``box-decoration-break=slice``.
* LaTeX: let rounded boxes support up to 4 distinct border-widths (refs: 11243)
* LaTeX: new options ``noteTextColor``, ``noteTeXextras`` et al.
See :ref:`additionalcss`.
* LaTeX: support elliptical corners in rounded boxes. (refs: 11254)
* 11150: Include source location in highlighting warnings, when lexing fails.
Patch by Jeremy Maitin-Shepard
* 11281: Support for :confval:`imgmath_latex` ``= 'tectonic'`` or
``= 'xelatex'``.  Patch by Dimitar Dimitrov
* 11109, 9643: Add :confval:`python_display_short_literal_types` option for
condensed rendering of ``Literal`` types.

Bugs fixed
----------

* 11079: LaTeX: figures with align attribute may disappear and strangely impact
following lists
* 11093: LaTeX: fix "multiply-defined references" PDF build warnings when one or
more reST labels directly precede an :rst:dir:`py:module` or :rst:dir:`automodule`
directive. Patch by Bénédikt Tran (picnixz)
* 11110: LaTeX: Figures go missing from latex pdf if their files have the same
base name and they use a post transform.  Patch by aaron-cooper
* LaTeX: fix potential color leak from shadow to border of rounded boxes, if
shadow color is set but border color is not
* LaTeX: fix unintended 1pt upwards vertical shift of code blocks frames
respective to contents (when using rounded corners)
* 11235: LaTeX: added ``\color`` in topic (or admonition) contents may cause color
leak to the shadow and border at a page break
* 11264: LaTeX: missing space before colon after "Voir aussi" for :rst:dir:`seealso`
directive in French
* 11268: LaTeX: longtable with left alignment breaks out of current list
indentation context in PDF.  Thanks to picnixz.
* 11274: LaTeX: external links are not properly escaped for ``\sphinxupquote``
compatibility
* 11147: Fix source file/line number info in object description content and in
other uses of ``nested_parse_with_titles``.  Patch by Jeremy Maitin-Shepard.
* 11192: Restore correct parallel search index building.
Patch by Jeremy Maitin-Shepard
* Use the new Transifex ``tx`` client

Testing
-------

* Fail testing when any Python warnings are emitted
* Migrate remaining ``unittest.TestCase`` style test functions to pytest style
* Remove tests that rely on setuptools

6.1.3

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

Bugs fixed
----------

* 11116: Reverted to previous Sphinx 5 node copying method
* 11117: Reverted changes to parallel image processing from Sphinx 6.1.0
* 11119: Supress ``ValueError`` in the ``linkcheck`` builder

6.1.2

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

Bugs fixed
----------

* 11101: LaTeX: ``div.topic_padding`` key of sphinxsetup documented at 5.1.0 was
implemented with name ``topic_padding``
* 11099: LaTeX: ``shadowrule`` key of sphinxsetup causes PDF build to crash
since Sphinx 5.1.0
* 11096: LaTeX: ``shadowsize`` key of sphinxsetup causes PDF build to crash
since Sphinx 5.1.0
* 11095: LaTeX: shadow of :dudir:`topic` and :dudir:`contents <table-of-contents>`
boxes not in page margin since Sphinx 5.1.0
* 11100: Fix copying images when running under parallel mode.

6.1.1

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

Bugs fixed
----------

* 11091: Fix ``util.nodes.apply_source_workaround`` for ``literal_block`` nodes
with no source information in the node or the node's parents.

6.1.0

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

Dependencies
------------

* Adopted the `Ruff`_ code linter.

.. _Ruff: https://github.com/charliermarsh/ruff

Incompatible changes
--------------------

* 10979: gettext: Removed support for pluralisation in ``get_translation``.
This was unused and complicated other changes to ``sphinx.locale``.

Deprecated
----------

* ``sphinx.util`` functions:

* Renamed ``sphinx.util.typing.stringify()``
  to ``sphinx.util.typing.stringify_annotation()``
* Moved ``sphinx.util.xmlname_checker()``
  to ``sphinx.builders.epub3._XML_NAME_PATTERN``

Moved to ``sphinx.util.display``:

* ``sphinx.util.status_iterator``
* ``sphinx.util.display_chunk``
* ``sphinx.util.SkipProgressMessage``
* ``sphinx.util.progress_message``

Moved to ``sphinx.util.http_date``:

* ``sphinx.util.epoch_to_rfc1123``
* ``sphinx.util.rfc1123_to_epoch``

Moved to ``sphinx.util.exceptions``:

* ``sphinx.util.save_traceback``
* ``sphinx.util.format_exception_cut_frames``

Features added
--------------

* Cache doctrees in the build environment during the writing phase.
* Make all writing phase tasks support parallel execution.
* 11072: Use PEP 604 (``X | Y``) display conventions for ``typing.Optional``
and ``typing.Optional`` types within the Python domain and autodoc.
* 10700: autodoc: Document ``typing.NewType()`` types as classes rather than
'data'.
* Cache doctrees between the reading and writing phases.

Bugs fixed
----------

* 10962: HTML: Fix the multi-word key name lookup table.
* Fixed support for Python 3.12 alpha 3 (changes in the ``enum`` module).
* 11069: HTML Theme: Removed outdated "shortcut" link relation keyword.
* 10952: Properly terminate parallel processes on programme interuption.
* 10988: Speed up ``TocTree.resolve()`` through more efficient copying.
* 6744: LaTeX: support for seealso directive should be via an environment
to allow styling.
* 11074: LaTeX: Can't change sphinxnote to use sphinxheavybox starting with
5.1.0

6.0.1

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

Dependencies
------------

* Require Pygments 2.13 or later.

Bugs fixed
----------

* 10944: imgmath: Fix resolving image paths for files in nested folders.

6.0.0

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

Dependencies
------------

* 10468: Drop Python 3.6 support
* 10470: Drop Python 3.7, Docutils 0.14, Docutils 0.15, Docutils 0.16, and
Docutils 0.17 support. Patch by Adam Turner

Incompatible changes
--------------------

* 7405: Removed the jQuery and underscore.js JavaScript frameworks.

These frameworks are no longer be automatically injected into themes from
Sphinx 6.0. If you develop a theme or extension that uses the
``jQuery``, ``$``, or ``$u`` global objects, you need to update your
JavaScript to modern standards, or use the mitigation below.

The first option is to use the sphinxcontrib.jquery_ extension, which has been
developed by the Sphinx team and contributors. To use this, add
``sphinxcontrib.jquery`` to the ``extensions`` list in ``conf.py``, or call
``app.setup_extension("sphinxcontrib.jquery")`` if you develop a Sphinx theme
or extension.

The second option is to manually ensure that the frameworks are present.
To re-add jQuery and underscore.js, you will need to copy ``jquery.js`` and
``underscore.js`` from `the Sphinx repository`_ to your ``static`` directory,
and add the following to your ``layout.html``:

.. code-block:: html+jinja

  {%- block scripts %}
      <script src="{{ pathto('_static/jquery.js', resource=True) }}"></script>
      <script src="{{ pathto('_static/underscore.js', resource=True) }}"></script>
      {{ super() }}
  {%- endblock %}

.. _sphinxcontrib.jquery: https://github.com/sphinx-contrib/jquery/

Patch by Adam Turner.
* 10471, 10565: Removed deprecated APIs scheduled for removal in Sphinx 6.0. See
:ref:`dev-deprecated-apis` for details. Patch by Adam Turner.
* 10901: C Domain: Remove support for parsing pre-v3 style type directives and
roles. Also remove associated configuration variables ``c_allow_pre_v3`` and
``c_warn_on_allowed_pre_v3``. Patch by Adam Turner.

Features added
--------------

* 10924: LaTeX: adopt better looking defaults for tables and code-blocks.
See :confval:`latex_table_style` and the ``pre_border-radius`` and
``pre_background-TeXcolor`` :ref:`additionalcss` for the former defaults
and how to re-enact them if desired.

Bugs fixed
----------

* 10984: LaTeX: Document :confval:`latex_additional_files` behavior for files
with ``.tex`` extension.
Links

Update sphinx-click from 4.4.0 to 5.0.1.

Changelog
Links

Update pytest-order from 1.1.0 to 1.2.0.

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

Links

Update mypy from 1.6.1 to 1.7.0.

Changelog

1.7

We’ve just uploaded mypy 1.7 to the Python Package Index ([PyPI](https://pypi.org/project/mypy/)). Mypy is a static type checker for Python. This release includes new features, performance improvements and bug fixes. You can install it as follows:

 python3 -m pip install -U mypy

You can read the full documentation for this release on [Read the Docs](http://mypy.readthedocs.io).

Using TypedDict for `**kwargs` Typing

Mypy now has support for using `Unpack[...]` with a TypedDict type to annotate `**kwargs` arguments enabled by default. Example:


Or 'from typing_extensions import ...'
from typing import TypedDict, Unpack

class Person(TypedDict):
 name: str
 age: int

def foo(**kwargs: Unpack[Person]) -> None:
 ...

foo(name="x", age=1)   Ok
foo(name=1)   Error


The definition of `foo` above is equivalent to the one below, with keyword-only arguments `name` and `age`:


def foo(*, name: str, age: int) -> None:
 ...


Refer to [PEP 692](https://peps.python.org/pep-0692/) for more information. Note that unlike in the current version of the PEP, mypy always treats signatures with `Unpack[SomeTypedDict]` as equivalent to their expanded forms with explicit keyword arguments, and there aren't special type checking rules for TypedDict arguments.

This was contributed by Ivan Levkivskyi back in 2022 (PR [13471](https://github.com/python/mypy/pull/13471)).

TypeVarTuple Support Enabled (Experimental)

Mypy now has support for variadic generics (TypeVarTuple) enabled by default, as an experimental feature. Refer to [PEP 646](https://peps.python.org/pep-0646/) for the details.

TypeVarTuple was implemented by Jared Hance and Ivan Levkivskyi over several mypy releases, with help from Jukka Lehtosalo.

Changes included in this release:

* Fix handling of tuple type context with unpacks (Ivan Levkivskyi, PR [16444](https://github.com/python/mypy/pull/16444))
* Handle TypeVarTuples when checking overload constraints (robjhornby, PR [16428](https://github.com/python/mypy/pull/16428))
* Enable Unpack/TypeVarTuple support (Ivan Levkivskyi, PR [16354](https://github.com/python/mypy/pull/16354))
* Fix crash on unpack call special-casing (Ivan Levkivskyi, PR [16381](https://github.com/python/mypy/pull/16381))
* Some final touches for variadic types support (Ivan Levkivskyi, PR [16334](https://github.com/python/mypy/pull/16334))
* Support PEP-646 and PEP-692 in the same callable (Ivan Levkivskyi, PR [16294](https://github.com/python/mypy/pull/16294))
* Support new `*` syntax for variadic types (Ivan Levkivskyi, PR [16242](https://github.com/python/mypy/pull/16242))
* Correctly handle variadic instances with empty arguments (Ivan Levkivskyi, PR [16238](https://github.com/python/mypy/pull/16238))
* Correctly handle runtime type applications of variadic types (Ivan Levkivskyi, PR [16240](https://github.com/python/mypy/pull/16240))
* Support variadic tuple packing/unpacking (Ivan Levkivskyi, PR [16205](https://github.com/python/mypy/pull/16205))
* Better support for variadic calls and indexing (Ivan Levkivskyi, PR [16131](https://github.com/python/mypy/pull/16131))
* Subtyping and inference of user-defined variadic types (Ivan Levkivskyi, PR [16076](https://github.com/python/mypy/pull/16076))
* Complete type analysis of variadic types (Ivan Levkivskyi, PR [15991](https://github.com/python/mypy/pull/15991))

New Way of Installing Mypyc Dependencies

If you want to install package dependencies needed by mypyc (not just mypy), you should now install `mypy[mypyc]` instead of just `mypy`:


python3 -m pip install -U 'mypy[mypyc]'


Mypy has many more users than mypyc, so always installing mypyc dependencies would often bring unnecessary dependencies.

This change was contributed by Shantanu (PR [16229](https://github.com/python/mypy/pull/16229)).

New Rules for Re-exports

Mypy no longer considers an import such as `import a.b as b` as an explicit re-export. The old behavior was arguably inconsistent and surprising. This may impact some stub packages, such as older versions of `types-six`. You can change the import to `from a import b as b`, if treating the import as a re-export was intentional.

This change was contributed by Anders Kaseorg (PR [14086](https://github.com/python/mypy/pull/14086)).

Improved Type Inference

The new type inference algorithm that was recently introduced to mypy (but was not enabled by default) is now enabled by default. It improves type inference of calls to generic callables where an argument is also a generic callable, in particular. You can use `--old-type-inference` to disable the new behavior.

The new algorithm can (rarely) produce different error messages, different error codes, or errors reported on different lines. This is more likely in cases where generic types were used incorrectly.

The new type inference algorithm was contributed by Ivan Levkivskyi. PR [16345](https://github.com/python/mypy/pull/16345) enabled it by default.

Narrowing Tuple Types Using len()

Mypy now can narrow tuple types using `len()` checks. Example:


def f(t: tuple[int, int] | tuple[int, int, int]) -> None:
 if len(t) == 2:
     a, b = t    Ok
 ...


This feature was contributed by Ivan Levkivskyi (PR [16237](https://github.com/python/mypy/pull/16237)).

More Precise Tuple Lengths (Experimental)

Mypy supports experimental, more precise checking of tuple type lengths through `--enable-incomplete-feature=PreciseTupleTypes`. Refer to the [documentation](https://mypy.readthedocs.io/en/latest/command_line.html#enabling-incomplete-experimental-features) for more information.

More generally, we are planning to use `--enable-incomplete-feature` to introduce experimental features that would benefit from community feedback.

This feature was contributed by Ivan Levkivskyi (PR [16237](https://github.com/python/mypy/pull/16237)).

Mypy Changelog

We now maintain a [changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) in the mypy Git repository. It mirrors the contents of [mypy release blog posts](https://mypy-lang.blogspot.com/). We will continue to also publish release blog posts. In the future, release blog posts will be created based on the changelog near a release date.

This was contributed by Shantanu (PR [16280](https://github.com/python/mypy/pull/16280)).

Mypy Daemon Improvements

* Fix daemon crash caused by deleted submodule (Jukka Lehtosalo, PR [16370](https://github.com/python/mypy/pull/16370))
* Fix file reloading in dmypy with --export-types (Ivan Levkivskyi, PR [16359](https://github.com/python/mypy/pull/16359))
* Fix dmypy inspect on Windows (Ivan Levkivskyi, PR [16355](https://github.com/python/mypy/pull/16355))
* Fix dmypy inspect for namespace packages (Ivan Levkivskyi, PR [16357](https://github.com/python/mypy/pull/16357))
* Fix return type change to optional in generic function (Jukka Lehtosalo, PR [16342](https://github.com/python/mypy/pull/16342))
* Fix daemon false positives related to module-level `__getattr__` (Jukka Lehtosalo, PR [16292](https://github.com/python/mypy/pull/16292))
* Fix daemon crash related to ABCs (Jukka Lehtosalo, PR [16275](https://github.com/python/mypy/pull/16275))
* Stream dmypy output instead of dumping everything at the end (Valentin Stanciu, PR [16252](https://github.com/python/mypy/pull/16252))
* Make sure all dmypy errors are shown (Valentin Stanciu, PR [16250](https://github.com/python/mypy/pull/16250))

Mypyc Improvements

* Generate error on duplicate function definitions (Jukka Lehtosalo, PR [16309](https://github.com/python/mypy/pull/16309))
* Don't crash on unreachable statements (Jukka Lehtosalo, PR [16311](https://github.com/python/mypy/pull/16311))
* Avoid cyclic reference in nested functions (Jukka Lehtosalo, PR [16268](https://github.com/python/mypy/pull/16268))
* Fix direct `__dict__` access on inner functions in new Python (Shantanu, PR [16084](https://github.com/python/mypy/pull/16084))
* Make tuple packing and unpacking more efficient (Jukka Lehtosalo, PR [16022](https://github.com/python/mypy/pull/16022))

Improvements to Error Reporting

* Update starred expression error message to match CPython (Cibin Mathew, PR [16304](https://github.com/python/mypy/pull/16304))
* Fix error code of "Maybe you forgot to use await" note (Jelle Zijlstra, PR [16203](https://github.com/python/mypy/pull/16203))
* Use error code `[unsafe-overload]` for unsafe overloads, instead of `[misc]` (Randolf Scholz, PR [16061](https://github.com/python/mypy/pull/16061))
* Reword the error message related to void functions (Albert Tugushev, PR [15876](https://github.com/python/mypy/pull/15876))
* Represent bottom type as Never in messages (Shantanu, PR [15996](https://github.com/python/mypy/pull/15996))
* Add hint for AsyncIterator incompatible return type (Ilya Priven, PR [15883](https://github.com/python/mypy/pull/15883))
* Don't suggest stubs packages where the runtime package now ships with types (Alex Waygood, PR [16226](https://github.com/python/mypy/pull/16226))

Performance Improvements

* Speed up type argument checking (Jukka Lehtosalo, PR [16353](https://github.com/python/mypy/pull/16353))
* Add fast path for checking self types (Jukka Lehtosalo, PR [16352](https://github.com/python/mypy/pull/16352))
* Cache information about whether file is typeshed file (Jukka Lehtosalo, PR [16351](https://github.com/python/mypy/pull/16351))
* Skip expensive `repr()` in logging call when not needed (Jukka Lehtosalo, PR [16350](https://github.com/python/mypy/pull/16350))

Attrs and Dataclass Improvements

* `dataclass.replace`: Allow transformed classes (Ilya Priven, PR [15915](https://github.com/python/mypy/pull/15915))
* `dataclass.replace`: Fall through to typeshed signature (Ilya Priven, PR [15962](https://github.com/python/mypy/pull/15962))
* Document `dataclass_transform` behavior (Ilya Priven, PR [16017](https://github.com/python/mypy/pull/16017))
* `attrs`: Remove fields type check (Ilya Priven, PR [15983](https://github.com/python/mypy/pull/15983))
* `attrs`, `dataclasses`: Don't enforce slots when base class doesn't (Ilya Priven, PR [15976](https://github.com/python/mypy/pull/15976))
* Fix crash on dataclass field / property collision (Nikita Sobolev, PR [16147](https://github.com/python/mypy/pull/16147))

Stubgen Improvements

* Write stubs with utf-8 encoding (Jørgen Lind, PR [16329](https://github.com/python/mypy/pull/16329))
* Fix missing property setter in semantic analysis mode (Ali Hamdan, PR [16303](https://github.com/python/mypy/pull/16303))
* Unify C extension and pure python stub generators with object oriented design (Chad Dombrova, PR [15770](https://github.com/python/mypy/pull/15770))
* Multiple fixes to the generated imports (Ali Hamdan, PR [15624](https://github.com/python/mypy/pull/15624))
* Generate valid dataclass stubs (Ali Hamdan, PR [15625](https://github.com/python/mypy/pull/15625))

Fixes to Crashes

* Fix incremental mode crash on TypedDict in method (Ivan Levkivskyi, PR [16364](https://github.com/python/mypy/pull/16364))
* Fix crash on star unpack in TypedDict (Ivan Levkivskyi, PR [16116](https://github.com/python/mypy/pull/16116))
* Fix crash on malformed TypedDict in incremental mode (Ivan Levkivskyi, PR [16115](https://github.com/python/mypy/pull/16115))
* Fix crash with report generation on namespace packages (Shantanu, PR [16019](https://github.com/python/mypy/pull/16019))
* Fix crash when parsing error code config with typo (Shantanu, PR [16005](https://github.com/python/mypy/pull/16005))
* Fix `__post_init__()` internal error (Ilya Priven, PR [16080](https://github.com/python/mypy/pull/16080))

Documentation Updates

* Make it easier to copy commands from README (Hamir Mahal, PR [16133](https://github.com/python/mypy/pull/16133))
* Document and rename `[overload-overlap]` error code (Shantanu, PR [16074](https://github.com/python/mypy/pull/16074))
* Document `--force-uppercase-builtins` and `--force-union-syntax` (Nikita Sobolev, PR [16049](https://github.com/python/mypy/pull/16049))
* Document `force_union_syntax` and `force_uppercase_builtins` (Nikita Sobolev, PR [16048](https://github.com/python/mypy/pull/16048))
* Document we're not tracking relationships between symbols (Ilya Priven, PR [16018](https://github.com/python/mypy/pull/16018))

Other Notable Changes and Fixes

* Propagate narrowed types to lambda expressions (Ivan Levkivskyi, PR [16407](https://github.com/python/mypy/pull/16407))
* Avoid importing from `setuptools._distutils` (Shantanu, PR [16348](https://github.com/python/mypy/pull/16348))
* Delete recursive aliases flags (Ivan Levkivskyi, PR [16346](https://github.com/python/mypy/pull/16346))
* Properly use proper subtyping for callables (Ivan Levkivskyi, PR [16343](https://github.com/python/mypy/pull/16343))
* Use upper bound as inference fallback more consistently (Ivan Levkivskyi, PR [16344](https://github.com/python/mypy/pull/16344))
* Add `[unimported-reveal]` error code (Nikita Sobolev, PR [16271](https://github.com/python/mypy/pull/16271))
* Add `|=` and `|` operators support for `TypedDict` (Nikita Sobolev, PR [16249](https://github.com/python/mypy/pull/16249))
* Clarify variance convention for Parameters (Ivan Levkivskyi, PR [16302](https://github.com/python/mypy/pull/16302))
* Correctly recognize `typing_extensions.NewType` (Ganden Schaffner, PR [16298](https://github.com/python/mypy/pull/16298))
* Fix partially defined in the case of missing type maps (Shantanu, PR [15995](https://github.com/python/mypy/pull/15995))
* Use SPDX license identifier (Nikita Sobolev, PR [16230](https://github.com/python/mypy/pull/16230))
* Make `__qualname__` and `__module__` available in class bodies (Anthony Sottile, PR [16215](https://github.com/python/mypy/pull/16215))
* stubtest: Hint when args in stub need to be keyword-only (Alex Waygood, PR [16210](https://github.com/python/mypy/pull/16210))
* Tuple slice should not propagate fallback (Thomas Grainger, PR [16154](https://github.com/python/mypy/pull/16154))
* Fix cases of type object handling for overloads (Shantanu, PR [16168](https://github.com/python/mypy/pull/16168))
* Fix walrus interaction with empty collections (Ivan Levkivskyi, PR [16197](https://github.com/python/mypy/pull/16197))
* Use type variable bound when it appears as actual during inference (Ivan Levkivskyi, PR [16178](https://github.com/python/mypy/pull/16178))
* Use upper bounds as fallback solutions for inference (Ivan Levkivskyi, PR [16184](https://github.com/python/mypy/pull/16184))
* Special-case type inference of empty collections (Ivan Levkivskyi, PR [16122](https://github.com/python/mypy/pull/16122))
* Allow TypedDict unpacking in Callable types (Ivan Levkivskyi, PR [16083](https://github.com/python/mypy/pull/16083))
* Fix inference for overloaded `__call__` with generic self (Shantanu, PR [16053](https://github.com/python/mypy/pull/16053))
* Call dynamic class hook on generic classes (Petter Friberg, PR [16052](https://github.com/python/mypy/pull/16052))
* Preserve implicitly exported types via attribute access (Shantanu, PR [16129](https://github.com/python/mypy/pull/16129))
* Fix a stubtest bug (Alex Waygood)
* Fix `tuple[Any, ...]` subtyping (Shantanu, PR [16108](https://github.com/python/mypy/pull/16108))
* Lenient handling of trivial Callable suffixes (Ivan Levkivskyi, PR [15913](https://github.com/python/mypy/pull/15913))
* Add `add_overloaded_method_to_class` helper for plugins (Nikita Sobolev, PR [16038](https://github.com/python/mypy/pull/16038))
* Bundle `misc/proper_plugin.py` as a part of `mypy` (Nikita Sobolev, PR [16036](https://github.com/python/mypy/pull/16036))
* Fix `case Any()` in match statement (DS/Charlie, PR [14479](https://github.com/python/mypy/pull/14479))
* Make iterable logic more consistent (Shantanu, PR [16006](https://github.com/python/mypy/pull/16006))
* Fix inference for properties with `__call__` (Shantanu, PR [15926](https://github.com/python/mypy/pull/15926))

Typeshed Updates

Please see [git log](https://github.com/python/typeshed/commits/main?after=4a854366e03dee700109f8e758a08b2457ea2f51+0&branch=main&path=stdlib) for full list of standard library typeshed stub changes.

Acknowledgements

Thanks to all mypy contributors who contributed to this release:

* Albert Tugushev
* Alex Waygood
* Ali Hamdan
* Anders Kaseorg
* Anthony Sottile
* Chad Dombrova
* Cibin Mathew
* dinaldoap
* DS/Charlie
* Eli Schwartz
* Ganden Schaffner
* Hamir Mahal
* Ihor
* Ikko Eltociear Ashimine
* Ilya Priven
* Ivan Levkivskyi
* Jelle Zijlstra
* Jukka Lehtosalo
* Jørgen Lind
* KotlinIsland
* Matt Bogosian
* Nikita Sobolev
* Petter Friberg
* Randolf Scholz
* Shantanu
* Thomas Grainger
* Valentin Stanciu

I’d also like to thank my employer, Dropbox, for supporting mypy development.

Posted by Jukka Lehtosalo
Links

Update elasticsearch from 8.10.1 to 8.11.0.

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

Links

Copy link

codecov bot commented Nov 20, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (d29afba) 87.33% compared to head (b57be44) 87.32%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8654      +/-   ##
==========================================
- Coverage   87.33%   87.32%   -0.02%     
==========================================
  Files         148      148              
  Lines       18515    18515              
  Branches     3163     3163              
==========================================
- Hits        16170    16168       -2     
- Misses       2060     2061       +1     
- Partials      285      286       +1     
Flag Coverage Δ
unittests 87.29% <ø> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@auvipy auvipy self-requested a review November 20, 2023 16:41
@auvipy auvipy closed this Nov 21, 2023
@auvipy auvipy removed their request for review November 21, 2023 08:13
@Nusnus Nusnus deleted the pyup-scheduled-update-2023-11-20 branch July 23, 2024 14:08
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.

None yet

2 participants