Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e900be3

Browse files
committed
Deprecate factor=None in axisartist.
mpl_toolkits.axisartist has its own notion of Locators and Formatters (which have a different API from standard Locators and Formatters); in particular, they have a notion of "factor" -- either a numeric value, or None, which is treated equivalently to 1. Simplify a bit axisartist by deprecating support for None (as 1 is synonym and is handled by the more general code).
1 parent df2a26d commit e900be3

3 files changed

Lines changed: 40 additions & 50 deletions

File tree

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Deprecations
2+
````````````
3+
4+
Returning a factor equal to None from axisartist Locators (which are **not**
5+
the same as "standard" tick Locators), or passing a factor equal to None
6+
to axisartist Formatters (which are **not** the same as "standard" tick
7+
Formatters) is deprecated. Pass a factor equal to 1 instead.

lib/mpl_toolkits/axisartist/grid_finder.py

Lines changed: 24 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,16 @@
55
from .clip_path import clip_line_to_rect
66

77

8+
def _deprecate_factor_none(factor):
9+
# After the deprecation period, calls to _deprecate_factor_none can just be
10+
# removed.
11+
if factor is None:
12+
cbook.warn_deprecated(
13+
"3.2", "factor=None is deprecated; use/return factor=1 instead")
14+
factor = 1
15+
return factor
16+
17+
818
# extremes finder
919
class ExtremeFinderSimple(object):
1020
def __init__(self, nx, ny):
@@ -88,14 +98,8 @@ def get_grid_info(self, x1, y1, x2, y2):
8898
lon_levs, lon_n, lon_factor = self.grid_locator1(lon_min, lon_max)
8999
lat_levs, lat_n, lat_factor = self.grid_locator2(lat_min, lat_max)
90100

91-
if lon_factor is None:
92-
lon_values = np.asarray(lon_levs[:lon_n])
93-
else:
94-
lon_values = np.asarray(lon_levs[:lon_n]/lon_factor)
95-
if lat_factor is None:
96-
lat_values = np.asarray(lat_levs[:lat_n])
97-
else:
98-
lat_values = np.asarray(lat_levs[:lat_n]/lat_factor)
101+
lon_values = lon_levs[:lon_n] / _deprecate_factor_none(lon_factor)
102+
lat_values = lat_levs[:lat_n] / _deprecate_factor_none(lat_factor)
99103

100104
lon_lines, lat_lines = self._get_raw_grid_lines(lon_values,
101105
lat_values,
@@ -226,37 +230,29 @@ def __init__(self, nbins=10, steps=None,
226230
integer=integer,
227231
symmetric=symmetric, prune=prune)
228232
self.create_dummy_axis()
229-
self._factor = None
233+
self._factor = 1
230234

231235
def __call__(self, v1, v2):
232-
if self._factor is not None:
233-
self.set_bounds(v1*self._factor, v2*self._factor)
234-
locs = mticker.MaxNLocator.__call__(self)
235-
return np.array(locs), len(locs), self._factor
236-
else:
237-
self.set_bounds(v1, v2)
238-
locs = mticker.MaxNLocator.__call__(self)
239-
return np.array(locs), len(locs), None
236+
self.set_bounds(v1 * self._factor, v2 * self._factor)
237+
locs = mticker.MaxNLocator.__call__(self)
238+
return np.array(locs), len(locs), self._factor
240239

241240
def set_factor(self, f):
242-
self._factor = f
241+
self._factor = _deprecate_factor_none(f)
243242

244243

245244
class FixedLocator(object):
246245
def __init__(self, locs):
247246
self._locs = locs
248-
self._factor = None
247+
self._factor = 1
249248

250249
def __call__(self, v1, v2):
251-
if self._factor is None:
252-
v1, v2 = sorted([v1, v2])
253-
else:
254-
v1, v2 = sorted([v1*self._factor, v2*self._factor])
250+
v1, v2 = sorted([v1 * self._factor, v2 * self._factor])
255251
locs = np.array([l for l in self._locs if v1 <= l <= v2])
256252
return locs, len(locs), self._factor
257253

258254
def set_factor(self, f):
259-
self._factor = f
255+
self._factor = _deprecate_factor_none(f)
260256

261257

262258
# Tick Formatter
@@ -270,9 +266,7 @@ def __init__(self, useMathText=True):
270266

271267
def __call__(self, direction, factor, values):
272268
if not self._ignore_factor:
273-
if factor is None:
274-
factor = 1
275-
values = [v / factor for v in values]
269+
values = [v / _deprecate_factor_none(factor) for v in values]
276270
return self._fmt.format_ticks(values)
277271

278272

@@ -290,13 +284,10 @@ def __call__(self, direction, factor, values):
290284
"""
291285
factor is ignored if value is found in the dictionary
292286
"""
293-
294287
if self._fallback_formatter:
295288
fallback_strings = self._fallback_formatter(
296289
direction, factor, values)
297290
else:
298-
fallback_strings = [""]*len(values)
299-
300-
r = [self._format_dict.get(k, v) for k, v in zip(values,
301-
fallback_strings)]
302-
return r
291+
fallback_strings = [""] * len(values)
292+
return [self._format_dict.get(k, v)
293+
for k, v in zip(values, fallback_strings)]

lib/mpl_toolkits/axisartist/grid_helper_curvelinear.py

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from matplotlib.transforms import Affine2D, IdentityTransform
1010
from .axislines import AxisArtistHelper, GridHelperBase
1111
from .axis_artist import AxisArtist
12-
from .grid_finder import GridFinder
12+
from .grid_finder import GridFinder, _deprecate_factor_none
1313

1414

1515
class FixedAxisArtistHelper(AxisArtistHelper.Fixed):
@@ -132,12 +132,12 @@ def update_lim(self, axes):
132132

133133
self.grid_info = {
134134
"extremes": extremes,
135-
"lon_info": (lon_levs, lon_n, lon_factor),
136-
"lat_info": (lat_levs, lat_n, lat_factor),
135+
"lon_info": (lon_levs, lon_n, _deprecate_factor_none(lon_factor)),
136+
"lat_info": (lat_levs, lat_n, _deprecate_factor_none(lat_factor)),
137137
"lon_labels": grid_finder.tick_formatter1(
138-
"bottom", lon_factor, lon_levs),
138+
"bottom", _deprecate_factor_none(lon_factor), lon_levs),
139139
"lat_labels": grid_finder.tick_formatter2(
140-
"bottom", lat_factor, lat_levs),
140+
"bottom", _deprecate_factor_none(lat_factor), lat_levs),
141141
"line_xy": (xx, yy),
142142
}
143143

@@ -183,21 +183,13 @@ def get_tick_iterators(self, axes):
183183

184184
lat_levs, lat_n, lat_factor = self.grid_info["lat_info"]
185185
lat_levs = np.asarray(lat_levs)
186-
if lat_factor is not None:
187-
yy0 = lat_levs / lat_factor
188-
dy = 0.01 / lat_factor
189-
else:
190-
yy0 = lat_levs
191-
dy = 0.01
186+
yy0 = lat_levs / _deprecate_factor_none(lat_factor)
187+
dy = 0.01 / _deprecate_factor_none(lat_factor)
192188

193189
lon_levs, lon_n, lon_factor = self.grid_info["lon_info"]
194190
lon_levs = np.asarray(lon_levs)
195-
if lon_factor is not None:
196-
xx0 = lon_levs / lon_factor
197-
dx = 0.01 / lon_factor
198-
else:
199-
xx0 = lon_levs
200-
dx = 0.01
191+
xx0 = lon_levs / _deprecate_factor_none(lon_factor)
192+
dx = 0.01 / _deprecate_factor_none(lon_factor)
201193

202194
if None in self._extremes:
203195
e0, e1 = self._extremes

0 commit comments

Comments
 (0)