Compare commits

..

No commits in common. "rawhide" and "f36" have entirely different histories.

10 changed files with 195 additions and 133 deletions

5
.gitignore vendored
View file

@ -14,8 +14,3 @@
/Cartopy-0.20.3.tar.gz
/Cartopy-0.21.0.tar.gz
/Cartopy-0.21.1.tar.gz
/Cartopy-0.22.0.tar.gz
/Cartopy-0.23.0.tar.gz
/cartopy-0.24.0.tar.gz
/cartopy-0.24.1.tar.gz
/cartopy-0.25.0.tar.gz

View file

@ -1,20 +0,0 @@
# See the documentation for more information:
# https://packit.dev/docs/configuration/
---
jobs:
- job: pull_from_upstream
trigger: release
dist_git_branches:
rawhide:
fast_forward_merge_into:
- fedora-branched
- job: koji_build
trigger: commit
allowed_committers:
- all_admins
dist_git_branches:
- fedora-all
- job: bodhi_update
trigger: commit
dist_git_branches:
- fedora-all

View file

@ -1,69 +1,78 @@
From d3d4e7a80ded257b3094d837e5133b199989b460 Mon Sep 17 00:00:00 2001
From 3cd4152ba8a7ec7f089fdb912cff92fbd55ecedb Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Mon, 26 Feb 2018 02:42:50 -0500
Subject: [PATCH 2/2] Increase tolerance for new FreeType
Subject: [PATCH 1/4] Increase tolerance for new FreeType.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
lib/cartopy/tests/mpl/test_examples.py | 2 +-
lib/cartopy/tests/mpl/test_gridliner.py | 19 +++++++------------
lib/cartopy/tests/mpl/test_crs.py | 4 ++--
lib/cartopy/tests/mpl/test_examples.py | 4 +---
lib/cartopy/tests/mpl/test_gridliner.py | 11 +++++++----
lib/cartopy/tests/mpl/test_mpl_integration.py | 2 +-
lib/cartopy/tests/mpl/test_ticks.py | 14 +++++++++-----
4 files changed, 18 insertions(+), 19 deletions(-)
5 files changed, 20 insertions(+), 15 deletions(-)
diff --git a/lib/cartopy/tests/mpl/test_crs.py b/lib/cartopy/tests/mpl/test_crs.py
index 7c8580a5..40321df8 100644
--- a/lib/cartopy/tests/mpl/test_crs.py
+++ b/lib/cartopy/tests/mpl/test_crs.py
@@ -14,7 +14,7 @@ from cartopy.tests.mpl import MPL_VERSION
@pytest.mark.natural_earth
@pytest.mark.mpl_image_compare(filename="igh_land.png",
tolerance=(3.6
- if MPL_VERSION.release[:2] < (3, 5)
+ if MPL_VERSION.release[:2] < (3, 6)
else 0.5))
def test_igh_land():
crs = ccrs.InterruptedGoodeHomolosine(emphasis="land")
@@ -27,7 +27,7 @@ def test_igh_land():
@pytest.mark.natural_earth
@pytest.mark.mpl_image_compare(filename="igh_ocean.png",
tolerance=(4.5
- if MPL_VERSION.release[:2] < (3, 5)
+ if MPL_VERSION.release[:2] < (3, 6)
else 0.5))
def test_igh_ocean():
crs = ccrs.InterruptedGoodeHomolosine(
diff --git a/lib/cartopy/tests/mpl/test_examples.py b/lib/cartopy/tests/mpl/test_examples.py
index a7f64ac9..404d3d83 100644
index c678cc59..32bff3d4 100644
--- a/lib/cartopy/tests/mpl/test_examples.py
+++ b/lib/cartopy/tests/mpl/test_examples.py
@@ -37,7 +37,7 @@ def test_global_map():
@@ -33,9 +33,7 @@ def test_global_map():
@pytest.mark.natural_earth
@pytest.mark.mpl_image_compare(
- filename='contour_label.png', tolerance=3.9 if _MPL_38 else 0.5)
+ filename='contour_label.png', tolerance=11.2 if _MPL_38 else 0.5)
@pytest.mark.mpl_image_compare(filename='contour_label.png',
- tolerance=(9.9
- if MPL_VERSION.release[:2] < (3, 3)
- else 0.5))
+ tolerance=10.4)
def test_contour_label():
from cartopy.tests.mpl.test_caching import sample_data
fig = plt.figure()
diff --git a/lib/cartopy/tests/mpl/test_gridliner.py b/lib/cartopy/tests/mpl/test_gridliner.py
index 66144070..3ff88139 100644
index ba1614f9..918dd4f0 100644
--- a/lib/cartopy/tests/mpl/test_gridliner.py
+++ b/lib/cartopy/tests/mpl/test_gridliner.py
@@ -130,15 +130,10 @@ def test_gridliner_specified_lines():
assert gl.ylocator.tick_values(None, None).tolist() == parallels
@@ -127,6 +127,9 @@ def test_gridliner_specified_lines():
# of text objects. A new testing strategy is needed for this kind of test.
grid_label_tol = 3.9
+# Force higher tolerance due to new FreeType on Fedora.
+grid_label_tol = 15.2
+
-# The tolerance on these tests are particularly high because of the high number
-# of text objects. A new testing strategy is needed for this kind of test.
-grid_label_tol = 3.9
-
-
@pytest.mark.skipif(geos_version == (3, 9, 0), reason="GEOS intersection bug")
@pytest.mark.natural_earth
@pytest.mark.mpl_image_compare(filename='gridliner_labels.png',
- tolerance=grid_label_tol)
+ tolerance=15.2)
def test_grid_labels():
fig = plt.figure(figsize=(10, 10))
@@ -211,7 +206,7 @@ def test_grid_labels():
@@ -208,7 +211,7 @@ def test_grid_labels():
@pytest.mark.skipif(geos_version == (3, 9, 0), reason="GEOS intersection bug")
@pytest.mark.natural_earth
@pytest.mark.mpl_image_compare(filename='gridliner_labels_tight.png',
- tolerance=2.9)
- tolerance=2.92)
+ tolerance=47.1)
def test_grid_labels_tight():
# Ensure tight layout accounts for gridlines
fig = plt.figure(figsize=(7, 5))
@@ -259,7 +254,7 @@ def test_grid_labels_tight():
@pytest.mark.mpl_image_compare(
filename='gridliner_constrained_adjust_datalim.png',
- tolerance=grid_label_tol)
+ tolerance=46.5)
def test_gridliner_constrained_adjust_datalim():
fig = plt.figure(figsize=(8, 4), layout="constrained")
@@ -293,7 +288,7 @@ def test_gridliner_constrained_adjust_datalim():
@@ -252,7 +255,7 @@ def test_grid_labels_tight():
@pytest.mark.skipif(geos_version == (3, 9, 0), reason="GEOS intersection bug")
@pytest.mark.natural_earth
@pytest.mark.parametrize('proj', TEST_PROJS)
@ -72,7 +81,7 @@ index 66144070..3ff88139 100644
def test_grid_labels_inline(proj):
fig = plt.figure()
if isinstance(proj, tuple):
@@ -309,7 +304,7 @@ def test_grid_labels_inline(proj):
@@ -268,7 +271,7 @@ def test_grid_labels_inline(proj):
@pytest.mark.skipif(geos_version == (3, 9, 0), reason="GEOS intersection bug")
@pytest.mark.natural_earth
@pytest.mark.parametrize('proj', TEST_PROJS)
@ -81,8 +90,8 @@ index 66144070..3ff88139 100644
def test_grid_labels_inline_usa(proj):
top = 49.3457868 # north lat
left = -124.7844079 # west long
@@ -334,7 +329,7 @@ def test_grid_labels_inline_usa(proj):
@pytest.mark.natural_earth
@@ -292,7 +295,7 @@ def test_grid_labels_inline_usa(proj):
@pytest.mark.skipif(geos_version == (3, 9, 0), reason="GEOS intersection bug")
@pytest.mark.mpl_image_compare(filename='gridliner_labels_bbox_style.png',
- tolerance=grid_label_tol)
@ -90,43 +99,34 @@ index 66144070..3ff88139 100644
def test_gridliner_labels_bbox_style():
top = 49.3457868 # north lat
left = -124.7844079 # west long
@@ -521,7 +516,7 @@ def test_gridliner_save_tight_bbox():
@pytest.mark.natural_earth
@pytest.mark.mpl_image_compare(filename='gridliner_labels_title_adjust.png',
- tolerance=grid_label_tol)
+ tolerance=61.3)
def test_gridliner_title_adjust():
# Test that title do not overlap labels
projs = [ccrs.Mercator(), ccrs.AlbersEqualArea(), ccrs.LambertConformal(),
diff --git a/lib/cartopy/tests/mpl/test_mpl_integration.py b/lib/cartopy/tests/mpl/test_mpl_integration.py
index f1aeccdf..78866085 100644
index 884a950f..4740f796 100644
--- a/lib/cartopy/tests/mpl/test_mpl_integration.py
+++ b/lib/cartopy/tests/mpl/test_mpl_integration.py
@@ -1016,7 +1016,7 @@ def test_streamplot():
@@ -859,7 +859,7 @@ def test_streamplot():
@pytest.mark.natural_earth
-@pytest.mark.mpl_image_compare()
+@pytest.mark.mpl_image_compare(tolerance=3.96)
+@pytest.mark.mpl_image_compare(tolerance=3.95)
def test_annotate():
""" test a variety of annotate options on multiple projections
""" test a variety of annotate options on mulitple projections
diff --git a/lib/cartopy/tests/mpl/test_ticks.py b/lib/cartopy/tests/mpl/test_ticks.py
index f75ad2d2..bc0ba0b7 100644
index d629ccd7..fcf72164 100644
--- a/lib/cartopy/tests/mpl/test_ticks.py
+++ b/lib/cartopy/tests/mpl/test_ticks.py
@@ -10,7 +10,8 @@ from cartopy.mpl.ticker import LatitudeFormatter, LongitudeFormatter
@@ -11,7 +11,8 @@ from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter
@pytest.mark.natural_earth
-@pytest.mark.mpl_image_compare(filename='xticks_no_transform.png')
+@pytest.mark.mpl_image_compare(filename='xticks_no_transform.png',
+@pytest.mark.mpl_image_compare(filename='xticks_no_transform.png',
+ tolerance=6.71)
def test_set_xticks_no_transform():
ax = plt.axes(projection=ccrs.PlateCarree())
ax.coastlines('110m')
@@ -21,7 +22,8 @@ def test_set_xticks_no_transform():
@@ -22,7 +23,8 @@ def test_set_xticks_no_transform():
@pytest.mark.natural_earth
@ -136,7 +136,7 @@ index f75ad2d2..bc0ba0b7 100644
def test_set_xticks_cylindrical():
ax = plt.axes(projection=ccrs.Mercator(min_latitude=-85, max_latitude=85))
ax.coastlines('110m')
@@ -40,7 +42,8 @@ def test_set_xticks_non_cylindrical():
@@ -41,7 +43,8 @@ def test_set_xticks_non_cylindrical():
@pytest.mark.natural_earth
@ -146,7 +146,7 @@ index f75ad2d2..bc0ba0b7 100644
def test_set_yticks_no_transform():
ax = plt.axes(projection=ccrs.PlateCarree())
ax.coastlines('110m')
@@ -51,7 +54,8 @@ def test_set_yticks_no_transform():
@@ -52,7 +55,8 @@ def test_set_yticks_no_transform():
@pytest.mark.natural_earth
@ -156,7 +156,7 @@ index f75ad2d2..bc0ba0b7 100644
def test_set_yticks_cylindrical():
ax = plt.axes(projection=ccrs.Mercator(min_latitude=-85, max_latitude=85))
ax.coastlines('110m')
@@ -72,7 +76,7 @@ def test_set_yticks_non_cylindrical():
@@ -73,7 +77,7 @@ def test_set_yticks_non_cylindrical():
@pytest.mark.natural_earth
@ -166,5 +166,5 @@ index f75ad2d2..bc0ba0b7 100644
fig = plt.figure(figsize=(10, 10))
projections = (ccrs.PlateCarree(),
--
2.50.0
2.36.1

View file

@ -1,26 +0,0 @@
From e3a61e272d5ab58a2b8f13c6ad05d1136d3a5ecc Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Thu, 25 Apr 2024 16:35:29 -0400
Subject: [PATCH 1/2] Reduce numpy build dependency
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
pyproject.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pyproject.toml b/pyproject.toml
index f0172aac..4e012ede 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -9,7 +9,7 @@ requires = [
# Note that building against numpy 1.x works fine too - users and
# redistributors can do this by installing the numpy version they like and
# disabling build isolation.
- "numpy>=2.0.0",
+ "numpy>=1.23",
"setuptools_scm >= 8.0.0",
]
build-backend = "setuptools.build_meta"
--
2.50.0

View file

@ -0,0 +1,32 @@
From 9c5213d34d9d9b72516832afa70824941cec0961 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Sat, 21 May 2022 01:36:44 -0400
Subject: [PATCH 2/4] Use pkg-config to find GEOS instead of geos-config
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
setup.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/setup.py b/setup.py
index 8e061479..e1db810e 100644
--- a/setup.py
+++ b/setup.py
@@ -81,11 +81,11 @@ def file_walk_relative(top, remove=''):
# GEOS
try:
- geos_version = subprocess.check_output(['geos-config', '--version'])
+ geos_version = subprocess.check_output(['pkg-config', '--modversion', 'geos'])
geos_version = tuple(int(v) for v in geos_version.split(b'.')
if 'dev' not in str(v))
- geos_includes = subprocess.check_output(['geos-config', '--includes'])
- geos_clibs = subprocess.check_output(['geos-config', '--clibs'])
+ geos_includes = subprocess.check_output(['pkg-config', '--cflags', 'geos'])
+ geos_clibs = subprocess.check_output(['pkg-config', '--libs', 'geos'])
except (OSError, ValueError, subprocess.CalledProcessError):
warnings.warn(
'Unable to determine GEOS version. Ensure you have %s or later '
--
2.36.1

View file

@ -0,0 +1,55 @@
From 0aee6b4dcb2b8d0a8e571e071c39d997296b5aa8 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Mon, 23 May 2022 02:42:38 -0400
Subject: [PATCH 3/4] Remove extraneous insertion of default compiler paths
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
setup.py | 14 ++------------
1 file changed, 2 insertions(+), 12 deletions(-)
diff --git a/setup.py b/setup.py
index e1db810e..bd4ab057 100644
--- a/setup.py
+++ b/setup.py
@@ -29,7 +29,6 @@ import shutil
import subprocess
import warnings
from collections import defaultdict
-from sysconfig import get_config_var
from setuptools import Extension, find_packages, setup
@@ -130,16 +129,7 @@ install_requires = extras_require.pop('default')
tests_require = extras_require.get('tests', [])
# General extension paths
-if sys.platform.startswith('win'):
- def get_config_var(name):
- return '.'
-include_dir = get_config_var('INCLUDEDIR')
-library_dir = get_config_var('LIBDIR')
extra_extension_args = defaultdict(list)
-if not sys.platform.startswith('win'):
- extra_extension_args["runtime_library_dirs"].append(
- get_config_var('LIBDIR')
- )
# Description
# ===========
@@ -157,10 +147,10 @@ extensions = [
Extension(
'cartopy.trace',
['lib/cartopy/trace.pyx'],
- include_dirs=([include_dir, './lib/cartopy', np.get_include()] +
+ include_dirs=(['./lib/cartopy', np.get_include()] +
geos_includes),
libraries=geos_libraries,
- library_dirs=[library_dir] + geos_library_dirs,
+ library_dirs=geos_library_dirs,
language='c++',
**extra_extension_args),
]
--
2.36.1

View file

@ -0,0 +1,25 @@
From 7c0b8014159fe09c4931208b13ba3ca0e3f34786 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Wed, 14 Sep 2022 04:15:29 -0400
Subject: [PATCH 4/4] Allow older setuptools-scm
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
pyproject.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pyproject.toml b/pyproject.toml
index b905cf90..107d8eef 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -4,6 +4,6 @@ requires = [
"setuptools >= 40.6.0",
"Cython >= 0.29.13",
"oldest-supported-numpy",
- "setuptools_scm >= 7.0.0",
+ "setuptools_scm",
]
build-backend = "setuptools.build_meta"
--
2.36.1

View file

@ -1,3 +0,0 @@
This repository is maintained by packit.
https://packit.dev/
The file was generated using packit 1.11.0.

View file

@ -1,30 +1,33 @@
%global srcname cartopy
%global Srcname Cartopy
# Some tests use the network.
%bcond_with network
Name: python-%{srcname}
Version: 0.25.0
Version: 0.21.1
Release: %autorelease
Summary: Cartographic Python library with Matplotlib visualisations
License: BSD-3-Clause
URL: https://scitools.org.uk/cartopy/docs/latest/
Source0: %pypi_source %{srcname}
License: LGPLv3
URL: http://scitools.org.uk/cartopy/docs/latest/
Source0: %pypi_source %{Srcname}
# Set location of Fedora-provided pre-existing data.
Source1: siteconfig.py
# Fedora specific.
Patch: 0001-Reduce-numpy-build-dependency.patch
# Might not go upstream in current form.
Patch: 0002-Increase-tolerance-for-new-FreeType.patch
# See https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
ExcludeArch: %{ix86}
Patch0001: 0001-Increase-tolerance-for-new-FreeType.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=2088864
Patch0002: 0002-Use-pkg-config-to-find-GEOS-instead-of-geos-config.patch
Patch0003: 0003-Remove-extraneous-insertion-of-default-compiler-path.patch
# We don't need to worry about the bugs with setuptools-scm < 7.
Patch0004: 0004-Allow-older-setuptools-scm.patch
BuildRequires: gcc-c++
BuildRequires: geos-devel >= 3.7.2
BuildRequires: proj-data-uk
BuildRequires: python3-devel
BuildRequires: python3dist(pytest-xdist)
%global _description %{expand:
Cartopy is a Python package designed to make drawing maps for data analysis
@ -46,7 +49,7 @@ Summary: %{summary}
Requires: python-%{srcname}-common = %{version}-%{release}
Recommends: python3dist(cartopy[ows]) = %{version}-%{release}
Recommends: python3dist(cartopy[plotting]) = %{version}-%{release}
Recommends: python3dist(cartopy[speedups]) = %{version}-%{release}
Recommends: python3dist(pykdtree) >= 1.2.2
%description -n python3-%{srcname} %{_description}
@ -66,21 +69,21 @@ Suggests: natural-earth-map-data-10m
Data files for %{srcname}.
%pyproject_extras_subpkg -n python3-cartopy ows plotting speedups
%pyproject_extras_subpkg -n python3-cartopy ows plotting
%prep
%autosetup -n %{srcname}-%{version} -p1
%autosetup -n %{Srcname}-%{version} -p1
cp -a %SOURCE1 lib/cartopy/
sed -i -e 's/, "pytest-cov", "coveralls"//g' pyproject.toml
sed -i -e 's/oldest-supported-numpy/numpy/g' pyproject.toml
# Remove generated Cython sources
rm lib/cartopy/trace.cpp
%generate_buildrequires
%pyproject_buildrequires -r -x ows,plotting,speedups,test
%pyproject_buildrequires -r -x ows,plotting,tests
%build
@ -90,7 +93,7 @@ export FORCE_CYTHON=1 SETUPTOOLS_SCM_PRETEND_VERSION=%{version}
%install
%pyproject_install
%pyproject_save_files -l %{srcname}
%pyproject_save_files %{srcname}
mkdir -p %{buildroot}%{_datadir}/cartopy/shapefiles/natural_earth/
for theme in physical cultural; do
@ -101,7 +104,7 @@ done
%check
MPLBACKEND=Agg \
%{pytest} -n auto --doctest-modules --mpl --mpl-generate-summary=html --pyargs cartopy \
%{pytest} -n auto --doctest-modules --mpl --pyargs cartopy \
%if %{with network}
%{nil}
%else
@ -111,10 +114,11 @@ MPLBACKEND=Agg \
%files -n python-%{srcname}-common
%doc README.md
%license COPYING COPYING.LESSER lib/cartopy/data/LICENSE
%{_datadir}/cartopy/
%files -n python3-%{srcname} -f %{pyproject_files}
%{_bindir}/cartopy_feature_download
%{_bindir}/cartopy_feature_download.py
%changelog

View file

@ -1 +1 @@
SHA512 (cartopy-0.25.0.tar.gz) = 6e0576f87dbd154d7dec3c2bbec520d1602874e6b416ca6e461745ceb319dc0f38a53267ad0b1f73bcd0d81674151324c07b7a799fb0a3ad590d1a27c98b3ae7
SHA512 (Cartopy-0.21.1.tar.gz) = c73d18fc1db4706f11a8f1a82a24c2109140eb6789fe56e7947194a3f1bca7c286c6de6c394607c30054d538656e38da3c49b00f0a31dcf58f4f2b22d09175d3