File: development.rst

package info (click to toggle)
matplotlib 3.10.1%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 78,352 kB
  • sloc: python: 147,118; cpp: 62,988; objc: 1,679; ansic: 1,426; javascript: 786; makefile: 104; sh: 53
file content (79 lines) | stat: -rw-r--r-- 2,884 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
Development changes
-------------------


Increase to minimum supported versions of dependencies
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

For Matplotlib 3.8, the :ref:`minimum supported versions <dependencies>` are
being bumped:

+------------+-----------------+---------------+
| Dependency |  min in mpl3.7  | min in mpl3.8 |
+============+=================+===============+
|   Python   |       3.8       |      3.9      |
+------------+-----------------+---------------+
| kiwisolver |       1.0.1     |      1.3.1    |
+------------+-----------------+---------------+
|   NumPy    |       1.20.0    |      1.21.0   |
+------------+-----------------+---------------+
|   Pillow   |       6.2.1     |      8.0      |
+------------+-----------------+---------------+

This is consistent with our :ref:`min_deps_policy` and `NEP29
<https://numpy.org/neps/nep-0029-deprecation_policy.html>`__


Increase to minimum supported optional dependencies
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

For Matplotlib 3.8, the :ref:`minimum supported versions of optional dependencies
<optional_dependencies>` are being bumped:

+------------+-----------------+---------------+
| Dependency |  min in mpl3.7  | min in mpl3.8 |
+============+=================+===============+
|   Tk       |      8.4        |     8.5       |
+------------+-----------------+---------------+
|   Qt       |      5.10       |     5.12      |
+------------+-----------------+---------------+

- There are no wheels or conda packages that support both Qt 5.11 (or older) and
  Python 3.9 (or newer).

This is consistent with our :ref:`min_deps_policy`

Provisional support for PEP484 Type Hint Annotations
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

New public API should be type hinted in ``.pyi`` stub files (except ``pyplot`` and tests
which are typed in-line).
Tests should be type hinted minimally, essentially only when ``mypy`` generates errors.

CI and configuration for running ``mypy`` have been added.

Generation of ``pyplot.py`` requires ``black``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The autogenerated portions of ``pyplot.py`` use ``black`` autoformatting to ensure
syntax-correct, readable output code.

As such ``black`` is now a development and test requirement (for the test which
regenerates ``pyplot``).

Wheels for some systems are no longer distributed
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Pre-compiled wheels for 32-bit Linux and Windows are no longer provided on PyPI
since Matplotlib 3.8.

Multi-architecture ``universal2`` wheels for macOS are no longer provided on PyPI since
Matplotlib 3.8. In general, ``pip`` will always prefer the architecture-specific
(``amd64``- or ``arm64``-only) wheels, so these provided little benefit.

New wheel architectures
~~~~~~~~~~~~~~~~~~~~~~~

Wheels have been added for:

- musl based systems