Skip to content

Commit 8f8042f

Browse files
committed
Cleanup and fix issue passing guide_kw=None
1 parent d039081 commit 8f8042f

File tree

3 files changed

+13
-9
lines changed

3 files changed

+13
-9
lines changed

proplot/axes/plot.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2929,10 +2929,10 @@ def parametric(self, x, y, c, *, interp=0, scalex=True, scaley=True, **kwargs):
29292929

29302930
# Interpret color values
29312931
# NOTE: This permits string label input for 'values'
2932-
c, colorbar_kw = inputs._meta_coords(c, which='') # convert string labels
2932+
c, guide_kw = inputs._meta_coords(c, which='') # convert string labels
29332933
if c.size == 1 and y.size != 1:
29342934
c = np.arange(y.size) # convert dummy label for single color
2935-
guides._add_guide_kw('colorbar', kw, **colorbar_kw)
2935+
guides._add_guide_kw('colorbar', kw, **guide_kw)
29362936
guides._add_guide_kw('colorbar', kw, locator=c)
29372937

29382938
# Interpolate values to allow for smooth gradations between values or just

proplot/config.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1411,7 +1411,6 @@ def context(self, *args, mode=0, file=None, **kwargs):
14111411
>>> ax.format(ticklen=5, metalinewidth=2)
14121412
"""
14131413
# Add input dictionaries
1414-
# WARNING: Critical to fully apply
14151414
for arg in args:
14161415
if not isinstance(arg, dict):
14171416
raise ValueError(f'Non-dictionary argument {arg!r}.')

proplot/internals/guides.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,13 @@ def _add_guide_kw(name, kwargs, **opts):
2828
"""
2929
# NOTE: Here we *do not* want to overwrite properties in dictionary. Indicates
3030
# e.g. default locator inferred from levels or default title inferred from metadata.
31-
kwargs = kwargs.setdefault(f'{name}_kw', {})
32-
_update_kw(kwargs, overwrite=False, **opts)
31+
attr = f'{name}_kw'
32+
if not opts:
33+
return
34+
if not kwargs.get(attr, None):
35+
kwargs[attr] = {} # permit e.g. colorbar_kw=None
36+
guide_kw = kwargs[attr]
37+
_update_kw(guide_kw, overwrite=False, **opts)
3338

3439

3540
def _cache_guide_kw(obj, name, kwargs):
@@ -57,11 +62,11 @@ def _flush_guide_kw(obj, name, kwargs):
5762
# colorbar() because locator or formatter axis would get reset. Old solution was
5863
# to delete the _guide_kw but that destroyed default behavior. New solution is
5964
# to keep _guide_kw but have constructor functions return shallow copies.
60-
opts = getattr(obj, f'_{name}_kw', None)
61-
if opts:
62-
_update_kw(kwargs, overwrite=False, **opts)
65+
guide_kw = getattr(obj, f'_{name}_kw', None)
66+
if guide_kw:
67+
_update_kw(kwargs, overwrite=False, **guide_kw)
6368
for key in REMOVE_AFTER_FLUSH:
64-
opts.pop(key, None)
69+
guide_kw.pop(key, None)
6570
if isinstance(obj, (tuple, list, np.ndarray)):
6671
for member in obj: # possibly iterate over matplotlib tuple/list subclasses
6772
_flush_guide_kw(member, name, kwargs)

0 commit comments

Comments
 (0)