eccodes 2.45.0__tar.gz → 2.47.0__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.
- {eccodes-2.45.0 → eccodes-2.47.0}/CHANGELOG.rst +14 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/CONTRIBUTING.rst +1 -1
- {eccodes-2.45.0 → eccodes-2.47.0}/PKG-INFO +18 -3
- {eccodes-2.45.0 → eccodes-2.47.0}/README.rst +2 -2
- {eccodes-2.45.0 → eccodes-2.47.0}/ci/requirements-docs.txt +2 -2
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes/highlevel/_bufr/coder.py +1 -5
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes/highlevel/_bufr/data.py +1 -1
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes.egg-info/PKG-INFO +18 -3
- {eccodes-2.45.0 → eccodes-2.47.0}/gribapi/bindings.py +1 -1
- {eccodes-2.45.0 → eccodes-2.47.0}/setup.py +1 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/test_bufr_data.py +19 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/test_highlevel.py +1 -3
- {eccodes-2.45.0 → eccodes-2.47.0}/tox.ini +1 -1
- {eccodes-2.45.0 → eccodes-2.47.0}/.dockerignore +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/Dockerfile +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/LICENSE +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/MANIFEST.in +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/Makefile +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/builder.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/ci/requirements-dev.txt +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/ci/requirements-docs.in +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/ci/requirements-tests.in +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/ci/requirements-tests.txt +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/docs/_static/.gitkeep +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/docs/conf.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/docs/index.rst +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes/__init__.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes/__main__.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes/eccodes.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes/highlevel/__init__.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes/highlevel/_bufr/BUFR_Snippets.md +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes/highlevel/_bufr/BUFR_Tour.md +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes/highlevel/_bufr/__init__.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes/highlevel/_bufr/common.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes/highlevel/_bufr/header.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes/highlevel/_bufr/helpers.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes/highlevel/_bufr/message.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes/highlevel/_bufr/tables.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes/highlevel/_bufr/tree.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes/highlevel/_bufr/view.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes/highlevel/message.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes/highlevel/reader.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes.egg-info/SOURCES.txt +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes.egg-info/dependency_links.txt +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes.egg-info/requires.txt +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes.egg-info/top_level.txt +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/eccodes.egg-info/zip-safe +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/gribapi/__init__.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/gribapi/eccodes.h +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/gribapi/errors.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/gribapi/grib_api.h +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/gribapi/gribapi.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/setup.cfg +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/examples/__init__.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/examples/attributes.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/examples/items.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/acars.attributes +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/acars.bufr +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/acars.items +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/ahi-himawari-8.attributes +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/ahi-himawari-8.bufr +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/ahi-himawari-8.items +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/amsu-a-noaa-19.attributes +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/amsu-a-noaa-19.bufr +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/amsu-a-noaa-19.items +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/amv-goes-9.attributes +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/amv-goes-9.bufr +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/amv-goes-9.items +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/amv-insat-3d.attributes +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/amv-insat-3d.bufr +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/amv-insat-3d.items +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/amv-meteosat-9.attributes +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/amv-meteosat-9.bufr +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/amv-meteosat-9.items +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/amv-noaa-20.attributes +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/amv-noaa-20.bufr +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/amv-noaa-20.items +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/aura-omi-ak.attributes +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/aura-omi-ak.bufr +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/aura-omi-ak.items +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/buoy-drifting.attributes +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/buoy-drifting.bufr +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/buoy-drifting.items +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/era5-levels-members.grib +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/geos-abi-goes-16.attributes +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/geos-abi-goes-16.bufr +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/geos-abi-goes-16.items +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/geos-mviri-meteosat-7.attributes +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/geos-mviri-meteosat-7.bufr +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/geos-mviri-meteosat-7.items +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/hdob.attributes +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/hdob.bufr +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/hdob.items +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/rwp.attributes +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/rwp.bufr +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/rwp.items +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/rwp_jma.attributes +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/rwp_jma.bufr +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/rwp_jma.items +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/saral-altika.attributes +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/saral-altika.bufr +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/saral-altika.items +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/sral_sentinel_3a.attributes +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/sral_sentinel_3a.bufr +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/sral_sentinel_3a.items +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/synop.attributes +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/synop.bufr +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/synop.items +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/synop_multi_subset.attributes +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/synop_multi_subset.bufr +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/synop_multi_subset.items +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/temp.attributes +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/temp.bufr +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/temp.items +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/terra-modis-aerosol.attributes +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/terra-modis-aerosol.bufr +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/terra-modis-aerosol.items +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/tiggelam_cnmc_sfc.grib2 +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/wave.attributes +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/wave.bufr +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/sample-data/wave.items +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/test_20_main.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/test_20_messages.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/test_bufr_examples.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/test_bufr_header.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/test_bufr_helpers.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/test_bufr_message.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/test_bufr_workarounds.py +0 -0
- {eccodes-2.45.0 → eccodes-2.47.0}/tests/test_eccodes.py +0 -0
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
Changelog for eccodes-python
|
|
3
3
|
============================
|
|
4
4
|
|
|
5
|
+
2.47.0 (2026-04-21)
|
|
6
|
+
--------------------
|
|
7
|
+
|
|
8
|
+
- Bump pygments from 2.15.0 to 2.20.0 in /ci (#164)
|
|
9
|
+
- Bump requests from 2.32.4 to 2.33.0 in /ci (#163)
|
|
10
|
+
|
|
11
|
+
2.46.0 (2026-02-24)
|
|
12
|
+
--------------------
|
|
13
|
+
|
|
14
|
+
- ECC-2219: High-level BUFR interface: set method not working for data keys
|
|
15
|
+
- ECC-2220: Fix inadvertent string truncation in uncompressed BUFR messages
|
|
16
|
+
- Fix path to BUFR md files
|
|
17
|
+
- Add support for Python version 3.14
|
|
18
|
+
|
|
5
19
|
2.45.0 (2025-01-16)
|
|
6
20
|
--------------------
|
|
7
21
|
|
|
@@ -105,7 +105,7 @@ Before you submit a pull request, check that it meets these guidelines:
|
|
|
105
105
|
your new functionality into a function with a docstring, and add the
|
|
106
106
|
feature to the list in README.rst.
|
|
107
107
|
|
|
108
|
-
3. The pull request should work for Python 3.9, 3.10, 3.11, 3.12, 3.13 and for PyPy2 and PyPy3.
|
|
108
|
+
3. The pull request should work for Python 3.9, 3.10, 3.11, 3.12, 3.13, 3.14 and for PyPy2 and PyPy3.
|
|
109
109
|
Check the tox results and make sure that the tests pass for all supported Python versions.
|
|
110
110
|
|
|
111
111
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: eccodes
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.47.0
|
|
4
4
|
Summary: Python interface to the ecCodes GRIB and BUFR decoder/encoder
|
|
5
5
|
Home-page: https://github.com/ecmwf/eccodes-python
|
|
6
6
|
Author: European Centre for Medium-Range Weather Forecasts (ECMWF)
|
|
@@ -15,6 +15,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.11
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.12
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
18
19
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
19
20
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
20
21
|
Classifier: Operating System :: OS Independent
|
|
@@ -164,8 +165,8 @@ the following environment variable before importing eccodes::
|
|
|
164
165
|
Usage
|
|
165
166
|
-----
|
|
166
167
|
|
|
167
|
-
See examples of how to use the high-level BUFR interface: `BUFR_Tour.md <
|
|
168
|
-
and `BUFR_Snippets.md <
|
|
168
|
+
See examples of how to use the high-level BUFR interface: `BUFR_Tour.md <highlevel/_bufr/BUFR_Tour.md>`_
|
|
169
|
+
and `BUFR_Snippets.md <highlevel/_bufr/BUFR_Snippets.md>`_.
|
|
169
170
|
|
|
170
171
|
Refer to the *ecCodes* `documentation pages <https://confluence.ecmwf.int/display/ECC/Documentation>`_
|
|
171
172
|
for usage.
|
|
@@ -242,6 +243,20 @@ does it submit to any jurisdiction.
|
|
|
242
243
|
Changelog for eccodes-python
|
|
243
244
|
============================
|
|
244
245
|
|
|
246
|
+
2.47.0 (2026-04-21)
|
|
247
|
+
--------------------
|
|
248
|
+
|
|
249
|
+
- Bump pygments from 2.15.0 to 2.20.0 in /ci (#164)
|
|
250
|
+
- Bump requests from 2.32.4 to 2.33.0 in /ci (#163)
|
|
251
|
+
|
|
252
|
+
2.46.0 (2026-02-24)
|
|
253
|
+
--------------------
|
|
254
|
+
|
|
255
|
+
- ECC-2219: High-level BUFR interface: set method not working for data keys
|
|
256
|
+
- ECC-2220: Fix inadvertent string truncation in uncompressed BUFR messages
|
|
257
|
+
- Fix path to BUFR md files
|
|
258
|
+
- Add support for Python version 3.14
|
|
259
|
+
|
|
245
260
|
2.45.0 (2025-01-16)
|
|
246
261
|
--------------------
|
|
247
262
|
|
|
@@ -127,8 +127,8 @@ the following environment variable before importing eccodes::
|
|
|
127
127
|
Usage
|
|
128
128
|
-----
|
|
129
129
|
|
|
130
|
-
See examples of how to use the high-level BUFR interface: `BUFR_Tour.md <
|
|
131
|
-
and `BUFR_Snippets.md <
|
|
130
|
+
See examples of how to use the high-level BUFR interface: `BUFR_Tour.md <highlevel/_bufr/BUFR_Tour.md>`_
|
|
131
|
+
and `BUFR_Snippets.md <highlevel/_bufr/BUFR_Snippets.md>`_.
|
|
132
132
|
|
|
133
133
|
Refer to the *ecCodes* `documentation pages <https://confluence.ecmwf.int/display/ECC/Documentation>`_
|
|
134
134
|
for usage.
|
|
@@ -24,7 +24,7 @@ markupsafe==2.1.5
|
|
|
24
24
|
# via jinja2
|
|
25
25
|
packaging==19.0
|
|
26
26
|
# via sphinx
|
|
27
|
-
pygments==2.
|
|
27
|
+
pygments==2.20.0
|
|
28
28
|
# via sphinx
|
|
29
29
|
pyparsing==2.3.1
|
|
30
30
|
# via packaging
|
|
@@ -32,7 +32,7 @@ pytest-runner==4.4
|
|
|
32
32
|
# via -r requirements-docs.in
|
|
33
33
|
pytz==2018.9
|
|
34
34
|
# via babel
|
|
35
|
-
requests==2.
|
|
35
|
+
requests==2.33.0
|
|
36
36
|
# via sphinx
|
|
37
37
|
six==1.12.0
|
|
38
38
|
# via
|
|
@@ -345,9 +345,7 @@ class Coder:
|
|
|
345
345
|
codes_set(self._handle, f"#{rank}#{key}", value)
|
|
346
346
|
else:
|
|
347
347
|
if array.dtype.type == np.str_:
|
|
348
|
-
if array.size
|
|
349
|
-
codes_set(self._handle, key, array.data[0][0])
|
|
350
|
-
elif array.size > 1 and not np.any(array != array.data[0][0]):
|
|
348
|
+
if array.size > 1 and not np.any(array != array.data[0][0]):
|
|
351
349
|
codes_set_array(self._handle, key, array.data[0][0:1])
|
|
352
350
|
else:
|
|
353
351
|
codes_set_array(self._handle, key, array.data.ravel())
|
|
@@ -384,8 +382,6 @@ class Coder:
|
|
|
384
382
|
codes_release(self._clone_handle)
|
|
385
383
|
self._clone_handle = 0
|
|
386
384
|
|
|
387
|
-
# [1] This is a workaround for ECC-1623.
|
|
388
|
-
#
|
|
389
385
|
# [2] If all values in an array are the same, encode only a single scalar value.
|
|
390
386
|
#
|
|
391
387
|
# [3] The key 'centre' is also an alias for the header key 'headerCentre',
|
|
@@ -380,7 +380,7 @@ class DataBlock(View):
|
|
|
380
380
|
return is_missing
|
|
381
381
|
|
|
382
382
|
def set(self, key: str, value: ValueLike) -> None:
|
|
383
|
-
self.__setitem__(
|
|
383
|
+
self.__setitem__(key, value)
|
|
384
384
|
|
|
385
385
|
def set_missing(self, key: str) -> None:
|
|
386
386
|
key = Key.from_string(key)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: eccodes
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.47.0
|
|
4
4
|
Summary: Python interface to the ecCodes GRIB and BUFR decoder/encoder
|
|
5
5
|
Home-page: https://github.com/ecmwf/eccodes-python
|
|
6
6
|
Author: European Centre for Medium-Range Weather Forecasts (ECMWF)
|
|
@@ -15,6 +15,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.11
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.12
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
18
19
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
19
20
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
20
21
|
Classifier: Operating System :: OS Independent
|
|
@@ -164,8 +165,8 @@ the following environment variable before importing eccodes::
|
|
|
164
165
|
Usage
|
|
165
166
|
-----
|
|
166
167
|
|
|
167
|
-
See examples of how to use the high-level BUFR interface: `BUFR_Tour.md <
|
|
168
|
-
and `BUFR_Snippets.md <
|
|
168
|
+
See examples of how to use the high-level BUFR interface: `BUFR_Tour.md <highlevel/_bufr/BUFR_Tour.md>`_
|
|
169
|
+
and `BUFR_Snippets.md <highlevel/_bufr/BUFR_Snippets.md>`_.
|
|
169
170
|
|
|
170
171
|
Refer to the *ecCodes* `documentation pages <https://confluence.ecmwf.int/display/ECC/Documentation>`_
|
|
171
172
|
for usage.
|
|
@@ -242,6 +243,20 @@ does it submit to any jurisdiction.
|
|
|
242
243
|
Changelog for eccodes-python
|
|
243
244
|
============================
|
|
244
245
|
|
|
246
|
+
2.47.0 (2026-04-21)
|
|
247
|
+
--------------------
|
|
248
|
+
|
|
249
|
+
- Bump pygments from 2.15.0 to 2.20.0 in /ci (#164)
|
|
250
|
+
- Bump requests from 2.32.4 to 2.33.0 in /ci (#163)
|
|
251
|
+
|
|
252
|
+
2.46.0 (2026-02-24)
|
|
253
|
+
--------------------
|
|
254
|
+
|
|
255
|
+
- ECC-2219: High-level BUFR interface: set method not working for data keys
|
|
256
|
+
- ECC-2220: Fix inadvertent string truncation in uncompressed BUFR messages
|
|
257
|
+
- Fix path to BUFR md files
|
|
258
|
+
- Add support for Python version 3.14
|
|
259
|
+
|
|
245
260
|
2.45.0 (2025-01-16)
|
|
246
261
|
--------------------
|
|
247
262
|
|
|
@@ -130,6 +130,7 @@ setuptools.setup(
|
|
|
130
130
|
"Programming Language :: Python :: 3.11",
|
|
131
131
|
"Programming Language :: Python :: 3.12",
|
|
132
132
|
"Programming Language :: Python :: 3.13",
|
|
133
|
+
"Programming Language :: Python :: 3.14",
|
|
133
134
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
134
135
|
"Programming Language :: Python :: Implementation :: PyPy",
|
|
135
136
|
"Operating System :: OS Independent",
|
|
@@ -332,3 +332,22 @@ def test_data_assignment_with_non_native_types():
|
|
|
332
332
|
bufr["satelliteIdentifier"] = np.int16(0)
|
|
333
333
|
bufr["satelliteIdentifier"] = np.int32(0)
|
|
334
334
|
bufr["latitude"] = np.float32(0)
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
def test_data_set_string_uncompressed(): # ECC-2220
|
|
338
|
+
bufr = BUFRMessage("BUFR4")
|
|
339
|
+
bufr["unexpandedDescriptors"] = [1025]
|
|
340
|
+
bufr["stormIdentifier"] = "70A"
|
|
341
|
+
assert bufr["stormIdentifier"] == "70A"
|
|
342
|
+
bufr.pack()
|
|
343
|
+
assert bufr["stormIdentifier"] == "70A"
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
def test_data_set_string_compressed(): # ECC-2220
|
|
347
|
+
bufr = BUFRMessage("BUFR4")
|
|
348
|
+
bufr["compressedData"] = 1
|
|
349
|
+
bufr["unexpandedDescriptors"] = [1025]
|
|
350
|
+
bufr["stormIdentifier"] = "70A"
|
|
351
|
+
assert bufr["stormIdentifier"] == "70A"
|
|
352
|
+
bufr.pack()
|
|
353
|
+
assert bufr["stormIdentifier"] == "70A"
|
|
@@ -46,9 +46,7 @@ def test_message_get():
|
|
|
46
46
|
assert message["gridType:int"] == 0
|
|
47
47
|
with pytest.raises(KeyError):
|
|
48
48
|
message["invalid"]
|
|
49
|
-
|
|
50
|
-
message["gridSpec"]
|
|
51
|
-
assert message.get("gridSpec", dummy_default) is dummy_default
|
|
49
|
+
# assert message.get("gridSpec", dummy_default) is dummy_default
|
|
52
50
|
# keys set as MISSING
|
|
53
51
|
assert message.is_missing(known_missing)
|
|
54
52
|
assert message.get(known_missing) is None
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
envlist = docs, py38, py37, py36, py35, pypy3, deps
|
|
3
3
|
|
|
4
4
|
[testenv]
|
|
5
|
-
passenv = WHEELHOUSE
|
|
5
|
+
passenv = WHEELHOUSE,PIP_FIND_LINKS,PIP_WHEEL_DIR,PIP_INDEX_URL
|
|
6
6
|
setenv = PYTHONPATH = {toxinidir}
|
|
7
7
|
deps = -r{toxinidir}/ci/requirements-tests.txt
|
|
8
8
|
commands = pytest -v --flakes --cache-clear --basetemp={envtmpdir} {posargs}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|