Skip to content

Commit 5dc5243

Browse files
committed
Merge branch main.
2 parents 6c88dd9 + f2e2f77 commit 5dc5243

File tree

487 files changed

+8734
-4087
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

487 files changed

+8734
-4087
lines changed

.circleci/config.yml

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,19 +141,42 @@ commands:
141141
[ "$CIRCLE_PR_NUMBER" = "" ]; then
142142
export RELEASE_TAG='-t release'
143143
fi
144-
make html O="-T $RELEASE_TAG -j4"
144+
make html O="-T $RELEASE_TAG -j4 -w /tmp/sphinxerrorswarnings.log"
145145
rm -r build/html/_sources
146146
working_directory: doc
147147
- save_cache:
148148
key: sphinx-env-v1-{{ .BuildNum }}-{{ .Environment.CIRCLE_JOB }}
149149
paths:
150150
- doc/build/doctrees
151151

152+
doc-show-errors-warnings:
153+
steps:
154+
- run:
155+
name: Extract possible build errors and warnings
156+
command: |
157+
(grep "WARNING\|ERROR" /tmp/sphinxerrorswarnings.log ||
158+
echo "No errors or warnings")
159+
160+
doc-show-deprecations:
161+
steps:
162+
- run:
163+
name: Extract possible deprecation warnings in examples and tutorials
164+
command: |
165+
(grep DeprecationWarning -r -l doc/build/html/gallery ||
166+
echo "No deprecation warnings in gallery")
167+
(grep DeprecationWarning -r -l doc/build/html/tutorials ||
168+
echo "No deprecation warnings in tutorials")
169+
152170
doc-bundle:
153171
steps:
154172
- run:
155173
name: Bundle sphinx-gallery documentation artifacts
156-
command: tar cf doc/build/sphinx-gallery-files.tar.gz doc/api/_as_gen doc/gallery doc/tutorials
174+
command: >
175+
tar cf doc/build/sphinx-gallery-files.tar.gz
176+
doc/api/_as_gen
177+
doc/gallery
178+
doc/plot_types
179+
doc/tutorials
157180
when: always
158181
- store_artifacts:
159182
path: doc/build/sphinx-gallery-files.tar.gz
@@ -181,6 +204,8 @@ jobs:
181204
- doc-deps-install
182205

183206
- doc-build
207+
- doc-show-errors-warnings
208+
- doc-show-deprecations
184209

185210
- doc-bundle
186211

.flake8

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,3 +113,4 @@ per-file-ignores =
113113
examples/user_interfaces/pylab_with_gtk4_sgskip.py: E402
114114
examples/user_interfaces/toolmanager_sgskip.py: E402
115115
examples/userdemo/pgf_preamble_sgskip.py: E402
116+
force-check = True

.github/workflows/cibuildsdist.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,9 @@ jobs:
6262

