8000 Merge pull request #25147 from ksunden/ruff_config · matplotlib/matplotlib@f9de8aa · GitHub
[go: up one dir, main page]

Skip to content

Commit f9de8aa

Browse files
authored
Merge pull request #25147 from ksunden/ruff_config
Add ruff config to pyproject.toml for devs who are interested
2 parents eeef80f + f19b57c commit f9de8aa

File tree

7 files changed

+126
-28
lines changed

7 files changed

+126
-28
lines changed

.flake8

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,23 @@
22
max-line-length = 88
33
select =
44
# flake8 default
5-
C90, E, F, W,
6-
# docstring-convention=numpy
7-
D100, D101, D102, D103, D104, D105, D106,
8-
D200, D201, D202, D204, D205, D206, D207, D208,
9-
D209, D210, D211, D214, D215,
10-
D300, D301, D302,
11-
D400, D401, D403, D404, D405, D406, D407, D408,
12-
D409, D410, D411, D412, D414,
13-
# matplotlib-specific extra pydocstyle errors
14-
D213,
5+
D, E, F, W,
156
ignore =
167
# flake8 default
178
E121,E123,E126,E226,E24,E704,W503,W504,
189
# Additional ignores:
1910
E127, E131,
2011
E266,
2112
E305, E306,
22-
E722, E741,
13+
E741,
2314
F841,
24-
# Some new flake8 ignores:
25-
N801, N802, N803, N806, N812,
2615
# pydocstyle
27-
D100, D101, D102, D103, D104, D105, D106, D107,
28-
D200, D202, D203, D204, D205, D207, D212,
16+
D100, D101, D102, D103, D104, D105, D106,
17+
D200, D202, D204, D205,
2918
D301,
30-
D400, D401, D402, D403, D404, D413,
19+
D400, D401, D403, D404
20+
# ignored by pydocstyle numpy docstring convention
21+
D107, D203, D212, D213, D402, D413, D415, D416, D417,
3122

3223
exclude =
3324
.git
@@ -42,7 +33,6 @@ exclude =
4233
per-file-ignores =
4334
setup.py: E402
4435

45-
4636
lib/matplotlib/__init__.py: E402, F401
4737
lib/matplotlib/_animation_data.py: E501
4838
lib/matplotlib/_api/__init__.py: F401
@@ -81,9 +71,6 @@ per-file-ignores =
8171
tutorials/text/mathtext.py: E501
8272
tutorials/text/text_intro.py: E402
8373
tutorials/text/text_props.py: E501
84-
tutorials/text/usetex.py: E501
85-
tutorials/toolkits/axes_grid.py: E501
86-
tutorials/toolkits/axisartist.py: E501
8774

8875
examples/animation/frame_grabbing_sgskip.py: E402
8976
examples/images_contours_and_fields/tricontour_demo.py: E201
@@ -93,7 +80,6 @@ per-file-ignores =
9380
examples/misc/print_stdout_sgskip.py: E402
9481
examples/misc/table_demo.py: E201
9582
examples/style_sheets/bmh.py: E501
96-
examples/style_sheets/plot_solarizedlight2.py: E501
9783
examples/subplots_axes_and_figures/demo_constrained_layout.py: E402
9884
examples/text_labels_and_annotations/custom_legends.py: E402
9985
examples/ticks/date_concise_formatter.py: E402

lib/matplotlib/legend_handler.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ def __init__(self, xpad=0., ypad=0., update_func=None):
6363
"""
6464
Parameters
6565
----------
66-
6766
xpad : float, optional
6867
Padding in x-direction.
6968
ypad : float, optional

lib/matplotlib/scale.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def __init__(self, axis):
9898
# constructor docstring, which would otherwise end up interpolated into
9999
# the docstring of Axis.set_scale.
100100
"""
101-
"""
101+
""" # noqa: D419
102102

103103
def set_default_locators_and_formatters(self, axis):
104104
# docstring inherited

lib/matplotlib/tests/test_backend_qt.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ def test_sigint(target, kwargs):
128128
try:
129129
proc.wait_for('DRAW')
130130
stdout, _ = proc.communicate(timeout=_test_timeout)
131-
except:
131+
except Exception:
132132
proc.kill()
133133
stdout, _ = proc.communicate()
134134
raise
@@ -182,7 +182,7 @@ def test_other_signal_before_sigint(target, kwargs):
182182
proc.wait_for('SIGUSR1')
183183
os.kill(proc.pid, signal.SIGINT)
184184
stdout, _ = proc.communicate(timeout=_test_timeout)
185-
except:
185+
except Exception:
186186
proc.kill()
187187
stdout, _ = proc.communicate()
188188
raise

lib/matplotlib/tests/test_font_manager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ def test_get_font_names():
317317
font = ft2font.FT2Font(path)
318318
prop = ttfFontProperty(font)
319319
ttf_fonts.append(prop.name)
320-
except:
320+
except Exception:
321321
pass
322322
available_fonts = sorted(list(set(ttf_fonts)))
323323
mpl_font_names = sorted(fontManager.get_font_names())

lib/mpl_toolkits/mplot3d/art3d.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ class Text3D(mtext.Text):
9191
----------------
9292
**kwargs
9393
All other parameters are passed on to `~matplotlib.text.Text`.
94-
"""
94+
"""
9595

9696
def __init__(self, x=0, y=0, z=0, text='', zdir='z', **kwargs):
9797
mtext.Text.__init__(self, x, y, text, **kwargs)

pyproject.toml

Lines changed: 114 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,124 @@ requires = [
77
"setuptools_scm>=7",
88
]
99

