From d08c627ef9903923e5a15966310b615e42d39bc8 Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Sat, 11 Jul 2015 17:52:35 -0400 Subject: [PATCH 01/31] Add Cycler as a dependency --- setup.py | 1 + setupext.py | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/setup.py b/setup.py index 912d8e2d6490..26cd3438549e 100644 --- a/setup.py +++ b/setup.py @@ -67,6 +67,7 @@ setupext.Numpy(), setupext.Dateutil(), setupext.Pytz(), + setupext.Cycler(), setupext.Tornado(), setupext.Pyparsing(), setupext.LibAgg(), diff --git a/setupext.py b/setupext.py index 29e549e4d833..5446c8dc8e02 100755 --- a/setupext.py +++ b/setupext.py @@ -1162,6 +1162,24 @@ def get_install_requires(self): return ['pytz'] +class Cycler(SetupPackage): + name = "cycler" + + def check(self): + try: + import cycler + except ImportError: + return ( + "cycler was not found. " + "pip will attempt to install it " + "after matplotlib.") + + return "using cycler version %s" % pytz.__version__ + + def get_install_requires(self): + return ['cycler'] + + class Dateutil(SetupPackage): name = "dateutil" From e3c09518bca3e1e4f941c8f54c788e970f0876e1 Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Sun, 12 Jul 2015 16:55:27 -0400 Subject: [PATCH 02/31] Implemented style cycling using cycler. * New rcparam 'axes.style_cycle' * Deprecate rcparam 'axes.color_cycle' * 'axes.style_cycle' can be a cycler object or string repr * Enables setting of just about any property --- lib/matplotlib/axes/_base.py | 55 ++++++++++++++++++++++++------------ lib/matplotlib/rcsetup.py | 32 +++++++++++++++++++++ 2 files changed, 69 insertions(+), 18 deletions(-) diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py index 50afb7bbfcc3..9b47f587c4da 100644 --- a/lib/matplotlib/axes/_base.py +++ b/lib/matplotlib/axes/_base.py @@ -9,6 +9,7 @@ import math from operator import itemgetter +from cycler import cycler import numpy as np from numpy import ma @@ -138,7 +139,7 @@ class _process_plot_var_args(object): def __init__(self, axes, command='plot'): self.axes = axes self.command = command - self.set_color_cycle() + self.set_style_cycle() def __getstate__(self): # note: it is not possible to pickle a itertools.cycle instance @@ -146,12 +147,17 @@ def __getstate__(self): def __setstate__(self, state): self.__dict__ = state.copy() - self.set_color_cycle() - - def set_color_cycle(self, clist=None): - if clist is None: - clist = rcParams['axes.color_cycle'] - self.color_cycle = itertools.cycle(clist) + self.set_style_cycle() + + def set_style_cycle(self, style_cycler=None): + if style_cycler is None: + style_cycler = rcParams['axes.style_cycle'] + if style_cycler is None and 'axes.color_cycle' in rcParams: + clist = rcParams['axes.color_cycle'] + style_cycler = cycler('color', clist) + self.style_cycler = itertools.cycle(style_cycler) + # Make a copy + self._style_keys = list(style_cycler.keys) def __call__(self, *args, **kwargs): @@ -229,24 +235,37 @@ def _xy_from_xy(self, x, y): y = y[:, np.newaxis] return x, y + def _setdefaults(self, kw, kwargs): + # Only advance the cycler if the cycler + # has information that is not specified + # in the supplied kw and kwargs dicts + if any([kw.get(k, None) is None and kwargs.get(k, None) is None + for k in self._style_keys]): + default_dict = six.next(self.style_cycler) + else: + default_dict = None + + for k in self._style_keys: + if (default_dict is not None and + kw.get(k, None) is None and + kwargs.get(k, None) is None): + kwargs[k] = kw[k] = default_dict[k] + def _makeline(self, x, y, kw, kwargs): kw = kw.copy() # Don't modify the original kw. kwargs = kwargs.copy() - if kw.get('color', None) is None and kwargs.get('color', None) is None: - kwargs['color'] = kw['color'] = six.next(self.color_cycle) - # (can't use setdefault because it always evaluates - # its second argument) - seg = mlines.Line2D(x, y, - **kw - ) + self._setdefaults(kw, kwargs) + seg = mlines.Line2D(x, y, **kw) self.set_lineprops(seg, **kwargs) return seg def _makefill(self, x, y, kw, kwargs): - try: - facecolor = kw['color'] - except KeyError: - facecolor = six.next(self.color_cycle) + kw = kw.copy() # Don't modify the original kw. + kwargs = kwargs.copy() + # Might be problematic with fallback names such as + # 'facecolor' and such. Possibly fixed by traitlets? + self._setdefaults(kw, kwargs) + facecolor = kw['color'] seg = mpatches.Polygon(np.hstack((x[:, np.newaxis], y[:, np.newaxis])), facecolor=facecolor, diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py index e3a64ae85efe..61531dc91ee4 100644 --- a/lib/matplotlib/rcsetup.py +++ b/lib/matplotlib/rcsetup.py @@ -23,6 +23,8 @@ from matplotlib.fontconfig_pattern import parse_fontconfig_pattern from matplotlib.colors import is_color_like +from cycler import cycler, Cycler + #interactive_bk = ['gtk', 'gtkagg', 'gtkcairo', 'qt4agg', # 'tkagg', 'wx', 'wxagg', 'cocoaagg', 'webagg'] # The capitalized forms are needed for ipython at present; this may @@ -299,6 +301,12 @@ def validate_color(s): raise ValueError('%s does not look like a color arg%s' % (s, msg)) +def deprecate_axes_colorcycle(value): + warnings.warn("axes.color_cycle is deprecated. Use axes.style_cycle " + "instead. Will be removed in 2.1.0") + return validate_colorlist(value) + + def validate_colorlist(s): 'return a list of colorspecs' @@ -310,6 +318,25 @@ def validate_colorlist(s): msg = "'s' must be of type [ string | list | tuple ]" raise ValueError(msg) +def validate_cycler(s): + 'return a cycler object from a string repr or the object itself' + if isinstance(s, six.string_types): + try: + # TODO: We might want to rethink this... + cycler_inst = eval(s, {'cycler': cycler, 'Cycler': Cycler}) + except BaseException as e: + raise ValueError("'%s' is not a valid cycler construction: %s" % + (s, e)) + elif isinstance(s, Cycler): + cycler_inst = s + else: + raise ValueError("object was not a string or Cycler instance: %s" % s) + + # TODO: apply validation to the cycled elements + # probably doable via traitlets + + return cycler_inst + def validate_stringlist(s): 'return a list' if isinstance(s, six.string_types): @@ -750,6 +777,11 @@ def __call__(self, s): 'axes.color_cycle': [['b', 'g', 'r', 'c', 'm', 'y', 'k'], validate_colorlist], # cycle of plot # line colors + # This entry can be either a cycler object or a + # string repr of a cycler-object, which gets eval()'ed + # to create the object. + 'axes.style_cycle': [cycler('color', 'bgrcmyk'), + validate_cycler], 'axes.xmargin': [0, ValidateInterval(0, 1, closedmin=True, closedmax=True)], # margin added to xaxis From 160401b1806b82070aeb779b4c1b0be15d6a2961 Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Mon, 13 Jul 2015 22:18:17 -0400 Subject: [PATCH 03/31] Fix a typo for cycler dependency --- setupext.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setupext.py b/setupext.py index 5446c8dc8e02..2f4c39780888 100755 --- a/setupext.py +++ b/setupext.py @@ -1174,7 +1174,7 @@ def check(self): "pip will attempt to install it " "after matplotlib.") - return "using cycler version %s" % pytz.__version__ + return "using cycler version %s" % cycler.__version__ def get_install_requires(self): return ['cycler'] From 6b2223d64630678a6406bbc8a97f545149d2af48 Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Mon, 13 Jul 2015 22:19:46 -0400 Subject: [PATCH 04/31] Initial implementation of property cycling * Changed name from style cycling to property cycling * Still not working for bar plots, though. * Need to test errorbars. --- lib/matplotlib/axes/_axes.py | 14 +++++------ lib/matplotlib/axes/_base.py | 46 ++++++++++++++++++++++++------------ lib/matplotlib/rcsetup.py | 6 ++--- 3 files changed, 41 insertions(+), 25 deletions(-) diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index 91c752983c08..760ad5fa0fc5 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -1265,9 +1265,9 @@ def plot(self, *args, **kwargs): Return value is a list of lines that were added. - By default, each line is assigned a different color specified by a - 'color cycle'. To change this behavior, you can edit the - axes.color_cycle rcParam. + By default, each line is assigned a different style specified by a + 'style cycle'. To change this behavior, you can edit the + axes.prop_cycle rcParam. The following format string characters are accepted to control the line style or marker: @@ -2935,8 +2935,8 @@ def xywhere(xs, ys, mask): l0, = self.plot(x, y, fmt, **kwargs) if ecolor is None: - if l0 is None: - ecolor = six.next(self._get_lines.color_cycle) + if l0 is None and 'color' in self._get_lines._prop_keys: + ecolor = six.next(self._get_lines.prop_cycle)['color'] else: ecolor = l0.get_color() @@ -5829,8 +5829,8 @@ def hist(self, x, bins=10, range=None, normed=False, weights=None, nx = len(x) # number of datasets - if color is None: - color = [six.next(self._get_lines.color_cycle) + if color is None and 'color' in self._get_lines._prop_keys: + color = [six.next(self._get_lines.prop_cycle)['color'] for i in xrange(nx)] else: color = mcolors.colorConverter.to_rgba_array(color) diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py index 9b47f587c4da..8a0aec99af25 100644 --- a/lib/matplotlib/axes/_base.py +++ b/lib/matplotlib/axes/_base.py @@ -9,7 +9,7 @@ import math from operator import itemgetter -from cycler import cycler +from cycler import cycler, Cycler import numpy as np from numpy import ma @@ -139,7 +139,7 @@ class _process_plot_var_args(object): def __init__(self, axes, command='plot'): self.axes = axes self.command = command - self.set_style_cycle() + self.set_prop_cycle() def __getstate__(self): # note: it is not possible to pickle a itertools.cycle instance @@ -147,17 +147,17 @@ def __getstate__(self): def __setstate__(self, state): self.__dict__ = state.copy() - self.set_style_cycle() + self.set_prop_cycle() - def set_style_cycle(self, style_cycler=None): - if style_cycler is None: - style_cycler = rcParams['axes.style_cycle'] - if style_cycler is None and 'axes.color_cycle' in rcParams: + def set_prop_cycle(self, prop_cycler=None): + if prop_cycler is None: + prop_cycler = rcParams['axes.prop_cycle'] + if prop_cycler is None and 'axes.color_cycle' in rcParams: clist = rcParams['axes.color_cycle'] - style_cycler = cycler('color', clist) - self.style_cycler = itertools.cycle(style_cycler) + prop_cycler = cycler('color', clist) + self.prop_cycler = itertools.cycle(prop_cycler) # Make a copy - self._style_keys = list(style_cycler.keys) + self._prop_keys = list(prop_cycler.keys) def __call__(self, *args, **kwargs): @@ -240,12 +240,12 @@ def _setdefaults(self, kw, kwargs): # has information that is not specified # in the supplied kw and kwargs dicts if any([kw.get(k, None) is None and kwargs.get(k, None) is None - for k in self._style_keys]): - default_dict = six.next(self.style_cycler) + for k in self._prop_keys]): + default_dict = six.next(self.prop_cycler) else: default_dict = None - for k in self._style_keys: + for k in self._prop_keys: if (default_dict is not None and kw.get(k, None) is None and kwargs.get(k, None) is None): @@ -1004,14 +1004,30 @@ def clear(self): """clear the axes""" self.cla() + def set_prop_cycle(self, prop_cycle): + """ + Set the prop cycle for any future plot commands on this Axes. + + *prop_cycle* is a :class:Cycler object. + Can also be `None` to reset to the cycle defined by the + current style. + """ + self._get_lines.set_prop_cycle(prop_cycle) + self._get_patches_for_fill.set_prop_cycle(prop_cycle) + def set_color_cycle(self, clist): """ Set the color cycle for any future plot commands on this Axes. *clist* is a list of mpl color specifiers. + + .. deprecated:: 1.5 """ - self._get_lines.set_color_cycle(clist) - self._get_patches_for_fill.set_color_cycle(clist) + cbook.warn_deprecated( + '1.5', name='set_color_cycle', alternative='set_prop_cycle') + prop_cycler = cycler('color', clist) + self._get_lines.set_prop_cycle(prop_cycler) + self._get_patches_for_fill.set_prop_cycle(prop_cycler) def ishold(self): """return the HOLD status of the axes""" diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py index 61531dc91ee4..c5355fa7df5e 100644 --- a/lib/matplotlib/rcsetup.py +++ b/lib/matplotlib/rcsetup.py @@ -302,7 +302,7 @@ def validate_color(s): raise ValueError('%s does not look like a color arg%s' % (s, msg)) def deprecate_axes_colorcycle(value): - warnings.warn("axes.color_cycle is deprecated. Use axes.style_cycle " + warnings.warn("axes.color_cycle is deprecated. Use axes.prop_cycle " "instead. Will be removed in 2.1.0") return validate_colorlist(value) @@ -780,8 +780,8 @@ def __call__(self, s): # This entry can be either a cycler object or a # string repr of a cycler-object, which gets eval()'ed # to create the object. - 'axes.style_cycle': [cycler('color', 'bgrcmyk'), - validate_cycler], + 'axes.prop_cycle': [cycler('color', 'bgrcmyk'), + validate_cycler], 'axes.xmargin': [0, ValidateInterval(0, 1, closedmin=True, closedmax=True)], # margin added to xaxis From 0c1e609e7e103a87408d80d717029cc06fd0f5ee Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Tue, 14 Jul 2015 12:32:38 -0400 Subject: [PATCH 05/31] Fix some typos and handle some other codes using color cycling --- lib/matplotlib/axes/_axes.py | 4 ++-- lib/matplotlib/pyplot.py | 3 ++- lib/matplotlib/stackplot.py | 4 ++-- lib/matplotlib/streamplot.py | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index 760ad5fa0fc5..225720985f67 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -2936,7 +2936,7 @@ def xywhere(xs, ys, mask): if ecolor is None: if l0 is None and 'color' in self._get_lines._prop_keys: - ecolor = six.next(self._get_lines.prop_cycle)['color'] + ecolor = six.next(self._get_lines.prop_cycler)['color'] else: ecolor = l0.get_color() @@ -5830,7 +5830,7 @@ def hist(self, x, bins=10, range=None, normed=False, weights=None, nx = len(x) # number of datasets if color is None and 'color' in self._get_lines._prop_keys: - color = [six.next(self._get_lines.prop_cycle)['color'] + color = [six.next(self._get_lines.prop_cycler)['color'] for i in xrange(nx)] else: color = mcolors.colorConverter.to_rgba_array(color) diff --git a/lib/matplotlib/pyplot.py b/lib/matplotlib/pyplot.py index 07875554cf75..39d4c3858c61 100644 --- a/lib/matplotlib/pyplot.py +++ b/lib/matplotlib/pyplot.py @@ -24,6 +24,7 @@ import warnings import types +from cycler import cycler import matplotlib import matplotlib.colorbar from matplotlib import style @@ -394,7 +395,7 @@ def xkcd(scale=1, length=100, randomness=2): rcParams['grid.linewidth'] = 0.0 rcParams['axes.grid'] = False rcParams['axes.unicode_minus'] = False - rcParams['axes.color_cycle'] = ['b', 'r', 'c', 'm'] + rcParams['axes.prop_cycle'] = cycler('color', ['b', 'r', 'c', 'm']) rcParams['axes.edgecolor'] = 'black' rcParams['xtick.major.size'] = 8 rcParams['xtick.major.width'] = 3 diff --git a/lib/matplotlib/stackplot.py b/lib/matplotlib/stackplot.py index 30f3156f111f..020c78c6a5a2 100644 --- a/lib/matplotlib/stackplot.py +++ b/lib/matplotlib/stackplot.py @@ -103,13 +103,13 @@ def stackplot(axes, x, *args, **kwargs): # Color between x = 0 and the first array. r.append(axes.fill_between(x, first_line, stack[0, :], - facecolor=six.next(axes._get_lines.color_cycle), + facecolor=six.next(axes._get_lines.prop_cycler)['color'], label= six.next(labels, None), **kwargs)) # Color between array i-1 and array i for i in xrange(len(y) - 1): - color = six.next(axes._get_lines.color_cycle) + color = six.next(axes._get_lines.prop_cycler)['color'] r.append(axes.fill_between(x, stack[i, :], stack[i + 1, :], facecolor= color, label= six.next(labels, None), diff --git a/lib/matplotlib/streamplot.py b/lib/matplotlib/streamplot.py index 480f02d9552f..2ae4def36243 100644 --- a/lib/matplotlib/streamplot.py +++ b/lib/matplotlib/streamplot.py @@ -83,7 +83,7 @@ def streamplot(axes, x, y, u, v, density=1, linewidth=None, color=None, transform = axes.transData if color is None: - color = six.next(axes._get_lines.color_cycle) + color = six.next(axes._get_lines.prop_cycler)['color'] if linewidth is None: linewidth = matplotlib.rcParams['lines.linewidth'] From 61d10f9f1e55a4c73c5ab3b0ca3ec6ccb81e2da0 Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Tue, 14 Jul 2015 22:35:18 -0400 Subject: [PATCH 06/31] Make dict access safer --- lib/matplotlib/axes/_base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py index 8a0aec99af25..90f615982463 100644 --- a/lib/matplotlib/axes/_base.py +++ b/lib/matplotlib/axes/_base.py @@ -265,7 +265,7 @@ def _makefill(self, x, y, kw, kwargs): # Might be problematic with fallback names such as # 'facecolor' and such. Possibly fixed by traitlets? self._setdefaults(kw, kwargs) - facecolor = kw['color'] + facecolor = kw.get('color', None) seg = mpatches.Polygon(np.hstack((x[:, np.newaxis], y[:, np.newaxis])), facecolor=facecolor, From e356972737d7085593aa5aa3c6fc7959b9be2d26 Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Tue, 14 Jul 2015 22:43:09 -0400 Subject: [PATCH 07/31] Added some tests for baseline features --- lib/matplotlib/__init__.py | 1 + .../test_cycles/color_cycle_basic.png | Bin 0 -> 32608 bytes .../test_cycles/fill_cycle_basic.png | Bin 0 -> 33768 bytes .../test_cycles/lineprop_cycle_basic.png | Bin 0 -> 35180 bytes lib/matplotlib/tests/test_cycles.py | 64 ++++++++++++++++++ 5 files changed, 65 insertions(+) create mode 100644 lib/matplotlib/tests/baseline_images/test_cycles/color_cycle_basic.png create mode 100644 lib/matplotlib/tests/baseline_images/test_cycles/fill_cycle_basic.png create mode 100644 lib/matplotlib/tests/baseline_images/test_cycles/lineprop_cycle_basic.png create mode 100644 lib/matplotlib/tests/test_cycles.py diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py index c85984b87981..65fa84b1b58b 100644 --- a/lib/matplotlib/__init__.py +++ b/lib/matplotlib/__init__.py @@ -1452,6 +1452,7 @@ def tk_window_focus(): 'matplotlib.tests.test_transforms', 'matplotlib.tests.test_triangulation', 'matplotlib.tests.test_widgets', + 'matplotlib.tests.test_cycles', 'matplotlib.sphinxext.tests.test_tinypages', 'mpl_toolkits.tests.test_mplot3d', 'mpl_toolkits.tests.test_axes_grid1', diff --git a/lib/matplotlib/tests/baseline_images/test_cycles/color_cycle_basic.png b/lib/matplotlib/tests/baseline_images/test_cycles/color_cycle_basic.png new file mode 100644 index 0000000000000000000000000000000000000000..38c9b11afd36ac9c803cc065e260e12c7aead771 GIT binary patch literal 32608 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 A&;S4c literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/test_cycles.py b/lib/matplotlib/tests/test_cycles.py new file mode 100644 index 000000000000..3f94de3ca8bd --- /dev/null +++ b/lib/matplotlib/tests/test_cycles.py @@ -0,0 +1,64 @@ +from matplotlib.testing.decorators import image_comparison +import matplotlib.pyplot as plt +import numpy as np + +from cycler import cycler + +@image_comparison(baseline_images=['color_cycle_basic'], remove_text=True, + extensions=['png']) +def test_colorcycle_basic(): + fig = plt.figure() + ax = fig.add_subplot(111) + ax.set_prop_cycle(cycler('color', ['r', 'g', 'y'])) + xs = np.arange(10) + ys = 0.25 * xs + 2 + ax.plot(xs, ys, label='red', lw=4) + ys = 0.45 * xs + 3 + ax.plot(xs, ys, label='green', lw=4) + ys = 0.65 * xs + 4 + ax.plot(xs, ys, label='yellow', lw=4) + ys = 0.85 * xs + 5 + ax.plot(xs, ys, label='red2', lw=4) + ax.legend(loc='upper left') + + +@image_comparison(baseline_images=['lineprop_cycle_basic'], remove_text=True, + extensions=['png']) +def test_linestylecycle_basic(): + fig = plt.figure() + ax = fig.add_subplot(111) + ax.set_prop_cycle(cycler('linestyle', ['-', '--', ':'])) + xs = np.arange(10) + ys = 0.25 * xs + 2 + ax.plot(xs, ys, label='solid', lw=4) + ys = 0.45 * xs + 3 + ax.plot(xs, ys, label='dashed', lw=4) + ys = 0.65 * xs + 4 + ax.plot(xs, ys, label='dotted', lw=4) + ys = 0.85 * xs + 5 + ax.plot(xs, ys, label='solid2', lw=4) + ax.legend(loc='upper left') + +@image_comparison(baseline_images=['fill_cycle_basic'], remove_text=True, + extensions=['png']) +def test_fillcycle_basic(): + fig = plt.figure() + ax = fig.add_subplot(111) + ax.set_prop_cycle(cycler('color', ['red', 'green', 'yellow']))# + + #cycler('hatch', ['xx', 'O', '|-'])) + xs = np.arange(10) + ys = 0.25 * xs**.5 + 2 + ax.fill(xs, ys, label='red, x') + ys = 0.45 * xs**.5 + 3 + ax.fill(xs, ys, label='green, circle') + ys = 0.65 * xs**.5 + 4 + ax.fill(xs, ys, label='yellow, cross') + ys = 0.85 * xs**.5 + 5 + ax.fill(xs, ys, label='red2, x2') + ax.legend(loc='upper left') + + +if __name__ == '__main__': + import nose + nose.runmodule(argv=['-s', '--with-doctest'], exit=False) + From 68f0afba73c750b5b6b239b7f53b86a271de4acb Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Thu, 16 Jul 2015 15:07:14 -0400 Subject: [PATCH 08/31] Updated the fill test to get the hatching. Explicitly deprecated axes.color_cycle --- lib/matplotlib/__init__.py | 4 ++++ lib/matplotlib/axes/_base.py | 4 ++-- .../test_cycles/fill_cycle_basic.png | Bin 33768 -> 55721 bytes lib/matplotlib/tests/test_cycles.py | 12 ++++++------ 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py index 65fa84b1b58b..39a6153d1d13 100644 --- a/lib/matplotlib/__init__.py +++ b/lib/matplotlib/__init__.py @@ -116,6 +116,8 @@ import contextlib import distutils.sysconfig +from cycler import cycler + # cbook must import matplotlib only within function # definitions, so it is safe to import from it here. from matplotlib.cbook import is_string_like, mplDeprecation @@ -826,6 +828,8 @@ def matplotlib_fname(): 'svg.embed_char_paths': ('svg.fonttype', lambda x: "path" if x else "none", None), 'savefig.extension': ('savefig.format', lambda x: x, None), + 'axes.color_cycle': ('axes.prop_cycle', lambda x: cycler('color', x), + lambda x: [c.get('color', None) for c in x), } _deprecated_ignore_map = { diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py index 90f615982463..940b7d6140ed 100644 --- a/lib/matplotlib/axes/_base.py +++ b/lib/matplotlib/axes/_base.py @@ -156,8 +156,8 @@ def set_prop_cycle(self, prop_cycler=None): clist = rcParams['axes.color_cycle'] prop_cycler = cycler('color', clist) self.prop_cycler = itertools.cycle(prop_cycler) - # Make a copy - self._prop_keys = list(prop_cycler.keys) + # This should make a copy + self._prop_keys = prop_cycler.keys def __call__(self, *args, **kwargs): diff --git a/lib/matplotlib/tests/baseline_images/test_cycles/fill_cycle_basic.png b/lib/matplotlib/tests/baseline_images/test_cycles/fill_cycle_basic.png index 9e6fbc0f919287399bd202fe6cd8f1b5c02881fe..1bd3b0f1eb4fe513a2e42dac4cc6722c4b043d83 100644 GIT binary patch literal 55721 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 Date: Tue, 28 Jul 2015 13:49:10 -0400 Subject: [PATCH 09/31] fix typo --- lib/matplotlib/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py index 39a6153d1d13..986a21bc8715 100644 --- a/lib/matplotlib/__init__.py +++ b/lib/matplotlib/__init__.py @@ -829,7 +829,7 @@ def matplotlib_fname(): lambda x: "path" if x else "none", None), 'savefig.extension': ('savefig.format', lambda x: x, None), 'axes.color_cycle': ('axes.prop_cycle', lambda x: cycler('color', x), - lambda x: [c.get('color', None) for c in x), + lambda x: [c.get('color', None) for c in x], } _deprecated_ignore_map = { From 9965f5fb198d22d1631df11cdf85be966b971c6e Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Tue, 28 Jul 2015 14:32:37 -0400 Subject: [PATCH 10/31] should have linted --- lib/matplotlib/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py index 986a21bc8715..df93bf8cdace 100644 --- a/lib/matplotlib/__init__.py +++ b/lib/matplotlib/__init__.py @@ -829,7 +829,7 @@ def matplotlib_fname(): lambda x: "path" if x else "none", None), 'savefig.extension': ('savefig.format', lambda x: x, None), 'axes.color_cycle': ('axes.prop_cycle', lambda x: cycler('color', x), - lambda x: [c.get('color', None) for c in x], + lambda x: [c.get('color', None) for c in x]), } _deprecated_ignore_map = { From 5fa07f279465f57f13b943a3578b0768dca2e1c4 Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Fri, 14 Aug 2015 17:51:29 -0400 Subject: [PATCH 11/31] Getting cycling to work! * Sort batch setting of artist properties for consistency * Improved error notification on bad properties (but still leaves artist in a mixed state...) * Finer-grained defaults handling in axes._base * Backwards-compatible fixes to makefill() * Improved unit test case * Fixed some situations where color was assumed to be in the cycles. --- lib/matplotlib/artist.py | 20 +++- lib/matplotlib/axes/_base.py | 90 ++++++++++++------ lib/matplotlib/stackplot.py | 13 ++- lib/matplotlib/streamplot.py | 2 +- .../test_cycles/fill_cycle_basic.png | Bin 55721 -> 57092 bytes lib/matplotlib/tests/test_cycles.py | 11 ++- 6 files changed, 95 insertions(+), 41 deletions(-) diff --git a/lib/matplotlib/artist.py b/lib/matplotlib/artist.py index 010bcfc1daf3..e57f1a4b1290 100644 --- a/lib/matplotlib/artist.py +++ b/lib/matplotlib/artist.py @@ -900,13 +900,20 @@ def properties(self): def set(self, **kwargs): """ - A tkstyle set command, pass *kwargs* to set properties + A property batch setter. Pass *kwargs* to set properties. + Will handle property name collisions (e.g., if both + 'color' and 'facecolor' are specified, the property + with higher priority gets set last). + """ ret = [] - for k, v in six.iteritems(kwargs): + for k, v in sorted(kwargs.items(), reverse=True): k = k.lower() funcName = "set_%s" % k - func = getattr(self, funcName) + func = getattr(self, funcName, None) + if func is None: + raise TypeError('There is no %s property "%s"' % + (self.__class__.__name__, k)) ret.extend([func(v)]) return ret @@ -1406,14 +1413,17 @@ def setp(obj, *args, **kwargs): funcvals = [] for i in range(0, len(args) - 1, 2): funcvals.append((args[i], args[i + 1])) - funcvals.extend(kwargs.items()) + funcvals.extend(sorted(kwargs.items(), reverse=True)) ret = [] for o in objs: for s, val in funcvals: s = s.lower() funcName = "set_%s" % s - func = getattr(o, funcName) + func = getattr(o, funcName, None) + if func is None: + raise TypeError('There is no %s property "%s"' % + (o.__class__.__name__, s)) ret.extend([func(val)]) return [x for x in cbook.flatten(ret)] diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py index 940b7d6140ed..eedafdb4bd25 100644 --- a/lib/matplotlib/axes/_base.py +++ b/lib/matplotlib/axes/_base.py @@ -181,23 +181,16 @@ def __call__(self, *args, **kwargs): ret = self._grab_next_args(*args, **kwargs) return ret + def set_lineprops(self, line, **kwargs): assert self.command == 'plot', 'set_lineprops only works with "plot"' - for key, val in six.iteritems(kwargs): - funcName = "set_%s" % key - if not hasattr(line, funcName): - raise TypeError('There is no line property "%s"' % key) - func = getattr(line, funcName) - func(val) + line.set(**kwargs) + def set_patchprops(self, fill_poly, **kwargs): assert self.command == 'fill', 'set_patchprops only works with "fill"' - for key, val in six.iteritems(kwargs): - funcName = "set_%s" % key - if not hasattr(fill_poly, funcName): - raise TypeError('There is no patch property "%s"' % key) - func = getattr(fill_poly, funcName) - func(val) + fill_poly.set(**kwargs) + def _xy_from_xy(self, x, y): if self.axes.xaxis is not None and self.axes.yaxis is not None: @@ -235,37 +228,79 @@ def _xy_from_xy(self, x, y): y = y[:, np.newaxis] return x, y - def _setdefaults(self, kw, kwargs): - # Only advance the cycler if the cycler - # has information that is not specified - # in the supplied kw and kwargs dicts - if any([kw.get(k, None) is None and kwargs.get(k, None) is None - for k in self._prop_keys]): + + def _getdefaults(self, *kwargs): + """ + Only advance the cycler if the cycler has information that + is not specified in any of the supplied tuple of dicts + + Returns a dictionary or None. + + """ + if any([all([kw.get(k, None) is None for kw in kwargs]) + for k in self._prop_keys]): default_dict = six.next(self.prop_cycler) else: default_dict = None + return default_dict + + + def _setdefaults(self, default_dict, *kwargs): + """ + Given a defaults dictionary (or None), and a other dictionaries, + update the other dictionaries with information in defaults if + none of the other dictionaries contains that information. + + """ + if default_dict is None: + return + for k in default_dict: + if all([kw.get(k, None) is None for kw in kwargs]): + for kw in kwargs: + kw[k] = default_dict[k] - for k in self._prop_keys: - if (default_dict is not None and - kw.get(k, None) is None and - kwargs.get(k, None) is None): - kwargs[k] = kw[k] = default_dict[k] def _makeline(self, x, y, kw, kwargs): kw = kw.copy() # Don't modify the original kw. kwargs = kwargs.copy() - self._setdefaults(kw, kwargs) + default_dict = self._getdefaults(kw, kwargs) + self._setdefaults(default_dict, kw, kwargs) seg = mlines.Line2D(x, y, **kw) self.set_lineprops(seg, **kwargs) return seg + def _makefill(self, x, y, kw, kwargs): kw = kw.copy() # Don't modify the original kw. kwargs = kwargs.copy() - # Might be problematic with fallback names such as - # 'facecolor' and such. Possibly fixed by traitlets? - self._setdefaults(kw, kwargs) + + # Only using the first dictionary to use as basis + # for getting defaults for back-compat reasons. + # Doing it with both seems to mess things up in + # various places (probably due to logic bugs elsewhere). + default_dict = self._getdefaults(kw) + self._setdefaults(default_dict, kw) + + # Looks like we don't want "color" to be interpreted to + # mean both facecolor and edgecolor for some reason. + # So the "kw" dictionary is thrown out, and only its + # 'color' value is kept and translated as a 'facecolor'. + # This design should probably be revisited as it increases + # complexity. facecolor = kw.get('color', None) + + # Throw out 'color' as it is now handled as a facecolor + # Need to copy this dictionary or else the next time around + # in the cycle, the dictionary will be missing this entry + # completely! + if default_dict is not None: + default_dict = default_dict.copy() + default_dict.pop('color', None) + + # To get other properties set from the cycler + # modify the kwargs dictionary. + self._setdefaults(default_dict, kwargs) + seg = mpatches.Polygon(np.hstack((x[:, np.newaxis], y[:, np.newaxis])), facecolor=facecolor, @@ -274,6 +309,7 @@ def _makefill(self, x, y, kw, kwargs): self.set_patchprops(seg, **kwargs) return seg + def _plot_args(self, tup, kwargs): ret = [] if len(tup) > 1 and is_string_like(tup[-1]): diff --git a/lib/matplotlib/stackplot.py b/lib/matplotlib/stackplot.py index 020c78c6a5a2..0a8c10d36a40 100644 --- a/lib/matplotlib/stackplot.py +++ b/lib/matplotlib/stackplot.py @@ -102,16 +102,23 @@ def stackplot(axes, x, *args, **kwargs): raise ValueError(errstr) # Color between x = 0 and the first array. + if 'color' in axes._get_lines._prop_keys: + color = six.next(axes._get_lines.prop_cycler)['color'] + else: + color = None r.append(axes.fill_between(x, first_line, stack[0, :], - facecolor=six.next(axes._get_lines.prop_cycler)['color'], + facecolor=color, label= six.next(labels, None), **kwargs)) # Color between array i-1 and array i for i in xrange(len(y) - 1): - color = six.next(axes._get_lines.prop_cycler)['color'] + if 'color' in axes._get_lines._prop_keys: + color = six.next(axes._get_lines.prop_cycler)['color'] + else: + color = None r.append(axes.fill_between(x, stack[i, :], stack[i + 1, :], - facecolor= color, + facecolor=color, label= six.next(labels, None), **kwargs)) return r diff --git a/lib/matplotlib/streamplot.py b/lib/matplotlib/streamplot.py index 2ae4def36243..ea33cde6b61a 100644 --- a/lib/matplotlib/streamplot.py +++ b/lib/matplotlib/streamplot.py @@ -82,7 +82,7 @@ def streamplot(axes, x, y, u, v, density=1, linewidth=None, color=None, if transform is None: transform = axes.transData - if color is None: + if color is None and 'color' in axes._get_lines._prop_keys: color = six.next(axes._get_lines.prop_cycler)['color'] if linewidth is None: diff --git a/lib/matplotlib/tests/baseline_images/test_cycles/fill_cycle_basic.png b/lib/matplotlib/tests/baseline_images/test_cycles/fill_cycle_basic.png index 1bd3b0f1eb4fe513a2e42dac4cc6722c4b043d83..bbf09ca23dfac33e76a1dc106224dce74aa969f1 100644 GIT binary patch literal 57092 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 acnEY)t&F2TXp@Eke-vbuWvX7Ag#2GIh@52r literal 55721 zcmeEubySpV^zHy6phyZx<4_6+ii9-E(A^-ZfJ&!y8Zfjdpfr+0mq>?7DuQ%3N`oLs z!`*Yvul~5}uKVv@>&{x9qcHQ$eDAy8y`SgV&z?{XHTg>y=q?}-h)aqJC@lm6j|G9i zH6T0>KS^|d<^=yc=Xy_3hY%jVgqCRdH<6Qqp(_GG`T+X}2P2hhjX(ULFmZe}^`cGulWZ%i`-u&D4@=hL*|UaLlYAWV z5)v=e#Bx+~C(>tRT<1zh9-SP`A3rirzAJ5hW#*`+xF%w;X0a=QASc16TV$^ng_1^L zAC@?^eH#dJ>_eA9MH-ELbUb_)NQV7MOzTaYt4Qo4`~mL0f1XeM<=l&Zp2QPOM2LM3 zxgjwn*+0)Izrw-t?=^4z{|o&;y+(G*b$GF?SFhqE2|ETiHA!*l=Ie}2Vk05LXQIJ} zrmU>Y^H;*-ne}y(vB~Ri-US-Od`}X#7%6>_J$VTm3t!taWW#T|E&b@*kV|Me*AljW zbcCl7@B;@2CwrWhd;4&;WImj)@!GnB0hKAGc0EUqr)tEO_q#d4TdlSa!-iW7R8)wA zFVR2RpOAam4zFLzHNii3j^)}lOstQE1ebns*Qzt=|Mr#QYHtIaj9;kzAELF~`#AwA z?>esmIkXmCYELLZyCr_s8MKUroYevGc=i3I9%%3uM3l$6xD^XKPg zK0Obvo(?!;EHbJJhHXt0vJbmoY4cvM=)OVO!P5yoZdD;XJ(-^%Xx_dG* z;n_XNXQ>iCpTB&;lUk-MH$FYt4EO^7aBSGsD-&me&l6KQOGp@J2oD7%rO(|dVrAx^ zaCg?nX-XOoxn93{GrPP@Bz=Q{`HmCI#N^~H`!N9ln*l=oV&hN4W&x3lsXipMw6s@5 z-7xRJV=&jmkJc)FEW5oEvZuqv!*iZ%A@bes%MchA9Y>po5yB)Lv9Y1pN5{*2ZC4j!Xk8Tk&~}1zK+`L zU%Z>DnhMJl=Jn^-g8_`DT>Iuk&2t)4PaIQI(~&AiW}5-bgF7?~3=ui1Npq3HQ?Rjk z#M*_X0Vhwhva=t|w?$$T1@Tsj=+k?3?(1RMO@cN9&7WUh>@CpeBc>A|3^?8*C^o4J ze()vuQ)ed;w_ai3^XD>U;@I7T#kyR$T_}5TUhqmxOwO&t1?ern>|QCzI&I$jJuz6&6=@pl zcHF@38-DHDwT`tdSp6r7!G9KeEdH*I24B!S3{X$LgG2slxj(nJ#`Q6Ss2d^T_lQMw zf_;feo%=|&vqjnNQD(H{XSms$kGmP*#pJAVEO+iykBo6*54W6(G*?(3#yxI&pzz_` z%8Je3{oU2!t4M=-&s%Pyf1dmC^73|cbRZCHoSb+FadGjkHg8YQ%eJ(pMn*>BdlRlB zbsl^O^S&&_)*+#PKK(;nt(b*kIed&DEq;-yF2xpm*We&kV$Orf+NVnpxs6+JNrVeU zj1M~}C(Wwdi}q;dcKG@1>}*g=3#xv9E_|fSLO!*V0xqZN)vPY6SD8HA}w6vkR1$tK{C7IOJ)DVH{QYV*9YTfQeGfCX^J9LA5 zf#l#gzu9yqxiXOV{0*miqIfrCftzr6iRp!i8@zYFR+%Zs^L!$eIu2Az5uKg%n8rtp zjE`HihEWk-xNy(O=_U!2I2!T~%_ctfQgzL;L$R#a4e znrxQ!nBTA!_QHetx?i#s-~65pVWvxQb#;{~F>Q$WJF)cRJ)ZyJGG_#%7&Rq_N+7y< zYKjTYhy3&Nmu|Loxz@O^(+Q}`yx~yYUf+apz2&}Upi^|83Ni%0sD71$$%~gSuim+H zMJAZ|)8F;+@TcF2u;C!+UoHqhFFbia&jJINbCjQ=XLJjuT>edHKlzCgwf=5CDKD6wKu0 zIF62vkb`-r8wZMvgnMK+5H~G5$cSnA*{0pGFzPE8Bq!bPiL$4GW>fozho6UstE9_5 ze*E}kwA`xEIWI2{8~TsBlda#i$wF=Wi6(T~LOShSb6UIN)FZ0NB@RVZ_Ek(w5W8}G zy3gK5_9PWHG%k?Oe5H!BTzV6kDIYZ79yC!w6ZYVOmu&mF7Z^e)DZN#W(|sG~;pVB@ zDs6K@+h)JCg~~Yy+TxxZ6(prFY6Kcm#0vjYuu(dall6HN5k7AsZHEWEjEq=V5EwJ& z-+Kg644SN05s-S-`g+UR)A@)i0s`{H+xMr|@5lt~u(o7?r=1r!El1 zgipeV%WI~$D0m5Dq|Z**BSk7;jhmH)c*B7+?SC;Vw}3oS$UZQXGAN5J{Vv{2oc_R8 zj%tFN0pec(U(TDC*BnZj)1TX&@+|>r^_alY67ie>uSc@rbyV=BAf>p7@me36YB!># z5zWXKmR5N&F+`L)eZAGU-jH0h_?IALvq~`TA8jV1<~zuDHxq74yMGMJ)0By{+*!_i z{gOjHEJmCqtcsWWS-3;XYHd@GA`k%5b;+KTehfwE~FwEuBIcJABS z>{KtPtkc;(S!crtNiDzVaQDVR#IodntlCybw_bmi3n!g?6lPh6mX@n++$i#)+Zv(x ziNNnKq|Ili1UoC)-STqzSsC)Ae>y`XXP185Et(}H!l`xFUF`4EY0Y2m*X`5Hjj~D= zrn>O&3UV=!v+#C%`nAQd=2Ph2PYiSR(AUlx`>5Ob`SZ)>fU|-eEgX@~ma)n2FKGg&8U_jFcURiN>yG~FDn1JdIXsv;$6Dp{=2aG(`N++LIXQ`L);zb!K=Aq(n3aMV96F+CE3+z;B=SC<` ze6%H~Kggl`{-h7JPF&niTSY}{SnqeV$ZWoAQ~Anx+WqKnbNXGImH24&ElH-h3y?!J zjI|i(x~Gm4nU7fX6h>xA?r6U>v-_fHSd8%?l@q5k3W)R6>pZC&^hB?IdvvZY$?r zyu>*>d^=W@{FMs(ruUR^Hy%y3W=MvUX|N+a`Zi}m&m?gWBSOCP6O5BMh_{X=a?#lm z2!xp2Mqow5ZA7f+@#(jtTiz#6*s|De;*{Y=(g}Ws1({h|GRTN#J#-udRR45t`EL{@_z|?e> zy^i2>P*hZ`_S{0|>*PJl*Davl_lHb=C*V{Zk#5@H&9TU5TpgH|#imnY%4mwepEesw zFHFYFOscOxj9Zdh?RO*uHSr>#ZE@p!;Y)M#^D(bpA%um6_YV$eBjuhXo>y1z@g1*r zT_ovFlZyTt$Ngn^cz7up%_1a3UF9%&4~pIFAB4<8XlQ7)+cHIRax&!9qI=V6Xw2to zuYOM*i!*-~4!NRP#6Za2c-0`m0qt#_401BWojVI`xRAvT&)y~}a|9k^x9fDZMAvNE zi(sUJptMR~u{{tc|6GZ`vuIqvJv~-Y(fbGmH#fJKxs3Tt{Qj%GTWyPPwBP)kH(?Gx z3YciUKA@Q6ki^xQ*Xbpxrr5eT*hCN$8_Ncik{Xa$uYjt6>Ko29U#-*ABgZ_Gx{u#wu-pHtbDNdU$xiQ(-Y5UKaNGYnP{)8T?)~MU7Kk@*s;r%)QG_ z%6)C*s{Pmp@)Whl)zN8bX*`DIEo?$;Y$zZGKYzTJ*Eu$Zs;0MWNwY0R!Xgh$Kdq=~85PpZr#5?cO$t^m-E-*?|hMyl@V>LWC4 zZcNpbx3ai|L?lxt(42DXeh!(5tFlnMN@S@NVYAaVj|{Svfh#>(_~x{r9f|1qkWQ zl>ah4&3tzJC;IB6wUM&@jk?Vrg@(85cZZCyv<(ZqfO}oQBFNK|qewYnK$_9;w=dtn zU((K1lg*TiblP3f?Mk>!AQM6&3+z%Z;>rWGx}xG;7Z?7vD8_JlVF&ZJ2-@G<+n?ia z7?t`Sxa_P9UgT6u4vdUcjVbO?=4*KI`?u3Tp&{k__wO+#bwU)Blx4QVyldlCJ!Eg= z;$FhJ$y#a>smo3K5<)5u1UE+|0hf=DZ|O7u=OMhK=+l)K4L*Ar*c>V9cFot<*Xdx} z%5Llfk$e=xr`tW^uG5kZ;~y_cc<)GOE5+UP+O`z1AG=IMMD$L~gV)q^7C$R13+lb; z^}eSpNG?hWiilxr2GOjqQ!B!oe|B|QX=Q>j0ZBsmbOIXTtvG^THGZsUy)2T`9q}|X z6Kq}0%MC0nOkOeEY#?ykB&n|bbj@~sTvQ+)oli5anGBeH-re< z4lRh-10L2MX$p{9nW&IifwlP!$oIWbm4iW(f5YsTzv*|M{~pj*f3N(O*K;w&qtvpK z0?|BK=W)ws;F?acF|DSiCdTmgW7TiJXTNMMWkx@oYYDv~@Z?o5-9_?GDPkT@GtD?U z`8q_1-^YJ?SS2JFvGN6$-xeR5m@qg0`kqA2#1tjZfUG-kC9NzYeh=?GLU=X1oAt8ZZm-Jq) z2A09}JyGyW>~(DjKf8edkSuOUFy8Uv=j{E#$@rG9;19s`x!7n@r3x=KA#0EI&EHF}=8RMiwH%c3x6yvzG&!pg@T zJIh=TE)XIfeb@5wD7=qvT$htN9f+eM*>O%@`fJ%hmrmBBoQK;(o$u?MxHF`H)biS1uLt{ z)b#c2EuD&*8t;tmO+FA6;B7MftLq87ObQD0OXlWU!=HdM_@4S?F(>W3`_Hdb6~h~V zzk+S$QI>;R+JkbwHQXAEl7*5l@bW)ve+jlRi@as=55^2SJFVI;P>!=aexshhI9QZa zo1Km0;9%qS=$FdOa_%4@i6(&BSc~4Py@dHpFIKM)&z^(|-|w;wTBv$6yORFPbV{kt zN`a(X{f^_cP@}%B@g93&qZ75Yfgx;w#QgL=I|m1@ zbd0;;u-PgQ<_GIzm5(fpjg2pen?#^7Eujb+zC;c>PWAjs5`;$P`5)!%zqh|}ZSBup z6co(U=A8e?~w6y*sOmJu?@bmLKtq$F& zuA|u~19BG=7pFTzPN=W14@%5nfj+i^@D5nSu>mGAu5}|yNJzj>b5mIsfw ze)ii{UpJ|72iclVzR%OlKV84S1@?+Dlq5r>d4-m|o1tA=FlF+*wGh2uS*EA zJo3Ss5{~3^AxQhzOtA`$dx4U4qM&W?MH*gnkVRYhFRhwNN=p9T+WHj3D*q}r_62|} zn%c;T;V7V@arxZ(1E-e>NHA>kKd#Q~SPRa*@6U^Y^ang+z%4UJbuh>O(NI&|lc#yF zBYL{^SZNu>^7C{O5(2A)e`JOzDW&@I=gv`Uk~@=o<6Ahs`4cJYt>>NBPSc7eXJtXY zbPf%835)m;CJjSAEu z8`d81J<3~m<&slG8pniRxR2f7dSpVu9+| z44{OGiRsa>)kK}Jg2Tz-?iUc9%j`z^KRoHhr>jGryMy|gp!cwGaLnyZ2gn1QfwX_te1fBsT?X}IzHYNo#@Ltv z@JRA0NNyz@5h6b6b&$^(@al`QB=qT+)Y9485lx($7s$&tx-J`$jnt596E$!_V z5TFJ%F6<=Ck`W-&EufPg|;yZ`E zKLdj+SVn_`cYfvzsT2xJGalybq}9AGtGQuXe+7=#{#r$kiqNM&fBt--cdUQlwpO#4 zDig=0d(*m)4a7*0-kv^{?ManT9l}hMkS69NBscw+!nQHKHxbWc_zZA`IUG+A;%_l{ zxVg0edf4{sIzC)pTZ_QToR!0-U&^h%l>+GgBBHLYzOy>aH~kR=w3iV5765zR3EEOW z`krVt;1A06#fGR5G*|kLo9;`cG&_`hfwj)zCB2j5f!Mqqx5{+y1qH#C_h*5pbK%lO z_uK66y9(xiZj(B_Q)&@HH@h^X8o4xp!6By0dL7lyq^NDuOZ~Z|Ko)kJ*BPL; z>X(?lOi5t`{sHyUXL=uS-Rwk-Ye!eti|A<5mEn@K$4?7CKN&7&1TGj}@wg|E?e;-u zS62%pB&R>WRDmC5I?uPYYB6$GL7trlih?DC0C%B@_R2BCql8<(cm|L-=-|?oHiH^X z{wD-emm1Sc*pXb%wX_B@eowH{%SY!g-0KevVLpF)AkR+wk6@O!|Jk>+r{KPhVc6z0 z^E+|FNZcaBO!xbHf3(Y>v?!UVh%ymQTZBci0%8CDRS@n|5y*F}yZ-jV`hp2hr@Wk8 z@Tkj2X5Zg90;=3U+_I0X2QcJxf;Kuc0FkGC-^6}a0!E;tb6N6W;mtix=D;zsQp1Wz ztz)@9HPzMWaNJ~VWSUA-&>bwdG;dt!ktlcG&bnV`Zd)MKaPfjxrsAfj90 z@|}X-q?7~1-On|yi$9Bz* zk!rIQBw;{wr|K?p>1t_bJscQ#_~K<=7Hdhbv28xDZr_%*wawm6I*VWf7xzVs5zUo5 z8tjZgK`NphD>rf8^RLIqGkpSOpw$1w`^zmTtS?@?FbB}%wGnI@4{$!g$|e+ZOolTz z=khudb4~E8^Fg`j=C7O_)!mIENgZL^^8!!O^97fsUI{piGqQDSj%)gu$Td7}>qAqO2>6Ym|3{sLUQpsHy-D_43UfdfIZIHLa{GL*HD z>+1MMlEszAUXGFQLH+8cqLsMMc1@vW$`qwqN|9$~mSrJN&dC|0E=5)2t~$wwyw@^r zbmGJ3y2$mgJ~y{xAP?zxh`uA5zdBl9(;?3snk;HHMqa1NDI8bZG!OjLMc>c?U@sD|$S?=qBd`&uv@{x4elQPI~ zbFA>JGsVuHr+N%^a?ySHwdmu=xzs{ZyRk|me0XKg!MyCF(&grFExKC+D|B z&Jvg-$e~B@&xLQ6m!s5@$quH^P;HTv)}#Enba5#u3gOhq2A}ZiYV`5%=L(N8u#0xaSTOMS8@fJh-0!?2)wxt64M@6>vO+LU)Nis>q~{I#WJc4l3%sd-s&eJWx8t?3@MXWYV10#sQyT zx)1g-+f|1P7L%ft=Hh%qIwyIB?P+4U{(QOxxIGfN)W1Adb0}V?O5k|x)iZ~n5#XSB ztED~vd)Vw!Op0IChq~9CDa91`D@7mdDx!0&Uy7=scBK3IgT92gzK(4033|gh`1KME zO}dq``I3fUd2c?|%<9GCQ=e{vM<60bQN0t@UDw$7r8g$Q z#-$AuN(OGQqq{LYFi_UX<-$#ofMu;ah~{Arm7p>1js4izD=jU=GIDay202;0$YZcJ zhdABQ(G@)VjW8W7aBdmWi?mCYB2`H|N6cLOce1qXmP00wP5{^HR$2f_OKaYWE&(ZS z92d@HUBUFXik|$IS7;_eN;2*pu)}1!{QN4{ex8&m;?r{intVpiTts#4`2+?JCk^(q zu9VxkS@X)uc6K~iW({Shx#3+%7oTZ88XC3x`}+p#qA^`vDlKhoNOpGo#>PevqiP*} zZEUz6T3F03EfEHsh;N^H>}{C9Q$7z3QJ!}a296hlr^mjwI-{bY`ftthJ!C+T+_huS1M5bJxc6I>?!YoLiRzL*2 z+CJEgY5^`_yLGGAiHDn88Qd4y(B;ptPJEKcAtWT!2c1L_kBwwSdgyUekdc|Y*#QKH zU%vEy!j(* zT`rPN@k{WfKfaClaj#yn@HOsdRM*zh?N%th;V1{tBr~yE(!{&5u~F``=Rhm$kbFl> zEIh}$4|GPEE|6L*ThQcl(7S%p{{6e^l-Ia%Vt)TCfdmj}2q-)BX87 zp1)`Cq78h{PWC*vT4^-1m8bv*e+EJW*#C?0wC{6ha$n`=r?_$d0|N2Ey8k?=%lqq9 z(?2w&Lg<@Inoh$&@MMtmz2fZbj4{+!)f996MGPV}w0&O@tRzjriv6g4YMU(PK>{kD z+;pQK){+2Dt3snHl3evPxr#^M5zx+9Sg@==Tq&sbJ>bV0POz({R%2G9z?Je(Ig z$lcb*sK8@@x__UJn#Ujzd$$2+C&EKTMvpz$N=t8IiRhEw419?%GJ| z8-Z74T!sLgydSbBzJeg8KhGd)DKVJLr3Io!bHHh)oFw!m2Mhd94RwnW1(kKn`t(Uz zGhS*6Xar=U?lT+!Eo9MyG-t?t*YCcn*#GFo0{#EDR-Z0{T zzwd9&M@G@OonsRbF$7Jcb#&Aamfq^)I!G4uQIicm`V5SW*`OK+TY%cB1+;AW$NT4S zMZ;3_pjl&2&+5)Hf?F;N3cbs2{BQ#mi?@Mgo=Jcs0GboNettiJU2>FRrA0VapFVw( zYwz#x&jv7?(Z9Tqo955Y0Dhnf&;u1+T()-L4;D33n(=s8v8^L$Fzh)QXcQmlsKCItb zTN4_=aJ}3)6P-YAlu?hZrf%6ur(_bUm=jT1=LOF@s z7r!SF{HtBQ`3S`8TtGlTp<%_Zpu=)NrW1{R^sI6b(qJJ`9U~zoZVAF8aN1r_LO7Vh@q#uTTV}py4bkJ zW!nGI?!YyKm&9sj7p_%uuRv}DkvcQ_wUC2sI1~!pQ6ycmi$cC zDjo#7XV0JCg2QV!SxcoZv3nU|KKuElf~u z8b1ok%Ftbsd4K4#|N8;locsD%f&`pJAFQ_tD?~w-KwvD9aL|FQ$)`#Bl|Eh7gWz&o z8zBe3*Jm(~T-u99qk)80&MYqKWBh-*!=cQ|&CP^9(w+&Me@Qw^|3h5xkDxH{$N653(0$z6%cu5PlmTq4U$Zs0N!Su{2PU z@s5w4YDulr-5Wfc(R{`yvfgWJ>{dBs8sv20?tl@EuieaR*K{5 z1ZCt>dtYB4`0L6lE2*HtDemat;NSuT_RGlyQG8qIGQsh%1YP*ikq8)s;Bak2kPhf6>gHpnttxGhCG|)OTCcNZClqNQ7Jh;!_a=_lO^_#Oz=?SPZ4paQ8KJ1v1L*;MJ=A!#O6+XTpT-`+juyl3R+sP zA?m(@t|yCH0LcKZ;|rx_8${VKSRPQ|Y4SJs4*&E>K|7N6rnz*`+~(UrFd4ybDdBuq z?5V1%!cMjH^z^J901P&)c6txCN_{uclsh6Koud_xRp+#{v@D@Xwf%S8F+4gt`bpxW zYPr2H!UX*Li_9^D1+r7V{hpJ-IiUhiSoqxwJNBjvlHTf%9?qD=%vU+++TQWrqu$!m zY|=I}iy1bh9IeqV8okPO)i?UOCKz`0UYe7fkK?q~BDJ%^&w0d>otKgvZfmv#Ks3>V z1>dyA6JmxtWZ0YxjaM%{G%r2;7q{I%Uq;w84LKY!wr-{J{WS5o31MN=Zc zZ%#~4pCm4PBkRI73C58o=8;O}qH*}o4W9FX-n)U1Q*k7Z$({_8cCU{a3UC|3 zDq(wW5Sr!t#*WZcHK=pHA!Iia*v{lb41K%1kXN0sD88k|8~`cUciOgpe*5F6a&U&f z<_&3q@Y1E$B*(^3h#{=aP!>`zcG>lk{j z*k&|r$XiD-#7%$?JRq3DTU>IOtbGa9`09-tmjJk7k>77v{)b>p4Bm$ZMLIz4rLjtG z=nmsS%gtlc6h2-C@Smm0I$?x4;Bo~l7|kKu(!L?dC@*#+Fuztcm-_7K&#y>DwJ4#Q)|M9vDk|tv*LZZ3ia9ly_eGNj=0`1#`gzK9Pd#Rq@-jH{0*AAALnNjl^Ke@a)H;07sz%QC(#^T_> zxdW6ctg5O?u?|A`dxbi*U9bfKv@p4L@Mv;D2DG!YvxE(Nv}u&9##jap^SW>!Qc&xp+grw5Bap(4taLFu>*Vw+5I zjy1eVmTWk6Ic&Jh1PI(&un`>2Kufm4B1*j^;^JA)(9umD8cAjNL17{L?EvrKVe8yr zex6C2)S2-@NfWBCzsU6~+5APO&7bW27Qr2*4{YoS(ubDnkBU1!Jzv=j>QKU>Fo77K z#;@6075}XlKT=Mk7T^VuAmD^5aBVI2^_oM>lAGF-L9X*rQ910!%q>xjVo=lx&Jhq; zz#%_qd;It@R^SD97Z!N|8;gV<1C_E_c}0aY01ha5pWE9BF3}6|#Jg`k-I|ld`X{jZ zf~TkF`^^AgsMyX3c#z=C1b3dYzjOwd#xWpeFvLTvrEK)NP9U8KaHz{*HhSN`jCH?@ z+d0?}2ZGTXTDNpS6@b{FpiEyhmaGO1xg2R|*gX41L^}`38WeD?~ z<4)6aa;duUvh9XT(XXgmQ?+w6H*hy5I%$^`6mjSTwH6Qe^pEnKvYr=`f$(>QqNsy~7r6=zgblnbm!-$vNrY?ZcE^ZGb) z{9|bSS);;RUSx5xNL?5>V~FY4w*T}XYr^?rU#_S`G@aE%(hqLdf-v~_@vfNTn9jm; zQdAVPu>ErwQTbPMikSmH`7^K!biQU+UKrFj!{Qha)v}UZE}A5ZclZI+Qa$6x>8d-t{Y3(rYW^}_Is+U$5{8HQazE2dsBr8 z9bE}XPW4}YW=QT|2 ze4RZ!D)2ge@Bj(M%f38va*@T&y$5>HTSLrg?=VA~-~oE*nD)l4E0Nvh(Csw(u4U^! zleSwS09ie-N!Pk9<3iwo2{_)}1I<+oVigzH^vujL(DT}u z)6_&7Roy>BK53(o@c&LH*ifuYQ<)>vKX4cYXrRWkcgG*~lNhVy5}~PJ0#8SLpYHmz z2;w*u--B!=USD4qiYU2A9SVRn|EWs$&`Dmo-MBEPU!LT4G5JPbzUNZj5q|>-76WH%ofNf&7mO4jL3{RjWL;yaBO4mVOneszZE+K{?wD-l!TaF0dUau! zN&DV^%D|b%O>z_zDE~u6%dU6HjBSFdSysxrDJ%Wzvi0>}hX^d%-Wnf&eu-35Lq1*2 zZ=wR_KL}4&uTUfOIyu$-8vp1rGPO@!;3$DK*0&)$Ro@T(LYx zFol<#_T@_u^^J{yG?-!Qy7H|>Jps2XIq%T0P42FM>g~e=a6b_e6Tir@266N`3_kMT zzFqdP^#YGsBZJ@J&L?oYnOj&`^!fuNBZHx=pd4%Lu+{9`99AKig%Pb*NPsX<6$I7W z;DdTB0r|{kldIevC@3wcN+)qKdd~wZ-MoBfi<#6Wsr+Wtz>|@$aVzdCmuEIej#tf^ zbJK9uC9?K$(Kb2LW9?_`SX`eDKi5;j|ld;$w}R_uOq?)zvQGdGBUEj zl~@iYubQM)qc*S)Due4r7H9#DneT(G#*d(rHl7~ZVhI{?yTe5FRiFses{IQIk5kJ$ z(|9^pno^(ySj^w`!OvS?<7EAhzKfbQMesH3ua6H-x24}jR@(er zo8JC>5!rOg^*TP@Lky*3S9mIsLu?M|KTHCrH?8WUY|QK|dwd`mZ#rkcgs^|_qTd3> z{1d<<1wFk{`bTK}a)USW<_9ZYoKBD){+!Ya*^xnUfs*XvuWqO0SZl`!PmzsQ-`Z5t9r}A{Rc|%lP>=f6r5V5} zXq(?ePf8l|iYzWGCpT#-8m$yN*w7w(S4Fx|A(Wj3IkekmQyf5w#j{wwx1@eM%xV3OdPgBW8enEGIkNOwxOBJ za(PW6S=ph-r*$14tg+(QWEKv&l+>>M?g#6YBwJfg3I3_Wxr%aBG354Qsz4sidrCb|-gT_pS2%s7P@MP<;4|#V)MZdnfDzi{f z()gP8_M?tG?Od4o1_R^6$B#Kd`Hca2R~?+09A^Fp*+9Rs`UF5o+R7RLk$F0KuR+QF z=Cj$r37%Y!n z+3+*`iz?lqQW=4hxwXArp4YhA+-(C$%G~NIH|(ciV(~8cxWZwZRg;8hTQ@R!^EZSgBBJEDtejRDCp*Q^ zol2D;tp2@yIKbS^iL7_oWysvhYO?7PcJmr{=5F)r%-wRg>sAPfj_!CtgsgM_dA28m z%6>)!qAO3`LJDRdMj0)jna$A-86_0t<%i(q=AcT08z5Jd7<~MnUH}S;XMkMSCTb`V zV62Y@pKK=F4|cpVVh(slB!GRYYIW#MAhA+9Si9eRWEudCHVjyl@88kK?}Qzhr=^VZAd(`hwHRMn;1w zHQi#|0ZB&DQ@;3(7@)JGxG!EH1`7&obem2u5Hpjkjp7;Cp7Y(p|540%=8wiqJfxip zW8>Gde@I3C-oJ4=ST7#U#{tcUN73@KvRE};Du4-0Ai-!v;OsOdr2Sx|ZDWEK z)J0qb*5LGL94x(zLJkw}90Ra@6D-5Tj*@zM?mri2uUK1O$EIg6a6agIcMD9g0B~g? z|NUv$1P9eK?3^laFBraL1s7sik=ai@C8h53flVhM%4aoxa~L7>{A-x*`gpf$eWQ4e zl{M(SOwrq1k%m5Uk4lV7Oo_LD0$}E8J^{9)?3j|7PeJN6@ zI|d8uRl2)ZZ4I)zJXfRlwzZNJNtla=+!6V18?o1sM|<=o1mH}5sa^UncBGy9+{uRn zhY-dIILANQb8GkOxPU_1iaPaLyYb{mSL=y>D1O4rh=m&cC#~abxaRe8uw*&!68v_Br;P zy4b$y5wS&eTasON0c-@*(G?YkJ~ks7x)Nf(?-aoc@af-kOzwa(xO2eHg7pl;>HuxI zq2U91A|+I+PR=v|pGKI<_2OWGK_MC_6_BCWKQ^_!mkG(z%2t|#^bCW(+a0XY=%S(` zyXnSByJO(S*ct+UIW{h?d|1h%ZQn@a`fKG*?+^73--irLzb`5}Y`$X?+aWxSaV#!c z-u>*k8g;g-Pp+>Yqn6^5pC;(=PrIMWvLyzS@c>uL4O>9UI9Z17UuwI@$^wfCgdK1< z(>A#0k|Gt=)Pxe-1|Ua=__9E*g5eEoe}K#CLwkxB#im+-DSXM~8=p16QG)*+7-MH31UCUnXTcdDxDxxU=hQsF2R7K@@czfp2HMlh9BZsT^^LE| zu8$O=`WWWwk!_09UTRx;|mW zFi`UBrs`=EbMB&kH28SH7y}E8RzlWjTN|xV9XpF( zbPM@(rMSK|syNxs&gS4t&0pj4ZFFt&?~6;?C*D^ut#Yv5dxgfVU0WwcyIdY8>^S&i zLohj!$ui{b>Y@c>tuV}k)txmn`Ufrp zdJUU^fDUS4W9eX55sDX#Q2+5;EC2eNj#h{VW~9A`gt9}nhA3fN0`^~_&fO-FiKQ<; zt^;_fpE(+HZ;nu*_ZChWvNb*sjUnCZ?H%&rez?8G!fRT84Q3u<(P%;u=Q$YFwE9V# z6cck5q`kLmW0eKX{rMLF?-)VM>GOzXz44MOi8=CH67Y!Hq7s|x*S3V-+~c(Gc`t_G z%@)(bTiOz*z;ejI!Savtf7urIo}MizC*Uq%g&xU`_2O6~juLX)G$Q1x^)vp*Q3}4kQ+uo#7oyX?{5KPZ;|$)WA{*rhzA1=JU7H#U`8cPM z5wzP93k5X?d@lgRJUNk62o-_eC-`EC?bSYZ^Fc1%29OP#+vIdn7fA`c_a4a#ATzW; z3_x=Q!`DJsM|x>}F7eq%mRJ9?(XbZZ<}9B3JP0NmeD!zvB6f zxHll&cNQhSt?(=NMp>idDvYo(T8esqxWGsq-mx}{?2+W|8yY&9N23o3|Hm6d?liI1 z@TY|Cni)5FS9VO)Am4E0(S^t?lz&70`cAoZ)O36hiasR6zC?9N#16`Hf+?=1-dq#C zh#E>Tx+f_&N59DA;+>S{gGD@#DWYUA4)Y2t?>H37t&~3{5c4I7W99JByKH4E zCd~lCozr~FHy6j&H*G^OjZ1|U8k(9ov9WGapDX>`Y!^$uC$%4b(KXY?Gj=0)>K19P z9L7x&%G(>co{MQucBeBJdJe0Vpu)+r(u`82UEIxoG{s#^*4d*k^^)nk_w*oE68{c1N zb>Fz`wLl(oyJxMMC7EA#p<4_q63|2-N9&%3?2ekHDWJvo)9KzAX=O}V;N!1ML{&{w zhql%RfUd#wWwmn30?~=|mFa&_;os0P=@Fjn^bB-K$tcPD3(*0W^9oi^odpGJ1SLXu z6AGf+WvO|{4rWPZzkbzGRSfOeYbvps-{K4KhikQ9uSH7OE6sw-V{!pR_Cte)`>N!L zqPl*U5U0OG{Pvb8cTwUbJomFW^c#NTmfF(Xv_!8gzLTK8vxSl_>Dl25MPKX3?lc~y z;BMX%9ec-vPo$`?-v-swCmjTJms)9LPxqSEMl-$~P807>W&voIP6LmV907_ z&&RZe5B}vwX86Atwryxfyq4V$&N2OSB%2ywx{zOh5-745|3(^sX-odNSvft8|BJ@N ztvq!%rC~RoP75|IKZt>hR?>LkSCXvcacQO_coUiD{%fU|(*=aWj!!m`6_4`L?%^RR zIm3>(-{#lUm)`W@H8xDE+np`#fI-aUr}5}s%+%vdxzGuh@Q%K0Vn&pJ`ET!{y(`k? zgwsFVnm^i+*PQvs(B4Mvcn_ld`xI@syMiy7*j7AUC0YGnY`t|@mEYDiyy=t%X>fyx zD4o*6M!Hiv1!)xokra>;5K$=s0qK?!X^{R&NQ0DsluCEKb9>Hv&hxzAcU}IWmvGWJ26y80T-IKM-QKqAn9LvH;g_dX1yEY=5Q=0 zo&GtC-?QK|nRB|i=a4!u3coEIC&!2OJ{0SMCM?7SF20X`dW6IfP@-I$%xsrb&`;Pz zKLP9juYW^)IX^a>>%JBwix4|7-FvW{y0*TYR;Y2pA#N0efQ=IctNNu4Ip?r3V{<4S z{;|+$?-Pnb4X4|RV`$@XII0kZDWv(REH1`N(02!H5yc%J|C;>Q;QSUIxn^7Lu}i|_ zSJ~wjaAW&ud0Hkd+#zt`KOL$p;zDt>swvTtWMCL2dGL-t|HijE4(rj1b2yKnx*%Rd zrv-~FNko0Iqz(nZza}j_e81&C^OaPqJh4laH{#usoX@PoLXcWUN+%x9_rT0>yHEb) z2Z85WgL&zUO(#n!E{*fV#|@i^@D-x1{|p1xKl{ItkCq=ZQh5I=M_wF;DY3q9Oe;3= zGD<(&Q&(S8BZ~Z^q)NJ8k?RjW(e+ZpjjO2|)4#>e zJUs9GlO}~8h45qS(y_mZVe`_o=Akb#;Hu=Ab7}#2jF{_mqr$(CWW|WBC*H4OHWS)W}%ISk$|K#xAI3Z1+jjKFa7l z{*_-^s2g7pBPNG)x8m+%{mw9|@a$j1no^QlE z*`})hlu4hgi@NA|^-lJ$lo_F5$KM8jZ0^YzD>Ad~`F{qY?+Sxx0e^02=$hQtu&%<- z{tX{X%MvwBYrlKzW2J_I9&WXR!oc=zbbqN|9o|okem^L>Bzlr0^~YSB zn{CY|ZWykjo6&BF*&`CZdulm`inX@W;+8X#!VQk?gw3vakeEO18O;5v2&%7FD}5Or zzB175ftg97HhkA{N+eF=583q_>*F*#73mS!!6&8tIowi3{V~U_a&b);W{XZ1>*MBc z60QM|>DuY{Vw6@!q3*{1_d}2oAzdkMk)|GTj+`|U!!xILy&rRxllCUe($yj*kMn#s zh#7L^6#W~!-WWzgd|hJ!H1qDiBViwu!x8uN4>_H1!GddNtUvpYy~oA9IYefo_L^sP z8wI+*-D(v+)SEVhneuopFN_!}w9fw>i(8@pZp7s50Ek&HVY`Cok@xXxu3$s``Hdv1 zCl`Lg4L!CxEV-#UJdCq`H7A{R3kEEsEa%6zIzZog zBcj3)bTFeEUziraJYIc?^Ew7kBkiYM9m`{n=B|qmaD0(p{=agtAAYDD8Yw+I-CD~X z3C4^1{y3#;w3tbF;$t>sO6-IwFR(<_AEZtCgAwRVP9W*El5LH514~zlS-+Cmw42@ZXD7R(?IGLl zSMxe1POp>cJ&q2SWx{rRiWAW31WSn}q8;u06n=%ZhTQI87>O8~@c6s(0@k_FkfC

