nixpkgs/pkgs/development/python-modules/xclim/default.nix
2026-05-15 21:09:53 +00:00

99 lines
1.7 KiB
Nix

{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
flit,
setuptools,
# dependencies
boltons,
bottleneck,
cf-xarray,
cftime,
click,
dask,
filelock,
jsonpickle,
numba,
packaging,
pandas,
pint,
platformdirs,
pooch,
pyarrow,
pyyaml,
scikit-learn,
scipy,
statsmodels,
xarray,
yamale,
# test
versionCheckHook,
}:
buildPythonPackage rec {
pname = "xclim";
version = "0.61.0";
pyproject = true;
src = fetchFromGitHub {
owner = "Ouranosinc";
repo = "xclim";
tag = "v${version}";
hash = "sha256-9PCeL5r8HFv4xDnbnAxs/Fd56bfWd+8G1TgOH18v3NU=";
};
build-system = [
flit
setuptools
];
dependencies = [
boltons
bottleneck
cf-xarray
cftime
click
dask
filelock
jsonpickle
numba
packaging
pandas
pint
platformdirs
pooch
pyarrow
pyyaml
scikit-learn
scipy
statsmodels
xarray
yamale
];
# No python test hooks has been added as all tests seems to be relying on network data
# https://github.com/Ouranosinc/xclim/blob/e8ce9bf37083832517afb3375acc853191782d8f/tests/conftest.py#L314
nativeCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = "--version";
pythonImportsCheck = [
"xclim"
"xclim.ensembles"
"xclim.indices"
];
meta = {
description = "Operational Python library supporting climate services, based on xarray";
homepage = "https://github.com/Ouranosinc/xclim";
changelog = "https://github.com/Ouranosinc/xclim/releases/tag/${src.tag}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ daspk04 ];
mainProgram = "xclim";
};
}