%global srcname cartopy
%global Srcname Cartopy
# Some tests use the network.
%bcond_with network
Name: python-%{srcname}
Version: 0.20.1
Release: %autorelease
Summary: Cartographic Python library with Matplotlib visualisations
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
# Fix shapereader test
# https://github.com/SciTools/cartopy/issues/2012
Patch0: Cartopy-test_shapereader.patch
# Might not go upstream in current form.
Patch0001: 0001-Increase-tolerance-for-new-FreeType.patch
BuildRequires: git-core
BuildRequires: gcc-c++
BuildRequires: geos-devel >= 3.7.2
BuildRequires: proj-devel >= 8.0.0
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
and visualisation easy. It features:
* object oriented projection definitions
* point, line, polygon and image transformations between projections
* integration to expose advanced mapping in matplotlib with a simple and
intuitive interface
* powerful vector data handling by integrating shapefile reading with Shapely
capabilities
}
%description %{_description}
%package -n python3-%{srcname}
Summary: %{summary}
Requires: python-%{srcname}-common = %{version}-%{release}
# OWS requirements
Recommends: python3dist(owslib) >= 0.18
# Plotting requirements
Recommends: python3dist(gdal) >= 2.3.2
Recommends: python3dist(pillow) >= 6.1
Recommends: python3dist(pykdtree) >= 1.2.2
Recommends: python3dist(scipy) >= 1.3.1
%description -n python3-%{srcname} %{_description}
%package -n python-%{srcname}-common
Summary: Data files for %{srcname}
BuildArch: noarch
BuildRequires: natural-earth-map-data-110m
BuildRequires: natural-earth-map-data-50m
Recommends: natural-earth-map-data-110m
Suggests: natural-earth-map-data-50m
Suggests: natural-earth-map-data-10m
%description -n python-%{srcname}-common
Data files for %{srcname}.
%prep
%autosetup -n %{Srcname}-%{version} -p1 -S git
cp -a %SOURCE1 lib/cartopy/
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,tests
%build
export FORCE_CYTHON=1 SETUPTOOLS_SCM_PRETEND_VERSION=%{version}
%pyproject_wheel
%install
%pyproject_install
%pyproject_save_files %{srcname}
mkdir -p %{buildroot}%{_datadir}/cartopy/shapefiles/natural_earth/
for theme in physical cultural; do
ln -s %{_datadir}/natural-earth-map-data/${theme} \
%{buildroot}%{_datadir}/cartopy/shapefiles/natural_earth/${theme}
done
%check
MPLBACKEND=Agg \
%{pytest} -n auto --doctest-modules --pyargs cartopy \
%if %{with network}
%{nil}
%else
-m "not network"
%endif
%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.py
%changelog
%autochangelog