python312Packages.fnllm: 0.0.11 -> 0.0.12 (#364582)
[NixPkgs.git] / pkgs / development / python-modules / pyerfa / default.nix
blob68e5f7d97496e2dd6cf85443dbfaa533b01aae3c
2   lib,
3   buildPythonPackage,
4   fetchPypi,
5   jinja2,
6   setuptools,
7   setuptools-scm,
8   liberfa,
9   packaging,
10   numpy,
11   pytestCheckHook,
12   pytest-doctestplus,
15 buildPythonPackage rec {
16   pname = "pyerfa";
17   version = "2.0.1.4";
18   pyproject = true;
20   src = fetchPypi {
21     inherit pname version;
22     hash = "sha256-rLimcTIy6jXAS8bkCsTkYd/MgX05XvKjyAUcGjMkndM=";
23   };
25   postPatch = ''
26     substituteInPlace pyproject.toml \
27       --replace-fail "numpy>=2.0.0rc1" "numpy"
28   '';
30   build-system = [
31     jinja2
32     packaging
33     setuptools
34     setuptools-scm
35   ];
37   dependencies = [ numpy ];
38   buildInputs = [ liberfa ];
40   preBuild = ''
41     export PYERFA_USE_SYSTEM_LIBERFA=1
42   '';
44   # See https://github.com/liberfa/pyerfa/issues/112#issuecomment-1721197483
45   NIX_CFLAGS_COMPILE = "-O2";
46   nativeCheckInputs = [
47     pytestCheckHook
48     pytest-doctestplus
49   ];
50   # Getting circular import errors without this, not clear yet why. This was mentioned to
51   # upstream at: https://github.com/liberfa/pyerfa/issues/112 and downstream at
52   # https://github.com/NixOS/nixpkgs/issues/255262
53   preCheck = ''
54     cd $out
55   '';
56   pythonImportsCheck = [ "erfa" ];
58   meta = with lib; {
59     description = "Python bindings for ERFA routines";
60     longDescription = ''
61       PyERFA is the Python wrapper for the ERFA library (Essential Routines
62       for Fundamental Astronomy), a C library containing key algorithms for
63       astronomy, which is based on the SOFA library published by the
64       International Astronomical Union (IAU). All C routines are wrapped as
65       Numpy universal functions, so that they can be called with scalar or
66       array inputs.
67     '';
68     homepage = "https://github.com/liberfa/pyerfa";
69     license = licenses.bsd3;
70     maintainers = [ maintainers.rmcgibbo ];
71   };