diff --git a/.github/workflows/ci_tests.yaml b/.github/workflows/ci_tests.yaml index b30d72c3956..6e50ef97229 100644 --- a/.github/workflows/ci_tests.yaml +++ b/.github/workflows/ci_tests.yaml @@ -72,7 +72,7 @@ jobs: include: # Python 3.11 + core packages (minimum supported versions) + optional packages (minimum supported versions if any) - python-version: '3.11' - numpy-version: '1.26' + numpy-version: '2.0' pandas-version: '=2.2' xarray-version: '=2023.10' optional-packages: ' contextily geopandas ipython pyarrow-core rioxarray netCDF4 sphinx-gallery' diff --git a/.github/workflows/ci_tests_legacy.yaml b/.github/workflows/ci_tests_legacy.yaml index b5fa4860af5..6b75cd47da0 100644 --- a/.github/workflows/ci_tests_legacy.yaml +++ b/.github/workflows/ci_tests_legacy.yaml @@ -61,7 +61,7 @@ jobs: python=3.11 gmt=${{ matrix.gmt_version }} ghostscript<10 - numpy=1.26 + numpy=2.0 pandas xarray packaging=24.2 diff --git a/environment.yml b/environment.yml index 9194eaeb035..6e0e4c6626c 100644 --- a/environment.yml +++ b/environment.yml @@ -7,7 +7,7 @@ dependencies: # Required dependencies - gmt=6.5.0 - ghostscript=10.04.0 - - numpy>=1.26 + - numpy>=2.0 - pandas>=2.2 - xarray>=2023.10 - packaging>=24.2 diff --git a/pygmt/conftest.py b/pygmt/conftest.py deleted file mode 100644 index ee491b7f8bc..00000000000 --- a/pygmt/conftest.py +++ /dev/null @@ -1,11 +0,0 @@ -""" -conftest.py for pytest. -""" - -import numpy as np -from packaging.version import Version - -# TODO(NumPy>=2.0): Remove the conftest.py file. -# Address https://github.com/GenericMappingTools/pygmt/issues/2628. -if Version(np.__version__) >= Version("2.0.0.dev0+git20230726"): - np.set_printoptions(legacy="1.25") # type: ignore[arg-type] diff --git a/pygmt/datatypes/image.py b/pygmt/datatypes/image.py index 6188e6c88e0..177c00fcccb 100644 --- a/pygmt/datatypes/image.py +++ b/pygmt/datatypes/image.py @@ -70,7 +70,7 @@ class _GMT_IMAGE(ctp.Structure): # noqa: N801 >>> data.shape (180, 360, 3) >>> data.min(), data.max() - (10, 255) + (np.uint8(10), np.uint8(255)) """ _fields_: ClassVar = [ @@ -139,17 +139,18 @@ def to_xarray(self) -> xr.DataArray: ..., [177, 179, 179, ..., 178, 177, 177], [185, 187, 187, ..., 187, 186, 185], - [189, 191, 191, ..., 191, 191, 189]]], dtype=uint8) + [189, 191, 191, ..., 191, 191, 189]]], + shape=(3, 180, 360), dtype=uint8) Coordinates: * y (y) float64... 89.5 88.5 87.5 86.5 ... -86.5 -87.5 -88.5 -89.5 * x (x) float64... -179.5 -178.5 -177.5 -176.5 ... 177.5 178.5 179.5 * band (band) uint8... 1 2 3 Attributes: - long_name: z + long_name: z >>> da.coords["x"] # doctest: +NORMALIZE_WHITESPACE, +ELLIPSIS ... - array([-179.5, -178.5, -177.5, ..., 177.5, 178.5, 179.5]) + array([-179.5, -178.5, -177.5, ..., 177.5, 178.5, 179.5], shape=(360,)) Coordinates: * x (x) float64... -179.5 -178.5 -177.5 -176.5 ... 177.5 178.5 179.5 Attributes: diff --git a/pygmt/tests/test_clib_to_numpy.py b/pygmt/tests/test_clib_to_numpy.py index 4c228f7b0e5..e04f732bb3d 100644 --- a/pygmt/tests/test_clib_to_numpy.py +++ b/pygmt/tests/test_clib_to_numpy.py @@ -3,7 +3,6 @@ """ import datetime -import sys import numpy as np import numpy.testing as npt @@ -52,14 +51,7 @@ def _check_result(result, expected_dtype): @pytest.mark.parametrize( ("data", "expected_dtype"), [ - # TODO(NumPy>=2.0): Remove the if-else statement after NumPy>=2.0. - pytest.param( - [1, 2, 3], - np.int32 - if sys.platform == "win32" and Version(np.__version__) < Version("2.0") - else np.int64, - id="int", - ), + pytest.param([1, 2, 3], np.int64, id="int"), pytest.param([1.0, 2.0, 3.0], np.float64, id="float"), pytest.param( [complex(+1), complex(-2j), complex("-Infinity+NaNj")], diff --git a/pyproject.toml b/pyproject.toml index 8dd8a656f01..48dcc38015b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,7 +35,7 @@ classifiers = [ "Programming Language :: Python :: 3.13", ] dependencies = [ - "numpy>=1.26", + "numpy>=2.0", "pandas>=2.2", "xarray>=2023.10", "packaging>=24.2", diff --git a/requirements.txt b/requirements.txt index de229b8acb2..f52e9f9fd42 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ # Required packages -numpy>=1.26 +numpy>=2.0 pandas>=2.2 xarray>=2023.10 packaging>=24.2