# Basic requirements
bronx
matplotlib<3.10 # with matplotlib 3.10 there is an error removing an AnnotationBbox (cartopy maps)
netCDF4
numpy>=1.8
scipy
python-dateutil
pyproj>=2.0.0
shapely
psycopg2
pyshp
pandas
cartopy
footprints
epygram>=2.0
packaging

# Other requirements
# xarray is a requirement for plots/compare.py and utils/proximu.py in case of use of NETCDF-4 file format
xarray
# rioxarray is an xarray extension for raster files
rioxarray
# rpy2 is a requirement for tools/emosCSG.py
# rpy2

# Requirements for generating the documentation
sphinx>=4.3
git+https://github.com/VACUMM/sphinx-fortran.git

# GDAL:
#
# Gdal is a requirement for interpolation and utils/skyline-bdclim.py
# Requires libgdal and libgdal-dev (use `sudo apt install libgdal libgdal-dev`).
#
# To install python package, it is recommanded to installl the system package with:
# sudo apt install python3-gdal
#
# However, if you want to install it in a virtual environment, you can install gdal python package, once
# requirements fulfilled with the following command line:
# pip install GDAL==$(gdal-config --version) --global-option=build_ext --global-option="$(gdal-config --cflags)"
#
# Note that older versions of GDAL package
# (e.g. version currently obtained with previously cited packages of Ubuntu 20.04LTS)
# requires to have a version of setuptools<58.0.0
#
# Due to all these limitations, GDAL is not listed here as a requirement.

pytest

# numpy versions:
# import matplotlib.pyplot fails for matplotlib 3.5.1 (ubuntu 22.04) with numpy>=2.0 ImportError: numpy.core.multiarray failed to import
# further information from the error message:
#
# A module that was compiled using NumPy 1.x cannot be run in
# NumPy 2.0.0 as it may crash. To support both 1.x and 2.x
# versions of NumPy, modules must be compiled with NumPy 2.0.
# Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.

# If you are a user of the module, the easiest solution will be to
# downgrade to 'numpy<2' or try to upgrade the affected module.
# We expect that some modules will need time to support NumPy 2.

