covjsonkit 0.2.20__tar.gz → 0.2.22__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 (113) hide show
  1. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/PKG-INFO +1 -1
  2. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/encoder/Path.py +6 -2
  3. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/encoder/VerticalProfile.py +1 -1
  4. covjsonkit-0.2.22/covjsonkit/version.py +1 -0
  5. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit.egg-info/PKG-INFO +1 -1
  6. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/pyproject.toml +15 -1
  7. covjsonkit-0.2.20/covjsonkit/version.py +0 -1
  8. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/.github/ci-hpc-config.yml +0 -0
  9. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/.github/workflows/ci.yaml +0 -0
  10. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/.github/workflows/label-public-pr.yml +0 -0
  11. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/.gitignore +0 -0
  12. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/.pre-commit-config.yaml +0 -0
  13. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/ACKNOWLEDGEMENTS.rst +0 -0
  14. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/LICENSE +0 -0
  15. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/MANIFEST.in +0 -0
  16. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/Makefile +0 -0
  17. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/README.md +0 -0
  18. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/Coverage.py +0 -0
  19. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/CoverageCollection.py +0 -0
  20. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/__init__.py +0 -0
  21. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/api.py +0 -0
  22. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/config.py +0 -0
  23. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/data/__init__.py +0 -0
  24. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/data/dwd/param.json +0 -0
  25. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/data/dwd/param_id.json +0 -0
  26. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/data/dwd/unit.json +0 -0
  27. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/data/ecmwf/param.json +0 -0
  28. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/data/ecmwf/param_id.json +0 -0
  29. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/data/ecmwf/unit.json +0 -0
  30. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/decoder/BoundingBox.py +0 -0
  31. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/decoder/Circle.py +0 -0
  32. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/decoder/Frame.py +0 -0
  33. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/decoder/Grid.py +0 -0
  34. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/decoder/Path.py +0 -0
  35. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/decoder/Position.py +0 -0
  36. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/decoder/Shapefile.py +0 -0
  37. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/decoder/TimeSeries.py +0 -0
  38. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/decoder/VerticalProfile.py +0 -0
  39. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/decoder/Wkt.py +0 -0
  40. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/decoder/__init__.py +0 -0
  41. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/decoder/decoder.py +0 -0
  42. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/encoder/BoundingBox.py +0 -0
  43. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/encoder/Circle.py +0 -0
  44. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/encoder/Frame.py +0 -0
  45. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/encoder/Grid.py +0 -0
  46. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/encoder/Position.py +0 -0
  47. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/encoder/Shapefile.py +0 -0
  48. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/encoder/TimeSeries.py +0 -0
  49. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/encoder/Wkt.py +0 -0
  50. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/encoder/__init__.py +0 -0
  51. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/encoder/encoder.py +0 -0
  52. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/param_db.py +0 -0
  53. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit/utils.py +0 -0
  54. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit.egg-info/SOURCES.txt +0 -0
  55. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit.egg-info/dependency_links.txt +0 -0
  56. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit.egg-info/not-zip-safe +0 -0
  57. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit.egg-info/requires.txt +0 -0
  58. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/covjsonkit.egg-info/top_level.txt +0 -0
  59. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/docs/images/ECMWF_logo.svg.png +0 -0
  60. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/docs/images/Logo_Destination_Earth_Colours.png +0 -0
  61. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/example_config.json +0 -0
  62. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/requirements.txt +0 -0
  63. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/scripts/generate_param_db.py +0 -0
  64. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/setup.cfg +0 -0
  65. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/setup.py +0 -0
  66. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/conftest.py +0 -0
  67. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/data/test_coverage1.json +0 -0
  68. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/data/test_coverage2.json +0 -0
  69. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/data/test_geotiff.json +0 -0
  70. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/data/test_multipoint_coverage.json +0 -0
  71. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/data/test_path_coverage.json +0 -0
  72. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/data/test_timeseries_coverage.json +0 -0
  73. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/data/test_timeseries_param_t.json +0 -0
  74. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/data/test_timeseries_xyz_coverage.json +0 -0
  75. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/data/test_verticalprofile_coverage.json +0 -0
  76. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/data/test_verticalprofile_param_t.json +0 -0
  77. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/data/test_verticalprofile_xyz_coverage.json +0 -0
  78. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/geojsontest.py +0 -0
  79. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/requirements_test.txt +0 -0
  80. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_decoder_bounding_box.py +0 -0
  81. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_decoder_circle.py +0 -0
  82. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_decoder_frame.py +0 -0
  83. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_decoder_grid.py +0 -0
  84. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_decoder_position.py +0 -0
  85. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_decoder_shapefile.py +0 -0
  86. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_decoder_time_series.py +0 -0
  87. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_decoder_vertical_profile.py +0 -0
  88. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_decoder_wkt.py +0 -0
  89. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_encoder_bounding_box.py +0 -0
  90. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_encoder_bounding_box_from_polytope.py +0 -0
  91. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_encoder_circle_from_polytope.py +0 -0
  92. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_encoder_frame.py +0 -0
  93. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_encoder_frame_from_polytope.py +0 -0
  94. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_encoder_grid.py +0 -0
  95. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_encoder_grid_from_polytope.py +0 -0
  96. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_encoder_path.py +0 -0
  97. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_encoder_path_from_polytope.py +0 -0
  98. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_encoder_position_from_polytope.py +0 -0
  99. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_encoder_shapefile.py +0 -0
  100. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_encoder_shapefile_from_polytope.py +0 -0
  101. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_encoder_time_series.py +0 -0
  102. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_encoder_time_series_from_polytope.py +0 -0
  103. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_encoder_vertical_profile_from_polytope.py +0 -0
  104. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_encoder_wkt.py +0 -0
  105. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_encoder_wkt_from_polytope.py +0 -0
  106. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_geojson.py +0 -0
  107. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_geotiff.py +0 -0
  108. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_util_merge.py +0 -0
  109. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_xarray_multipoint.py +0 -0
  110. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_xarray_path.py +0 -0
  111. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_xarray_ts.py +0 -0
  112. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tests/test_xarray_vp.py +0 -0
  113. {covjsonkit-0.2.20 → covjsonkit-0.2.22}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: covjsonkit
