Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 122afb5

Browse filesBrowse 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 6e8d6e9 commit 122afb5
Copy full SHA for 122afb5

File tree

Expand file treeCollapse file tree

3 files changed

+41
-51
lines changed
Filter options
Expand file treeCollapse file tree

3 files changed

+41
-51
lines changed
+7Lines 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

Copy file name to clipboardExpand all lines: lib/mpl_toolkits/axisartist/grid_finder.py
+25-34Lines changed: 25 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
import numpy as np
22

3-
import matplotlib.ticker as mticker
3+
from matplotlib import cbook, ticker as mticker
44
from matplotlib.transforms import Bbox, Transform
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):
@@ -76,14 +86,8 @@ def get_grid_info(self, x1, y1, x2, y2):
7686
lon_levs, lon_n, lon_factor = self.grid_locator1(lon_min, lon_max)
7787
lat_levs, lat_n, lat_factor = self.grid_locator2(lat_min, lat_max)
7888

79-
if lon_factor is None:
80-
lon_values = np.asarray(lon_levs[:lon_n])
81-
else:
82-
lon_values = np.asarray(lon_levs[:lon_n]/lon_factor)
83-
if lat_factor is None:
84-
lat_values = np.asarray(lat_levs[:lat_n])
85-
else:
86-
lat_values = np.asarray(lat_levs[:lat_n]/lat_factor)
89+
lon_values = lon_levs[:lon_n] / _deprecate_factor_none(lon_factor)
90+
lat_values = lat_levs[:lat_n] / _deprecate_factor_none(lat_factor)
8791

8892
lon_lines, lat_lines = self._get_raw_grid_lines(lon_values,
8993
lat_values,
@@ -237,37 +241,29 @@ def __init__(self, nbins=10, steps=None,
237241
integer=integer,
238242
symmetric=symmetric, prune=prune)
239243
self.create_dummy_axis()
240-
self._factor = None
244+
self._factor = 1
241245

242246
def __call__(self, v1, v2):
243-
if self._factor is not None:
244-
self.set_bounds(v1*self._factor, v2*self._factor)
245-
locs = mticker.MaxNLocator.__call__(self)
246-
return np.array(locs), len(locs), self._factor
247-
else:
248-
self.set_bounds(v1, v2)
249-
locs = mticker.MaxNLocator.__call__(self)
250-
return np.array(locs), len(locs), None
247+
self.set_bounds(v1 * self._factor, v2 * self._factor)
248+
locs = mticker.MaxNLocator.__call__(self)
249+
return np.array(locs), len(locs), self._factor
251250

252251
def set_factor(self, f):
253-
self._factor = f
252+
self._factor = _deprecate_factor_none(f)
254253

255254

256255
class FixedLocator(object):
257256
def __init__(self, locs):
258257
self._locs = locs
259-
self._factor = None
258+
self._factor = 1
260259

261260
def __call__(self, v1, v2):
262-
if self._factor is None:
263-
v1, v2 = sorted([v1, v2])
264-
else:
265-
v1, v2 = sorted([v1*self._factor, v2*self._factor])
261+
v1, v2 = sorted([v1 * self._factor, v2 * self._factor])
266262
locs = np.array([l for l in self._locs if v1 <= l <= v2])
267263
return locs, len(locs), self._factor
268264

269265
def set_factor(self, f):
270-
self._factor = f
266+
self._factor = _deprecate_factor_none(f)
271267

272268

273269
# Tick Formatter
@@ -281,9 +277,7 @@ def __init__(self, useMathText=True):
281277

282278
def __call__(self, direction, factor, values):
283279
if not self._ignore_factor:
284-
if factor is None:
285-
factor = 1
286-
values = [v / factor for v in values]
280+
values = [v / _deprecate_factor_none(factor) for v in values]
287281
return self._fmt.format_ticks(values)
288282

289283

@@ -301,13 +295,10 @@ def __call__(self, direction, factor, values):
301295
"""
302296
factor is ignored if value is found in the dictionary
303297
"""
304-
305298
if self._fallback_formatter:
306299
fallback_strings = self._fallback_formatter(
307300
direction, factor, values)
308301
else:
309-
fallback_strings = [""]*len(values)
310-
311-
r = [self._format_dict.get(k, v) for k, v in zip(values,
312-
fallback_strings)]
313-
return r
302+
fallback_strings = [""] * len(values)
303+
return [self._format_dict.get(k, v)
304+
for k, v in zip(values, fallback_strings)]

‎lib/mpl_toolkits/axisartist/grid_helper_curvelinear.py

Copy file name to clipboardExpand all lines: lib/mpl_toolkits/axisartist/grid_helper_curvelinear.py
+9-17Lines 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 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.