From dad012168db01b24acea81dc416efd3f83b982ee Mon Sep 17 00:00:00 2001 From: Andrew Seier Date: Wed, 28 Oct 2015 13:43:38 +0700 Subject: [PATCH 1/2] Add a simple ordering at get_ordered. --- plotly/graph_objs/graph_objs.py | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/plotly/graph_objs/graph_objs.py b/plotly/graph_objs/graph_objs.py index f2f43449bc2..8e3b3042e3b 100644 --- a/plotly/graph_objs/graph_objs.py +++ b/plotly/graph_objs/graph_objs.py @@ -25,10 +25,11 @@ from __future__ import absolute_import import copy - import re -import six import warnings +from collections import OrderedDict + +import six from plotly import exceptions, graph_reference from plotly.graph_objs import graph_objs_tools @@ -113,17 +114,6 @@ def validate(self): """Everything is *always* validated now. keep for backwards compat.""" pass - def get_ordered(self, **kwargs): - """ - We have no way to order things anymore. Keep for backwards compat. - - See https://github.com/plotly/python-api/issues/290. - - :return: (PlotlyBase) - - """ - return self - class PlotlyList(list, PlotlyBase): """ @@ -311,6 +301,10 @@ def get_data(self, flatten=False): else: return l + def get_ordered(self, **kwargs): + """All children are already validated. Just use get_ordered on them.""" + return [child.get_ordered for child in self] + def to_string(self, level=0, indent=4, eol='\n', pretty=True, max_chars=80): """Get formatted string by calling `to_string` on children items.""" @@ -668,6 +662,17 @@ def get_data(self, flatten=False): del d[key] return d + def get_ordered(self, **kwargs): + """Return a predictable, OrderedDict version of self.""" + keys = sorted(self.keys(), key=graph_objs_tools.sort_keys) + ordered = OrderedDict() + for key in keys: + if isinstance(self[key], PlotlyBase): + ordered[key] = self[key].get_ordered() + else: + ordered[key] = self[key] + return ordered + def to_string(self, level=0, indent=4, eol='\n', pretty=True, max_chars=80): """ From 0d4ce5a2707af489e5164310d5fbdab0a8433f41 Mon Sep 17 00:00:00 2001 From: Andrew Seier Date: Wed, 28 Oct 2015 13:44:16 +0700 Subject: [PATCH 2/2] =?UTF-8?q?version=20bump=20=E2=80=94>=201.8.10=20(add?= =?UTF-8?q?=20back=20get=5Fordered).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plotly/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plotly/version.py b/plotly/version.py index 20947b68e83..8d94f638ba4 100644 --- a/plotly/version.py +++ b/plotly/version.py @@ -1 +1 @@ -__version__ = '1.8.9' +__version__ = '1.8.10'