polytope-python 1.0.8__tar.gz → 1.0.9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. {polytope-python-1.0.8/polytope_python.egg-info → polytope-python-1.0.9}/PKG-INFO +1 -1
  2. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/transformations/datacube_mappers/datacube_mappers.py +6 -1
  3. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/healpix.py +6 -3
  4. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/healpix_nested.py +6 -3
  5. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/local_regular.py +10 -4
  6. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/octahedral.py +6 -3
  7. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/reduced_ll.py +6 -3
  8. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/regular.py +6 -3
  9. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/options.py +1 -0
  10. polytope-python-1.0.9/polytope_feature/version.py +1 -0
  11. {polytope-python-1.0.8 → polytope-python-1.0.9/polytope_python.egg-info}/PKG-INFO +1 -1
  12. polytope-python-1.0.8/polytope_feature/version.py +0 -1
  13. {polytope-python-1.0.8 → polytope-python-1.0.9}/LICENSE +0 -0
  14. {polytope-python-1.0.8 → polytope-python-1.0.9}/MANIFEST.in +0 -0
  15. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/__init__.py +0 -0
  16. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/__init__.py +0 -0
  17. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/backends/__init__.py +0 -0
  18. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/backends/datacube.py +0 -0
  19. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/backends/fdb.py +0 -0
  20. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/backends/mock.py +0 -0
  21. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/backends/xarray.py +0 -0
  22. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/datacube_axis.py +0 -0
  23. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/index_tree_pb2.py +0 -0
  24. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/tensor_index_tree.py +0 -0
  25. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/transformations/__init__.py +0 -0
  26. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/transformations/datacube_cyclic/__init__.py +0 -0
  27. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/transformations/datacube_cyclic/datacube_cyclic.py +0 -0
  28. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/transformations/datacube_mappers/__init__.py +0 -0
  29. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/__init__.py +0 -0
  30. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/transformations/datacube_merger/__init__.py +0 -0
  31. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/transformations/datacube_merger/datacube_merger.py +0 -0
  32. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/transformations/datacube_reverse/__init__.py +0 -0
  33. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/transformations/datacube_reverse/datacube_reverse.py +0 -0
  34. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/transformations/datacube_transformations.py +0 -0
  35. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/transformations/datacube_type_change/__init__.py +0 -0
  36. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/transformations/datacube_type_change/datacube_type_change.py +0 -0
  37. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/datacube/tree_encoding.py +0 -0
  38. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/engine/__init__.py +0 -0
  39. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/engine/engine.py +0 -0
  40. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/engine/hullslicer.py +0 -0
  41. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/polytope.py +0 -0
  42. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/shapes.py +0 -0
  43. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/utility/__init__.py +0 -0
  44. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/utility/combinatorics.py +0 -0
  45. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/utility/exceptions.py +0 -0
  46. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/utility/geometry.py +0 -0
  47. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/utility/list_tools.py +0 -0
  48. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_feature/utility/profiling.py +0 -0
  49. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_python.egg-info/SOURCES.txt +0 -0
  50. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_python.egg-info/dependency_links.txt +0 -0
  51. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_python.egg-info/not-zip-safe +0 -0
  52. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_python.egg-info/requires.txt +0 -0
  53. {polytope-python-1.0.8 → polytope-python-1.0.9}/polytope_python.egg-info/top_level.txt +0 -0
  54. {polytope-python-1.0.8 → polytope-python-1.0.9}/pyproject.toml +0 -0
  55. {polytope-python-1.0.8 → polytope-python-1.0.9}/requirements.txt +0 -0
  56. {polytope-python-1.0.8 → polytope-python-1.0.9}/setup.cfg +0 -0
  57. {polytope-python-1.0.8 → polytope-python-1.0.9}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: polytope-python
3
- Version: 1.0.8
3
+ Version: 1.0.9
4
4
  Summary: Polytope datacube feature extraction library
5
5
  Home-page: https://github.com/ecmwf/polytope
6
6
  Author: ECMWF
@@ -13,6 +13,9 @@ class DatacubeMapper(DatacubeAxisTransformation):
13
13
  self.grid_resolution = mapper_options.resolution
14
14
  self.grid_axes = mapper_options.axes
15
15
  self.local_area = []
16
+ self.md5_hash = None
17
+ if mapper_options.md5_hash is not None:
18
+ self.md5_hash = mapper_options.md5_hash
16
19
  if mapper_options.local is not None:
17
20
  self.local_area = mapper_options.local
18
21
  self._axis_reversed = None
@@ -32,7 +35,9 @@ class DatacubeMapper(DatacubeAxisTransformation):
32
35
  )
33
36
  constructor = getattr(module, map_type)
34
37
  transformation = deepcopy(
35
- constructor(self.old_axis, self.grid_axes, self.grid_resolution, self.local_area, self._axis_reversed)
38
+ constructor(
39
+ self.old_axis, self.grid_axes, self.grid_resolution, self.md5_hash, self.local_area, self._axis_reversed
40
+ )
36
41
  )
37
42
  return transformation
38
43
 
@@ -5,7 +5,7 @@ from ..datacube_mappers import DatacubeMapper
5
5
 
6
6
 
7
7
  class HealpixGridMapper(DatacubeMapper):
8
- def __init__(self, base_axis, mapped_axes, resolution, local_area=[], axis_reversed=None):
8
+ def __init__(self, base_axis, mapped_axes, resolution, md5_hash=None, local_area=[], axis_reversed=None):
9
9
  # TODO: if local area is not empty list, raise NotImplemented
10
10
  self._mapped_axes = mapped_axes
11
11
  self._base_axis = base_axis
@@ -13,7 +13,10 @@ class HealpixGridMapper(DatacubeMapper):
13
13
  self._axis_reversed = {mapped_axes[0]: True, mapped_axes[1]: False}
14
14
  self._first_axis_vals = self.first_axis_vals()
15
15
  self.compressed_grid_axes = [self._mapped_axes[1]]
16
- self.md5_hash = md5_hash.get(resolution, None)
16
+ if md5_hash is not None:
17
+ self.md5_hash = md5_hash
18
+ else:
19
+ self.md5_hash = _md5_hash.get(resolution, None)
17
20
  if self._axis_reversed[mapped_axes[1]]:
18
21
  raise NotImplementedError("Healpix grid with second axis in decreasing order is not supported")
19
22
  if not self._axis_reversed[mapped_axes[0]]:
@@ -141,4 +144,4 @@ class HealpixGridMapper(DatacubeMapper):
141
144
 
142
145
 
143
146
  # md5 grid hash in form {resolution : hash}
144
- md5_hash = {}
147
+ _md5_hash = {}
@@ -5,7 +5,7 @@ from ..datacube_mappers import DatacubeMapper
5
5
 
6
6
 
7
7
  class NestedHealpixGridMapper(DatacubeMapper):
8
- def __init__(self, base_axis, mapped_axes, resolution, local_area=[], axis_reversed=None):
8
+ def __init__(self, base_axis, mapped_axes, resolution, md5_hash=None, local_area=[], axis_reversed=None):
9
9
  # TODO: if local area is not empty list, raise NotImplemented
10
10
  self._mapped_axes = mapped_axes
11
11
  self._base_axis = base_axis
@@ -17,7 +17,10 @@ class NestedHealpixGridMapper(DatacubeMapper):
17
17
  self.k = int(math.log2(self.Nside))
18
18
  self.Npix = 12 * self.Nside * self.Nside
19
19
  self.Ncap = (self.Nside * (self.Nside - 1)) << 1
20
- self.md5_hash = md5_hash.get(resolution, None)
20
+ if md5_hash is not None:
21
+ self.md5_hash = md5_hash
22
+ else:
23
+ self.md5_hash = _md5_hash.get(resolution, None)
21
24
  if self._axis_reversed[mapped_axes[1]]:
