From 59bad2203e4e75c5b6066464ce47bbcb49dabee6 Mon Sep 17 00:00:00 2001 From: Oliver Christen Date: Wed, 28 Sep 2016 13:54:27 +0200 Subject: [PATCH 1/2] we want the product of the dimensions and zip was only outputing the first combination instead of all of them --- tilecloud_chain/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tilecloud_chain/__init__.py b/tilecloud_chain/__init__.py index 60e07501..f3458115 100644 --- a/tilecloud_chain/__init__.py +++ b/tilecloud_chain/__init__.py @@ -17,6 +17,7 @@ from fractions import Fraction from datetime import datetime from tilecloud import consume +from itertools import product try: from PIL import Image @@ -429,7 +430,7 @@ def get_all_dimensions(self, layer=None): if dim['name'] not in options_dimensions ] all_dimensions += [[p] for p in options_dimensions.items()] - all_dimensions = zip(*all_dimensions) + all_dimensions = product(*all_dimensions) return [dict(d) for d in all_dimensions] def get_store(self, cache, layer, dimensions=None, read_only=False): From 67aa2b0a1ee1293843aa16a65ce71af74b081fb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Brunner?= Date: Wed, 28 Sep 2016 14:32:59 +0200 Subject: [PATCH 2/2] we want the product of the dimensions and zip was only outputing the first combination instead of all of them, cherry pick of 9ef33e4fb82848ef710f649e712db476d4bded6f --- tilecloud_chain/__init__.py | 2 +- tilecloud_chain/copy_.py | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/tilecloud_chain/__init__.py b/tilecloud_chain/__init__.py index f3458115..8ba0c890 100644 --- a/tilecloud_chain/__init__.py +++ b/tilecloud_chain/__init__.py @@ -433,7 +433,7 @@ def get_all_dimensions(self, layer=None): all_dimensions = product(*all_dimensions) return [dict(d) for d in all_dimensions] - def get_store(self, cache, layer, dimensions=None, read_only=False): + def get_store(self, cache, layer, dimensions={}, read_only=False): # build layout grid = layer['grid_ref'] if 'grid_ref' in layer else None layout = WMTSTileLayout( diff --git a/tilecloud_chain/copy_.py b/tilecloud_chain/copy_.py index 962787b6..cf919784 100644 --- a/tilecloud_chain/copy_.py +++ b/tilecloud_chain/copy_.py @@ -18,11 +18,8 @@ def copy(self, options, gene, layer, source, dest, task_name): if gene.layers[layer]['type'] == 'wms': all_dimensions = gene.get_all_dimensions(gene.layers[layer]) - if len(all_dimensions) == 0: - self._copy(options, gene, layer, source, dest, task_name) - else: # pragma: no cover - for dimensions in all_dimensions: - self._copy(options, gene, layer, source, dest, task_name, dimensions) + for dimensions in all_dimensions: + self._copy(options, gene, layer, source, dest, task_name, dimensions) else: # pragma: no cover self._copy(options, gene, layer, source, dest, task_name)