10-
1110
[tool.isort]
1211
known_mpltoolkits = "mpl_toolkits"
1312
known_pydata = "numpy, matplotlib.pyplot"
1413
known_firstparty = "matplotlib"
1514
sections = "FUTURE,STDLIB,THIRDPARTY,PYDATA,FIRSTPARTY,MPLTOOLKITS,LOCALFOLDER"
1615
no_lines_before = "MPLTOOLKITS"
1716
force_sort_within_sections = true
17+
18+
[tool.ruff]
19+
exclude = [
20+
".git",
21+
"build",
22+
"doc/gallery",
23+
"doc/tutorials",
24+
"tools/gh_api.py",
25+
".tox",
26+
".eggs",
27+
]
28+
ignore = [
29+
"D100",
30+
"D101",
31+
"D102",
32+
"D103",
33+
"D104",
34+
"D105",
35+
"D106",
36+
"D200",
37+
"D202",
38+
"D204",
39+
"D205",
40+
"D301",
41+
"D400",
42+
"D401",
43+
"D403",
44+
"D404",
45+
"E741",
46+
"F841",
47+
]
48+
line-length = 88
49+
select = [
50+
"D",
51+
"E",
52+
"F",
53+
"W",
54+
]
55+
56+
# The following error codes are not supported by ruff v0.0.240
57+
# They are planned and should be selected once implemented
58+
# even if they are deselected by default.
59+
# These are primarily whitespace/corrected by autoformatters (which we don't use).
60+
# See https://github.com/charliermarsh/ruff/issues/2402 for status on implementation
61+
external = [
62+
"E122",
63+
"E201",
64+
"E202",
65+
"E203",
66+
"E221",
67+
"E251",
68+
"E261",
69+
"E272",
70+
"E302",
71+
"E703",
72+
]
73+
74+
target-version = "py39"
75+
76+
[tool.ruff.pydocstyle]
77+
convention = "numpy"
78+
79+
[tool.ruff.per-file-ignores]
80+
"setup.py" = ["E402"]
81+
82+
"doc/conf.py" = ["E402"]
83+
"examples/animation/frame_grabbing_sgskip.py" = ["E402"]
84+
"examples/lines_bars_and_markers/marker_reference.py" = ["E402"]
85+
"examples/misc/print_stdout_sgskip.py" = ["E402"]
86+
"examples/style_sheets/bmh.py" = ["E501"]
87+
"examples/subplots_axes_and_figures/demo_constrained_layout.py" = ["E402"]
88+
"examples/text_labels_and_annotations/custom_legends.py" = ["E402"]
89+
"examples/ticks/date_concise_formatter.py" = ["E402"]
90+
"examples/ticks/date_formatters_locators.py" = ["F401"]
91+
"examples/user_interfaces/embedding_in_gtk3_panzoom_sgskip.py" = ["E402"]
92+
"examples/user_interfaces/embedding_in_gtk3_sgskip.py" = ["E402"]
93+
"examples/user_interfaces/embedding_in_gtk4_panzoom_sgskip.py" = ["E402"]
94+
"examples/user_interfaces/embedding_in_gtk4_sgskip.py" = ["E402"]
95+
"examples/user_interfaces/gtk3_spreadsheet_sgskip.py" = ["E402"]
96+
"examples/user_interfaces/gtk4_spreadsheet_sgskip.py" = ["E402"]
97+
"examples/user_interfaces/mpl_with_glade3_sgskip.py" = ["E402"]
98+
"examples/user_interfaces/pylab_with_gtk3_sgskip.py" = ["E402"]
99+
"examples/user_interfaces/pylab_with_gtk4_sgskip.py" = ["E402"]
100+
"examples/userdemo/pgf_preamble_sgskip.py" = ["E402"]
101+
102+
"lib/matplotlib/__init__.py" = ["E402", "F401"]
103+
"lib/matplotlib/_animation_data.py" = ["E501"]
104+
"lib/matplotlib/_api/__init__.py" = ["F401"]
105+
"lib/matplotlib/axes/__init__.py" = ["F401", "F403"]
106+
"lib/matplotlib/backends/backend_template.py" = ["F401"]
107+
"lib/matplotlib/font_manager.py" = ["E501"]
108+
"lib/matplotlib/image.py" = ["F401", "F403"]
109+
"lib/matplotlib/pylab.py" = ["F401", "F403"]
110+
"lib/matplotlib/pyplot.py" = ["F401", "F811"]
111+
"lib/matplotlib/tests/test_mathtext.py" = ["E501"]
112+
"lib/mpl_toolkits/axisartist/__init__.py" = ["F401"]
113+
"lib/pylab.py" = ["F401", "F403"]
114+
115+
"tutorials/advanced/path_tutorial.py" = ["E402"]
116+
"tutorials/advanced/patheffects_guide.py" = ["E402"]
117+
"tutorials/advanced/transforms_tutorial.py" = ["E402", "E501"]
118+
"tutorials/colors/colormaps.py" = ["E501"]
119+
"tutorials/colors/colors.py" = ["E402"]
120+
"tutorials/intermediate/artists.py" = ["E402"]
121+
"tutorials/intermediate/constrainedlayout_guide.py" = ["E402"]
122+
"tutorials/intermediate/legend_guide.py" = ["E402"]
123+
"tutorials/intermediate/tight_layout_guide.py" = ["E402"]
124+
"tutorials/introductory/animation_tutorial.py" = ["E501"]
125+
"tutorials/introductory/images.py" = ["E501"]
126+
"tutorials/introductory/pyplot.py" = ["E402", "E501"]
127+
"tutorials/text/annotations.py" = ["E402", "E501"]
128+
"tutorials/text/mathtext.py" = ["E501"]
129+
"tutorials/text/text_intro.py" = ["E402"]
130+
"tutorials/text/text_props.py" = ["E501"]

0 commit comments

Comments
 (0)
0