3
- Version: 0.2.20
3
+ Version: 0.2.22
4
4
  Home-page: https://github.com/ecmwf/covjsonkit
5
5
  Author: ECMWF
6
6
  Author-email: James.Hawkes@ecmwf.int, Adam.Warde@ecmwf.int, Mathilde.Leuridan@ecmwf.int
@@ -160,13 +160,17 @@ class Path(Encoder):
160
160
  if (date, level, fields["number"][0], fields["param"][0], s) in range_dict:
161
161
  cor_len = len(range_dict[(date, level, fields["number"][0], fields["param"][0], s)])
162
162
  end = start + cor_len
163
+ # Normalize the step value before it is placed into the composite (t)
164
+ # coordinate so that timedelta/Timedelta values are JSON serialisable.
165
+ # The original ``s`` is kept for the range_dict lookups above.
166
+ s_norm = normalize_step_value(s)
163
167
  if len(fields["levels"]) != 1:
164
168
  for lev in fields["levels"]:
165
169
  for cor in coord[int(start) : int(end)]:
166
- coords[date]["composite"].append([s, cor[0], cor[1], lev])
170
+ coords[date]["composite"].append([s_norm, cor[0], cor[1], lev])
167
171
  else:
168
172
  for cor in coord[int(start) : int(end)]:
169
- coords[date]["composite"].append([s, cor[0], cor[1], level])
173
+ coords[date]["composite"].append([s_norm, cor[0], cor[1], level])
170
174
  start = end
171
175
  logging.debug("The coordinates returned from walking tree: %s", coords) # noqa: E501
172
176
 
@@ -229,7 +229,7 @@ class VerticalProfile(Encoder):
229
229
  mm = mars_metadata.copy()
230
230
  mm["number"] = num
231
231
  mm["Forecast date"] = date
232
- mm["step"] = step
232
+ mm["step"] = normalize_step_value(step)
233
233
  # del mm["step"]
234
234
  self.add_coverage(mm, coordinates[date][i][s], val_dict[step])
235
235
 
@@ -0,0 +1 @@
1
+ __version__ = "0.2.22"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: covjsonkit
3
- Version: 0.2.20
3
+ Version: 0.2.22
4
4
  Home-page: https://github.com/ecmwf/covjsonkit
5
5
  Author: ECMWF
6
6
  Author-email: James.Hawkes@ecmwf.int, Adam.Warde@ecmwf.int, Mathilde.Leuridan@ecmwf.int
@@ -1,5 +1,19 @@
1
1
  [tool.black]
2
2
  line-length = 120
3
+
4
+ # Align ruff (run by the shared downstream-ci QA job) with the repo's existing
5
+ # black / isort / flake8 configuration so it does not introduce a second,
6
+ # conflicting style standard. Mirrors tox.ini's [flake8] settings.
7
+ [tool.ruff]
8
+ line-length = 120
9
+
10
+ [tool.ruff.lint]
11
+ select = ["E", "F", "W"]
12
+ extend-ignore = ["E203"] # matches flake8 extend-ignore (W503 is not a ruff rule)
13
+
14
+ [tool.ruff.lint.per-file-ignores]
15
+ "*/__init__.py" = ["F401", "F403"]
16
+
3
17
  [build-system]
4
18
  requires = ["setuptools>=61.0","setuptools-scm>=8.0"]
5
19
  build-backend = "setuptools.build_meta"
@@ -8,7 +22,7 @@ markers = ["data: uses test data (deselect with '-m \"not data\"')",]
8
22
 
9
23
  [project]
10
24
  name = "covjsonkit"
11
- version = "0.2.20"
25
+ version = "0.2.22"
12
26
  dependencies = [
13
27
  "pandas<3",
14
28
  "orjson",
@@ -1 +0,0 @@
1
- __version__ = "0.2.20"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes