Skip to content

Scheduled monthly dependency update for October#164

Closed
pyup-bot wants to merge 28 commits intodevelopfrom
pyup-scheduled-update-2025-10-01
Closed

Scheduled monthly dependency update for October#164
pyup-bot wants to merge 28 commits intodevelopfrom
pyup-scheduled-update-2025-10-01

Conversation

@pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Oct 1, 2025

Update cffi from 1.17.1 to 2.0.0.

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

Links

Update cryptography from 45.0.5 to 46.0.2.

Changelog

46.0.2

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

* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.4.

.. _v46-0-1:

46.0.1

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

* Fixed an issue where users installing via ``pip`` on Python 3.14 development
versions would not properly install a dependency.
* Fixed an issue building the free-threaded macOS 3.14 wheels.

.. _v46-0-0:

46.0.0

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

* **BACKWARDS INCOMPATIBLE:** Support for Python 3.7 has been removed.
* Support for OpenSSL < 3.0 is deprecated and will be removed in the next
release.
* Support for ``x86_64`` macOS (including publishing wheels) is deprecated
and will be removed in two releases. We will switch to publishing an
``arm64`` only wheel for macOS.
* Support for 32-bit Windows (including publishing wheels) is deprecated
and will be removed in two releases. Users should move to a 64-bit
Python installation.
* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.3.
* We now build ``ppc64le`` ``manylinux`` wheels and publish them to PyPI.
* We now build ``win_arm64`` (Windows on Arm) wheels and publish them to PyPI.
* Added support for free-threaded Python 3.14.
* Removed the deprecated ``get_attribute_for_oid`` method on
:class:`~cryptography.x509.CertificateSigningRequest`. Users should use
:meth:`~cryptography.x509.Attributes.get_attribute_for_oid` instead.
* Removed the deprecated ``CAST5``, ``SEED``, ``IDEA``, and ``Blowfish``
classes from the cipher module. These are still available in
:doc:`/hazmat/decrepit/index`.
* In X.509, when performing a PSS signature with a SHA-3 hash, it is now
encoded with the official NIST SHA3 OID.

.. _v45-0-7:

45.0.7

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

* Added a function to support an upcoming ``pyOpenSSL`` release.

.. _v45-0-6:

45.0.6

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

* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.

.. _v45-0-5:
Links

Update grpcio from 1.73.1 to 1.75.1.

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

Links

Update protobuf from 6.31.1 to 6.32.1.

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

Links

Update pycparser from 2.22 to 2.23.

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

Links

Update certifi from 2025.6.15 to 2025.8.3.

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

Links

Update coverage from 7.9.2 to 7.10.7.

Changelog

7.10.7

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

- Performance: with branch coverage in large files, generating HTML, JSON, or
LCOV reports could take far too long due to some quadratic behavior when
creating the function and class index pages.  This is now fixed, closing
`issue 2048`_.  Thanks to Daniel Diniz for help diagnosing the problem.

- Most warnings and a few errors now have links to a page in the docs
explaining the specific message.  Closes `issue 1921`_.

.. _issue 1921: https://github.com/nedbat/coveragepy/issues/1921
.. _issue 2048: https://github.com/nedbat/coveragepy/issues/2048


.. _changes_7-10-6:

7.10.6

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

- Fix: ``source`` directories were not properly communicated to subprocesses
that ran in different directories, as reported in `issue 1499`_.  This is now
fixed.

- Performance: `Alex Gaynor continues fine-tuning <pull 2038_>`_ the speed of
combination, especially with many contexts.

.. _issue 1499: https://github.com/nedbat/coveragepy/issues/1499
.. _pull 2038: https://github.com/nedbat/coveragepy/pull/2038


.. _changes_7-10-5:

7.10.5

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

- Big speed improvements for ``coverage combine``: it's now about twice as
fast! Huge thanks to Alex Gaynor for pull requests `2032 <pull 2032_>`_,
`2033 <pull 2033_>`_, and `2034 <pull 2034_>`_.

.. _pull 2032: https://github.com/nedbat/coveragepy/pull/2032
.. _pull 2033: https://github.com/nedbat/coveragepy/pull/2033
.. _pull 2034: https://github.com/nedbat/coveragepy/pull/2034


.. _changes_7-10-4:

7.10.4

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

- Added ``patch = fork`` for times when the built-in forking support is
insufficient.

- Fix: ``patch = execv`` also inherits the entire coverage configuration now.


.. _changes_7-10-3:

7.10.3

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

- Fixes for ``patch = subprocess``:

- If subprocesses spawned yet more subprocesses simultaneously, some coverage
 could be missed.  This is now fixed, closing `issue 2024`_.

- If subprocesses were created in other directories, their data files were
 stranded there and not combined into the totals, as described in `issue
 2025`_.  This is now fixed.

- On Windows (or maybe only some Windows?) the patch would fail with a
 ``ModuleNotFound`` error trying to import coverage.  This is now fixed,
 closing `issue 2022`_.

- Originally only options set in the coverage configuration file would apply
 to subprocesses.  Options set on the ``coverage run`` command line (such as
 ``--branch``) wouldn't be communicated to the subprocesses.  This could
 lead to combining failures, as described in `issue 2021`_. Now the entire
 configuration is used in subprocesses, regardless of its origin.

- Added ``debug=patch`` to help diagnose problems.

- Fix: really close all SQLite databases, even in-memory ones. Closes `issue
2017`_.

.. _issue 2017: https://github.com/nedbat/coveragepy/issues/2017
.. _issue 2021: https://github.com/nedbat/coveragepy/issues/2021
.. _issue 2022: https://github.com/nedbat/coveragepy/issues/2022
.. _issue 2024: https://github.com/nedbat/coveragepy/issues/2024
.. _issue 2025: https://github.com/nedbat/coveragepy/issues/2025


.. _changes_7-10-2:

7.10.2

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

- Fix: some code with NOP bytecodes could report missing branches that are
actually executed. This is now fixed, closing `issue 1999`_. Python 3.9
still shows the problem.

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


.. _changes_7-10-1:

7.10.1

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

- Fix: the exclusion for ``if TYPE_CHECKING:`` was wrong: it marked the branch
as partial, but it should have been a line exclusion so the entire clause
would be excluded. Improves `issue 831`_.

- Fix: changed where .pth files are written for ``patch = subprocess``, closing
`issue 2006`_.

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


.. _changes_7-10-0:

7.10.0

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

- A new configuration option: ":ref:`config_run_patch`" specifies named patches
to work around some limitations in coverage measurement.  These patches are
available:

- ``patch = _exit`` lets coverage save its data even when :func:`os._exit()
 <python:os._exit>` is used to abruptly end the process.  This closes
 long-standing `issue 310`_ as well as its duplicates: `issue 312`_, `issue
 1673`_, `issue 1845`_, and `issue 1941`_.

- ``patch = subprocess`` measures coverage in Python subprocesses created
 with :mod:`subprocess`, :func:`os.system`, or one of the :func:`execv
 <python:os.execl>` or :func:`spawnv <python:os.spawnl>` family of
 functions. Closes old `issue 367`_, its duplicate `issue 378`_ and old
 `issue 689`_.

- ``patch = execv`` adjusts the :func:`execv <python:os.execl>` family of
 functions to save coverage data before ending the current program and
 starting the next. Not available on Windows. Closes `issue 43`_ after 15
 years!

- The HTML report now dimly colors subsequent lines in multi-line statements.
They used to have no color.  This gives a better indication of the amount of
code missing in the report.  Closes `issue 1308`_.

- Two new exclusion patterns are part of the defaults: ``...`` is automatically
excluded as a line and ``if TYPE_CHECKING:`` is excluded as a branch.  Closes
`issue 831`_.

- A new command-line option: ``--save-signal=USR1`` specifies a signal that
coverage.py will listen for.  When the signal is sent, the coverage data will
be saved.  This makes it possible to save data from within long-running
processes.  Thanks, `Arkady Gilinsky <pull 1998_>`_.

- A new configuration option: ":ref:`config_report_partial_also`" is a list of
regexes to add as pragmas for partial branches.  This parallels the
":ref:`config_report_exclude_also`" setting for adding line exclusion
patterns.

- A few file path configuration settings didn't allow for tilde expansion:
:ref:`config_json_output`, :ref:`config_lcov_output` and
:ref:`config_run_debug_file`.  This is now fixed.

- Wheels are included for 3.14 now that 3.14 rc1 is available.

- We no longer ship a PyPy-specific wheel. PyPy will install the pure-Python
wheel.  Closes `issue 2001`_.

- In the very unusual situation of not having a current frame, coverage no
longer crashes when using the sysmon core, fixing `issue 2005`_.

.. _issue 43: https://github.com/nedbat/coveragepy/issues/43
.. _issue 310: https://github.com/nedbat/coveragepy/issues/310
.. _issue 312: https://github.com/nedbat/coveragepy/issues/312
.. _issue 367: https://github.com/nedbat/coveragepy/issues/367
.. _issue 378: https://github.com/nedbat/coveragepy/issues/378
.. _issue 689: https://github.com/nedbat/coveragepy/issues/689
.. _issue 831: https://github.com/nedbat/coveragepy/issues/831
.. _issue 1308: https://github.com/nedbat/coveragepy/issues/1308
.. _issue 1673: https://github.com/nedbat/coveragepy/issues/1673
.. _issue 1845: https://github.com/nedbat/coveragepy/issues/1845
.. _issue 1941: https://github.com/nedbat/coveragepy/issues/1941
.. _pull 1998: https://github.com/nedbat/coveragepy/pull/1998
.. _issue 2001: https://github.com/nedbat/coveragepy/issues/2001
.. _issue 2005: https://github.com/nedbat/coveragepy/issues/2005

.. _changes_7-9-2:
Links

Update distlib from 0.3.9 to 0.4.0.

Changelog

0.4.0

~~~~~

Released: 2025-07-17

- markers

 - Add the ``interpret_parsed`` function.

- wheel

 - Fix 238: Add build tag to wheel metadata if specified.

 - Fix 243: Update to support free-threading version of Python (3.13t).

 - Fix 246: Support subdirectories in the dist-info directory. Thanks to Pieter P for the patch.

 - Fix 248: Fix path normalisation issue caused by the fix for 246.

 - Move import in script wrapper to "if __name__ == 'main'" clause.

- tests

 - Fix 245: Skip test_package_data if a SKIP_EXT_PACKAGE_DATA environment variable is present.
Links

Update docutils from 0.21.2 to 0.22.2.

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

Links

Update filelock from 3.18.0 to 3.19.1.

Changelog

3.19.1

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* add 3.14t (free threading) to matrix by paultiq in https://github.com/tox-dev/filelock/pull/433
* Increase test coverage by paultiq in https://github.com/tox-dev/filelock/pull/434

New Contributors
* paultiq made their first contribution in https://github.com/tox-dev/filelock/pull/433

**Full Changelog**: https://github.com/tox-dev/filelock/compare/3.19.0...3.19.1

3.19.0

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* Add support for 3.14 by gaborbernat in https://github.com/tox-dev/filelock/pull/432


**Full Changelog**: https://github.com/tox-dev/filelock/compare/3.18.0...3.19.0
Links

Update grpcio-tools from 1.73.1 to 1.75.1.

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

Links

Update markupsafe from 3.0.2 to 3.0.3.

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

Links

Update more-itertools from 10.7.0 to 10.8.0.

Changelog

10.8.0

------

* New functions:
 * :func:`derangements` was added (thanks to debruijn)
 * :func:`argmin` and :func:`argmax` were added (thanks to rhettinger)
 * :func:`running_median` was added (thanks to rhettinger)
 * :func:`extract` was added (thanks to rhettinger)
 * :func:`interleave_randomly` was added (thanks to ktbarrett)

* Changes to existing functions:
 * The type hints and docstring for :func:`batched` were improved (thanks to qobilidop and inventshah)
 * The memory usage of :func:`islice_extended` was reduced (thanks to ben42code)
 * The performance of :func:`sample` and :func:`consecutive_groups`, :func:`dft`, :func:`idft`, :func:`map_if`, :func:`count_cycle`, and :func:`tail` were improved (thanks to rhettinger) 
 * The performance of :func:`before_and_after`, :func:`mark_ends`, and :func:`interleave_longest` were improved (thanks to pochmann3) 
 * :func:`nth_prime` now accepts an ``approximate`` keyword. When set to ``True``, a faster but less accurate method is used to return a result. (thanks to rhettinger)
 * :func:`last` now works when its input has ``__reversed__`` set to ``None`` (thanks to inventshah)
 * The :func:`unzip` function was simplified (thanks to pochmann3)
 * The :func:`reshape` function now accepts ``shape`` values that represent multidimensional matrices (thanks to rhettinger)

* Other changes:
 * An issue with dark themes and documentation display was fixed (thanks to pochmann3, moreati, and pradyunsg)
 * Variable names in several functions were improved (thanks to rhettinger)
 * The docstrings for :func:`dft`, :func:`idft`, :func:`minmax`, :func:`sample`, and :func:`multinomial` were improved (thanks to rhettinger)
 * Packaging and package index metadata were improved (thanks to cdce8p)
 * Several aspects of the documentation were improved (thanks to rhettinger, saadmanrafat)
 * The Makefile now refers to `python` instead of `python3` (thanks to ktbarrett)
 * Test coverage was improved (thanks to rhettinger)
 * Python 3.14 is now tested by GitHub Actions
Links

Update mypy from 1.16.1 to 1.18.2.

Changelog

1.18.2

- Fix crash on recursive alias (Ivan Levkivskyi, PR [19845](https://github.com/python/mypy/pull/19845))
- Add additional guidance for stubtest errors when runtime is `object.__init__` (Stephen Morton, PR [19733](https://github.com/python/mypy/pull/19733))
- Fix handling of None values in f-string expressions in mypyc (BobTheBuidler, PR [19846](https://github.com/python/mypy/pull/19846))

Acknowledgements

Thanks to all mypy contributors who contributed to this release:

- Ali Hamdan
- Anthony Sottile
- BobTheBuidler
- Brian Schubert
- Chainfire
- Charlie Denton
- Christoph Tyralla
- CoolCat467
- Daniel Hnyk
- Emily
- Emma Smith
- Ethan Sarp
- Ivan Levkivskyi
- Jahongir Qurbonov
- Jelle Zijlstra
- Joren Hammudoglu
- Jukka Lehtosalo
- Marc Mueller
- Omer Hadari
- Piotr Sawicki
- PrinceNaroliya
- Randolf Scholz
- Robsdedude
- Saul Shanabrook
- Shantanu
- Stanislav Terliakov
- Stephen Morton
- wyattscarpenter

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

1.18.1

compared to 1.17 when type checking mypy itself. In extreme cases, the improvement
can be 10x or higher. The list below is an overview of the various mypy optimizations.
Many mypyc improvements (discussed in a separate section below) also improve performance.

Type caching optimizations have a small risk of causing regressions. When
reporting issues with unexpected inferred types, please also check if
`--disable-expression-cache` will work around the issue, as it turns off some of
these optimizations.

- Improve self check performance by 1.8% (Jukka Lehtosalo, PR [19768](https://github.com/python/mypy/pull/19768), [19769](https://github.com/python/mypy/pull/19769), [19770](https://github.com/python/mypy/pull/19770))
- Optimize fixed-format deserialization (Ivan Levkivskyi, PR [19765](https://github.com/python/mypy/pull/19765))
- Use macros to optimize fixed-format deserialization (Ivan Levkivskyi, PR [19757](https://github.com/python/mypy/pull/19757))
- Two additional micro‑optimizations (Ivan Levkivskyi, PR [19627](https://github.com/python/mypy/pull/19627))
- Another set of micro‑optimizations (Ivan Levkivskyi, PR [19633](https://github.com/python/mypy/pull/19633))
- Cache common types (Ivan Levkivskyi, PR [19621](https://github.com/python/mypy/pull/19621))
- Skip more method bodies in third‑party libraries for speed (Ivan Levkivskyi, PR [19586](https://github.com/python/mypy/pull/19586))
- Simplify the representation of callable types (Ivan Levkivskyi, PR [19580](https://github.com/python/mypy/pull/19580))
- Add cache for types of some expressions (Ivan Levkivskyi, PR [19505](https://github.com/python/mypy/pull/19505))
- Use cache for dictionary expressions (Ivan Levkivskyi, PR [19536](https://github.com/python/mypy/pull/19536))
- Use cache for binary operations (Ivan Levkivskyi, PR [19523](https://github.com/python/mypy/pull/19523))
- Cache types of type objects (Ivan Levkivskyi, PR [19514](https://github.com/python/mypy/pull/19514))
- Avoid duplicate work when checking boolean operations (Ivan Levkivskyi, PR [19515](https://github.com/python/mypy/pull/19515))
- Optimize generic inference passes (Ivan Levkivskyi, PR [19501](https://github.com/python/mypy/pull/19501))
- Speed up the default plugin (Jukka Lehtosalo, PRs [19385](https://github.com/python/mypy/pull/19385) and [19462](https://github.com/python/mypy/pull/19462))
- Remove nested imports from the default plugin (Ivan Levkivskyi, PR [19388](https://github.com/python/mypy/pull/19388))
- Micro‑optimize type expansion (Jukka Lehtosalo, PR [19461](https://github.com/python/mypy/pull/19461))
- Micro‑optimize type indirection (Jukka Lehtosalo, PR [19460](https://github.com/python/mypy/pull/19460))
- Micro‑optimize the plugin framework (Jukka Lehtosalo, PR [19464](https://github.com/python/mypy/pull/19464))
- Avoid temporary set creation in subtype checking (Jukka Lehtosalo, PR [19463](https://github.com/python/mypy/pull/19463))
- Subtype checking micro‑optimization (Jukka Lehtosalo, PR [19384](https://github.com/python/mypy/pull/19384))
- Return early where possible in subtype check (Stanislav Terliakov, PR [19400](https://github.com/python/mypy/pull/19400))
- Deduplicate some types before joining (Stanislav Terliakov, PR [19409](https://github.com/python/mypy/pull/19409))
- Speed up type checking by caching argument inference context (Jukka Lehtosalo, PR [19323](https://github.com/python/mypy/pull/19323))
- Optimize binding method self argument type and deprecation checks (Ivan Levkivskyi, PR [19556](https://github.com/python/mypy/pull/19556))
- Keep trivial instance types/aliases during expansion (Ivan Levkivskyi, PR [19543](https://github.com/python/mypy/pull/19543))

Fixed‑Format Cache (Experimental)

Mypy now supports a new cache format used for faster incremental builds. It makes
incremental builds up to twice as fast. The feature is experimental and
currently only supported when using a compiled version of mypy. Use `--fixed-format-cache`
to enable the new format, or `fixed_format_cache = True` in a configuration file.

We plan to enable this by default in a future mypy release, and we'll eventually
deprecate and remove support for the original JSON-based format.

Unlike the JSON-based cache format, the new binary format is currently
not easy to parse and inspect by mypy users. We are planning to provide a tool to
convert fixed-format cache files to JSON, but details of the output JSON may be
different from the current JSON format. If you rely on being able to inspect
mypy cache files, we recommend creating a GitHub issue and explaining your use
case, so that we can more likely provide support for it. (Using
`MypyFile.read(binary_data)` to inspect cache data may be sufficient to support
some use cases.)

This feature was contributed by Ivan Levkivskyi (PR [19668](https://github.com/python/mypy/pull/19668), [19735](https://github.com/python/mypy/pull/19735), [19750](https://github.com/python/mypy/pull/19750), [19681](https://github.com/python/mypy/pull/19681), [19752](https://github.com/python/mypy/pull/19752), [19815](https://github.com/python/mypy/pull/19815)).

Flexible Variable Definitions: Update

1.17.1

* Retain `None` as constraints bottom if no bottoms were provided (Stanislav Terliakov, PR [19485](https://github.com/python/mypy/pull/19485))
* Fix "ignored exception in `hasattr`" in dmypy (Stanislav Terliakov, PR [19428](https://github.com/python/mypy/pull/19428))
* Prevent a crash when InitVar is redefined with a method in a subclass (Stanislav Terliakov, PR [19453](https://github.com/python/mypy/pull/19453))

Acknowledgements

Thanks to all mypy contributors who contributed to this release:

* Alexey Makridenko
* Brian Schubert
* Chad Dombrova
* Chainfire
* Charlie Denton
* Charulata
* Christoph Tyralla
* CoolCat467
* Donal Burns
* Guy Wilson
* Ivan Levkivskyi
* johnthagen
* Jukka Lehtosalo
* Łukasz Kwieciński
* Marc Mueller
* Michael J. Sullivan
* Mikhail Golubev
* Sebastian Rittau
* Shantanu
* Stanislav Terliakov
* wyattscarpenter

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

1.17

We’ve just uploaded mypy 1.17 to the Python Package Index ([PyPI](https://pypi.org/project/mypy/)).
Mypy is a static type checker for Python. This release includes new features 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).

Optionally Check That Match Is Exhaustive

Mypy can now optionally generate an error if a match statement does not
match exhaustively, without having to use `assert_never(...)`. Enable
this by using `--enable-error-code exhaustive-match`.

Example:

python
mypy: enable-error-code=exhaustive-match

import enum

class Color(enum.Enum):
 RED = 1
 BLUE = 2

def show_color(val: Color) -> None:
  error: Unhandled case for values of type "Literal[Color.BLUE]"
 match val:
     case Color.RED:
         print("red")


This feature was contributed by Donal Burns (PR [19144](https://github.com/python/mypy/pull/19144)).

Further Improvements to Attribute Resolution

This release includes additional improvements to how attribute types
and kinds are resolved. These fix many bugs and overall improve consistency.

* Handle corner case: protocol/class variable/descriptor (Ivan Levkivskyi, PR [19277](https://github.com/python/mypy/pull/19277))
* Fix a few inconsistencies in protocol/type object interactions (Ivan Levkivskyi, PR [19267](https://github.com/python/mypy/pull/19267))
* Refactor/unify access to static attributes (Ivan Levkivskyi, PR [19254](https://github.com/python/mypy/pull/19254))
* Remove inconsistencies in operator handling (Ivan Levkivskyi, PR [19250](https://github.com/python/mypy/pull/19250))
* Make protocol subtyping more consistent (Ivan Levkivskyi, PR [18943](https://github.com/python/mypy/pull/18943))

Fixes to Nondeterministic Type Checking

Previous mypy versions could infer different types for certain expressions
across different runs (typically depending on which order certain types
were processed, and this order was nondeterministic). This release includes
fixes to several such issues.

* Fix nondeterministic type checking by making join with explicit Protocol and type promotion commute (Shantanu, PR [18402](https://github.com/python/mypy/pull/18402))
* Fix nondeterministic type checking caused by nonassociative of None joins (Shantanu, PR [19158](https://github.com/python/mypy/pull/19158))
* Fix nondeterministic type checking caused by nonassociativity of joins (Shantanu, PR [19147](https://github.com/python/mypy/pull/19147))
* Fix nondeterministic type checking by making join between `type` and TypeVar commute (Shantanu, PR [19149](https://github.com/python/mypy/pull/19149))

Remove Support for Targeting Python 3.8

Mypy now requires `--python-version 3.9` or greater. Support for targeting Python 3.8 is
fully removed now. Since 3.8 is an unsupported version, mypy will default to the oldest
supported version (currently 3.9) if you still try to target 3.8.

This change is necessary because typeshed stopped supporting Python 3.8 after it
reached its End of Life in October 2024.

Contributed by Marc Mueller
(PR [19157](https://github.com/python/mypy/pull/19157), PR [19162](https://github.com/python/mypy/pull/19162)).

Initial Support for Python 3.14

Mypy is now tested on 3.14 and mypyc works with 3.14.0b3 and later.
Binary wheels compiled with mypyc for mypy itself will be available for 3.14
some time after 3.14.0rc1 has been released.

Note that not all features are supported just yet.

Contributed by Marc Mueller (PR [19164](https://github.com/python/mypy/pull/19164))

Deprecated Flag: `--force-uppercase-builtins`

Mypy only supports Python 3.9+. The `--force-uppercase-builtins` flag is now
deprecated as unnecessary, and a no-op. It will be removed in a future version.

Contributed by Marc Mueller (PR [19176](https://github.com/python/mypy/pull/19176))

Mypyc: Improvements to Generators and Async Functions

This release includes both performance improvements and bug fixes related
to generators and async functions (these share many implementation details).

* Fix exception swallowing in async try/finally blocks with await (Chainfire, PR [19353](https://github.com/python/mypy/pull/19353))
* Fix AttributeError in async try/finally with mixed return paths (Chainfire, PR [19361](https://github.com/python/mypy/pull/19361))
* Make generated generator helper method internal (Jukka Lehtosalo, PR [19268](https://github.com/python/mypy/pull/19268))
* Free coroutine after await encounters StopIteration (Jukka Lehtosalo, PR [19231](https://github.com/python/mypy/pull/19231))
* Use non-tagged integer for generator label (Jukka Lehtosalo, PR [19218](https://github.com/python/mypy/pull/19218))
* Merge generator and environment classes in simple cases (Jukka Lehtosalo, PR [19207](https://github.com/python/mypy/pull/19207))

Mypyc: Partial, Unsafe Support for Free Threading

Mypyc has minimal, quite memory-unsafe support for the free threaded
builds of 3.14. It is also only lightly tested. Bug reports and experience
reports are welcome!

Here are some of the major limitations:
* Free threading only works when compiling a single module at a time.
* If there is concurrent access to an object while another thread is mutating the same
object, it's possible to encounter segfaults and memory corruption.
* There are no efficient native primitives for thread synthronization, though the
regular `threading` module can be used.
* Some workloads don't scale well to multiple threads for no clear reason.

Related PRs:

* Enable partial, unsafe support for free-threading (Jukka Lehtosalo, PR [19167](https://github.com/python/mypy/pull/19167))
* Fix incref/decref on free-threaded builds (Jukka Lehtosalo, PR [19127](https://github.com/python/mypy/pull/19127))

Other Mypyc Fixes and Improvements

* Derive .c file name from full module name if using multi_file (Jukka Lehtosalo, PR [19278](https://github.com/python/mypy/pull/19278))
* Support overriding the group name used in output files (Jukka Lehtosalo, PR [19272](https://github.com/python/mypy/pull/19272))
* Add note about using non-native class to subclass built-in types (Jukka Lehtosalo, PR [19236](https://github.com/python/mypy/pull/19236))
* Make some generated classes implicitly final (Jukka Lehtosalo, PR [19235](https://github.com/python/mypy/pull/19235))
* Don't simplify module prefixes if using separate compilation (Jukka Lehtosalo, PR [19206](https://github.com/python/mypy/pull/19206))

Stubgen Improvements

* Add import for `types` in `__exit__` method signature (Alexey Makridenko, PR [19120](https://github.com/python/mypy/pull/19120))
* Add support for including class and property docstrings (Chad Dombrova, PR [17964](https://github.com/python/mypy/pull/17964))
* Don't generate `Incomplete | None = None` argument annotation (Sebastian Rittau, PR [19097](https://github.com/python/mypy/pull/19097))
* Support several more constructs in stubgen's alias printer (Stanislav Terliakov, PR [18888](https://github.com/python/mypy/pull/18888))

Miscellaneous Fixes and Improvements

* Combine the revealed types of multiple iteration steps in a more robust manner (Christoph Tyralla, PR [19324](https://github.com/python/mypy/pull/19324))
* Improve the handling of "iteration dependent" errors and notes in finally clauses (Christoph Tyralla, PR [19270](https://github.com/python/mypy/pull/19270))
* Lessen dmypy suggest path limitations for Windows machines (CoolCat467, PR [19337](https://github.com/python/mypy/pull/19337))
* Fix type ignore comments erroneously marked as unused by dmypy (Charlie Denton, PR [15043](https://github.com/python/mypy/pull/15043))
* Fix misspelled `exhaustive-match` error code (johnthagen, PR [19276](https://github.com/python/mypy/pull/19276))
* Fix missing error context for unpacking assignment involving star expression (Brian Schubert, PR [19258](https://github.com/python/mypy/pull/19258))
* Fix and simplify error de-duplication (Ivan Levkivskyi, PR [19247](https://github.com/python/mypy/pull/19247))
* Disallow `ClassVar` in type aliases (Brian Schubert, PR [19263](https://github.com/python/mypy/pull/19263))
* Add script that prints list of compiled files when compiling mypy (Jukka Lehtosalo, PR [19260](https://github.com/python/mypy/pull/19260))
* Fix help message url for "None and Optional handling" section (Guy Wilson, PR [19252](https://github.com/python/mypy/pull/19252))
* Display fully qualified name of imported base classes in errors about incompatible overrides (Mikhail Golubev, PR [19115](https://github.com/python/mypy/pull/19115))
* Avoid false `unreachable`, `redundant-expr`, and `redundant-casts` warnings in loops more robustly and efficiently, and avoid multiple `revealed type` notes for the same line (Christoph Tyralla, PR [19118](https://github.com/python/mypy/pull/19118))
* Fix type extraction from `isinstance` checks (Stanislav Terliakov, PR [19223](https://github.com/python/mypy/pull/19223))
* Erase stray type variables in `functools.partial` (Stanislav Terliakov, PR [18954](https://github.com/python/mypy/pull/18954))
* Make inferring condition value recognize the whole truth table (Stanislav Terliakov, PR [18944](https://github.com/python/mypy/pull/18944))
* Support type aliases, `NamedTuple` and `TypedDict` in constrained TypeVar defaults (Stanislav Terliakov, PR [18884](https://github.com/python/mypy/pull/18884))
* Move dataclass `kw_only` fields to the end of the signature (Stanislav Terliakov, PR [19018](https://github.com/python/mypy/pull/19018))
* Provide a better fallback value for the `python_version` option (Marc Mueller, PR [19162](https://github.com/python/mypy/pull/19162))
* Avoid spurious non-overlapping equality error with metaclass with `__eq__` (Michael J. Sullivan, PR [19220](https://github.com/python/mypy/pull/19220))
* Narrow type variable bounds (Ivan Levkivskyi, PR [19183](https://github.com/python/mypy/pull/19183))
* Add classifier for Python 3.14 (Marc Mueller, PR [19199](https://github.com/python/mypy/pull/19199))
* Capitalize syntax error messages (Charulata, PR [19114](https://github.com/python/mypy/pull/19114))
* Infer constraints eagerly if actual is Any (Ivan Levkivskyi, PR [19190](https://github.com/python/mypy/pull/19190))
* Include walrus assignments in conditional inference (Stanislav Terliakov, PR [19038](https://github.com/python/mypy/pull/19038))
* Use PEP 604 syntax when converting types to strings (Marc Mueller, PR [19179](https://github.com/python/mypy/pull/19179))
* Use more lower-case builtin types in error messages (Marc Mueller, PR [19177](https://github.com/python/mypy/pull/19177))
* Fix example to use correct method of Stack (Łukasz Kwieciński, PR [19123](https://github.com/python/mypy/pull/19123))
* Forbid `.pop` of `Readonly` `NotRequired` TypedDict items (Stanislav Terliakov, PR [19133](https://github.com/python/mypy/pull/19133))
* Emit a friendlier warning on invalid exclude regex, instead of a stacktrace (wyattscarpenter, PR [19102](https://github.com/python/mypy/pull/19102))
* Enable ANSI color codes for dmypy client in Windows (wyattscarpenter, PR [19088](https://github.com/python/mypy/pull/19088))
* Extend special case for context-based type variable inference to unions in return position (Stanislav Terliakov, PR [18976](https://github.com/python/mypy/pull/18976))
Links

Update pyparsing from 3.2.3 to 3.2.5.

Changelog

3.2.5

-------------------------------
- JINX! Well, 3.2.4 had a bug for `Word` expressions that include a space
character, if that expression was then copied, either directly with .copy() or
by adding a results name, or including in another construct (like `DelimitedList`)
that makes a copy internally. Issue 618, reported by mstinberg, among others -
thanks, and sorry for the inconvenience.

3.2.4

-------------------------------
- Barring any catastrophic bugs in this release, this will be the last release in
the 3.2.x line. The next release, 3.3.0, will begin emitting `DeprecationWarnings`
when the pre-PEP8 methods are used (see header notes above for more information,
including available automation for converting any existing code using
pyparsing with the old names).

- Fixed bug when using a copy of a `Word` expression (either by using the explicit
`copy()` method, or attaching a results name), and setting a new expression name,
a raised `ParseException` still used the original expression name. Also affected
`Regex` expressions with `as_match` or `as_group_list` = True. Reported by
Waqas Ilyas, in Issue 612 - good catch!

- Fixed type annotation for `replace_with`, to accept `Any` type. Fixes Issue 602,
reported by esquonk.

- Added locking around potential race condition in `ParserElement.reset_cache`, as
well as other cache-related methods. Fixes Issue 604, reported by CarlosDescalziIM.

- Substantial update to docstrings and doc generation in preparation for 3.3.0,
great effort by FeRD, thanks!

- Notable addition by FeRD to convert docstring examples to work with doctest! This
was long overdue, thanks so much!
Links

Update pytest-cov from 6.2.1 to 7.0.0.

Changelog

7.0.0

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

* Dropped support for subprocesses measurement.

It was a feature added long time ago when coverage lacked a nice way to measure subprocesses created in tests.
It relied on a ``.pth`` file, there was no way to opt-out and it created bad interations
with `coverage's new patch system <https://coverage.readthedocs.io/en/latest/config.html#run-patch>`_ added
in `7.10 <https://coverage.readthedocs.io/en/7.10.6/changes.html#version-7-10-0-2025-07-24>`_.

To migrate to this release you might need to enable the suprocess patch, example for ``.coveragerc``:

.. code-block:: ini

 [run]
 patch = subprocess

This release also requires at least coverage 7.10.6.
* Switched packaging to have metadata completely in ``pyproject.toml`` and use `hatchling <https://pypi.org/project/hatchling/>`_ for
building.
Contributed by Ofek Lev in `551 <https://github.com/pytest-dev/pytest-cov/pull/551>`_
with some extras in `716 <https://github.com/pytest-dev/pytest-cov/pull/716>`_.
* Removed some not really necessary testing deps like ``six``.

6.3.0

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

* Added support for markdown reports.
Contributed by Marcos Boger in `712 <https://github.com/pytest-dev/pytest-cov/pull/712>`_
and `714 <https://github.com/pytest-dev/pytest-cov/pull/714>`_.
* Fixed some formatting issues in docs.
Anonymous contribution in `706 <https://github.com/pytest-dev/pytest-cov/pull/706>`_.
Links

Update pytest-mock from 3.14.1 to 3.15.1.

Changelog

3.15.1

------

*2025-09-16*

* `529 <https://github.com/pytest-dev/pytest-mock/issues/529>`_: Fixed ``itertools._tee object has no attribute error`` -- now ``duplicate_iterators=True`` must be passed to ``mocker.spy`` to duplicate iterators.

3.15.0

------

*2025-09-04*

* Python 3.8 (EOL) is no longer supported.
* `524 <https://github.com/pytest-dev/pytest-mock/pull/524>`_: Added ``spy_return_iter`` to ``mocker.spy``, which contains a duplicate of the return value of the spied method if it is an ``Iterator``.
Links

Update pytest from 8.4.1 to 8.4.2.

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

Links

Update requests from 2.32.4 to 2.32.5.

Changelog

2.32.5

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

**Bugfixes**

- The SSLContext caching feature originally introduced in 2.32.0 has created
a new class of issues in Requests that have had negative impact across a number
of use cases. The Requests team has decided to revert this feature as long term
maintenance of it is proving to be unsustainable in its current iteration.

**Deprecations**
- Added support for Python 3.14.
- Dropped support for Python 3.8 following its end of support.
Links

Update sphinx from 8.1.3 to 8.3.0.

Changelog

8.3.0

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

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

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

Deprecated
----------

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

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

Testing
-------
Links

Update tox from 4.27.0 to 4.30.2.

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

Links

Update twine from 6.1.0 to 6.2.0.

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

Links

Update types-protobuf from 6.30.2.20250703 to 6.32.1.20250918.

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

Links

Update typing-extensions from 4.14.1 to 4.15.0.

Changelog

4.15.0

No user-facing changes since 4.15.0rc1.

4.15.0rc1

- Add the `typing_extensions.disjoint_base` decorator, as specified
in PEP 800. Patch by Jelle Zijlstra.
- Add `typing_extensions.type_repr`, a backport of
[`annotationlib.type_repr`](https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr),
introduced in Python 3.14 (CPython PR [124551](https://github.com/python/cpython/pull/124551),
originally by Jelle Zijlstra). Patch by Semyon Moroz.
- Fix behavior of type params in `typing_extensions.evaluate_forward_ref`. Backport of
CPython PR [137227](https://github.com/python/cpython/pull/137227) by Jelle Zijlstra.
Links

Update virtualenv from 20.31.2 to 20.34.0.

Changelog

20.34.0

<!-- Release notes generated using configuration in .github/release.yml at 20.34.0 -->

What's Changed

20.33.1

<!-- Release notes generated using configuration in .github/release.yml at 20.33.1 -->

What's Changed

20.33.0

<!-- Release notes generated using configuration in .github/release.yml at 20.33.0 -->

What's Changed

20.32.0

<!-- Release notes generated using configuration in .github/release.yml at 20.32.0 -->

What's Changed
Links

Update wcwidth from 0.2.13 to 0.2.14.

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

Links

@pyup-bot
Copy link
Collaborator Author

pyup-bot commented Nov 1, 2025

Closing this in favor of #165

@pyup-bot pyup-bot closed this Nov 1, 2025
@hanlsin hanlsin deleted the pyup-scheduled-update-2025-10-01 branch November 1, 2025 15:00
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