Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/run-test-suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
matrix:
os: [ubuntu-latest, ubuntu-18.04, macos-latest, macos-10.15]
# Note: keep versions quoted as strings else 3.10 taken as 3.1, etc.
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
python-version: ["3.10", "3.11", "3.12", "3.13"]

# Run on new and old(er) versions of the distros we support (Linux, Mac OS)
runs-on: ${{ matrix.os }}
Expand Down Expand Up @@ -95,7 +95,7 @@ jobs:

# For one job only, generate a coverage report:
- name: Upload coverage report to Codecov
# Get coverage from only one job (choose with Ubuntu Python 3.9 as
# Get coverage from only one job (choose with Ubuntu Python 3.10 as
# representative). Note that we could use a separate workflow
# to setup Codecov reports, but given the amount of steps required to
# install including dependencies via conda, that a separate workflow
Expand All @@ -104,7 +104,7 @@ jobs:
# passing at least for that job, avoiding useless coverage reports.
uses: codecov/codecov-action@v1
if: |
matrix.os == "ubuntu-latest" && matrix.python-version == "3.9"
matrix.os == "ubuntu-latest" && matrix.python-version == "3.10"
with:
file: ./cfdm/test/cfdm_coverage_reports/coverage.xml
fail_ci_if_error: true
Expand Down
3 changes: 3 additions & 0 deletions Changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,14 @@ Version NEXTVERSION

**2025-10-??**

* Python 3.9 support removed
(https://github.com/NCAS-CMS/cfdm/issues/353)
* When changing array data type, retain cached data elements cast to
the new type (https://github.com/NCAS-CMS/cfdm/issues/358)
* Fix bug that prevented `cfdm.read` from reading a file with ``#``
characters in its file name
(https://github.com/NCAS-CMS/cfdm/issues/356)
* Changed dependency: ``Python>=3.10.0``

----

Expand Down
2 changes: 1 addition & 1 deletion cfdm/core/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
)

# Check the version of python
_minimum_vn = "3.9.0"
_minimum_vn = "3.10.0"
if Version(python_version()) < Version(_minimum_vn):
raise ValueError(
f"Bad python version: cfdm.core requires python>={_minimum_vn}. "
Expand Down
4 changes: 3 additions & 1 deletion cfdm/test/test_Data.py
Original file line number Diff line number Diff line change
Expand Up @@ -1377,7 +1377,9 @@ def test_Data_masked_values(self):
d = cfdm.Data(array)
e = d.masked_values(1.1)
ea = e.array
a = np.ma.masked_values(array, 1.1, rtol=cfdm.rtol(), atol=cfdm.atol())
a = np.ma.masked_values(
array, 1.1, rtol=float(cfdm.rtol()), atol=float(cfdm.atol())
)
self.assertTrue(np.isclose(ea, a).all())
self.assertTrue((ea.mask == a.mask).all())
self.assertIsNone(d.masked_values(1.1, inplace=True))
Expand Down
4 changes: 2 additions & 2 deletions docs/source/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ cfdm works for Linux, Mac and Windows operating systems.
**Python versions**
-------------------

cfdm works for Python versions 3.9 or newer.
cfdm works for Python versions 3.10 or newer.

----

Expand Down Expand Up @@ -180,7 +180,7 @@ Tests are run from within the ``cfdm/test`` directory:

The cfdm package requires:

* `Python <https://www.python.org>`_, version 3.9 or newer.
* `Python <https://www.python.org>`_, version 3.10 or newer.

* `numpy <http://www.numpy.org>`_, version 2.0.0 or newer.

Expand Down
3 changes: 1 addition & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,15 +169,14 @@ def _get_version():
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
],
packages=find_packages(),
scripts=["scripts/cfdump"],
python_requires=">=3.9",
python_requires=">=3.10",
install_requires=install_requires,
tests_require=tests_require,
extras_require=extras_require,
Expand Down
Loading