22
25
  raise NotImplementedError("Healpix grid with second axis in decreasing order is not supported")
23
26
  if not self._axis_reversed[mapped_axes[0]]:
@@ -219,4 +222,4 @@ class NestedHealpixGridMapper(DatacubeMapper):
219
222
 
220
223
 
221
224
  # md5 grid hash in form {resolution : hash}
222
- md5_hash = {}
225
+ _md5_hash = {}
@@ -4,7 +4,7 @@ from ..datacube_mappers import DatacubeMapper
4
4
 
5
5
 
6
6
  class LocalRegularGridMapper(DatacubeMapper):
7
- def __init__(self, base_axis, mapped_axes, resolution, local_area=[], axis_reversed=None):
7
+ def __init__(self, base_axis, mapped_axes, resolution, md5_hash=None, local_area=[], axis_reversed=None):
8
8
  # TODO: if local area is not empty list, raise NotImplemented
9
9
  self._mapped_axes = mapped_axes
10
10
  self._base_axis = base_axis
@@ -15,11 +15,17 @@ class LocalRegularGridMapper(DatacubeMapper):
15
15
  if not isinstance(resolution, list):
16
16
  self.first_resolution = resolution
17
17
  self.second_resolution = resolution
18
- self.md5_hash = md5_hash.get(resolution, None)
18
+ if md5_hash is not None:
19
+ self.md5_hash = md5_hash
20
+ else:
21
+ self.md5_hash = _md5_hash.get(resolution, None)
19
22
  else:
20
23
  self.first_resolution = resolution[0]
21
24
  self.second_resolution = resolution[1]
22
- self.md5_hash = md5_hash.get(tuple(resolution), None)
25
+ if md5_hash is not None:
26
+ self.md5_hash = md5_hash
27
+ else:
28
+ self.md5_hash = _md5_hash.get(tuple(resolution), None)
23
29
  self._first_deg_increment = (local_area[1] - local_area[0]) / self.first_resolution
24
30
  self._second_deg_increment = (local_area[3] - local_area[2]) / self.second_resolution
25
31
  if axis_reversed is None:
@@ -86,4 +92,4 @@ class LocalRegularGridMapper(DatacubeMapper):
86
92
 
87
93
 
88
94
  # md5 grid hash in form {resolution : hash}
89
- md5_hash = {}
95
+ _md5_hash = {}
@@ -5,7 +5,7 @@ from ..datacube_mappers import DatacubeMapper
5
5
 
6
6
 
7
7
  class OctahedralGridMapper(DatacubeMapper):
8
- def __init__(self, base_axis, mapped_axes, resolution, local_area=[], axis_reversed=None):
8
+ def __init__(self, base_axis, mapped_axes, resolution, md5_hash=None, local_area=[], axis_reversed=None):
9
9
  # TODO: if local area is not empty list, raise NotImplemented
10
10
  self._mapped_axes = mapped_axes
11
11
  self._base_axis = base_axis
@@ -19,7 +19,10 @@ class OctahedralGridMapper(DatacubeMapper):
19
19
  if not self._axis_reversed[mapped_axes[0]]:
20
20
  raise NotImplementedError("Octahedral grid with first axis in increasing order is not supported")
21
21
  self.compressed_grid_axes = [self._mapped_axes[1]]
22
- self.md5_hash = md5_hash.get(resolution, None)
22
+ if md5_hash is not None:
23
+ self.md5_hash = md5_hash
24
+ else:
25
+ self.md5_hash = _md5_hash.get(resolution, None)
23
26
 
24
27
  def gauss_first_guess(self):
25
28
  i = 0
@@ -2758,6 +2761,6 @@ class OctahedralGridMapper(DatacubeMapper):
2758
2761
 
2759
2762
 
2760
2763
  # md5 grid hash in form {resolution : hash}
2761
- md5_hash = {
2764
+ _md5_hash = {
2762
2765
  1280: "158db321ae8e773681eeb40e0a3d350f",
2763
2766
  }
@@ -4,7 +4,7 @@ from ..datacube_mappers import DatacubeMapper
4
4
 
5
5
 
6
6
  class ReducedLatLonMapper(DatacubeMapper):
7
- def __init__(self, base_axis, mapped_axes, resolution, local_area=[], axis_reversed=None):
7
+ def __init__(self, base_axis, mapped_axes, resolution, md5_hash=None, local_area=[], axis_reversed=None):
8
8
  # TODO: if local area is not empty list, raise NotImplemented
9
9
  self._mapped_axes = mapped_axes
10
10
  self._base_axis = base_axis
@@ -12,7 +12,10 @@ class ReducedLatLonMapper(DatacubeMapper):
12
12
  self._axis_reversed = {mapped_axes[0]: False, mapped_axes[1]: False}
13
13
  self._first_axis_vals = self.first_axis_vals()
14
14
  self.compressed_grid_axes = [self._mapped_axes[1]]
15
- self.md5_hash = md5_hash.get(resolution, None)
15
+ if md5_hash is not None:
16
+ self.md5_hash = md5_hash
17
+ else:
18
+ self.md5_hash = _md5_hash.get(resolution, None)
16
19
  if self._axis_reversed[mapped_axes[1]]:
17
20
  raise NotImplementedError("Reduced lat-lon grid with second axis in decreasing order is not supported")
18
21
  if self._axis_reversed[mapped_axes[0]]:
@@ -1512,4 +1515,4 @@ class ReducedLatLonMapper(DatacubeMapper):
1512
1515
 
1513
1516
 
1514
1517
  # md5 grid hash in form {resolution : hash}
1515
- md5_hash = {}
1518
+ _md5_hash = {}
@@ -4,7 +4,7 @@ from ..datacube_mappers import DatacubeMapper
4
4
 
5
5
 
6
6
  class RegularGridMapper(DatacubeMapper):
7
- def __init__(self, base_axis, mapped_axes, resolution, local_area=[], axis_reversed=None):
7
+ def __init__(self, base_axis, mapped_axes, resolution, md5_hash=None, local_area=[], axis_reversed=None):
8
8
  # TODO: if local area is not empty list, raise NotImplemented
9
9
  self._mapped_axes = mapped_axes
10
10
  self._base_axis = base_axis
@@ -17,7 +17,10 @@ class RegularGridMapper(DatacubeMapper):
17
17
  self._axis_reversed = axis_reversed
18
18
  self._first_axis_vals = self.first_axis_vals()
19
19
  self.compressed_grid_axes = [self._mapped_axes[1]]
20
- self.md5_hash = md5_hash.get(resolution, None)
20
+ if md5_hash is not None:
21
+ self.md5_hash = md5_hash
22
+ else:
23
+ self.md5_hash = _md5_hash.get(resolution, None)
21
24
  if self._axis_reversed[mapped_axes[1]]:
22
25
  raise NotImplementedError("Regular grid with second axis in decreasing order is not supported")
23
26
 
@@ -69,4 +72,4 @@ class RegularGridMapper(DatacubeMapper):
69
72
 
70
73
 
71
74
  # md5 grid hash in form {resolution : hash}
72
- md5_hash = {}
75
+ _md5_hash = {}
@@ -21,6 +21,7 @@ class MapperConfig(TransformationConfig):
21
21
  type: str = ""
22
22
  resolution: Union[int, List[int]] = 0
23
23
  axes: List[str] = [""]
24
+ md5_hash: Optional[str] = None
24
25
  local: Optional[List[float]] = None
25
26
  axis_reversed: Optional[Dict[str, bool]] = None
26
27
 
@@ -0,0 +1 @@
1
+ __version__ = "1.0.9"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: polytope-python
3
- Version: 1.0.8
3
+ Version: 1.0.9
4
4
  Summary: Polytope datacube feature extraction library
5
5
  Home-page: https://github.com/ecmwf/polytope
6
6
  Author: ECMWF
@@ -1 +0,0 @@
1
- __version__ = "1.0.8"
File without changes