6363
- name: Check version number is not 0
6464
run: python ./ci/check_version_number.py
65+
66+
- name: Install twine
67+
run: pip install twine
68+
69+
- name: Check README rendering for PyPI
70+
run: twine check dist/*

.github/workflows/cibuildwheel.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ jobs:
5353
fetch-depth: 0
5454

5555
- name: Build wheels for CPython 3.11
56-
uses: pypa/cibuildwheel@v2.9.0
56+
uses: pypa/cibuildwheel@v2.11.1
5757
env:
5858
CIBW_BUILD: "cp311-*"
5959
CIBW_SKIP: "*-musllinux*"
@@ -66,7 +66,7 @@ jobs:
6666
CIBW_ARCHS: ${{ matrix.cibw_archs }}
6767

6868
- name: Build wheels for CPython 3.10
69-
uses: pypa/cibuildwheel@v2.9.0
69+
uses: pypa/cibuildwheel@v2.11.1
7070
env:
7171
CIBW_BUILD: "cp310-*"
7272
CIBW_SKIP: "*-musllinux*"
@@ -79,7 +79,7 @@ jobs:
7979
CIBW_ARCHS: ${{ matrix.cibw_archs }}
8080

8181
- name: Build wheels for CPython 3.9
82-
uses: pypa/cibuildwheel@v2.9.0
82+
uses: pypa/cibuildwheel@v2.11.1
8383
env:
8484
CIBW_BUILD: "cp39-*"
8585
CIBW_SKIP: "*-musllinux*"
@@ -92,7 +92,7 @@ jobs:
9292
CIBW_ARCHS: ${{ matrix.cibw_archs }}
9393

9494
- name: Build wheels for CPython 3.8
95-
uses: pypa/cibuildwheel@v2.9.0
95+
uses: pypa/cibuildwheel@v2.11.1
9696
env:
9797
CIBW_BUILD: "cp38-*"
9898
CIBW_SKIP: "*-musllinux*"
@@ -105,7 +105,7 @@ jobs:
105105
CIBW_ARCHS: ${{ matrix.cibw_archs }}
106106

107107
- name: Build wheels for PyPy
108-
uses: pypa/cibuildwheel@v2.9.0
108+
uses: pypa/cibuildwheel@v2.11.1
109109
env:
110110
CIBW_BUILD: "pp38-* pp39-*"
111111
CIBW_SKIP: "*-musllinux*"

.github/workflows/conflictcheck.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: "Maintenance"
2+
on:
3+
# So that PRs touching the same files as the push are updated
4+
push:
5+
# So that the `dirtyLabel` is removed if conflicts are resolve
6+
# We recommend `pull_request_target` so that github secrets are available.
7+
# In `pull_request` we wouldn't be able to change labels of fork PRs
8+
pull_request_target:
9+
types: [synchronize]
10+
11+
jobs:
12+
main:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Check if PRs have merge conflicts
16+
uses: eps1lon/actions-label-merge-conflict@releases/2.x
17+
with:
18+
dirtyLabel: "status: needs rebase"
19+
repoToken: "${{ secrets.GITHUB_TOKEN }}"

.github/workflows/nightlies.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949
5050
# N.B. anaconda-client is only maintained on the main channel
5151
- name: Install anaconda-client
52-
uses: mamba-org/provision-with-micromamba@v12
52+
uses: mamba-org/provision-with-micromamba@v13
5353
with:
5454
environment-file: false
5555
environment-name: nightlies

.github/workflows/tests.yml

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ jobs:
3737
python-version: 3.8
3838
extra-requirements: '-c requirements/testing/minver.txt'
3939
pyqt5-ver: '==5.11.2 sip==5.0.0' # oldest versions with a Py3.8 wheel.
40+
pyqt6-ver: '==6.1.0 PyQt6-Qt6==6.1.0'
41+
pyside2-ver: '==5.14.0' # oldest version with working Py3.8 wheel.
42+
pyside6-ver: '==6.0.0'
4043
delete-font-cache: true
4144
- os: ubuntu-20.04
4245
python-version: 3.8
@@ -48,6 +51,8 @@ jobs:
4851
- os: ubuntu-20.04
4952
python-version: '3.10'
5053
extra-requirements: '-r requirements/testing/extra.txt'
54+
- os: ubuntu-20.04
55+
python-version: '3.11.0-rc.1'
5156
- os: macos-latest
5257
python-version: 3.8
5358

@@ -144,10 +149,10 @@ jobs:
144149
~/.cache/matplotlib
145150
!~/.cache/matplotlib/tex.cache
146151
!~/.cache/matplotlib/test_cache
147-
key: 1-${{ runner.os }}-py${{ matrix.python-version }}-mpl-${{ github.ref }}-${{ github.sha }}
152+
key: 2-${{ runner.os }}-py${{ matrix.python-version }}-mpl-${{ github.ref }}-${{ github.sha }}
148153
restore-keys: |
149-
1-${{ runner.os }}-py${{ matrix.python-version }}-mpl-${{ github.ref }}-
150-
1-${{ runner.os }}-py${{ matrix.python-version }}-mpl-
154+
2-${{ runner.os }}-py${{ matrix.python-version }}-mpl-${{ github.ref }}-
155+
2-${{ runner.os }}-py${{ matrix.python-version }}-mpl-
151156
152157
- name: Install Python dependencies
153158
run: |
@@ -187,17 +192,17 @@ jobs:
187192
echo 'PyQt5 is available' ||
188193
echo 'PyQt5 is not available'
189194
if [[ "${{ runner.os }}" != 'macOS' ]]; then
190-
python -mpip install --upgrade pyside2 &&
195+
python -mpip install --upgrade pyside2${{ matrix.pyside2-ver }} &&
191196
python -c 'import PySide2.QtCore' &&
192197
echo 'PySide2 is available' ||
193198
echo 'PySide2 is not available'
194199
fi
195200
if [[ "${{ matrix.os }}" = ubuntu-20.04 ]]; then
196-
python -mpip install --upgrade pyqt6 &&
201+
python -mpip install --upgrade pyqt6${{ matrix.pyqt6-ver }} &&
197202
python -c 'import PyQt6.QtCore' &&
198203
echo 'PyQt6 is available' ||
199204
echo 'PyQt6 is not available'
200-
python -mpip install --upgrade pyside6 &&
205+
python -mpip install --upgrade pyside6${{ matrix.pyside6-ver }} &&
201206
python -c 'import PySide6.QtCore' &&
202207
echo 'PySide6 is available' ||
203208
echo 'PySide6 is not available'
@@ -238,9 +243,13 @@ jobs:
238243
239244
cat mplsetup.cfg
240245
241-
# All dependencies must have been pre-installed, so that the minver
242-
# constraints are held.
243-
python -m pip install --no-deps -ve .
246+
if [[ "${{ matrix.name-suffix }}" == '(Minimum Versions)' ]]; then
247+
# Minimum versions run does not use build isolation so that it
248+
# builds against the pre-installed minver dependencies.
249+
python -m pip install --no-deps --no-build-isolation -ve .
250+
else
251+
python -m pip install --no-deps -ve .
252+
fi
244253
245254
if [[ "${{ runner.os }}" != 'macOS' ]]; then
246255
unset CPPFLAGS

.pre-commit-config.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ repos:
2525
- id: trailing-whitespace
2626
exclude_types: [svg]
2727
- repo: https://github.com/pycqa/flake8
28-
rev: 4.0.1
28+
rev: 5.0.4
2929
hooks:
3030
- id: flake8
31-
additional_dependencies: [pydocstyle>5.1.0, flake8-docstrings>1.4.0]
31+
additional_dependencies: [pydocstyle>5.1.0, flake8-docstrings>1.4.0, flake8-force]
3232
args: ["--docstring-convention=all"]
3333
- repo: https://github.com/codespell-project/codespell
34-
rev: v2.1.0
34+
rev: v2.2.2
3535
hooks:
3636
- id: codespell
3737
files: ^.*\.(py|c|cpp|h|m|md|rst|yml)$

README.md

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
[![PyPi](https://badge.fury.io/py/matplotlib.svg)](https://badge.fury.io/py/matplotlib)
2+
[![Downloads](https://pepy.tech/badge/matplotlib/month)](https://pepy.tech/project/matplotlib)
3+
[![NUMFocus](https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A)](https://numfocus.org)
4+
5+
[![DiscourseBadge](https://img.shields.io/badge/help_forum-discourse-blue.svg)](https://discourse.matplotlib.org)
6+
[![Gitter](https://badges.gitter.im/matplotlib/matplotlib.svg)](https://gitter.im/matplotlib/matplotlib)
7+
[![GitHubIssues](https://img.shields.io/badge/issue_tracking-github-blue.svg)](https://github.com/matplotlib/matplotlib/issues)
8+
[![GitTutorial](https://img.shields.io/badge/PR-Welcome-%23FF8300.svg?)](https://git-scm.com/book/en/v2/GitHub-Contributing-to-a-Project)
9+
10+
[![GitHubActions](https://github.com/matplotlib/matplotlib/workflows/Tests/badge.svg)](https://github.com/matplotlib/matplotlib/actions?query=workflow%3ATests)
11+
[![AzurePipelines](https://dev.azure.com/matplotlib/matplotlib/_apis/build/status/matplotlib.matplotlib?branchName=main)](https://dev.azure.com/matplotlib/matplotlib/_build/latest?definitionId=1&branchName=main)
12+
[![AppVeyor](https://ci.appveyor.com/api/projects/status/github/matplotlib/matplotlib?branch=main&svg=true)](https://ci.appveyor.com/project/matplotlib/matplotlib)
13+
[![Codecov](https://codecov.io/github/matplotlib/matplotlib/badge.svg?branch=main&service=github)](https://codecov.io/github/matplotlib/matplotlib?branch=main)
14+
[![LGTM](https://img.shields.io/lgtm/grade/python/github/matplotlib/matplotlib.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/matplotlib/matplotlib)
15+
16+
![image](https://matplotlib.org/_static/logo2.svg)
17+
18+
Matplotlib is a comprehensive library for creating static, animated, and
19+
interactive visualizations in Python.
20+
21+
Check out our [home page](https://matplotlib.org/) for more information.
22+
23+
![image](https://matplotlib.org/_static/readme_preview.png)
24+
25+
Matplotlib produces publication-quality figures in a variety of hardcopy
26+
formats and interactive environments across platforms. Matplotlib can be
27+
used in Python scripts, Python/IPython shells, web application servers,
28+
and various graphical user interface toolkits.
29+
30+
## Install
31+
32+
See the [install
33+
documentation](https://matplotlib.org/stable/users/installing/index.html),
34+
which is generated from `/doc/users/installing/index.rst`
35+
36+
## Contribute
37+
38+
You've discovered a bug or something else you want to change -
39+
excellent!
40+
41+
You've worked out a way to fix it -- even better!
42+
43+
You want to tell us about it -- best of all!
44+
45+
Start at the [contributing
46+
guide](https://matplotlib.org/devdocs/devel/contributing.html)!
47+
48+
## Contact
49+
50+
[Discourse](https://discourse.matplotlib.org/) is the discussion forum
51+
for general questions and discussions and our recommended starting
52+
point.
53+
54+
Our active mailing lists (which are mirrored on Discourse) are:
55+
56+
- [Users](https://mail.python.org/mailman/listinfo/matplotlib-users)
57+
mailing list: <[email protected]>
58+
- [Announcement](https://mail.python.org/mailman/listinfo/matplotlib-announce)
59+
mailing list: <[email protected]>
60+
- [Development](https://mail.python.org/mailman/listinfo/matplotlib-devel)
61+
mailing list: <[email protected]>
62+
63+
[Gitter](https://gitter.im/matplotlib/matplotlib) is for coordinating
64+
development and asking questions directly related to contributing to
65+
matplotlib.
66+
67+
## Citing Matplotlib
68+
69+
If Matplotlib contributes to a project that leads to publication, please
70+
acknowledge this by citing Matplotlib.
71+
72+
[A ready-made citation
73+
entry](https://matplotlib.org/stable/users/project/citing.html) is
74+
available.
75+
76+
### Research notice
77+
78+
Please note that this repository is participating in a study into
79+
sustainability of open source projects. Data will be gathered about this
80+
repository for approximately the next 12 months, starting from June
81+
2021.
82+
83+
Data collected will include number of contributors, number of PRs, time
84+
taken to close/merge these PRs, and issues closed.
85+
86+
For more information, please visit [the informational
87+
page](https://sustainable-open-science-and-software.github.io/) or
88+
download the [participant information
89+
sheet](https://sustainable-open-science-and-software.github.io/assets/PIS_sustainable_software.pdf).

0 commit comments

Comments
 (0)