Skip to content

Commit 29ba27a

Browse files
authored
Merge pull request matplotlib#30446 from bhpcv252/fix-30438
Added hardcoded colormap attributes for type checker support
2 parents 93e6cf1 + c22bb88 commit 29ba27a

File tree

2 files changed

+214
-0
lines changed

2 files changed

+214
-0
lines changed

lib/matplotlib/cm.pyi

Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,185 @@ _multivar_colormaps: ColormapRegistry = ...
2020
_bivar_colormaps: ColormapRegistry = ...
2121

2222
ScalarMappable = _ScalarMappable
23+
24+
magma: colors.Colormap
25+
inferno: colors.Colormap
26+
plasma: colors.Colormap
27+
viridis: colors.Colormap
28+
cividis: colors.Colormap
29+
twilight: colors.Colormap
30+
twilight_shifted: colors.Colormap
31+
turbo: colors.Colormap
32+
berlin: colors.Colormap
33+
managua: colors.Colormap
34+
vanimo: colors.Colormap
35+
Blues: colors.Colormap
36+
BrBG: colors.Colormap
37+
BuGn: colors.Colormap
38+
BuPu: colors.Colormap
39+
CMRmap: colors.Colormap
40+
GnBu: colors.Colormap
41+
Greens: colors.Colormap
42+
Greys: colors.Colormap
43+
OrRd: colors.Colormap
44+
Oranges: colors.Colormap
45+
PRGn: colors.Colormap
46+
PiYG: colors.Colormap
47+
PuBu: colors.Colormap
48+
PuBuGn: colors.Colormap
49+
PuOr: colors.Colormap
50+
PuRd: colors.Colormap
51+
Purples: colors.Colormap
52+
RdBu: colors.Colormap
53+
RdGy: colors.Colormap
54+
RdPu: colors.Colormap
55+
RdYlBu: colors.Colormap
56+
RdYlGn: colors.Colormap
57+
Reds: colors.Colormap
58+
Spectral: colors.Colormap
59+
Wistia: colors.Colormap
60+
YlGn: colors.Colormap
61+
YlGnBu: colors.Colormap
62+
YlOrBr: colors.Colormap
63+
YlOrRd: colors.Colormap
64+
afmhot: colors.Colormap
65+
autumn: colors.Colormap
66+
binary: colors.Colormap
67+
bone: colors.Colormap
68+
brg: colors.Colormap
69+
bwr: colors.Colormap
70+
cool: colors.Colormap
71+
coolwarm: colors.Colormap
72+
copper: colors.Colormap
73+
cubehelix: colors.Colormap
74+
flag: colors.Colormap
75+
gist_earth: colors.Colormap
76+
gist_gray: colors.Colormap
77+
gist_heat: colors.Colormap
78+
gist_ncar: colors.Colormap
79+
gist_rainbow: colors.Colormap
80+
gist_stern: colors.Colormap
81+
gist_yarg: colors.Colormap
82+
gnuplot: colors.Colormap
83+
gnuplot2: colors.Colormap
84+
gray: colors.Colormap
85+
hot: colors.Colormap
86+
hsv: colors.Colormap
87+
jet: colors.Colormap
88+
nipy_spectral: colors.Colormap
89+
ocean: colors.Colormap
90+
pink: colors.Colormap
91+
prism: colors.Colormap
92+
rainbow: colors.Colormap
93+
seismic: colors.Colormap
94+
spring: colors.Colormap
95+
summer: colors.Colormap
96+
terrain: colors.Colormap
97+
winter: colors.Colormap
98+
Accent: colors.Colormap
99+
Dark2: colors.Colormap
100+
Paired: colors.Colormap
101+
Pastel1: colors.Colormap
102+
Pastel2: colors.Colormap
103+
Set1: colors.Colormap
104+
Set2: colors.Colormap
105+
Set3: colors.Colormap
106+
tab10: colors.Colormap
107+
tab20: colors.Colormap
108+
tab20b: colors.Colormap
109+
tab20c: colors.Colormap
110+
grey: colors.Colormap
111+
gist_grey: colors.Colormap
112+
gist_yerg: colors.Colormap
113+
Grays: colors.Colormap
114+
# Reversed colormaps
115+
magma_r: colors.Colormap
116+
inferno_r: colors.Colormap
117+
plasma_r: colors.Colormap
118+
viridis_r: colors.Colormap
119+
cividis_r: colors.Colormap
120+
twilight_r: colors.Colormap
121+
twilight_shifted_r: colors.Colormap
122+
turbo_r: colors.Colormap
123+
berlin_r: colors.Colormap
124+
managua_r: colors.Colormap
125+
vanimo_r: colors.Colormap
126+
Blues_r: colors.Colormap
127+
BrBG_r: colors.Colormap
128+
BuGn_r: colors.Colormap
129+
BuPu_r: colors.Colormap
130+
CMRmap_r: colors.Colormap
131+
GnBu_r: colors.Colormap
132+
Greens_r: colors.Colormap
133+
Greys_r: colors.Colormap
134+
OrRd_r: colors.Colormap
135+
Oranges_r: colors.Colormap
136+
PRGn_r: colors.Colormap
137+
PiYG_r: colors.Colormap
138+
PuBu_r: colors.Colormap
139+
PuBuGn_r: colors.Colormap
140+
PuOr_r: colors.Colormap
141+
PuRd_r: colors.Colormap
142+
Purples_r: colors.Colormap
143+
RdBu_r: colors.Colormap
144+
RdGy_r: colors.Colormap
145+
RdPu_r: colors.Colormap
146+
RdYlBu_r: colors.Colormap
147+
RdYlGn_r: colors.Colormap
148+
Reds_r: colors.Colormap
149+
Spectral_r: colors.Colormap
150+
Wistia_r: colors.Colormap
151+
YlGn_r: colors.Colormap
152+
YlGnBu_r: colors.Colormap
153+
YlOrBr_r: colors.Colormap
154+
YlOrRd_r: colors.Colormap
155+
afmhot_r: colors.Colormap
156+
autumn_r: colors.Colormap
157+
binary_r: colors.Colormap
158+
bone_r: colors.Colormap
159+
brg_r: colors.Colormap
160+
bwr_r: colors.Colormap
161+
cool_r: colors.Colormap
162+
coolwarm_r: colors.Colormap
163+
copper_r: colors.Colormap
164+
cubehelix_r: colors.Colormap
165+
flag_r: colors.Colormap
166+
gist_earth_r: colors.Colormap
167+
gist_gray_r: colors.Colormap
168+
gist_heat_r: colors.Colormap
169+
gist_ncar_r: colors.Colormap
170+
gist_rainbow_r: colors.Colormap
171+
gist_stern_r: colors.Colormap
172+
gist_yarg_r: colors.Colormap
173+
gnuplot_r: colors.Colormap
174+
gnuplot2_r: colors.Colormap
175+
gray_r: colors.Colormap
176+
hot_r: colors.Colormap
177+
hsv_r: colors.Colormap
178+
jet_r: colors.Colormap
179+
nipy_spectral_r: colors.Colormap
180+
ocean_r: colors.Colormap
181+
pink_r: colors.Colormap
182+
prism_r: colors.Colormap
183+
rainbow_r: colors.Colormap
184+
seismic_r: colors.Colormap
185+
spring_r: colors.Colormap
186+
summer_r: colors.Colormap
187+
terrain_r: colors.Colormap
188+
winter_r: colors.Colormap
189+
Accent_r: colors.Colormap
190+
Dark2_r: colors.Colormap
191+
Paired_r: colors.Colormap
192+
Pastel1_r: colors.Colormap
193+
Pastel2_r: colors.Colormap
194+
Set1_r: colors.Colormap
195+
Set2_r: colors.Colormap
196+
Set3_r: colors.Colormap
197+
tab10_r: colors.Colormap
198+
tab20_r: colors.Colormap
199+
tab20b_r: colors.Colormap
200+
tab20c_r: colors.Colormap
201+
grey_r: colors.Colormap
202+
gist_grey_r: colors.Colormap
203+
gist_yerg_r: colors.Colormap
204+
Grays_r: colors.Colormap
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import re
2+
from pathlib import Path
3+
4+
import matplotlib.pyplot as plt
5+
from matplotlib.colors import Colormap
6+
7+
8+
def test_cm_stub_matches_runtime_colormaps():
9+
runtime_cm = plt.cm
10+
runtime_cmaps = {
11+
name
12+
for name, value in vars(runtime_cm).items()
13+
if isinstance(value, Colormap)
14+
}
15+
16+
cm_pyi_path = Path(__file__).parent.parent / "cm.pyi"
17+
assert cm_pyi_path.exists(), f"{cm_pyi_path} does not exist"
18+
19+
pyi_content = cm_pyi_path.read_text(encoding='utf-8')
20+
21+
stubbed_cmaps = set(
22+
re.findall(r"^(\w+):\s+colors\.Colormap", pyi_content, re.MULTILINE)
23+
)
24+
25+
assert runtime_cmaps, (
26+
"No colormaps variables found at runtime in matplotlib.colors"
27+
)
28+
assert stubbed_cmaps, (
29+
"No colormaps found in cm.pyi"
30+
)
31+
32+
assert runtime_cmaps == stubbed_cmaps

0 commit comments

Comments
 (0)