ukr53kc{AP&aifC>8&FJC7T7+Zv*a4MHT@KMMnIp(#H;&H;v}TuUY;& z+iJnHfp>5GZHHKW{FsxU>^0=8Zf?tAD>!Q>QQVUYtUHll2C((HRcn9pcy3TpKcF*B zs+r&#V)lfY@2QAoh3D|dXo1wp&d+?Anv2E)$BX{nL(U=?cSdxdVoBLC1A5MBy z^aB9?4(A7I)LfvKc2S(#9dZ&;R>qlU?%slO8Ql4^g|S9O*Ubutk}NBtpN$w3Wbw=F zeeywNNg(o6ty5ftgo+814KAst5JY7c^{)Rn#^YT{(z_f>Dnksy?q^HM1Jk)ai6FMv zU*`|1s$@N@j{Vft4=z^}ZCLEZ;cxy-DTq5=O28<+OeKq|wl z>ae4<90XhE)$v0`*yyKmSd$7y+pOsbQ(Ul%MpcZ8-;_-Zm)1Q#W7zT*{O6~Rw`3JQ zwgCcBG#ck#SE!qjMM%^8lGl_J9dy`CI7NkpF(Bt88&%z>My#Hh}p1gRo;|QTI6$52M+Db^CsUjfha95vFpK98PqK ztByqqpVdX|Rb-|-G7cZfSTc3Zwh}KImC0@9#3wf7#Y;%kKfSKe;Z93Tf@prr?S(+} z^ps#AzF0F?R@Rfm=HfDIa-W_rX$9GMbGd&)Nrvs zfF?;yTNp2v@%qDlDP(l?#MJOV$88oHJNbh>G*QWxIN^+*ue(YExIaGr-H49qejIV( z%6y*`jE!gFm?W4%*Y&?rXc(XXJF&!`T%3L5QJ=1=x_2}eJowS~i0-57wAY8m^8>JI zKY}MzeY9%(`bv$1bVXRy^)#u-SXfcS`IENvxp(C7@XCiA+>hQ5LW}P12v3wRuuu@Y zuI_BS`A_VgQAJ+a-bs&IT#BG2UTfV>dn(RBvD6dFzfNj)2B1)K?{$~L<@^IYRsp-n zt_}a(JA9Pn+UZ&gj$RR+6{yF*eT>)E{JEXR{8gpTcB$@u{Gj9LNSrG7T!V&}C!swm ztXGkR>3WLjERTej^p)abqN`MsT-}T3*N9waeCwQNe4o}hg}2v#8{SQJ{_b4?N1s({ z1ZA0y7S*ae{^f1@tmP{nqa_IqdiJTW+znAzPi2p9_G%)M+^2Q#xZsh>F*GAZzF%tlb~rS!hPKeF2K zpwJWBBdk2(zu8YinIp)lRA2q4rX+@`pJ(UTL%T_e^^@wxYz5(${V90$do*NG7}wJB zj&DIsr|meaN1^aw`ms_?z9yk#YO;t`vXz+3RbKVDLmQ35M{mYQKg~xkTv^>nfS?uM zrCHf~%j;Ksd|ZnNv}$ved0$mEw!EAkqV(ZP19N;nw(CLu>fk4lsjfD9vHcD-%A^#x zOF&^Bj@ASMH1YG@D@-ycw~HJr{1f;!y|iy#i9Il06ZcPpVQ9?uHW~|Xu7~4Wm;W4| zj_SK@gC&;{9o|kaq0jJsXceN?^L8DKumvS_%aRB!`NY76QYY#46mje2<^$GO-JHm{ zV*IdmvIrr>00voz9D|ORm_|^Je#KY0ya%Jgl9-OtS#0vdPJD{!(ApG4eqxZHH<1kqU;LvlUK|_CYW(p3q^i^ptx^JTX8-x zB6IMri{*k-!0$6*DsFHWoqagKEHGQ0NXG#8i){D(vBRAp^)xNv__*$GIz+cf^(}Ei zGJS&wlZk|Z^vN&AyG`dl6QB2DVeu7UW3IEu;pe7rXyHZj0$r9zLj+j19KCP9zMM49 z8XlIV;pTe%<_2#ZbU3^JMZr5F#-|KrkYB@1$~Y^m`7Qh2#o#Uw@nYZWliXZY*4JNi zD(XK!evUggq#5*0N4UJl7E?pwlK1I@xo1Ry&z||Er$a_pPVj%xkkTl6g=Q+XM40wn z*~FbzN2Z7$KYFbyqC+}&nALJHU(kEQp|{U$@71I&?`j03eSY*dqTRli_G=wxx3>o)3ukeIgGL62niu<+zora&LAZ$c18>n;?W2B@LTOr~P)Vha4 zuI0{^Hj&gHBHjPg!b;qG^Lr|2_QG7f)c7-1nQ>4>zd}R>B6KjXWhptRr)T!|P{GRt(WIbYpAd`?k|rgTx{%K@)7(-*P(|O`@t*U$zAwkT zB~2?xVd*FHa&tX5FjCY*ds5tR`)=X6iyvGVfix1Q6rwY4-6nmTjnP%M^N9B6aK_Ut zOCiUBN?k4U^S0sr{CPi-OcBag-L$@qvGZHQIhdU%5Lx+XO$RFJX!$dx+!>REz3eze z`2z>$sYwc>Mnq@zWUg-T_;UAR+=oHy?VlCaJ6d|ZV-N!>5^C~FU9 zexbYK&pHv20?@=o*gHihV~$N$KBdrjtRHvTLhr&iB3$5RlA4NGy_vDGqwUGQB3K_8 z?AjymLS@Wm$i~vik(G$XXeld}qr2x#LRXG@O-~F{K!UJS;}r&x?;g#%$pTWI1-W|> zD7E?-(rifH+Y|Qo$}YwFj_{k8e|Foar*iM@c}0z##IaM9WBGp#%A2()Wx}n;k_%Jh z%j00;HYcv%Pj)m)6Bm}q5iD;!@gcW7dN@~HGt3n2=BK*nZt8snt@y3x7BZ6p&%89*3LLcf!nB5x`&I#7^{KfE~XuYlXkw zXB~;k`?+6CuLy9KbMQl^!&lHJbaKeP=G_HCdmUq+w$$ zQDpx}-EE8S({PDrtUE976E%S6+(%ryKDx1KDS5mw#WI!-3Lg}v`(mDM1T^oi!g}+x z|4Q%a<#_JQoJCvbKMzkcU%fSk6g-x?7kN_ciU(O=E0RFD5NhV$+8a$KU@+3XHpm zV9lJNBnOawP+{iC-8%0R{sn>XX`mLFa)2SyGWPNGseAoZ1eZhi%G%nn=HXNEj_Ri2 zDE9e-(iIpdj2{n3cYSVb?`X;?cfSFQytoWW?)Kei!^<8Hl~wu5N-TcZr(3bpVX@AM zKZRbdQ4-9Z9R%SqYk5gzYR@$s=*=ZcnM`L0xPK!cXL^UV-pkkQ$V5`-M-0RAY1#&s zc)aV00ImS}?VHtjQ`J(5;x4`zKek|t49zFgYnk<@*9I!r^yX+2y@JpyTx)j6XT*ED z$|(qs1>3dmQX*f*0@6F+a&L2E^kC6OibiVj@&EM#90O0WIK>?QL=IKvz`diOTM z?dp0sJIpTS&}d@-=|Q#vh}6Cpr>B(A_^jc#1q+sZ?g;!P9$d0D6J}EPpGnQfd(BgB zSVK7&pbGjY56MEd)8|VPB~{`GVsJ$~C&6jlrlwYkksuk^$$f#U48Zd-e-1(Q9s^OG zpAaEo-?P~ZI<*|R7mQC>UUbwG`{UK#MnSArcFW)Pb|jAy&c^KA0^rs$%oGDJ9~Wpa z&6I9K$ob_~QHw1Q3k$ENdIiEs0Lzc;j&)1MI<40>{LX#nvJ(P--m^S(pG$VqTM_$7 z`#$}}TlUPE^+sMBsn+?gtBu5|eb{w=jLy~kW`Are59~ac?@swE2G84Eps=^RDXZNs zRF8QSZ;s-p_Jy3DE@&C-H|UXeZt>CnN;2meyn=2)R<=Safwo0ya!RZ?*U$}mv9~ud z&W|)9CFtYB5n-S9jj6?R)T~xm>E}=s_@ULTw5Cy(?%bF`!uhkM^2our1p>|Y3PZk% zk2oLq_lPc<@}mC87FbabCv{{nsxH?r;aW)SC@C7uY#;|(HS ztKA_Zc9rG(#6c}In)9qWbCx;dbtk3J->OrYxiM9k43>?A?pilq)|86WS#Y>fZJ9i2ys zOD699bU$x%a2y|`*5ycX0Km z-ui?W$gHtEynBlgf+in*D$EA$QENm-aK%$m_nzwo%kQgcXhk)ICGG!q#fdLdZX6zF z^Y_|<^qm11HvTZWCyC|YY}M}y7f5*n<{CkDQHRj4zS)6wS2 z5(c0IXJ9Az_eyi9oXKbB{76)_98S!2TFJv?^w(Pn{j~SVN8JjBVQ^j6pq8GT)H`%& z;_Q2KUwgt}V-K^mK2xr9y%Z}hoZdpxtK{<#|3lk@er43HD@iZd7-zmOx!yS$&ELm5 z_7JB;1Sv7{7*fMjNK{jRkAFYpdAcD^H5sDiK$)Ckq2TA&pWJpA%4_}?4@25K!%@{p zW;cxY!EF!NBcpg#XXp8nDw(B3$vrI*8EF&fDQT&-hkQZ*W|exWWXuBZPo1Xl8^x^V ztxl|_qi8~=wlI4iPm~84MTEQKYnPMCeBsR#!^d<^g=15e0@N)IH&OoQ1gr0@gd80l z4yoZDfqVD1r)af)Jm77e7l#H6tiB+N$f`Y(aTnvrs@!$TZ{`mU3eF>iv=uZ}t$y}J znqJ>adjGuJw^}`_r}{X-0=J}|LTum2azbFPq%M$B6Z=mi!>2=QPc2sRr4a9Wm(m$x zYO&UNZp14D0;nKvFw>nZ@x=alEh+kYJ9Dm2;na0cSqIG;z4G(s^|pBzvueH2wiFBm zNoO4AjXDxnFJaS?Rp>dNU3!$q9Ifn1vyf08(K-OsYiTR!wPCDRJt8WC$=ir8dCXbn zk$?Q|EAICI8TUbj=9gDkGk>uofh*R%OC9t#g!PtGQepJGWu7)RGn43>`W&pxL^Yh% z;G>@2fW(ZAXFndWJl^mJ*R(eP0mPiUnw-`A6G&PPlP_Eu4kGfPFgTDOv9d|2jHHM!tuJULa@h`M zBo+-8zF#@FiQXX}?XW>sB%vop>MD9pHre29wh|S@)mKq_Z{8lcv6Il0H=u1=50r4w zDx1DVH2YacvPSe=I$IJkrWW4b#P0=YfFeA7wT@0?igRV}=Ppz9w{JHD4^y@58^FdA_)58Gx>MGS@Veq z^4tFB%8-u~%cibDc7OY)?ftLUO4w!g{f}1b7+dCy5rNavB(4Y7^NQ*zlSL@+JyJ$D zWE#Tt+0-X(Gxw?A&2<|e4Kpg1)396{s1N6`nw@d`#IO!KWde8l@xK32D~)lGRc6P8 zm$$*oWi1uf#`<-_+AwhCnHggu04^~H<5^7Qlh;#;r}FqIW|eJzC-%R*tB^T($6JzU zZfiKR{DHJ}`7{EN;&Kz1T-)<$T=l|d?XACyQMJ!7LiVft8;%K@db3+Q=UU8~(p>&_ z$&e=2m^sl4mQszY0l)aswT*x?B4B%GQsjeIuD+7xti0tXnswH9hqIC(5HZkpkKs~k zA0ljl^L4@n92^{PRYkJQ6wOE(Ez+`XmYAkPjbDU`7Z!m-{W$OXcu$?! zGlMTj3Fpc^CuD%&gB|QNrfuX6ebNmf06jLrEoqHe+NQo%xJ_7V5h!Fx zN5^GQoM0dkdKFDmX3>$6CZMQzgL>2iQHsQAG_PazhxLf$*>5*29GnS3vo)(ee$DYR=|b>ly4@ic3_!&*i$xI%&m)UelJ`DS?ciM_aU z;@7LwX<4@?cxjx}r|0uvpW;QBgU97+7fM(>@9*owl)2|Hsb*9x$qyCsJ!bw0^zWnYx^~jgM%ZpiLUi`=7pL9}h$>xfF%**EZ-~A=rNAGflkZG5O<0Io- zQhkK<#_>a?!;}~U#Z}pO-2_xrn_}wg(VYN;5`BDZfd#Oufj@p0b5HK(&!Dk7&W7xs z4GR)k%PNwvDL)RNZvZ2TMkCdD--MGu`qYv6EwiU5ytGza6PP*dyla|tXC(eONie8i zdL5r>eH7#9s37Q6vqr9Z zU#A)hM^z;Uf7=e(hd zhts%E4>gU=0r`TlcITOkbu#VCgDYvfkVGXITIL+tZEiYryh|$#dzT?R-`}pq# zE52V(MF$;*5r{W$ymlQf74@ebdw<6(JviHa%a!hSJrEljLrm|Xkjt&lMk^NX&_pYX zTc9beJM6y;I<-n@M z-U`slgU)mPpj0ir?){j_JVa*m8Qa&dO(W{-l>xsn;Ra`QUaovC0a_!d4~K{3B=ry~~6e~W02VYaK}zMfP*l!JBE z7oZB*+F9)ahpIQXU&cx>!&OTsp*<40wx)(6BN_9$byX5(1_%v-*a(P}7-2RPJw1(= z!fXV#w>bd+^HRmMv9$km{6^s`k zIMT+S90Wv$u=F3?WKwCZ=uygRm=`DMj?I0$LIr7~*C?8wZshlaon&qgGl~Wy!J_1k z$2$)SOTJ$x-%(gvl7B*Hn;w>ym2*u~xe7VLT9F^pxc%fPc5rl`95Bxd#-lpo(sv{Y zC}enb^;HKKmsy=Xa+Ed9qU;kH&VHVdA!x-49w4onI#+iYh6x4q}aC)8%5a&ZmtEV{Iul)yT+*0Ol z;4@s@F7TmO!H)eSn{IDz8++1=jHfELeEtOcc8GWiiM|bg$niAud_&08$=o||8_PiGGoJM9H;=i^qqj)< zX%YkdEC-TK6pVcjA-r;8%B_&H zF;^4M^%KUY?H(Y5dm90TRZL#*lFgTPFl;(8WsV{Unc_M4J+zuG$3C6k;a>mvhKq3q z8^K4r4Ihi6pm4bjbPjkg$nJTCb(9D`hXK1JQ*k>j0lLus1Ab!@r?RI9O=J z(O(<3?&wQc$)%rDli9^XuxYv&;;~|*GA2a~tp0;$|9}=(%dBc*=iAvZwA2@*XFKyH z7^^mYW)%hKLR#jY<*0YQyfOytJMQF#G6%Bf4t)LKda2jD=&jS8K)AgiJz`aVC?~%{ z9L`FeXQRcAk)%MIB3`LNwbEy=n8Gd#g+w$3JP~)UtnzzJ$bboqyP}o~)-)jzuk53p zUb2YR-_n;5WP~m#&dTzs<&x6$sjR9pY0-7II2Uvogk+43VuCOZpZK}tCsRS#!C?An zdZepYA`&9OLkcXVfSpOFHL}KvKFqYIC2YR7tu8efECEFtCh6kThfBQrE3{JLkDQQe zHW4U%{|oz7Wjz-cRd^lZWr&7-$b=*N8L$~E>C70Dn0u(Mcz2>k*Gnwsxq1JE3#Im-g@Eqk_={7;JBp#ZJ#PC0z22Lr|@F4Ko;!U!fO(?Yx0rIKFzG zP~7CbdR16hr4+C6;tar)g+{64eGGH|yDp_ZJL;^=crh~O#S1^8Mv|CNx44pCAjyoX z49ATK;%E_A=t#W!?)k@$8#x`b8qdt#lw%t_#bf(cj;}urXNSof`Zq%)>&-a?o4bYe zdJ1rHq02uog9#gEUau}ukTX4miP5stk7a0@!E;>NK$9rAJfL3c^NSyDgd5>&bWWn* zc=}Db+3z5KjF(qtca~S1MU}$_ov8=_&e@YiU=F|tC;-L>UYi1elSc@>&zLtHSa$)LKu)2(A21dC?3OPLxZ!AJA5K5&$FMkx{Jah)3j_|1 z9}E@l|H3f$)%Gi?rXkaAxJoLC086Hp!Q+)C%}nW6Y8~XnCF>9S?yzpsz3S#eF#X!! zg2!ciScIUYJ2<>ckCs7ez7I5Cd8LLE140ZDS?p6tsd4E6m?|nIAya0Ta(8GUEFk#; z7pv{l_3fYjlZ17;z{2H=@Dprs{AD!PA7C(5NW-I-URr{CzI%;YTt$UsP*h>q3)CRo zF)#Gjf7BaCI9Heds}gZz&O<}Nd}ff3e&@5KqH1qSl99L_Klv(^nB&~mO$x;z`(YLf#tp-QWyw9g zxj4n)BxHNL-vK?!PmMi7%VELXYC)Hs!XFX%RfJGuSqN(MiC^t#rH*gYMjz3c3ol{D zv4c_twgCW3jIHyyLPFmO{$DB3NU*^aoEi|bqtbjS4v)u1IAfH*ftNWb6K&V{_UuZC<-{yyuTlIl!82dSZ+iFm1yYEkg+;^=~*2F z!O9+q(aj}Lz^{5nqTd|~qRtW-`EAy+>Y=v<#$T+X2UgX9cahlH&4NsQMdrermUv%{ zHzAyJnLlvx75dQJlExD=YEGV})8<@5sZ9h_rCe0E0WH}&e_nP?-%@JPM{!*V+5>6&3dOMU8dY~-3);Uvyppls9r0Ff(1`T;)a1(@woGAe2WYrwY?p4=kA1;j!A*W z^T95OCKM{E1M%uBv$rfxY>F%9pT;^i-|#$c{e$V;YD0{IFq>nKxfZ;jAx%RmW)vNe zCIFka9aTp#AtB<&;X_Rbv|Kow=IcP^Dx~CT`^cAIRjrefI*i@JDwL+0{FZ%R5;7pQ zSWfeA>8n-QYqlB^Y{(utV%CYZ#uL5GvI)H=T!inovZ5x`inu)fNy_q(fvPayPKa60 z3!|c2!WoX*2?Y9gY_9zC6C_?WJ%e-HCr=b_mo5i9&Rd2G3HXy7T#8qR**?fai0-H;&ilpcTx|pW)KQqoW~#TH7A}`Aq|FNnr;^AG$at`GOkx zu=@Heph*w7-2bth1BcaZ_%1lmNROqn=^V#-x|&dz7pHP?09!lW9BDu^?DdAL9N($& zMjvPF6X-LAoj1gyT8aLKO&i^*{Cmwy;^cR1q^q54u@JPq z0@8#6`I|`{VGxeA(ZbR2JZ#KH-{>;5^vJwaRK9Rk27C+yXK>vV+zIn))lN%hAK`k%Cpj4x+{Xo#P1m6EH=MLUAiV2)juiKyROHv&(q8Gb7gim04P>N6d8Z1z+ zgUtN%djqc-_B6G@c3;8D%<~|Oki7JD@eIc+zKwR^)k%s3@DrBvHKbhtjvSKwhd|$B zAahX4OoN^jcMKDBw+HTZnz!wiQURyeKY|rW%!)cw?+oD@X&U6uaCC5#8xdY5& zY|Y^6sZJ=v$AEtG{=TCe^s;6l2&9)ohNOSH) z$i0?FVFxuA42vY-0JTKYIAOmJo-oCY%9do31<4u@0S22P%IEvJXV=E?BKNSeq~q|f zP~^*tnT9FZ-T(ynH!CGSR^b{qXtAdImbDD$5`uEm^AJhk-LR3Bzj{?jq%jbJsCX** zy+^muiM*~quw8)4rvV2sx8s)xahyjdC`)?p8e6qX9bO>N;Iw3&>_6^C#qxr+YT%^8 zqm>Q+sD&h#b6Ping+ZXM&dbK^7Bpe{98_OzJr4{hxm$>5plwvl4IJxu27WhxD!WWW zK?IC*2y7Zv9HHM-fCqsbKoFJkVFD{KFBGR zMOkjc5~PvazbkNEv3XgIzZ$i(dY@DJiIhUqvK`RG}mNV=zKEgCSA~ z2{*iehe6)NehJe27OnK@V=8JhM4g|rj|z1g9&G8D!7V+I0;g4|(g%#ay{2b`j7#~= z56sp`I^Cg?gU*-XxMa9wnQcnKaiwZ5#Xbc77rAIUQm2VtcEE;dZoX|vGUr%&|NqJ( zAWrDcKQ;t9f{(^rJ)H0uc{SlUUX8FAu!rvYFhoYed8O^#=#u;$8~>aHqVpUwERB|(d~H&RHoDmsM#!9M0);wR+gOvxD0UPmf)tOwRzgFz>QINqhaO5=5cI~ z>8LN3=B9Mvkv7r*-)jZFm#UHeXO;CB8G#}L5;8D3*_ge?7XAfF9oct&6kON;m%f1P zxekk`fs91-LvoizU}pusEauVCHIMtqYvN?UV&GSGbPF8O{Fuv~N`9z7OJ^Ga4E6De z*xzos55Fxn;7{>Hk@83Y@)r0}osqfB%IvM6B_P0ViH!3R5;`S8YSTuC!khswPyh@M zHu{&>3}G%demPI>x`cZT!kvObyCyJzFmt!tKzsxn^m?qjZLvWk$jQ}v(tr*(gLz}aBf02#TgtJsW$#N^hn`S!FazmDiR(+onsmspNH8B z5XavqgV0k3k-?d{wU}?1I}RI6MENqSkjABeTUvHO%u-7iO8e{DfoBNelF<*e&KIX@ zAWLyxqSq;Ot<~;|3=~82yD3*dpdpI4+D}kBGU4~wcNDBbwuf-!y`#En)vPe9Z#6(CDvJ7A3Hi|NfHM>pwq2qU1*C}G*Icpo;KUg9m~)W1 zFDY|jw0{AIw%Czj;oBA43OwUBacwIx(`2QY!h%&F8hV*EPK?=L-Teja*18&RoPZKe z3|g!si&K&U;{fH4t$QmT_ZFAa1Gl$Xva9u&@Pb>C(Oj8a8zPQfHo#ni(njK-W-g#| zWC{uifOCviJdQmy@h;u`Uwj7++$K0W>dg3bsN-NPyuA|}++x`am3P>Z#z4&a+7rI) z%V$rEFb#XT`>SK`$0Q)uiyIr8;~|E}`hO4Zl!KU}fc7)|t7eKW+Qx0(&J}D~mBa-y zqw10`&Wsz}poreogi3dK>^UXcyh9j_fn}6 z9snT?GSoUqlR(F9(H-7n1r4HxL;;peI>;t)XIn6>z#<-;zGiWl*wZ5cWznMk5+8Cf zF8wc70U{7ivOy{#BV;)ACEs?uxMV$_a&in|ZzecNzKb2N902Q9%Sk|m1rjo*h^yxp zCQhXUni;GV7sed5yTtL`sjGI{ zaJg_uo5|b`w>)^@%<7oI0(A*p&lduTJZVzLQ{crN`DKE)ypo6L1*S4ILYc0+h(H%J+!;fE{D{&GvcUyqn4H`*3e1U7O15~T zMM+@#@_Rx1;4&10U>->i^=9&tlen#a%mz7<7y^ERDo&5X~-8i zaAoYD9(xclg6$jeJ7_@?N=QO3xN14A=$c-5_(N(e zd?o=T!SKi#Avo_~P?;7wFBtAUdXST#kcvV|fT;)t?FJVuR1h)H1?&G=H1^JhJ|DI~ zznnbcSL_L6jLQ{%axpd;iMcEQ9jM;|tU(eImJG^)>khD@FTa zw_EeNpUjZzS`FYksP^i_7dS%CA_kbn3IO*LLFR-FCjS}|hYRo^ypLc<=fm;(qsy>T zTSEx?o2{?gAXepJTL=_0p&JHX`n!gVl3l(5b3$!u1=y-s9sUWR} zouBCty5JUb$=+faDXQ3-D^!!{njSZIY0I(+F11*XZqUMKu!_w?*!fpL&`yW3z@mt% zf=lAv-q#-4p?AJ;-3TB;>z8(R4gVjc320OSSUxN%?7vIu5l2HM%LY`f6kyW%Hfq8!02=$>C^H&`|#l=*0Yj&wXGjn3Ke*x{-i9I7*y!&XYtEYj(ljm9qr*{a{}SqPSuvno1g}w1VGaa| z*p;Od4T?QzBk+B-Eoy?SH~Mj`gRuNvgZl#cLv8r-Z7Db|C5J==b69_Subk&$XnmC1 z%fBb8OFHj0dI9#w&CDSS^E|PlYtgiev>_CV1S;DqdYEvpVW#U_Rou9il;UzmMX#^%IdswAQZ8x zX<8S_J)6!RryLJ95*S_D@=0aB(?Fj6Bs)<{2qRvVBNyw=vIW*4;=F8;G_mQibn-KG zXk6Cy@es?K_z2E2Y7YXscomNM@E>e*A3qChjS0Nx4U*KXOzw>Gv?B4njV;MUePHNL^N=h(1}4*m33;;E$?k2synSK8>$gJ zJ81}3cvMD*xw?Jmt12y5PWI~6mnSxTZQb&kca+TuOldCrpLWDzAfg(}@f8!8FNIA6 z{j?N}{Byna*)fi{UEd9N<97&z#h0+t*<~!m%%|;3LO3a9j{RIWr)#N%O&s}l(giW{ z$OLoTi8)A;!&z7^7Issk$^Ve^t&kSEy%7k;unkl>4cPx9DZRGlczS5hk@V|C;I5J! zCdL(_Ix;)TB2w2X*E|Qm%4#kn7910za0Y$;yy9_%GJ`Yy;$gV3tlCwJi0k7gwN_>& zOxxK5m!Ie7pZ*a|x_J}#mGZ-x#-GC7i?;UyOWig9+*+PopQ!U9Z*S)%r+g&X-K_~H zDNoJ16^=2+7&toBcyi`XzGxc^3{xb#a-~99#V7IQ%Ug<+BuBl<_*cHnjg3#{QAU1l z<%v+RGP{CPg~M2KOHIKB=dqpF(F|ESxOvy;XvALRKhRZM97=&)sJ;%1u^7OeNb{s^?5wMH+K91vYQ=rg5ASFxSw z>`hFNBsD3I9`kC9X?MPzk$A8ziTLsChf+-rL&O~)J#iak$K1lIF%J(euCna&_s7T1 zA3v5rbSAUus7HD1#-5yT`?-nFkGsCsTMfx#CXJPS7Hl7v`03Taz%6WSwU;6C@Kx{U zwMe+=Z@jQ=y;_^c`$Op~xyqU^Mz&9(#8#WdF^O_4cC6;YsZ8jT#Rf#uyQ>3=a%@yxeH43tU@MAOG#??Tt;wC>j6d z3tr4yJ@qfnZ+lJP1Dn4Mj}B*J_bBnKO?vS}u0=XLs;u>OEA!&x58_|cTO3$(uv6}! zu*S6ZkRzwHVZR&~tN6oyYoRcu39~uijSTlb4UNX#@r9G^?M(q`*YX<1gE1?9lktb% zMAZ}wp4^^^>i06!!ZSZKVk1~IS#*%PN)+4p~*L~A_;FByxP=>8FX59H}z9NZCI4E(E)+V8KY$$=qyf#q(kzu*-&xZ&D z-;dAqQw++*Z1@RU2zdGpXWlCglqA-+dOL4bwiiuSMxL&n#>d1Ggj;DIF*jssJKHD@ zlH9yUH1c)CRx%-I!j|JYdjt%9w4m^}tZ#I5;yTAd&-w0_U&6R_=_%aj^s1wSu}^FP zCpq~cOtU?u>nDRDHf(R+FvM^$3MYQ`$Hwbty<&Ci%9Tg>#P42AIInKh+z27F#&>dc zdOQ)gVv4);tC-V?bN!>qyw!HIvw)!IxE{=HS{7kuH%&JKH}gx)mqq+_~d!C!G}i{ZXM--?o@NlN%woDPG?0ador4IB%z-kq#d5Vaif0Z5tAN-!x03 zatkKcABUmCI|YRo@+KzK9Py$pErQ{(7gsYfU|1w|DM+B{xq2>-xD_2^wX{quzsC$S zX1p(HUMlaCB7wI5!y(9z!LJsR^iRkN0ngXTK4v1`ip%|fyx+p)8nkw^f`#)|!(#2@ zxK}cxL{hSyaM4tC$?T7HleLMvpLIopFHa@Li-j?TO1#MN!>ivsO^Trd2HxA)~nrS`{0bo#)BOpp29&X}ktQ`4Jmc9lpB_t=uG&$wbeaD{8d531(Z6xQ4vz+`g1;s;>+qZT3QyMgX zCR`68lS6!dP*-LU8~^*2rN?1?Np|1TiJY%o_@x)Zu5FlMO(jZ)Pu!I#i90sm|r7$0*$@bB3P90(x5&6>~V8 zH-#_7FFdA^fVXr-+V3pp$oc-NlOkn|j~WNj?b~!l#bb=HuAhg6{qu)L4u7yhM3JH0 zvt5dVs;~bB{SDK`{;?s$YgD(}ph5eoJy*GWbgA1VttUlnGA%X;W7KTcc<*--9(Gkwz~h592{i+)s=O0c z)J4Omsj;>1MVHDNEG2Z)QUy2{O2PX1>X_oA%16$k8`!%~7`m;x)gqG?b)>0TsCfP8 zb0c0`?xnG_x-OoW4rFJ$RXjbol&D725qlvT6citOB6Tf3kTZL{X5+%av8TO_ZO)-p z`$hMnvgI7KtnUi@BIC2*{*E^JYPV1_>oReJbOnFUMxHkX>$UyXMss|~Gvt%2>(q#} z+C#by#pr7yd^AxLa{sv5AoA`S*qnZ7s;+(eUacV|y+*8GEGx4<<9p($kkOARMi*a` z-Qqake;97XzUyIp$o24rboAkSZ;lQ%p}ueE9K_}PnxDpS_mZ-#kETi)E@xO)C>GvZ zxCbEq@F@DKk2jt(h08$-o9QvGw@>+BB~+CTCB(}s|&KH@j;_Gw=#BFOzN@krU1D{dsk zkYUTIrWj|1g5}R;Y0HH-Izp8qo2{|tbJsRbLn_i`7&I%cK`jkZzD}P!K^WB}KYBq#J2z zkq$vXq#5awp*u!EI)~2Te~o)T&+mEO|CjgU`{Dhtk3+#dbKlp!*167gp6k9Y`T4O# z1=o}DvGJWZe|owtEsKAe^7!n5_}3;+H&DvttEjk_+C11REJ?lSlLbCz1yp(Til`AM;ztslLg=Q!XQ4;CD&Hd zF2ZOqQvUQZZNK{Lxu1qOB&Sp+^o6&*`4j#D{wqYABq%L$+G%nxm69E1>MIJliYHz$ z$!m<|YbmG{J-ViE^zmJ!F~!I`HN`OXXJz*SJIdaW;m1B?QlFE3HZ+zXqWdhi^J`x5 z#=}Ne0}btQ`LuL=bn{#2g#;wW%ejo&y!%JnEyC)Ubh0;APTy;o$;LyY@|K<*)8S2S zUVdqKbblvu<>B5#P%6XlBP{gCgnp1(cY@+Sxdw%O`}{WJdTyHU2Y)=20XjSB%=C~> zf(~K;>tByaQMgQ159DvDtcf!)YlM6g-Oji?KVQxi#Qm4*@;KqtS28k%=XyLCSPRo%`u>FuN|jGg+2Op^jNym01rm z85ypua{|@BJ1dP56hyo4!ZR#okDb-nVs`aGNv14xbepTk+`sp^{%a~>4*e$@$xQ5c zt~Xn8U%kKGpi49$=?n1El|Q;&!Vgz)SHw<_ovu7#74`3qs=FAvX!q2M1@WQ%gN7Jdg;oxqf@Mw49doa1j zl(3SiHY`;tiZ`B!x*5u-4WvYo$0>PVap^PZIoqs4Ao5=abif+>bCjMjXfWShx^A?}W zb#BZ>dy_H$BL4HM&cR^;i^dS-S?d(;S~E|eAZA(~?13+7r11~rE6|Ix zQI|q%W+w>(vl$*XGh>BOZMaKme0mZyH;2(X=oj?u+aU$-Dq~aAQBO-jK|3d-wwf9S zWdD>_L$OCVCQTU# zmp5d*pNSz_5%MOrhYRPrMH)p9?oM`Z49$yqQl(}#p!VFDE0XGV6pC7W81t1HbIf#_@*`+dN|WkKo>CTb=MB*yC` zO)kSa<7Vg$;;}7wxWUa;hYkw3a%RMao`)zo4#y^Hf(QGSy^@07)}~XyHF-C$@++Y~ zCKPkz>qds)lGtuvT_nh95Kt-R-gL5X5KOq!JD%3royOt~johIhKfZGJP--qFkak|3 zYwjt9(bux2%$4XLlpOSYojAoP#iNXFhb+)6$n(UJ$M^gSN|o0n+$8QxZ(R73x-2+(;i#xAM6{SN39U~Q7%#UNx51I{4h@MhlL#4%Yx>pOFqg> z`sjAK3KYhY9dQsF&+r^mkbzOxwxd2jC5}6Jf8YI=x!tlAHYvxO)_^WX|5BlpkQT&;vErlFh1M(PJ;`~AwWsf5lHGk+z7$T6o*f=P z@pvNQ?VNH@oHxV(*1xb5Y*+pY?D^VnGCn?z+PYgaU>rN%zmBk&^}aNYoK1`X-sA&; zc==vtm^0l_x$Hjg2{okNyGmyCyu zFk$T0!FX0zrLs4?!_R3;@Ije~;!7n`BQoCs$rEItfI_;1y|J`?K-?RlglKL;ll>Fx zo5c)*YpDsVW@biR04?gJpt}aesyirS58K2v8Jyn|V_@3W;7d zd+_5A`sglcn0Rk+saR^+czgdg0j-etm^)yUOk%uf{!idfMjnmU0s1B~9j468&y(~f z`%Mr*V8S+7qTZrl0`%uvdc^1B=jDu=<2$rufW=9U3%q^A^d#gU#4&AWfFrvy1LRx? z20k-4LtN1B+un~`{&yWMeqSOjK6EYliU@v#Xvu2vK7eL_)Q<1mxoOG-WcY2%+eH5L z-e~X}u*B=gs2;xDC^nIYuP^vI{2zgBWD=+eKymMW0lGm$7sC{y;*5v~c#|{*MddwV z{OP{{WN?eQ3(-p}JYjag3#SXe+NPDHA7cMF(x`$sIqCwv{M6g=`chBtdGOMc-uB~e zpKKzyAObY_Cy6@_mUnAEJqESY@#N6LL?Bh^o{}*L)h@Yc-o7IFpqQWS+YWP+B+@v( z@%}(nAkZ1rmod~fOkvf$WIK8OOz)|sOflh>*o(bq19VKCs>X|df^qOEVBNyBhm&Q{ zs?(EZ&^&A$T!Gq#x~^s9^eNTxWn|%Fa{z9Cbk?Y@(WsZvUjEX5E5?NIp@n*PIpV#b zd05I2$!jwBN7Ccw?JwG{k6NiFM}NSL#@VV_ICL53YM5C6(e)PdA&?HsQUuj4?y)#s zM{z;omy+VXn#xA4@E2xU`Gk8bi*nNTw*ahK_sm0nj*>~(WMIy}w=?^*=MpfiHR{kU z@!{VRjEplAneNA3VshnlUubDzFc5rD{~xx}&mtmS#G_7?>Xth)el0acEOy=h zok_;VQ}R(Z1T&e@q^5$ak^s6?l$5Mlj?bydwyS&o>2&6p#N`4;i${w#ePEgzU$6^%>n?* z=kRUw;b-Du(D^V}tt@S3V$4D|NXlH_j;2Zd>=v{o><; z75he}Qh%RGgAUIAl{7E-vc z@2ND7D(cfMrOBkjBwmc_FKaT5J22;d{_!&md;i{>7gH?qA$I5!9ppHpcsHGyS{=26SO5UJe0=Sn^rQxpqg6noF(8gp-83{yg-zhue3_MmeyizIXZV z*gh-hd^xu})5L)&lxP`W=xd4aX==PQNcL-Z0EwJ7PE=2Qf~t|rU%KiOH5fw~mo1aC zY3~ginSxDPQ8-`!IoO^SZ{;_TI8zu*{8oHjQ+AmuL}D){Jn1Klf4tFgEmv-i0GgK) zo(fZ&V1O_e49%0qFAddq1?Dv6WQ29oGx!p8vFD$apNakj%~H(@W4CErR7;L`7P%k! z#`t@d*vbQkbfVON>`r{TAg?%7#1d8#827w)`tI=g07AR!-7~6}y;|-E@5GH_1p|=t3r3M zilV=cXGIyNBoYc5E;QX{j~YZ8s@*!8#-_&i$3DeQIg=u|=~&Z%eDttoDn&L%Yz%5J zo4SO>d7tTB^;W=`LF)}Y&xU_PghVIK8^~|W=X<+fhhCX4*ws0-MXQEqKI#o6FdmAh zCJ=l?QA1E@=%mM6uU&88$^%+WAzhataw98lJ;i%!OK(=BUQ>S+b3tm!kGg@13{n^J zU&tT3fQDs2t*os@viV{6hAru=l>$CA^Ak3bnQ^|I>YgT^3iP3}c#eBp_t1RAg)jLs zOl(JUN5b(VQb5Ar6?#>1oOM6$9^Kuhkcqnh5bf1?VitfF(w6hUpT=lwyS?sDl!_vr ziuv$mB<9h*JY&l{K)1Tm+34CAEtnr(-V#nA{K=9dOd3vGhZwLKfHY-YH*kCOy)>pT ze1s9)78E}9Q}>F)_sV%mBU&Q*`Pw^9TX(Z3n5-dpAlr+t7>W^G}=!1J$O9$fXi zK|)o%&A$v2_>NQQAby=#6xkH7EIlVXTvI{*(viH3m|3a$^BA_gW3{lFQ;+Z9GBXaU zrs4srLOukHO7_Q5(9q`V%_;4M$jp4vUd{o5U8hpVX!6MEw(X8-)v&au%BJ@KdD2H* zkUSk!Yc+FAA>1Xydupgn6RyFid_@rBw~Y}CLe`&q^+!WJ<&ecUXEEwI584gda02Nb zu=y_onghL~RAf$9>N}wX9KG=9y$Gn2@JBnq=DQSPQ50gV=LKlz-@Ugop14UL-*IX< zoYD^8yF5$b@=67yNaZ~7@Zx~aEB-;UwQ9CwvIgUA<{qh7=`fn!|9pIF2@pU)&)UP; z>pDFSpp(~_NQMY;e6;d(1?_&s)=0&2TzxD7G5P4SQ~B(VnExlnFEIGpcg<3}wmiN_ z<~J%|tjVkxUVTUZOEBu7%Q5$cnUz5)wl-Row`(p2^ob*TDE&Yh#mhjG6Nmj8#~C#K zoT8L4FN@}8EMlb`C9urojTFUk#ZlqpfzT8`NvPN2E}-ILq;CKf7o|k;e~x)2z?L9! zzHtE48~-YFN1xUKZ|Fspu-^L|bR9~iwk5l+3d?{me7?TDme_N@T&?jXGv&+7cRka0 zmtOUp zfW+RNA;zulRRtcEFR7%j0K#I9_mJkxtuGBeuzw&Nh1N}CO}Y{$!jT0WBIc|y9rz1p zBNv*%AA&^twIdLunC|Ed}hRLwOi)Um;lgd=1cG-eqBJb)>J# zXTDGY$t|klw#ksokX|;z(ZY^I$!YXVbV47(hlyuZ3d@SeYR7n&gDK`E3LE+9RlIMy z?9MkxLB1HIwbqhZGuN__1tTq31fC>g4HJ`FP+KHE&m?pR0Tq^RE~0GGQ-cU#5ZQO3 z`I5AfhD0^96!S*a%&Je1f2pPQ|M}FL_gX6)H_Qwc>Exf)ox1uMMo$M`9JSyAN;(}v zMhFRP^V#}EEX$P~UA|jN)nXU! z)ouXX;qXtoFgub%Ndo1p#Qg)*La#`oNkF^;KGoRos`WzW_Bu`U@M5k~O+h?SPJaQ& zM)?{YwfHe4s2nf9r1;+P(^Ef20NV_{VO@f?{MC)twJPUh3c|D$g+X4Q z!~oFqz((zNtr>!ufNT#c!{5?I+(3ZtuNeV&*fcQ2^kS@A0kSqSq%U0w1dwtAG(%(wL|%6K8jbrV*u+0E*wam=kPDYafy-z-)gE7q>kN=M6A%cB}0QM^JTY<4Ud zZ#sXGbeRBDPCla}0;WPyc~~sI_pbyavEEqt1ve-tK%h}X`tYPQdr}|`k-x&STj%oX zQF36_26KAR>(_D%OJWPq6CWPGkG-+o*Pjr>%Z%s1zjM&cyWJn%le{oA1~3P#3m3j$ zZ!-N~_pq_gHRl8Eee{T8+0SbQZ^CIC5D!U1oV@eUgdd+QD;AQoUcSuGF9-sWlRhfuEFRA|@^u)&n>W|2@P*X5h ztaq=DLd%!pui%(1v0pSmo`blXAgS~PPIyu%FFx?OYA;<1`kJ??9+V#Tmcqb}8a%vg z*7t$g^tT5p{HF&R-f_YN?tt=t1ElA^HG{qm^`x^5y*_7k$#!-H^*t*U94;PdLN$M5ZfnVt!>iAJF$tr^g=`uX&?XZpw zs6g}~A5b`>5InHe=vb`#$P%Blz3Ur^$!C%54In}t@tARJkC@A=-@S0 zEn6T=l(+AL#gqrkX*5L5M0e;L(zm~DAZaY+4f_v@(L$i|_izprl;`951IJ$6r7zW5 zHa~$fRk_ISog~x=7zj-$zQ}V&C2X%4XzlCM_Q{&s{Mu+w05Kn3Dsb5PqnAo5h+@)N z=I3xV=ZfodSK!ZR?J^UCJO?0MS)=DJz}f51M>9 zsgKpRwY6|n@HNRL+CHC`aa%`5hwz;1s?9I;47D%~#gw%on{q}cEheiUWv%_~kt@8( z)$jVgm?STOe2K8DsjUJT0`hwn`^OKWs16JfsRR+cX_8p_5RH4v6{q#l$E{l_Vv+0$e9;-&BDrzbcRhUC(c1|1hc&j>2 z?XCs~uY>`Rm?oK40w8d3H_9_&ApXMqMB;tZa|!-`niSh?1rQ5fAOE{4+oi1;sIh)L zwaJs(_v*r!TkoCA_jo`*tBEamK`a1E&E(1wWC~FLF~lIA1mS*r=&j`p-dmlwU{ydcC&YPlkweA$inn!X- zdYxM2Rj4rw@qThL5=;4|mO55D;dGdn?s1yt#)>rKzC_y5LO@ew+F=HUCfa9gtk8T; z0-PM~5$uww?`GCRfR8ofuD^t#&;$}|PyZSZBI%C6$T%JGkd-8~VW0)9cAITh4z!1- zu!a=;@@xOA&hs&j(zl~(>AGHs*S4aE0_M2cjDR&uhta9I0?pBMtkCeeL0n~Z_fEC7*dfP`ni=EI?=ANoxgk8FVbkQs`i5ZvR~xBNgs9@LcuTXv@LT&;J7)eS0_UC{?i945R3Wi)OY@S3terV&GX69d;k3UI6=u*b+LjA+Y`9*}(OMyKl}ON{RS0^+7ejCp z7YvkJx$d3qU*Mk)G{N^1!X@7V7(kUp=`h21A`ZbvdYQMPwi5PR zM>RYGj%EFJt$G?UD$tEN@>8%t(SJM2cV9~&V_?!i2Elopdv?{^iRxp zl`CIu#KJ+Lq!=`-6I;#Dz5AxEBW#FJK7NrSo03G}USw$g>?9%T6NCQqi7$c9x~W!r z-aaAuduyXV;QJjA#Hfdnn-S~oe3<(`rSUg)zzL~*Kgt$P`xyZhxzu?fsMDB%XUkq$ zS?WwSaAFQ=^J%9b<5!Pu5Eoe$;O8L$hPSN|Dv{T5QOy=WSJNV+AwYV?&N~yXRwLoR zpW*F_Y;l7B%561B$O1LYOw7FE!C|$fe377Y1Dp)vlNHh*(=~jlc+=zSy9O>lBp#eQ zAWC9-FL~W9`fIdU^RXq({1FS7mOD<# zN4I-Fg>mQUjn+Rom(KNO16;0JY1JHDAOU(N!^1D|?=yNHyIX7S>(!wwp?%89;p`HE*pG3culnn_-V?W4QyQxm@de4+=y?PEoTS;*d}*^g zYfn3!KmF+m;#@5|fv}>G!sS5)P#0oBCO^&IA@~c2LNCMj($4_0{Lx-}%l@M>_Z`Nd z-?bQ%>QoXn#4l13v>ktgCEig4d`)2I8>5QjJFG>dg_)WWv5pePGued>=T<4i)C2>1 zI?ch-h=rEZsJfcjiCY)e7;8&p59hct{!20FIF)J|hxZA}!S_dMxhg#m-@}x|Fo5~o zmUi2`^P>@&BOoDyzRj=q|lMIYnc#NasZU2DY*&(CfDlAG=*sY^J-Wzq# zZNWe)j%)q&+|PI2>7{o=Ky*D-s(>|R>@S}nCxr}bf6II<$w=Dc(=l{{29d;)0=6;q zd82qDzs+SIai4S7#ad8p9Cq|3!N67r2mzFdvi%+hpJpN7`@QqoyC(7GMju1)MaEC4 zqPA*UnAFynzMmDWQ|+Grp+VN)WP_MNp?$skQKx}=`tFqVoUxto?xFJ4X{3%aa0l}= z?n;U*O^j|UMK%Wy`;p^51w&vKU0JR}>MkYD zX#EJaTBr*NA5{GV00eD+H^A+DkwVg0NurOc4^5ZbDHt)eWEqJD{K>t8CL+Hj#JJkH zH&_I7#$UI7mq}*Jbu1HhAO(^=xCWPz(WeOp@dL-pVnqPD5t*cP4t6cPXg!l*tA-9v>7Dw2&MDA8loa*Yk-La`^8Xq>c8!i%w?=nWMQ z=QR8>bdnU7w8B9zKSbnrbq1+`0A0%5WLKW_#*3Rt6{yAzzz~N3K{sAH{u4QGoU>KK zbBUz;X$)(i(F!7fk3Kc5sK-Xd?9-;tky{ZSf1t77TxVYgGzHe#P55wRR1p9V=gse^ zXqPp>+U&m_JOnJ{X5q$e!p11H(>iBhI7IqpkBXR}y<lG!C`+$BI2ZWp;f~EUZ zVO#ue^q{MzP$Y9UGhx*5M&5>AAJl?`=&$zctthyOfK>Q%Rss$IrilKpK7J>}_=^6< zCkRlel<4{>zz9HhWWrthVd^+O5)EeJIawwvWEh>}FFC+;SK<`~e!sL|HUQ!`vM2vBdy*DQq! zHS%ALhGB(mjP!sOQ97)JmtewbR~^uD;*q(DU%a!~izxLN+z@sl$Dgd!Qvzy&dAQxc z*P1E4DXkyfjJ>F-$Nvy&P&cmNV>i660{=4V!97FN@-K}g+?IWym7W_7^*$s+fdvpw z_0wG+;}7_Rb$smjyD+AJ6^T7M@-s|y^oH?`%@$EJEJ<)KkvVdy%Zp;V%d%pXS&`dYW9E1U)kPwjy| z$)qaZUfn2Qb*k;HzyzwQHMJ;S^!!8-2y0cibV8Lk+UYf7S=KD&dE7yk-6>b zMm=plqZYZY{m$3KrE8zPYEbn}Q_Oh<9XK_v28mG|^RG{)01=N39ni~A0Dif!edbibE-vE#;UryNSVXs%SW<;KTxPKE`frR|b=0p+? zT6=}iUhgPGxxWvJ^9GZf62Hzrg1Z7M*+F#(e{(wMHd^;3j=FaDH&+TW*eL5-1*Rd9 z{Z^`-0oBd{`}*!QP`$2`p4*96C7ES&ERP0e^9Y;spn7fi>sZgvmn!YwM}o3DV}bk! z=3!CNXVPppJ4*AX-za7PBbKPnK=q4ba!TjjE?3rUN-AzrqsYBVU+lkYDcggmxTi#X zL68j00UxT}<(+xEWgxew>ooV8nQ+qo9xk`=a9&+mH1h`V=FoqJiy`=3Ba02>LA;uc z%3}!VlYyPYEAA^&tKKqB?!>+vg!*7QbuQG9Ffe9lt_B0IjvJwrjLP@}9%236hIl^# ze7&l%BmwpwC!^};OBTpqBWfZWajtz1L0QSkS5{cB@?Xhooz0Q00r_7Jh=+iYFZ)BC ztwcaA)no%hA7H8tAJy+>>^^R$=T|^gXm?Pl!DPdqAG~(UEx4y>;(}%=Ky3z(>i10I zyb;0=xtQJiwXgG~@$&2!yWX#`J3oWMVee?yA#ecBAsTTnIRY==T-6ChdM1AHMfA$msTRZWk};SGa@O7xX<@@-aJ_5=jIZ4}oO@ZorvQ^NO;9G!H#)K@SG025-)@^uMcAPF zW*{^3QceTTfEu$m{v``Men31EuEw#!!%9u33?USn=Au9MGcyrSR(=JrB>V(TwA{S6zQt z!KfM-w*LrBSKmJGe>rLI96l8L?@bs#jK6K_Kb;5-C&@1VUEMUe|HQ-I;KHTJ`@H|} zY~0UdYg~VOs6EgE8G)vQV#0#zb%fw+09i*vS%g!PF`YRNAi%S9K&(e9feC-`blMdf zGXywMX+_s@N{7`0L4clpu5r;&V(JtP1ot5b`8xOO&MTi&c=RU)LGgR*K{BjzQZ^s@ zUjcPO158odbOc`n@pzqCqb3VMXgZflXyg_y0A~vIsh%o8Sgmce7Cg19%LcC*z>2;- zzuJj_a!b0jJU{sZvK&aeKzIW3E&7wK;8%d3J)eGoL#! zN{WCQ7Y(g&Z&FBB@z$fix27(h|G9YMk{N@a|Jf_7=;$4z+F6YqFTT`=Jetg;!^2Ok z$vZmMV@-@_?1qPbuN6Wqy74}VosYG|(*4)+G z>V5sq+P~Ps1YQ37G|*q^>3Q865_VX3hmTH{l+L%ebU;Fz0-YO-#!NT(7rX|N* zT>SV6?AUUBx_Ghmw(a(H&73|s7Y58cIl&Y}q4cI|M4hk(t ze~+ld8r)^P%lB_Est2_%zP5GdQIc^1ub{3Erl);wK~7byEa$ojs4|grOLMgZ1{^)| z*`6v_lJ;#eoI`Kgzm?%tj(q*pU!789wvKT1*D$T!)DVBFy{2*st2pBJ)o+Z8NL&i{EmqA%vjdLGQCNsfZyL8OfI{_!y9Bb+@Z|s zM&3F7St3lta&kMTj~|!A8-1HO{UXALPZOAwC=!KOQDzuOOmX2t7MB#hqeQV6Ix^Zx z3pPa+lDb#*XLK~_A5!^%p~)jP~=5;ryzgpN=kcQk_e$a6A`stDE=0lw$N*LI6Po{ zCQB?YZ{6TNYamhK2h?~4;ETuGCs_$0yYZnh*=|vy6T-L>5(GqF3R&*l*|=OaKU+oZ zp021i9!o;H>6qiSH-3#pyTv{IB2DdT#ElPHD3WvK4LmhI}g}|xC*H+xz;>=jE zwav4dNh2@?IcXTkUOr^@41p+bybt%qP8XDUabMq2$*anxoBCp*zn|aZlY~LvXIW?h zyBcb7b`nR_2E=zb!Qwb0FDgABh>6V*Lo9fPCJIy%R|iJL@mgEKi6DdG82u?*!A{+0 z70{47*v`Vw);e+;?`}kLju@qjknr%#ELSv?SUmz~{mwIE%`;*&heHpPbsI_JNrT{Xc2oKU=0JHOKYq+7S%^b)zBn+e@q?UHrE?p($* zUL2ku9y{mlD#wCj3MS>Cye);A`7ounjVQkjM)B(naKd9}WUKjTLV?JsE(rVEJ-r?* zhK5;*QsGi+f3dkOlTYw8X8}KSs}lUf*8o(y2_J)$EzH^CO*l zfcy?6Lg@t>4A1R%C7ffd-fy0tXJWLts6LX9cD!yX!hBgVff$r1^$VaO`a&EIrU*sw zy&6wumYMGds_CUK^losbvakg-d$k%5JERzHUNlQd?exmHjegF+3Q3g0T9p3hCX`qW z0-V1z;wB|Ej1~O&agE4ID;O}(e99--zQ5QI#LBM1jA@a%k|rx;cX`q}@75m4wV4@F zS}|cEma%=5mzS3iDM>w=dLgm^mZ#fvsh{gO$K4{U_@)d5g`Z(2ey5XqU_?x^3?fJf z_iuIJuKQlI(eb%Tb8^b9NpitfRy%3y9Fy9^vw;aid1D572n(!tatYV8WEHz3V?gPp%|9xa zc2kn=_FDUzmnYs*$V=PQbiA9HDsR) zH{`{A)RtnYZ+e+8DivtQnSH>#dQV?~&FoROoSfXG3_>JX%0-|V zpLP*k((RS)zU=GUW#&#*^`xUDEg(yTU3SUOciS&Vd(MnBxa@BkZ5=RKWK`H)-uk}$ zh+MsCOkqib(|2=hS7Q=+VRd$-Wf1YwaMzQC###J+Md2T5khPNkaaTyC>lj0Go8gP@ zjf9!BR`1r4!am;4ye_)BlcsGRM!J~z;(5zPz7(8I&r*a_2j(T$x}upS<`tKqe%{?Y zMKQgd6JNnOKo^6|oa!mn<70Ia7HgKz=67BwQY6|tq3-A$3XnP^qN|H|HkgIoYA?K~ zXo%MBw3-bc|2pA)0+xJiNYL%(eN~M;iQ=hRe6UsEb@R>DTKHrCOst-7Z!bJLHby-t z$GSlMZ`_lZFPld^Yl_JTT^h(Ju0R8zDE$C1E}$0-2|W;DWntese`#2L`9MVd{idae z)|=0qdL?CJ7}U-|6)mE%Sw;dyYi5Oz}x()W}Fyq15^L2E#MFPGaedTd0a4>j%nJ@dNf$7WPre zR9A4C(R_Jac2g>$q(+RW&GRU1oiC&}}}+p3~m0 zKL3(wiOO!QxBF>o7T?rTMH5k$mpW~Pj&4!<8drlNGig>(G4X4lBQLP|V?h=4R7j;_E8eVg;J#o2eFw zV1wHHiL&Qx46?Fz}q0>y4Q~q$binEEA`FOMwlY=GN%6D$FxGYC2 zKh`fA%TL+dYMs?%jm+QTCnhhdNS&@udj0LG5m&5uK}Bn<AAj_QjS-@9GPqcP^$-_~r3oX_ch;zrlhI<}Qtn_XzO-}+jf zueK`$0#Jh!V9Ejp?av4jPmJOweUQku87;P+Y=QT%M^`jpqd&|j6A7;WV=BK68!f7@ zZx;MgX!<2DueqbROjXdvZFT1>Gq?83P4q4E!3iJYc}8MFLeG)WjbM_AdZ>|b`K6u_-cN+~we8^u` zS_f3*(o!VbWO$UX=y+?^jn&xX?Fd8aU7&+xqIj`AZFIDVr9Be~H8IXwH=qeYUk=ZS zXlOiZThB+=cn8ODe|Vj4I;KQLmG{cN`K->gIylM99f)-AjsL*?chOpkl{8LX*K0DP zWe!$?5+D<*kKft2mQ^0Ql%Kb5`7Bc<2Y?Y!c2sYEd=87rD^|i$9vD!j7RgJ0e}ll! zM_yUv)A;HZ&)VsL!^Y-6W+vuQy%QB2Pa9}J^BQBxhe;Y0Q`rs;fMTl*wm#R)_AQ~Z z>hDXenw`%L*Il|4K#po8-NV+}JYP$?Sf|eiI{_Dum%5;z%+)u%6{V9BJa%hoX=+NO zl+Z7Z!kPcw{4P!timcHD#ca%LkF~}oT~i_EyWkmU%j1t{iXZ+vP(}Xrt1`)bmgD0| z@bIv?SdvnU$Cf%pq=eQU`ZnwhnIpJrDA+aP>z_H5ri-_T2q8FdD*CiE=0MV_->mKl4rV56h0zw{EzI9Gw4 z->E(e3RP~}av=lp z*S1r;#VV1S3O1(R&!yd1h=k3Vy#}GSaF${?GC4TtSFSSO*4B_Lb^HB4}rmnoj z^9x%Rj=eZY4f-?}&1j-EFJ#;mMD&vA#`>md`3H8!Gh* zq_F5Zxc|qv%q^JQ?-*+3=IbAt8shn525zh_og~U?S!Idin+^NCsYgp(kJY${QaHyG z@&W>mbcfR@C)eCUgUdTkZLYd$w-}t~MZ|G8HT*Q+uPEn}a*okQ`FJNr#O#8yNMW&F zY>G{~ZuK1XwXzi`t3D5FK3Y+06!NBaD?TY^C%kme}Z2!KhauX4rlV4JDX@I@{P{$EHWMxUQ5{jy0;e>VCQ~({rk4+YHb1zL0eE6Ibhv8@Vr zv)ZjSm)Zi8@I3=>_c~2*N=2cR&ruu-j#kzR$C7k5)>oMB0R2mr8P)a%RXt*4HsEzv8hyzY4M} zxOZ;ho%-1}-6bzF_)N*zV!H^IZjCbYC&7iHgdi0zZ8k9xhxhNkp=efi8(XUw!F5*tG;Ag~4O(n2iS(}yRSxe7Lyjv%u zkwLWEYioCN7RmJn-cr7%d&GyknWQuGx9A?2{#|Ej9I1H!FtC~O9RZv78ek{z39Rn2 zSKugkaJu6Dgq~-su%Co#y14B@rZ z#YOXq_uVKC+90o?X5|R_4U2M0ehKwfz4*u>j;u*`Lng`>e)$H=CnC@ zJFc2)Oa|YKeY)NzoWAM~BGc{VcnEHT6xvV8q3X*TN(anldC$#fqs3Z;m!}r5#yeyI z_a|h3DGN5r$8)5jfmP6Nj@lIOPWl}^clD#Bj-INd7Zn?L9N6$ou!zbozsoo*hqK zSzV9h6LK|u9PQp~usV_V+AWYYMvfE&H~GF}S(>UmX`jKD__U&djz0akg!}&9O3ER; zUIrmA?;LmwQbd7fT6wWkD<&kt9S2?%&Kejvy*{;oq^9;xu5GQ3VPf6bofe*#+dU3^ zFK&XEGV!>MXC$9iy1>TWJK(6a?FrJz!?kMbl3}LPp18R&$t(Mg zt%^14nAX-XJLteES>K%PGr0Gt_uhcu;Wt-$`(KX(H@EuHXQ>4K2uG=ZHP@+#X--Js z1_!0L%^yDc=C-#$PC>D8Vlx)OZ)u@sUQM%8rX*@L0!#Zgbo-;>gb0qkBTx2|qhmR- zYv&)mHq>{?9USJrz%nDxjz-18Bm|NfHK+vT#V+2pNWz~r$y1Dt>nO}Qs&o)*=xb7p zE%;pC{wRE9F$7EdUd>efD%N!(FBA1ey6Q}72=N55G!HpFOgSp(z=<@BjjqC zs@EG!eoVLr&DN^c$cl2`$mg(}spD2jc|EBAJy|L`+KghXM4Q5MqAXk&Y6u<`gls^) za#sWwy=gU#!)K<3eW_;BaTLxHI8)ENlxlIX(WR}!AG$;>N{W~?+K~YYA?MQmA`Xcl z`~l)8I_OrvK#f4+KsZw&nhM>q7G85)En#Q7jW|?7=-}L+3?s{s%+?Uut)tHlm~+(wyQvDZR2(l~Y~8fr zY{p6+J>TdC4#}Er@Sze{0+^;%sNRXZz69GT)>L|*AK1e2AP^^24UO)xu@^Y__}zU; z?2SI6;Gd#FAQ7)dcED#qIB9QTLLkqgAh#fp`}F?cC!LrNA&{rs|NoEwU$4o{9rba) V?h{M(&tUl=N^ Date: Sat, 15 Aug 2015 09:24:28 -0400 Subject: [PATCH 12/31] Add deprecation notice for axes.color_cycle --- lib/matplotlib/rcsetup.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py index c5355fa7df5e..b202cbdb707c 100644 --- a/lib/matplotlib/rcsetup.py +++ b/lib/matplotlib/rcsetup.py @@ -301,13 +301,13 @@ def validate_color(s): raise ValueError('%s does not look like a color arg%s' % (s, msg)) + def deprecate_axes_colorcycle(value): warnings.warn("axes.color_cycle is deprecated. Use axes.prop_cycle " "instead. Will be removed in 2.1.0") return validate_colorlist(value) - def validate_colorlist(s): 'return a list of colorspecs' if isinstance(s, six.string_types): @@ -775,8 +775,8 @@ def __call__(self, s): 'axes.formatter.useoffset': [True, validate_bool], 'axes.unicode_minus': [True, validate_bool], 'axes.color_cycle': [['b', 'g', 'r', 'c', 'm', 'y', 'k'], - validate_colorlist], # cycle of plot - # line colors + deprecate_axes_colorcycle], # cycle of plot + # line colors # This entry can be either a cycler object or a # string repr of a cycler-object, which gets eval()'ed # to create the object. From f4436294d7f1688f9d65888e9e583305d47b85cc Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Sat, 15 Aug 2015 17:23:22 -0400 Subject: [PATCH 13/31] Some axes.prop_cycler param improvements. * Restricted prop_cycler to only have cycler() available * Added tests for both nominal and fail cases. * Even added some potential malicious strings to test fail. --- lib/matplotlib/rcsetup.py | 23 +++++++++++-- lib/matplotlib/tests/test_rcparams.py | 49 +++++++++++++++++++++++---- 2 files changed, 63 insertions(+), 9 deletions(-) diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py index b202cbdb707c..26fe603f2b29 100644 --- a/lib/matplotlib/rcsetup.py +++ b/lib/matplotlib/rcsetup.py @@ -323,11 +323,30 @@ def validate_cycler(s): if isinstance(s, six.string_types): try: # TODO: We might want to rethink this... - cycler_inst = eval(s, {'cycler': cycler, 'Cycler': Cycler}) + # While I think I have it quite locked down, + # it is execution of arbitrary code without + # sanitation. + # Combine this with the possibility that rcparams + # might come from the internet (future plans), this + # could be downright dangerous. + # I locked it down by only having the 'cycler()' function + # available. Imports and defs should not + # be possible. However, it is entirely possible that + # a security hole could open up via attributes to the + # function (this is why I decided against allowing the + # Cycler class object just to reduce the number of + # degrees of freedom (but maybe it is safer to use?). + # One possible hole I can think of (in theory) is if + # someone managed to hack the cycler module. But, if + # someone does that, this wouldn't make anything + # worse because we have to import the module anyway. + s = eval(s, {'cycler': cycler}) except BaseException as e: raise ValueError("'%s' is not a valid cycler construction: %s" % (s, e)) - elif isinstance(s, Cycler): + # Should make sure what comes from the above eval() + # is a Cycler object. + if isinstance(s, Cycler): cycler_inst = s else: raise ValueError("object was not a string or Cycler instance: %s" % s) diff --git a/lib/matplotlib/tests/test_rcparams.py b/lib/matplotlib/tests/test_rcparams.py index c371f22bf015..f3ea798c8185 100644 --- a/lib/matplotlib/tests/test_rcparams.py +++ b/lib/matplotlib/tests/test_rcparams.py @@ -8,6 +8,8 @@ import sys import warnings +from cycler import cycler, Cycler + import matplotlib as mpl import matplotlib.pyplot as plt from matplotlib.tests import assert_str_equal @@ -22,7 +24,8 @@ validate_stringlist, validate_bool, validate_nseq_int, - validate_nseq_float) + validate_nseq_float, + validate_cycler) mpl.rc('text', usetex=False) @@ -238,13 +241,14 @@ def test_Issue_1713(): del os.environ['LANG'] assert rc.get('timezone') == 'UTC' -if __name__ == '__main__': - nose.runmodule(argv=['-s', '--with-doctest'], exit=False) - def _validation_test_helper(validator, arg, target): res = validator(arg) - assert_equal(res, target) + if not isinstance(target, Cycler): + assert_equal(res, target) + else: + # Cyclers can't simply be asserted equal. They don't implement __eq__ + assert_equal(list(res), list(target)) def _validation_fail_helper(validator, arg, exception_type): @@ -293,8 +297,35 @@ def test_validators(): for _ in ('aardvark', ('a', 1), (1, 2, 3) )) - } - + }, + {'validator': validate_cycler, + 'success': (('cycler("color", "rgb")', + cycler("color", 'rgb')), + (cycler('linestyle', ['-', '--']), + cycler('linestyle', ['-', '--'])), + ("""(cycler("color", ["r", "g", "b"]) + + cycler("mew", [2, 3, 5]))""", + cycler("color", 'rgb') + cycler("mew", [2, 3, 5])), + ), + # This is *so* incredibly important: validate_cycler() eval's + # an arbitrary string! I think I have it locked down enough, + # and that is what this is testing. + # TODO: Note that these tests are actually insufficient, as it may + # be that they raised errors, but still did an action prior to + # raising the exception. We should devise some additional tests + # for that... + 'fail': ((4, ValueError), # Gotta be a string or Cycler object + ('cycler("bleh, [])', ValueError), # syntax error + ('Cycler("linewidth", [1, 2, 3])', + ValueError), # only 'cycler()' function is allowed + ('1 + 2', ValueError), # doesn't produce a Cycler object + ('os.system("echo Gotcha")', ValueError), # os not available + ('import os', ValueError), # should not be able to import + ('def badjuju(a): return a; badjuju(cycler("color", "rgb"))', + ValueError), # Should not be able to define anything + # even if it does return a cycler + ) + }, ) for validator_dict in validation_tests: @@ -331,3 +362,7 @@ def test_rcparams_reset_after_fail(): pass assert mpl.rcParams['text.usetex'] is False + + +if __name__ == '__main__': + nose.runmodule(argv=['-s', '--with-doctest'], exit=False) From 648d3ea884971ae85ef9ca30ec475fb4f870b6af Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Sat, 15 Aug 2015 17:32:10 -0400 Subject: [PATCH 14/31] Made the linewidth thicker for a test --- .../test_cycles/fill_cycle_basic.png | Bin 57092 -> 63890 bytes lib/matplotlib/tests/test_cycles.py | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/matplotlib/tests/baseline_images/test_cycles/fill_cycle_basic.png b/lib/matplotlib/tests/baseline_images/test_cycles/fill_cycle_basic.png index bbf09ca23dfac33e76a1dc106224dce74aa969f1..bc3263c15cb764eca45be43568545749573da873 100644 GIT binary patch literal 63890 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 VJ;f(m)HjG(jc)6RdSiCqIdp7?4i>Z}!*6*SD@x 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

_paFrzXVlM?u};69NSisYD})OAr8HA7 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 acnEY)t&F2TXp@Eke-vbuWvX7Ag#2GIh@52r diff --git a/lib/matplotlib/tests/test_cycles.py b/lib/matplotlib/tests/test_cycles.py index 4788a6553b98..ac034b2be87d 100644 --- a/lib/matplotlib/tests/test_cycles.py +++ b/lib/matplotlib/tests/test_cycles.py @@ -49,13 +49,13 @@ def test_fillcycle_basic(): cycler('linestyle', ['-', '--', ':'])) xs = np.arange(10) ys = 0.25 * xs**.5 + 2 - ax.fill(xs, ys, label='red, x') + ax.fill(xs, ys, label='red, xx', linewidth=3) ys = 0.45 * xs**.5 + 3 - ax.fill(xs, ys, label='green, circle') + ax.fill(xs, ys, label='green, circle', linewidth=3) ys = 0.65 * xs**.5 + 4 - ax.fill(xs, ys, label='yellow, cross') + ax.fill(xs, ys, label='yellow, cross', linewidth=3) ys = 0.85 * xs**.5 + 5 - ax.fill(xs, ys, label='red2, xx') + ax.fill(xs, ys, label='red2, xx', linewidth=3) ax.legend(loc='upper left') From 2e7b6a5132f08c4d053e74100faf8ca365fa9daa Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Sat, 15 Aug 2015 18:17:14 -0400 Subject: [PATCH 15/31] Updated styles and templates for prop_cycle --- lib/matplotlib/mpl-data/stylelib/bmh.mplstyle | 2 +- lib/matplotlib/mpl-data/stylelib/classic.mplstyle | 5 +++-- lib/matplotlib/mpl-data/stylelib/dark_background.mplstyle | 2 +- lib/matplotlib/mpl-data/stylelib/fivethirtyeight.mplstyle | 2 +- lib/matplotlib/mpl-data/stylelib/ggplot.mplstyle | 2 +- lib/matplotlib/mpl-data/stylelib/grayscale.mplstyle | 2 +- lib/matplotlib/mpl-data/stylelib/seaborn-bright.mplstyle | 2 +- lib/matplotlib/mpl-data/stylelib/seaborn-colorblind.mplstyle | 2 +- .../mpl-data/stylelib/seaborn-dark-palette.mplstyle | 2 +- lib/matplotlib/mpl-data/stylelib/seaborn-deep.mplstyle | 2 +- lib/matplotlib/mpl-data/stylelib/seaborn-muted.mplstyle | 2 +- lib/matplotlib/mpl-data/stylelib/seaborn-pastel.mplstyle | 2 +- matplotlibrc.template | 5 +++-- 13 files changed, 17 insertions(+), 15 deletions(-) diff --git a/lib/matplotlib/mpl-data/stylelib/bmh.mplstyle b/lib/matplotlib/mpl-data/stylelib/bmh.mplstyle index 56f2b0ed55a0..bc3831df7864 100644 --- a/lib/matplotlib/mpl-data/stylelib/bmh.mplstyle +++ b/lib/matplotlib/mpl-data/stylelib/bmh.mplstyle @@ -17,7 +17,7 @@ axes.edgecolor: bcbcbc axes.grid : True axes.titlesize: x-large axes.labelsize: large -axes.color_cycle: 348ABD, A60628, 7A68A6, 467821, D55E00, CC79A7, 56B4E9, 009E73, F0E442, 0072B2 +axes.prop_cycle: cycler('color', ['348ABD', 'A60628', '7A68A6', '467821', 'D55E00', 'CC79A7', '56B4E9', '009E73', 'F0E442', '0072B2']) legend.fancybox: True diff --git a/lib/matplotlib/mpl-data/stylelib/classic.mplstyle b/lib/matplotlib/mpl-data/stylelib/classic.mplstyle index 829b750c2cfb..d556d7a2c175 100644 --- a/lib/matplotlib/mpl-data/stylelib/classic.mplstyle +++ b/lib/matplotlib/mpl-data/stylelib/classic.mplstyle @@ -6,7 +6,7 @@ # information on line properties. lines.linewidth : 1.0 # line width in points lines.linestyle : - # solid line -lines.color : b # has no affect on plot(); see axes.color_cycle +lines.color : b # has no affect on plot(); see axes.prop_cycle lines.marker : None # the default marker lines.markeredgewidth : 0.5 # the line width around the marker symbol lines.markersize : 6 # markersize, in points @@ -198,7 +198,8 @@ axes.formatter.useoffset : True # If True, the tick label formatter axes.unicode_minus : True # use unicode for the minus symbol # rather than hyphen. See # http://en.wikipedia.org/wiki/Plus_and_minus_signs#Character_codes -axes.color_cycle : b, g, r, c, m, y, k # color cycle for plot lines +axes.prop_cycle : cycler('color', 'bgrcmyk') + # color cycle for plot lines # as list of string colorspecs: # single letter, long name, or # web-style hex diff --git a/lib/matplotlib/mpl-data/stylelib/dark_background.mplstyle b/lib/matplotlib/mpl-data/stylelib/dark_background.mplstyle index c3557c1f12b4..a8b754005bfd 100644 --- a/lib/matplotlib/mpl-data/stylelib/dark_background.mplstyle +++ b/lib/matplotlib/mpl-data/stylelib/dark_background.mplstyle @@ -8,7 +8,7 @@ text.color: white axes.facecolor: black axes.edgecolor: white axes.labelcolor: white -axes.color_cycle: 8dd3c7, feffb3, bfbbd9, fa8174, 81b1d2, fdb462, b3de69, bc82bd, ccebc4, ffed6f +axes.prop_cycle: cycler('color', ['8dd3c7', 'feffb3', 'bfbbd9', 'fa8174', '81b1d2', 'fdb462', 'b3de69', 'bc82bd', 'ccebc4', 'ffed6f']) xtick.color: white ytick.color: white diff --git a/lib/matplotlib/mpl-data/stylelib/fivethirtyeight.mplstyle b/lib/matplotlib/mpl-data/stylelib/fivethirtyeight.mplstyle index efd91ebb321b..f94046800118 100644 --- a/lib/matplotlib/mpl-data/stylelib/fivethirtyeight.mplstyle +++ b/lib/matplotlib/mpl-data/stylelib/fivethirtyeight.mplstyle @@ -6,7 +6,7 @@ lines.solid_capstyle: butt legend.fancybox: true -axes.color_cycle: 30a2da, fc4f30, e5ae38, 6d904f, 8b8b8b +axes.prop_cycle: cycler('color', ['30a2da', 'fc4f30', 'e5ae38', '6d904f', '8b8b8b']) axes.facecolor: f0f0f0 axes.labelsize: large axes.axisbelow: true diff --git a/lib/matplotlib/mpl-data/stylelib/ggplot.mplstyle b/lib/matplotlib/mpl-data/stylelib/ggplot.mplstyle index 5f7e8b3b20b6..67afd83cc42d 100644 --- a/lib/matplotlib/mpl-data/stylelib/ggplot.mplstyle +++ b/lib/matplotlib/mpl-data/stylelib/ggplot.mplstyle @@ -16,7 +16,7 @@ axes.labelsize: large axes.labelcolor: 555555 axes.axisbelow: True # grid/ticks are below elements (e.g., lines, text) -axes.color_cycle: E24A33, 348ABD, 988ED5, 777777, FBC15E, 8EBA42, FFB5B8 +axes.prop_cycle: cycler('color', ['E24A33', '348ABD', '988ED5', '777777', 'FBC15E', '8EBA42', 'FFB5B8']) # E24A33 : red # 348ABD : blue # 988ED5 : purple diff --git a/lib/matplotlib/mpl-data/stylelib/grayscale.mplstyle b/lib/matplotlib/mpl-data/stylelib/grayscale.mplstyle index 2012b1b95d36..6a1114e40698 100644 --- a/lib/matplotlib/mpl-data/stylelib/grayscale.mplstyle +++ b/lib/matplotlib/mpl-data/stylelib/grayscale.mplstyle @@ -12,7 +12,7 @@ axes.facecolor: white axes.edgecolor: black axes.labelcolor: black # black to light gray -axes.color_cycle: 0.00, 0.40, 0.60, 0.70 +axes.prop_cycle: cycler('color', ['0.00', '0.40', '0.60', '0.70']) xtick.color: black ytick.color: black diff --git a/lib/matplotlib/mpl-data/stylelib/seaborn-bright.mplstyle b/lib/matplotlib/mpl-data/stylelib/seaborn-bright.mplstyle index e4cc354e272b..cbc80dc76b16 100644 --- a/lib/matplotlib/mpl-data/stylelib/seaborn-bright.mplstyle +++ b/lib/matplotlib/mpl-data/stylelib/seaborn-bright.mplstyle @@ -1,2 +1,2 @@ # Seaborn bright palette -axes.color_cycle: 003FFF, 03ED3A, E8000B, 8A2BE2, FFC400, 00D7FF +axes.prop_cycle: cycler('color', ['003FFF', '03ED3A', 'E8000B', '8A2BE2', 'FFC400', '00D7FF']) diff --git a/lib/matplotlib/mpl-data/stylelib/seaborn-colorblind.mplstyle b/lib/matplotlib/mpl-data/stylelib/seaborn-colorblind.mplstyle index ff7f474e7fc1..adb5f34d8934 100644 --- a/lib/matplotlib/mpl-data/stylelib/seaborn-colorblind.mplstyle +++ b/lib/matplotlib/mpl-data/stylelib/seaborn-colorblind.mplstyle @@ -1,2 +1,2 @@ # Seaborn colorblind palette -axes.color_cycle: 0072B2, 009E73, D55E00, CC79A7, F0E442, 56B4E9 +axes.prop_cycle: cycler('color', ['0072B2', '009E73', 'D55E00', 'CC79A7', 'F0E442', '56B4E9']) diff --git a/lib/matplotlib/mpl-data/stylelib/seaborn-dark-palette.mplstyle b/lib/matplotlib/mpl-data/stylelib/seaborn-dark-palette.mplstyle index 70b6c82a04cd..6f437fdf7392 100644 --- a/lib/matplotlib/mpl-data/stylelib/seaborn-dark-palette.mplstyle +++ b/lib/matplotlib/mpl-data/stylelib/seaborn-dark-palette.mplstyle @@ -1,2 +1,2 @@ # Seaborn dark palette -axes.color_cycle: 001C7F, 017517, 8C0900, 7600A1, B8860B, 006374 +axes.prop_cycle: cycler('color', ['001C7F', '017517', '8C0900', '7600A1', 'B8860B', '006374']) diff --git a/lib/matplotlib/mpl-data/stylelib/seaborn-deep.mplstyle b/lib/matplotlib/mpl-data/stylelib/seaborn-deep.mplstyle index f06df83e5c9a..f07e06a13e80 100644 --- a/lib/matplotlib/mpl-data/stylelib/seaborn-deep.mplstyle +++ b/lib/matplotlib/mpl-data/stylelib/seaborn-deep.mplstyle @@ -1,2 +1,2 @@ # Seaborn deep palette -axes.color_cycle: 4C72B0, 55A868, C44E52, 8172B2, CCB974, 64B5CD +axes.prop_cycle: cycler('color', ['4C72B0', '55A868', 'C44E52', '8172B2', 'CCB974', '64B5CD']) diff --git a/lib/matplotlib/mpl-data/stylelib/seaborn-muted.mplstyle b/lib/matplotlib/mpl-data/stylelib/seaborn-muted.mplstyle index d8196d13c59d..4d7a0ae7c27a 100644 --- a/lib/matplotlib/mpl-data/stylelib/seaborn-muted.mplstyle +++ b/lib/matplotlib/mpl-data/stylelib/seaborn-muted.mplstyle @@ -1,2 +1,2 @@ # Seaborn muted palette -axes.color_cycle: 4878CF, 6ACC65, D65F5F, B47CC7, C4AD66, 77BEDB +axes.prop_cycle: cycler('color', ['4878CF', '6ACC65', 'D65F5F', 'B47CC7', 'C4AD66', '77BEDB']) diff --git a/lib/matplotlib/mpl-data/stylelib/seaborn-pastel.mplstyle b/lib/matplotlib/mpl-data/stylelib/seaborn-pastel.mplstyle index f361a4777ef2..e5787abba29d 100644 --- a/lib/matplotlib/mpl-data/stylelib/seaborn-pastel.mplstyle +++ b/lib/matplotlib/mpl-data/stylelib/seaborn-pastel.mplstyle @@ -1,2 +1,2 @@ # Seaborn pastel palette -axes.color_cycle: 92C6FF, 97F0AA, FF9F9A, D0BBFF, FFFEA3, B0E0E6 +axes.prop_cycle: cycler('color', ['92C6FF', '97F0AA', 'FF9F9A', 'D0BBFF', 'FFFEA3', 'B0E0E6']) diff --git a/matplotlibrc.template b/matplotlibrc.template index 968c32802005..af25292da301 100644 --- a/matplotlibrc.template +++ b/matplotlibrc.template @@ -80,7 +80,7 @@ backend : %(backend)s # information on line properties. #lines.linewidth : 1.0 # line width in points #lines.linestyle : - # solid line -#lines.color : blue # has no affect on plot(); see axes.color_cycle +#lines.color : blue # has no affect on plot(); see axes.prop_cycle #lines.marker : None # the default marker #lines.markeredgewidth : 0.5 # the line width around the marker symbol #lines.markersize : 6 # markersize, in points @@ -267,7 +267,8 @@ backend : %(backend)s #axes.unicode_minus : True # use unicode for the minus symbol # rather than hyphen. See # http://en.wikipedia.org/wiki/Plus_and_minus_signs#Character_codes -#axes.color_cycle : b, g, r, c, m, y, k # color cycle for plot lines +#axes.prop_cycle : cycler('color', 'bgrcmyk') + # color cycle for plot lines # as list of string colorspecs: # single letter, long name, or # web-style hex From a1b822fe5bd2f5738fad5beb5c3090f3b9832694 Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Sat, 15 Aug 2015 22:36:03 -0400 Subject: [PATCH 16/31] Some documentation and updating an old example --- doc/users/whats_new/rcparams.rst | 16 ++++++++++++++++ examples/color/color_cycle_demo.py | 19 +++++++++++-------- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/doc/users/whats_new/rcparams.rst b/doc/users/whats_new/rcparams.rst index 3e0db2815628..2619158b1d12 100644 --- a/doc/users/whats_new/rcparams.rst +++ b/doc/users/whats_new/rcparams.rst @@ -1,3 +1,19 @@ +Added ``axes.prop_cycle`` key to rcParams +````````````````````````````````````````` +This is a more generic form of the now-deprecated ``axes.color_cycle`` param. +Now, we can cycle more than just colors, but also linestyles, hatches, +and just about any other artist property. Cycler notation is used for +defining proprty cycles. Adding cyclers together will be like you are +`zip()`-ing together two or more property cycles together:: + + axes.prop_cycle: cycler('color', 'rgb') + cycler('lw', [1, 2, 3]) + +You can even multiply cyclers, which is like using `itertools.product()` +on two or more property cycles. Remember to use parenstheses if writing +a multi-line `prop_cycle` parameter. + +..plot:: mpl_examples/color/color_cycle_demo.py + Added ``errorbar.capsize`` key to rcParams `````````````````````````````````````````` Controls the length of end caps on error bars. If set to zero, errorbars diff --git a/examples/color/color_cycle_demo.py b/examples/color/color_cycle_demo.py index 5fdd01cd287e..647549e77bc2 100644 --- a/examples/color/color_cycle_demo.py +++ b/examples/color/color_cycle_demo.py @@ -1,13 +1,15 @@ """ -Demo of custom color-cycle settings to control colors for multi-line plots. +Demo of custom property-cycle settings to control colors and such +for multi-line plots. This example demonstrates two different APIs: - 1. Setting the default rc-parameter specifying the color cycle. - This affects all subsequent plots. - 2. Setting the color cycle for a specific axes. This only affects a single - axes. + 1. Setting the default rc-parameter specifying the property cycle. + This affects all subsequent axes (but not axes already created). + 2. Setting the property cycle for a specific axes. This only + affects a single axes. """ +from cycler import cycler import numpy as np import matplotlib.pyplot as plt @@ -17,13 +19,14 @@ yy = np.transpose([np.sin(x + phi) for phi in offsets]) plt.rc('lines', linewidth=4) +plt.rc('axes', prop_cycle=(cycler('color', ['r', 'g', 'b', 'y']) + + cycler('linestyle', ['-', '--', ':', '-.']))) fig, (ax0, ax1) = plt.subplots(nrows=2) - -plt.rc('axes', color_cycle=['r', 'g', 'b', 'y']) ax0.plot(yy) ax0.set_title('Set default color cycle to rgby') -ax1.set_color_cycle(['c', 'm', 'y', 'k']) +ax1.set_prop_cycle(cycler('color', ['c', 'm', 'y', 'k']) + + cycler('lw', [1, 2, 3, 4])) ax1.plot(yy) ax1.set_title('Set axes color cycle to cmyk') From 6df7829ae395c45559c3f0288c3254385ae445e9 Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Sun, 16 Aug 2015 12:34:27 -0400 Subject: [PATCH 17/31] PEP8 fixes --- lib/matplotlib/axes/_base.py | 8 -------- lib/matplotlib/tests/test_cycles.py | 3 ++- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py index eedafdb4bd25..ea11ff279d71 100644 --- a/lib/matplotlib/axes/_base.py +++ b/lib/matplotlib/axes/_base.py @@ -181,17 +181,14 @@ def __call__(self, *args, **kwargs): ret = self._grab_next_args(*args, **kwargs) return ret - def set_lineprops(self, line, **kwargs): assert self.command == 'plot', 'set_lineprops only works with "plot"' line.set(**kwargs) - def set_patchprops(self, fill_poly, **kwargs): assert self.command == 'fill', 'set_patchprops only works with "fill"' fill_poly.set(**kwargs) - def _xy_from_xy(self, x, y): if self.axes.xaxis is not None and self.axes.yaxis is not None: bx = self.axes.xaxis.update_units(x) @@ -228,7 +225,6 @@ def _xy_from_xy(self, x, y): y = y[:, np.newaxis] return x, y - def _getdefaults(self, *kwargs): """ Only advance the cycler if the cycler has information that @@ -244,7 +240,6 @@ def _getdefaults(self, *kwargs): default_dict = None return default_dict - def _setdefaults(self, default_dict, *kwargs): """ Given a defaults dictionary (or None), and a other dictionaries, @@ -259,7 +254,6 @@ def _setdefaults(self, default_dict, *kwargs): for kw in kwargs: kw[k] = default_dict[k] - def _makeline(self, x, y, kw, kwargs): kw = kw.copy() # Don't modify the original kw. kwargs = kwargs.copy() @@ -269,7 +263,6 @@ def _makeline(self, x, y, kw, kwargs): self.set_lineprops(seg, **kwargs) return seg - def _makefill(self, x, y, kw, kwargs): kw = kw.copy() # Don't modify the original kw. kwargs = kwargs.copy() @@ -309,7 +302,6 @@ def _makefill(self, x, y, kw, kwargs): self.set_patchprops(seg, **kwargs) return seg - def _plot_args(self, tup, kwargs): ret = [] if len(tup) > 1 and is_string_like(tup[-1]): diff --git a/lib/matplotlib/tests/test_cycles.py b/lib/matplotlib/tests/test_cycles.py index ac034b2be87d..e0085085babb 100644 --- a/lib/matplotlib/tests/test_cycles.py +++ b/lib/matplotlib/tests/test_cycles.py @@ -4,6 +4,7 @@ from cycler import cycler + @image_comparison(baseline_images=['color_cycle_basic'], remove_text=True, extensions=['png']) def test_colorcycle_basic(): @@ -39,6 +40,7 @@ def test_linestylecycle_basic(): ax.plot(xs, ys, label='solid2', lw=4) ax.legend(loc='upper left') + @image_comparison(baseline_images=['fill_cycle_basic'], remove_text=True, extensions=['png']) def test_fillcycle_basic(): @@ -62,4 +64,3 @@ def test_fillcycle_basic(): if __name__ == '__main__': import nose nose.runmodule(argv=['-s', '--with-doctest'], exit=False) - From 871d6167ddcdba9925c96be270c39a649f010dc8 Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Sun, 16 Aug 2015 20:23:34 -0400 Subject: [PATCH 18/31] Simplify set/getdefaults logic for property cycler --- lib/matplotlib/axes/_base.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py index ea11ff279d71..0e3b7ef22b07 100644 --- a/lib/matplotlib/axes/_base.py +++ b/lib/matplotlib/axes/_base.py @@ -230,29 +230,31 @@ def _getdefaults(self, *kwargs): Only advance the cycler if the cycler has information that is not specified in any of the supplied tuple of dicts - Returns a dictionary or None. + Returns a dictionary of defaults if there are any + keys that are not found in any of the supplied dictionaries. + If the supplied dictionaries have non-None values for + everything the property cycler has, then just return + an empty dictionary. """ if any([all([kw.get(k, None) is None for kw in kwargs]) for k in self._prop_keys]): default_dict = six.next(self.prop_cycler) else: - default_dict = None + default_dict = {} return default_dict - def _setdefaults(self, default_dict, *kwargs): + def _setdefaults(self, defaults, *kwargs): """ - Given a defaults dictionary (or None), and a other dictionaries, - update the other dictionaries with information in defaults if + Given a defaults dictionary, and any other dictionaries, + update those other dictionaries with information in defaults if none of the other dictionaries contains that information. """ - if default_dict is None: - return - for k in default_dict: + for k in defaults: if all([kw.get(k, None) is None for kw in kwargs]): for kw in kwargs: - kw[k] = default_dict[k] + kw[k] = defaults[k] def _makeline(self, x, y, kw, kwargs): kw = kw.copy() # Don't modify the original kw. @@ -286,9 +288,8 @@ def _makefill(self, x, y, kw, kwargs): # Need to copy this dictionary or else the next time around # in the cycle, the dictionary will be missing this entry # completely! - if default_dict is not None: - default_dict = default_dict.copy() - default_dict.pop('color', None) + default_dict = default_dict.copy() + default_dict.pop('color', None) # To get other properties set from the cycler # modify the kwargs dictionary. From e7786d0cc5c328dbc2408e29a5d014fb73c5ec45 Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Sun, 16 Aug 2015 23:43:45 -0400 Subject: [PATCH 19/31] Added basic validation/normalization for cycler --- lib/matplotlib/rcsetup.py | 151 ++++++++++++++++++++++++-------------- 1 file changed, 94 insertions(+), 57 deletions(-) diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py index 26fe603f2b29..bab94665f6ff 100644 --- a/lib/matplotlib/rcsetup.py +++ b/lib/matplotlib/rcsetup.py @@ -62,8 +62,28 @@ def __call__(self, s): % (self.key, s, list(six.itervalues(self.valid)))) +def _listify_validator(scalar_validator): + def f(s): + if isinstance(s, six.string_types): + try: + return [scalar_validator(v.strip()) for v in s.split(',') + if v.strip()] + except Exception: + # Sometimes, a list of colors might be a single string + # of single-letter colornames. So give that a shot. + return [scalar_validator(v.strip()) for v in s if v.strip()] + elif type(s) in (list, tuple): + return [scalar_validator(v) for v in s if v] + else: + msg = "'s' must be of type [ string | list | tuple ]" + raise ValueError(msg) + f.__doc__ = scalar_validator.__doc__ + return f + + def validate_any(s): return s +validate_anylist = _listify_validator(validate_any) def validate_path_exists(s): @@ -108,7 +128,7 @@ def validate_float(s): return float(s) except ValueError: raise ValueError('Could not convert "%s" to float' % s) - +validate_floatlist = _listify_validator(validate_float) def validate_float_or_None(s): """convert s to float, None or raise""" @@ -308,63 +328,11 @@ def deprecate_axes_colorcycle(value): return validate_colorlist(value) -def validate_colorlist(s): - 'return a list of colorspecs' - if isinstance(s, six.string_types): - return [validate_color(c.strip()) for c in s.split(',')] - elif type(s) in (list, tuple): - return [validate_color(c) for c in s] - else: - msg = "'s' must be of type [ string | list | tuple ]" - raise ValueError(msg) - -def validate_cycler(s): - 'return a cycler object from a string repr or the object itself' - if isinstance(s, six.string_types): - try: - # TODO: We might want to rethink this... - # While I think I have it quite locked down, - # it is execution of arbitrary code without - # sanitation. - # Combine this with the possibility that rcparams - # might come from the internet (future plans), this - # could be downright dangerous. - # I locked it down by only having the 'cycler()' function - # available. Imports and defs should not - # be possible. However, it is entirely possible that - # a security hole could open up via attributes to the - # function (this is why I decided against allowing the - # Cycler class object just to reduce the number of - # degrees of freedom (but maybe it is safer to use?). - # One possible hole I can think of (in theory) is if - # someone managed to hack the cycler module. But, if - # someone does that, this wouldn't make anything - # worse because we have to import the module anyway. - s = eval(s, {'cycler': cycler}) - except BaseException as e: - raise ValueError("'%s' is not a valid cycler construction: %s" % - (s, e)) - # Should make sure what comes from the above eval() - # is a Cycler object. - if isinstance(s, Cycler): - cycler_inst = s - else: - raise ValueError("object was not a string or Cycler instance: %s" % s) - - # TODO: apply validation to the cycled elements - # probably doable via traitlets - - return cycler_inst +validate_colorlist = _listify_validator(validate_color) +validate_colorlist.__doc__ = 'return a list of colorspecs' -def validate_stringlist(s): - 'return a list' - if isinstance(s, six.string_types): - return [six.text_type(v.strip()) for v in s.split(',') if v.strip()] - elif type(s) in (list, tuple): - return [six.text_type(v) for v in s if v] - else: - msg = "'s' must be of type [ string | list | tuple ]" - raise ValueError(msg) +validate_stringlist = _listify_validator(six.text_type) +validate_stringlist.__doc__ = 'return a list' validate_orientation = ValidateInStrings( 'orientation', ['landscape', 'portrait']) @@ -389,6 +357,7 @@ def validate_fontsize(s): return float(s) except ValueError: raise ValueError('not a valid font size') +validate_fontsizelist = _listify_validator(validate_fontsize) def validate_font_properties(s): @@ -464,14 +433,17 @@ def validate_ps_distiller(s): validate_joinstyle = ValidateInStrings('joinstyle', ['miter', 'round', 'bevel'], ignorecase=True) +validate_joinstylelist = _listify_validator(validate_joinstyle) validate_capstyle = ValidateInStrings('capstyle', ['butt', 'round', 'projecting'], ignorecase=True) +validate_capstylelist = _listify_validator(validate_capstyle) validate_fillstyle = ValidateInStrings('markers.fillstyle', ['full', 'left', 'right', 'bottom', 'top', 'none']) +validate_fillstylelist = _listify_validator(validate_fillstyle) validate_negative_linestyle = ValidateInStrings('negative_linestyle', ['solid', 'dashed'], @@ -607,6 +579,71 @@ def __call__(self, s): validate_grid_axis = ValidateInStrings('axes.grid.axis', ['x', 'y', 'both']) +_prop_validators = { + 'color': validate_colorlist, + 'linewidth': validate_floatlist, + 'linestyle': validate_stringlist, + 'facecolor': validate_colorlist, + 'edgecolor': validate_colorlist, + 'joinstyle': validate_joinstylelist, + 'capstyle': validate_capstylelist, + 'fillstyle': validate_fillstylelist, + 'markerfacecolor': validate_colorlist, + 'markersize': validate_floatlist, + 'markeredgewidth': validate_floatlist, + 'markeredgecolor': validate_colorlist, + 'alpha': validate_floatlist, + # TODO: Add aliases + } + +def _cycler_wrap(prop, vals): + """ + This is an internal wrapper around :func:`cycler` + that will be used in :func:`validate_cycler` to normalize + and validate property inputs. + + """ + # Any unknown properties will just pass-through for now. + validator = _prop_validators.get(prop, validate_anylist) + vals = validator(vals) + return cycler(prop, vals) + +def validate_cycler(s): + 'return a cycler object from a string repr or the object itself' + if isinstance(s, six.string_types): + try: + # TODO: We might want to rethink this... + # While I think I have it quite locked down, + # it is execution of arbitrary code without + # sanitation. + # Combine this with the possibility that rcparams + # might come from the internet (future plans), this + # could be downright dangerous. + # I locked it down by only having the 'cycler()' function + # available. Imports and defs should not + # be possible. However, it is entirely possible that + # a security hole could open up via attributes to the + # function (this is why I decided against allowing the + # Cycler class object just to reduce the number of + # degrees of freedom (but maybe it is safer to use?). + # One possible hole I can think of (in theory) is if + # someone managed to hack the cycler module. But, if + # someone does that, this wouldn't make anything + # worse because we have to import the module anyway. + s = eval(s, {'cycler': _cycler_wrap}) + except BaseException as e: + raise ValueError("'%s' is not a valid cycler construction: %s" % + (s, e)) + # Should make sure what comes from the above eval() + # is a Cycler object. + if isinstance(s, Cycler): + cycler_inst = s + else: + raise ValueError("object was not a string or Cycler instance: %s" % s) + + return cycler_inst + + # a map from key -> value, converter defaultParams = { 'backend': ['Agg', validate_backend], # agg is certainly From 153ef67046056e3c5a3f9bf6cdd6201ee655ae74 Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Mon, 17 Aug 2015 11:59:37 -0400 Subject: [PATCH 20/31] * aliases support * fail on invalid properties * added test for invalid properties --- lib/matplotlib/rcsetup.py | 18 +++++++++++++++--- lib/matplotlib/tests/test_rcparams.py | 1 + 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py index bab94665f6ff..d907fbed5764 100644 --- a/lib/matplotlib/rcsetup.py +++ b/lib/matplotlib/rcsetup.py @@ -593,7 +593,17 @@ def __call__(self, s): 'markeredgewidth': validate_floatlist, 'markeredgecolor': validate_colorlist, 'alpha': validate_floatlist, - # TODO: Add aliases + } +_prop_aliases = { + 'c': 'color', + 'lw': 'linewidth', + 'ls': 'linestyle', + 'fc': 'facecolor', + 'ec': 'edgecolor', + 'mfc': 'markerfacecolor', + 'mec': 'markeredgecolor', + 'mew': 'markeredgewidth', + 'ms': 'markersize', } def _cycler_wrap(prop, vals): @@ -603,8 +613,10 @@ def _cycler_wrap(prop, vals): and validate property inputs. """ - # Any unknown properties will just pass-through for now. - validator = _prop_validators.get(prop, validate_anylist) + norm_prop = _prop_aliases.get(prop, prop) + validator = _prop_validators.get(norm_prop, None) + if validator is None: + raise TypeError("Unknown artist property: %s" % prop) vals = validator(vals) return cycler(prop, vals) diff --git a/lib/matplotlib/tests/test_rcparams.py b/lib/matplotlib/tests/test_rcparams.py index f3ea798c8185..6f0655200812 100644 --- a/lib/matplotlib/tests/test_rcparams.py +++ b/lib/matplotlib/tests/test_rcparams.py @@ -324,6 +324,7 @@ def test_validators(): ('def badjuju(a): return a; badjuju(cycler("color", "rgb"))', ValueError), # Should not be able to define anything # even if it does return a cycler + ('cycler("waka", [1, 2, 3])', ValueError), # not a property ) }, ) From 8ce47972991d197ffb6a405c20e872d02099fc57 Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Mon, 17 Aug 2015 12:43:34 -0400 Subject: [PATCH 21/31] Support and test for marker cycling --- lib/matplotlib/rcsetup.py | 3 +++ .../test_cycles/marker_cycle.png | Bin 0 -> 45093 bytes lib/matplotlib/tests/test_cycles.py | 19 ++++++++++++++++++ 3 files changed, 22 insertions(+) create mode 100644 lib/matplotlib/tests/baseline_images/test_cycles/marker_cycle.png diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py index d907fbed5764..4b6e55a20096 100644 --- a/lib/matplotlib/rcsetup.py +++ b/lib/matplotlib/rcsetup.py @@ -593,6 +593,9 @@ def __call__(self, s): 'markeredgewidth': validate_floatlist, 'markeredgecolor': validate_colorlist, 'alpha': validate_floatlist, + # No, this isn't a "property", but how long do you think it + # will be before someone requests support for cycling markers? + 'marker': validate_stringlist, } _prop_aliases = { 'c': 'color', diff --git a/lib/matplotlib/tests/baseline_images/test_cycles/marker_cycle.png b/lib/matplotlib/tests/baseline_images/test_cycles/marker_cycle.png new file mode 100644 index 0000000000000000000000000000000000000000..f807aaed3e840edf32a626a054169ac668f70b0e GIT binary patch literal 45093 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�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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/test_cycles.py b/lib/matplotlib/tests/test_cycles.py index e0085085babb..271dac72aae3 100644 --- a/lib/matplotlib/tests/test_cycles.py +++ b/lib/matplotlib/tests/test_cycles.py @@ -23,6 +23,25 @@ def test_colorcycle_basic(): ax.legend(loc='upper left') +@image_comparison(baseline_images=['marker_cycle'], remove_text=True, + extensions=['png']) +def test_marker_cycle(): + fig = plt.figure() + ax = fig.add_subplot(111) + ax.set_prop_cycle(cycler('color', ['r', 'g', 'y']) + + cycler('marker', ['.', '*', 'x'])) + xs = np.arange(10) + ys = 0.25 * xs + 2 + ax.plot(xs, ys, label='red dot', lw=4, ms=16) + ys = 0.45 * xs + 3 + ax.plot(xs, ys, label='green star', lw=4, ms=16) + ys = 0.65 * xs + 4 + ax.plot(xs, ys, label='yellow x', lw=4, ms=16) + ys = 0.85 * xs + 5 + ax.plot(xs, ys, label='red2 dot', lw=4, ms=16) + ax.legend(loc='upper left') + + @image_comparison(baseline_images=['lineprop_cycle_basic'], remove_text=True, extensions=['png']) def test_linestylecycle_basic(): From f3e8394851f991413ee7a9993ed96d00e9b67de0 Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Mon, 17 Aug 2015 14:31:30 -0400 Subject: [PATCH 22/31] * Fix cycler advance bug (and added test) * Normalize aliases * defaults cycling will ignore properties that are not relevant to the particular artist. --- lib/matplotlib/axes/_base.py | 55 +++++++++++++----- lib/matplotlib/rcsetup.py | 6 +- .../test_cycles/fill_cycle_ignore.png | Bin 0 -> 57000 bytes lib/matplotlib/tests/test_cycles.py | 24 ++++++++ 4 files changed, 66 insertions(+), 19 deletions(-) create mode 100644 lib/matplotlib/tests/baseline_images/test_cycles/fill_cycle_ignore.png diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py index 0e3b7ef22b07..f1e03eca6456 100644 --- a/lib/matplotlib/axes/_base.py +++ b/lib/matplotlib/axes/_base.py @@ -225,21 +225,32 @@ def _xy_from_xy(self, x, y): y = y[:, np.newaxis] return x, y - def _getdefaults(self, *kwargs): + def _getdefaults(self, ignore, *kwargs): """ Only advance the cycler if the cycler has information that - is not specified in any of the supplied tuple of dicts + is not specified in any of the supplied tuple of dicts. + Ignore any keys specified in the `ignore` set. - Returns a dictionary of defaults if there are any + Returns a copy of defaults dictionary if there are any keys that are not found in any of the supplied dictionaries. If the supplied dictionaries have non-None values for everything the property cycler has, then just return - an empty dictionary. - - """ - if any([all([kw.get(k, None) is None for kw in kwargs]) - for k in self._prop_keys]): - default_dict = six.next(self.prop_cycler) + an empty dictionary. Ignored keys are excluded from the + returned dictionary. + + """ + prop_keys = self._prop_keys + if ignore is None: + ignore = set([]) + prop_keys = prop_keys - ignore + + if any(all(kw.get(k, None) is None for kw in kwargs) + for k in prop_keys): + # Need to copy this dictionary or else the next time around + # in the cycle, the dictionary could be missing entries. + default_dict = six.next(self.prop_cycler).copy() + for p in ignore: + default_dict.pop(p, None) else: default_dict = {} return default_dict @@ -252,14 +263,14 @@ def _setdefaults(self, defaults, *kwargs): """ for k in defaults: - if all([kw.get(k, None) is None for kw in kwargs]): + if all(kw.get(k, None) is None for kw in kwargs): for kw in kwargs: kw[k] = defaults[k] def _makeline(self, x, y, kw, kwargs): kw = kw.copy() # Don't modify the original kw. kwargs = kwargs.copy() - default_dict = self._getdefaults(kw, kwargs) + default_dict = self._getdefaults(None, kw, kwargs) self._setdefaults(default_dict, kw, kwargs) seg = mlines.Line2D(x, y, **kw) self.set_lineprops(seg, **kwargs) @@ -269,11 +280,26 @@ def _makefill(self, x, y, kw, kwargs): kw = kw.copy() # Don't modify the original kw. kwargs = kwargs.copy() + # Ignore 'marker'-related properties as they aren't Polygon + # properties, but they are Line2D properties, and so they are + # likely to appear in the default cycler construction. + # This is done here to the defaults dictionary as opposed to the + # other two dictionaries because we do want to capture when a + # *user* explicitly specifies a marker which should be an error. + # We also want to prevent advancing the cycler if there are no + # defaults needed after ignoring the given properties. + ignores = set(['marker', 'markersize', 'markeredgecolor', + 'markerfacecolor', 'markeredgewidth']) + # Also ignore anything provided by *kwargs*. + for k, v in six.iteritems(kwargs): + if v is not None: + ignores.add(k) + # Only using the first dictionary to use as basis # for getting defaults for back-compat reasons. # Doing it with both seems to mess things up in # various places (probably due to logic bugs elsewhere). - default_dict = self._getdefaults(kw) + default_dict = self._getdefaults(ignores, kw) self._setdefaults(default_dict, kw) # Looks like we don't want "color" to be interpreted to @@ -285,12 +311,9 @@ def _makefill(self, x, y, kw, kwargs): facecolor = kw.get('color', None) # Throw out 'color' as it is now handled as a facecolor - # Need to copy this dictionary or else the next time around - # in the cycle, the dictionary will be missing this entry - # completely! - default_dict = default_dict.copy() default_dict.pop('color', None) + # To get other properties set from the cycler # modify the kwargs dictionary. self._setdefaults(default_dict, kwargs) diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py index 4b6e55a20096..11ddb66b0d77 100644 --- a/lib/matplotlib/rcsetup.py +++ b/lib/matplotlib/rcsetup.py @@ -593,8 +593,6 @@ def __call__(self, s): 'markeredgewidth': validate_floatlist, 'markeredgecolor': validate_colorlist, 'alpha': validate_floatlist, - # No, this isn't a "property", but how long do you think it - # will be before someone requests support for cycling markers? 'marker': validate_stringlist, } _prop_aliases = { @@ -621,7 +619,9 @@ def _cycler_wrap(prop, vals): if validator is None: raise TypeError("Unknown artist property: %s" % prop) vals = validator(vals) - return cycler(prop, vals) + # We will normalize the property names as well to reduce + # the amount of alias handling code elsewhere. + return cycler(norm_prop, vals) def validate_cycler(s): 'return a cycler object from a string repr or the object itself' diff --git a/lib/matplotlib/tests/baseline_images/test_cycles/fill_cycle_ignore.png b/lib/matplotlib/tests/baseline_images/test_cycles/fill_cycle_ignore.png new file mode 100644 index 0000000000000000000000000000000000000000..65aa664ebda7bf063ceb379f680eeafd89757c0c GIT binary patch literal 57000 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 Date: Mon, 17 Aug 2015 14:43:18 -0400 Subject: [PATCH 23/31] Added the deprecation notice to api_changes/ --- .../2015-08-17-remove_color_cycle.rst | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 doc/api/api_changes/2015-08-17-remove_color_cycle.rst diff --git a/doc/api/api_changes/2015-08-17-remove_color_cycle.rst b/doc/api/api_changes/2015-08-17-remove_color_cycle.rst new file mode 100644 index 000000000000..1d92d74ab1cf --- /dev/null +++ b/doc/api/api_changes/2015-08-17-remove_color_cycle.rst @@ -0,0 +1,17 @@ +`color_cycle` deprecated +```````````````````````` + +In light of the new property cycling feature, +the Axes method *set_color_cycle* is now deprecated. +Calling this method will replace the current property cycle with +one that cycles just the given colors. + +Similarly, the rc parameter *axes.color_cycle* is also deprecated in +lieu of the new *axes.prop_cycle* parameter. Having both parameters in +the same rc file is not recommended as the result cannot be +predicted. For compatibility, setting *axes.color_cycle* will +replace the cycler in *axes.prop_cycle* with a color cycle. +Accessing *axes.color_cycle* will return just the color portion +of the property cycle, if it exists. + +Timeline for removal has not been set. From c72a74f3d3b8298582d8818eae666f7a687d516d Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Mon, 17 Aug 2015 16:32:21 -0400 Subject: [PATCH 24/31] PEP8 fixes --- lib/matplotlib/axes/_base.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py index f1e03eca6456..2f5112175674 100644 --- a/lib/matplotlib/axes/_base.py +++ b/lib/matplotlib/axes/_base.py @@ -282,7 +282,7 @@ def _makefill(self, x, y, kw, kwargs): # Ignore 'marker'-related properties as they aren't Polygon # properties, but they are Line2D properties, and so they are - # likely to appear in the default cycler construction. + # likely to appear in the default cycler construction. # This is done here to the defaults dictionary as opposed to the # other two dictionaries because we do want to capture when a # *user* explicitly specifies a marker which should be an error. @@ -313,7 +313,6 @@ def _makefill(self, x, y, kw, kwargs): # Throw out 'color' as it is now handled as a facecolor default_dict.pop('color', None) - # To get other properties set from the cycler # modify the kwargs dictionary. self._setdefaults(default_dict, kwargs) From 53f1ff268779bc5e3b71b10fb95cc7c2f9ca2dde Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Mon, 17 Aug 2015 16:35:21 -0400 Subject: [PATCH 25/31] Fix test now that we normalize property names --- lib/matplotlib/tests/test_rcparams.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/matplotlib/tests/test_rcparams.py b/lib/matplotlib/tests/test_rcparams.py index 6f0655200812..525cf055e08f 100644 --- a/lib/matplotlib/tests/test_rcparams.py +++ b/lib/matplotlib/tests/test_rcparams.py @@ -305,7 +305,8 @@ def test_validators(): cycler('linestyle', ['-', '--'])), ("""(cycler("color", ["r", "g", "b"]) + cycler("mew", [2, 3, 5]))""", - cycler("color", 'rgb') + cycler("mew", [2, 3, 5])), + (cycler("color", 'rgb') + + cycler("markeredgewidth", [2, 3, 5]))), ), # This is *so* incredibly important: validate_cycler() eval's # an arbitrary string! I think I have it locked down enough, From 9a31950b393b0f5f00caeb4cb34c5bf602fee4c0 Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Tue, 18 Aug 2015 21:58:29 -0400 Subject: [PATCH 26/31] some simplification and doc-fixes --- lib/matplotlib/axes/_base.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py index 2f5112175674..5b2c98e7d4ac 100644 --- a/lib/matplotlib/axes/_base.py +++ b/lib/matplotlib/axes/_base.py @@ -1057,9 +1057,9 @@ def clear(self): def set_prop_cycle(self, prop_cycle): """ - Set the prop cycle for any future plot commands on this Axes. + Set the property cycle for any future plot commands on this Axes. - *prop_cycle* is a :class:Cycler object. + *prop_cycle* is a :class:`Cycler` object. Can also be `None` to reset to the cycle defined by the current style. """ @@ -1076,9 +1076,7 @@ def set_color_cycle(self, clist): """ cbook.warn_deprecated( '1.5', name='set_color_cycle', alternative='set_prop_cycle') - prop_cycler = cycler('color', clist) - self._get_lines.set_prop_cycle(prop_cycler) - self._get_patches_for_fill.set_prop_cycle(prop_cycler) + self.set_prop_cycle(cycler('color', clist)) def ishold(self): """return the HOLD status of the axes""" From 55bf0530c46b39511b08411a4df235caa21ffad9 Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Thu, 20 Aug 2015 11:31:47 -0400 Subject: [PATCH 27/31] Fix a typo --- doc/users/whats_new/rcparams.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/users/whats_new/rcparams.rst b/doc/users/whats_new/rcparams.rst index 2619158b1d12..68b37dc29ef7 100644 --- a/doc/users/whats_new/rcparams.rst +++ b/doc/users/whats_new/rcparams.rst @@ -9,7 +9,7 @@ defining proprty cycles. Adding cyclers together will be like you are axes.prop_cycle: cycler('color', 'rgb') + cycler('lw', [1, 2, 3]) You can even multiply cyclers, which is like using `itertools.product()` -on two or more property cycles. Remember to use parenstheses if writing +on two or more property cycles. Remember to use parentheses if writing a multi-line `prop_cycle` parameter. ..plot:: mpl_examples/color/color_cycle_demo.py From 44f74e3054db005c7f64279c3ff4732626f2d2ac Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Sat, 22 Aug 2015 16:58:43 -0400 Subject: [PATCH 28/31] Finalized the validating cycler design. --- lib/matplotlib/__init__.py | 5 +- lib/matplotlib/rcsetup.py | 97 ++++++++++++++++++++++----- lib/matplotlib/tests/test_rcparams.py | 7 ++ 3 files changed, 90 insertions(+), 19 deletions(-) diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py index df93bf8cdace..fee4bd4d3f7d 100644 --- a/lib/matplotlib/__init__.py +++ b/lib/matplotlib/__init__.py @@ -116,14 +116,13 @@ import contextlib import distutils.sysconfig -from cycler import cycler - # cbook must import matplotlib only within function # definitions, so it is safe to import from it here. from matplotlib.cbook import is_string_like, mplDeprecation from matplotlib.compat import subprocess from matplotlib.rcsetup import (defaultParams, - validate_backend) + validate_backend, + cycler) import numpy from matplotlib.externals.six.moves.urllib.request import urlopen diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py index 11ddb66b0d77..6c8e6657f0b9 100644 --- a/lib/matplotlib/rcsetup.py +++ b/lib/matplotlib/rcsetup.py @@ -18,12 +18,14 @@ from matplotlib.externals import six +import operator import os import warnings from matplotlib.fontconfig_pattern import parse_fontconfig_pattern from matplotlib.colors import is_color_like -from cycler import cycler, Cycler +# Don't let the original cycler collide with our validating cycler +from cycler import Cycler, cycler as ccycler #interactive_bk = ['gtk', 'gtkagg', 'gtkcairo', 'qt4agg', # 'tkagg', 'wx', 'wxagg', 'cocoaagg', 'webagg'] @@ -579,6 +581,7 @@ def __call__(self, s): validate_grid_axis = ValidateInStrings('axes.grid.axis', ['x', 'y', 'both']) + _prop_validators = { 'color': validate_colorlist, 'linewidth': validate_floatlist, @@ -607,24 +610,86 @@ def __call__(self, s): 'ms': 'markersize', } -def _cycler_wrap(prop, vals): +def cycler(*args, **kwargs): """ - This is an internal wrapper around :func:`cycler` - that will be used in :func:`validate_cycler` to normalize - and validate property inputs. + Creates a :class:`cycler.Cycler` object much like :func:`cycler.cycler`, + but includes input validation. + + cyl(arg) + cyl(label, itr) + cyl(label1=itr1[, label2=itr2[, ...]]) + + Form 1 simply copies a given `Cycler` object. + + Form 2 composes a `Cycler` as an inner product of the + pairs of keyword arguments. In other words, all of the + iterables are cycled simultaneously, as if through zip(). + + Form 3 creates a `Cycler` from a label and an iterable. + This is useful for when the label cannot be a keyword argument + (e.g., an integer or a name that has a space in it). + + Parameters + ---------- + arg : Cycler + Copy constructor for Cycler. + + label : name + The property key. In the 2-arg form of the function, + the label can be any hashable object. In the keyword argument + form of the function, it must be a valid python identifier. + + itr : iterable + Finite length iterable of the property values. + + Returns + ------- + cycler : Cycler + New :class:`cycler.Cycler` for the given properties """ - norm_prop = _prop_aliases.get(prop, prop) - validator = _prop_validators.get(norm_prop, None) - if validator is None: - raise TypeError("Unknown artist property: %s" % prop) - vals = validator(vals) - # We will normalize the property names as well to reduce - # the amount of alias handling code elsewhere. - return cycler(norm_prop, vals) + if args and kwargs: + raise TypeError("cyl() can only accept positional OR keyword " + "arguments -- not both.") + elif not args and not kwargs: + raise TypeError("cyl() must have positional OR keyword arguments") + + if len(args) == 1: + if not isinstance(args[0], Cycler): + raise TypeError("If only one positional argument given, it must " + " be a Cycler instance.") + + c = args[0] + unknowns = c.keys - (set(_prop_validators.keys()) | + set(_prop_aliases.keys())) + if unknowns: + # This is about as much validation I can do + raise TypeError("Unknown artist properties: %s" % unknowns) + else: + return Cycler(c) + elif len(args) == 2: + pairs = [(args[0], args[1])] + elif len(args) > 2: + raise TypeError("No more than 2 positional arguments allowed") + else: + pairs = six.iteritems(kwargs) + + validated = [] + for prop, vals in pairs: + norm_prop = _prop_aliases.get(prop, prop) + validator = _prop_validators.get(norm_prop, None) + if validator is None: + raise TypeError("Unknown artist property: %s" % prop) + vals = validator(vals) + # We will normalize the property names as well to reduce + # the amount of alias handling code elsewhere. + validated.append((norm_prop, vals)) + + return reduce(operator.add, (ccycler(k, v) for k, v in validated)) + def validate_cycler(s): - 'return a cycler object from a string repr or the object itself' + 'return a Cycler object from a string repr or the object itself' if isinstance(s, six.string_types): try: # TODO: We might want to rethink this... @@ -645,7 +710,7 @@ def validate_cycler(s): # someone managed to hack the cycler module. But, if # someone does that, this wouldn't make anything # worse because we have to import the module anyway. - s = eval(s, {'cycler': _cycler_wrap}) + s = eval(s, {'cycler': cycler}) except BaseException as e: raise ValueError("'%s' is not a valid cycler construction: %s" % (s, e)) @@ -851,7 +916,7 @@ def validate_cycler(s): # This entry can be either a cycler object or a # string repr of a cycler-object, which gets eval()'ed # to create the object. - 'axes.prop_cycle': [cycler('color', 'bgrcmyk'), + 'axes.prop_cycle': [ccycler('color', 'bgrcmyk'), validate_cycler], 'axes.xmargin': [0, ValidateInterval(0, 1, closedmin=True, diff --git a/lib/matplotlib/tests/test_rcparams.py b/lib/matplotlib/tests/test_rcparams.py index 525cf055e08f..998f846ad390 100644 --- a/lib/matplotlib/tests/test_rcparams.py +++ b/lib/matplotlib/tests/test_rcparams.py @@ -307,6 +307,11 @@ def test_validators(): cycler("mew", [2, 3, 5]))""", (cycler("color", 'rgb') + cycler("markeredgewidth", [2, 3, 5]))), + ("cycler(c='rgb', lw=[1, 2, 3])", + cycler('color', 'rgb') + cycler('linewidth', [1, 2, 3])), + ("cycler('c', 'rgb') * cycler('linestyle', ['-', '--'])", + (cycler('color', 'rgb') * + cycler('linestyle', ['-', '--']))), ), # This is *so* incredibly important: validate_cycler() eval's # an arbitrary string! I think I have it locked down enough, @@ -326,6 +331,8 @@ def test_validators(): ValueError), # Should not be able to define anything # even if it does return a cycler ('cycler("waka", [1, 2, 3])', ValueError), # not a property + ('cycler(c=[1, 2, 3])', ValueError), # invalid values + ("cycler(lw=['a', 'b', 'c'])", ValueError), # invalid values ) }, ) From 5a3ce17327fdcdca36f82114570ed2353a9e78fe Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Sun, 23 Aug 2015 13:23:03 -0400 Subject: [PATCH 29/31] reduce() isn't built-in in py3k. go figure... --- lib/matplotlib/rcsetup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py index 6c8e6657f0b9..060579c216e2 100644 --- a/lib/matplotlib/rcsetup.py +++ b/lib/matplotlib/rcsetup.py @@ -18,6 +18,7 @@ from matplotlib.externals import six +from functools import reduce import operator import os import warnings From 98486619b15cc752733eb3d175220e4de375d92d Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Mon, 24 Aug 2015 09:57:22 -0400 Subject: [PATCH 30/31] Improve set_prop_cycle(). Docstring fixes. --- lib/matplotlib/axes/_base.py | 59 ++++++++++++++++++++++++++++++------ lib/matplotlib/rcsetup.py | 21 ++++++------- 2 files changed, 59 insertions(+), 21 deletions(-) diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py index 5b2c98e7d4ac..48562309ac0d 100644 --- a/lib/matplotlib/axes/_base.py +++ b/lib/matplotlib/axes/_base.py @@ -9,7 +9,6 @@ import math from operator import itemgetter -from cycler import cycler, Cycler import numpy as np from numpy import ma @@ -33,6 +32,7 @@ from matplotlib.offsetbox import OffsetBox from matplotlib.artist import allow_rasterization from matplotlib.cbook import iterable +from matplotlib.rcsetup import cycler rcParams = matplotlib.rcParams @@ -149,18 +149,20 @@ def __setstate__(self, state): self.__dict__ = state.copy() self.set_prop_cycle() - def set_prop_cycle(self, prop_cycler=None): - if prop_cycler is None: + def set_prop_cycle(self, *args, **kwargs): + if not (args or kwargs) or (len(args) == 1 and args[0] is None): prop_cycler = rcParams['axes.prop_cycle'] if prop_cycler is None and 'axes.color_cycle' in rcParams: clist = rcParams['axes.color_cycle'] prop_cycler = cycler('color', clist) + else: + prop_cycler = cycler(*args, **kwargs) + self.prop_cycler = itertools.cycle(prop_cycler) # This should make a copy self._prop_keys = prop_cycler.keys def __call__(self, *args, **kwargs): - if self.axes.xaxis is not None and self.axes.yaxis is not None: xunits = kwargs.pop('xunits', self.axes.xaxis.units) @@ -1055,14 +1057,51 @@ def clear(self): """clear the axes""" self.cla() - def set_prop_cycle(self, prop_cycle): + def set_prop_cycle(self, *args, **kwargs): """ Set the property cycle for any future plot commands on this Axes. - *prop_cycle* is a :class:`Cycler` object. - Can also be `None` to reset to the cycle defined by the - current style. - """ + set_prop_cycle(arg) + set_prop_cycle(label, itr) + set_prop_cycle(label1=itr1[, label2=itr2[, ...]]) + + Form 1 simply sets given `Cycler` object. + + Form 2 creates and sets a `Cycler` from a label and an iterable. + + Form 3 composes and sets a `Cycler` as an inner product of the + pairs of keyword arguments. In other words, all of the + iterables are cycled simultaneously, as if through zip(). + + Parameters + ---------- + arg : Cycler + Set the given Cycler. + Can also be `None` to reset to the cycle defined by the + current style. + + label : name + The property key. Must be a valid `Artist` property. + For example, 'color' or 'linestyle'. Aliases are allowed, + such as 'c' for 'color' and 'lw' for 'linewidth'. + + itr : iterable + Finite-length iterable of the property values. These values + are validated and will raise a ValueError if invalid. + + See Also + -------- + :func:`cycler` Convenience function for creating your + own cyclers. + + """ + if args and kwargs: + raise TypeError("Cannot supply both positional and keyword " + "arguments to this method.") + if len(args) == 1 and args[0] is None: + prop_cycle = None + else: + prop_cycle = cycler(*args, **kwargs) self._get_lines.set_prop_cycle(prop_cycle) self._get_patches_for_fill.set_prop_cycle(prop_cycle) @@ -1076,7 +1115,7 @@ def set_color_cycle(self, clist): """ cbook.warn_deprecated( '1.5', name='set_color_cycle', alternative='set_prop_cycle') - self.set_prop_cycle(cycler('color', clist)) + self.set_prop_cycle('color', clist) def ishold(self): """return the HOLD status of the axes""" diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py index 060579c216e2..4828e2e56501 100644 --- a/lib/matplotlib/rcsetup.py +++ b/lib/matplotlib/rcsetup.py @@ -622,26 +622,25 @@ def cycler(*args, **kwargs): Form 1 simply copies a given `Cycler` object. - Form 2 composes a `Cycler` as an inner product of the + Form 2 creates a `Cycler` from a label and an iterable. + + Form 3 composes a `Cycler` as an inner product of the pairs of keyword arguments. In other words, all of the iterables are cycled simultaneously, as if through zip(). - Form 3 creates a `Cycler` from a label and an iterable. - This is useful for when the label cannot be a keyword argument - (e.g., an integer or a name that has a space in it). - Parameters ---------- arg : Cycler Copy constructor for Cycler. label : name - The property key. In the 2-arg form of the function, - the label can be any hashable object. In the keyword argument - form of the function, it must be a valid python identifier. + The property key. Must be a valid `Artist` property. + For example, 'color' or 'linestyle'. Aliases are allowed, + such as 'c' for 'color' and 'lw' for 'linewidth'. itr : iterable - Finite length iterable of the property values. + Finite-length iterable of the property values. These values + are validated and will raise a ValueError if invalid. Returns ------- @@ -650,10 +649,10 @@ def cycler(*args, **kwargs): """ if args and kwargs: - raise TypeError("cyl() can only accept positional OR keyword " + raise TypeError("cycler() can only accept positional OR keyword " "arguments -- not both.") elif not args and not kwargs: - raise TypeError("cyl() must have positional OR keyword arguments") + raise TypeError("cycler() must have positional OR keyword arguments") if len(args) == 1: if not isinstance(args[0], Cycler): From 63d632113c4a9a59e57e4679d4ade54a1fd9ed81 Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Mon, 24 Aug 2015 11:25:17 -0400 Subject: [PATCH 31/31] Realized that I didn't have a hatch validator --- lib/matplotlib/rcsetup.py | 33 +++++++++++++++++++++++---- lib/matplotlib/tests/test_rcparams.py | 10 +++++++- 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py index 4828e2e56501..2699311323ec 100644 --- a/lib/matplotlib/rcsetup.py +++ b/lib/matplotlib/rcsetup.py @@ -65,16 +65,19 @@ def __call__(self, s): % (self.key, s, list(six.itervalues(self.valid)))) -def _listify_validator(scalar_validator): +def _listify_validator(scalar_validator, allow_stringlist=False): def f(s): if isinstance(s, six.string_types): try: return [scalar_validator(v.strip()) for v in s.split(',') if v.strip()] except Exception: - # Sometimes, a list of colors might be a single string - # of single-letter colornames. So give that a shot. - return [scalar_validator(v.strip()) for v in s if v.strip()] + if allow_stringlist: + # Sometimes, a list of colors might be a single string + # of single-letter colornames. So give that a shot. + return [scalar_validator(v.strip()) for v in s if v.strip()] + else: + raise elif type(s) in (list, tuple): return [scalar_validator(v) for v in s if v] else: @@ -331,7 +334,7 @@ def deprecate_axes_colorcycle(value): return validate_colorlist(value) -validate_colorlist = _listify_validator(validate_color) +validate_colorlist = _listify_validator(validate_color, allow_stringlist=True) validate_colorlist.__doc__ = 'return a list of colorspecs' validate_stringlist = _listify_validator(six.text_type) @@ -583,6 +586,24 @@ def __call__(self, s): validate_grid_axis = ValidateInStrings('axes.grid.axis', ['x', 'y', 'both']) +def validate_hatch(s): + """ + Validate a hatch pattern. + A hatch pattern string can have any sequence of the following + characters: ``\\ / | - + * . x o O``. + + """ + if not isinstance(s, six.text_type): + raise ValueError("Hatch pattern must be a string") + unique_chars = set(s) + unknown = (unique_chars - + set(['\\', '/', '|', '-', '+', '*', '.', 'x', 'o', 'O'])) + if unknown: + raise ValueError("Unknown hatch symbol(s): %s" % list(unknown)) + return s +validate_hatchlist = _listify_validator(validate_hatch) + + _prop_validators = { 'color': validate_colorlist, 'linewidth': validate_floatlist, @@ -598,6 +619,7 @@ def __call__(self, s): 'markeredgecolor': validate_colorlist, 'alpha': validate_floatlist, 'marker': validate_stringlist, + 'hatch': validate_hatchlist, } _prop_aliases = { 'c': 'color', @@ -611,6 +633,7 @@ def __call__(self, s): 'ms': 'markersize', } + def cycler(*args, **kwargs): """ Creates a :class:`cycler.Cycler` object much like :func:`cycler.cycler`, diff --git a/lib/matplotlib/tests/test_rcparams.py b/lib/matplotlib/tests/test_rcparams.py index 998f846ad390..e88e13b79914 100644 --- a/lib/matplotlib/tests/test_rcparams.py +++ b/lib/matplotlib/tests/test_rcparams.py @@ -25,7 +25,8 @@ validate_bool, validate_nseq_int, validate_nseq_float, - validate_cycler) + validate_cycler, + validate_hatch) mpl.rc('text', usetex=False) @@ -335,6 +336,13 @@ def test_validators(): ("cycler(lw=['a', 'b', 'c'])", ValueError), # invalid values ) }, + {'validator': validate_hatch, + 'success': (('--|', '--|'), ('\\oO', '\\oO'), + ('/+*/.x', '/+*/.x'), ('', '')), + 'fail': (('--_', ValueError), + (8, ValueError), + ('X', ValueError)), + }, ) for validator_dict in validation_tests: