1{
2 lib,
3 buildPythonPackage,
4 cmake,
5 fetchFromGitHub,
6 joblib,
7 matplotlib,
8 ninja,
9 numpy,
10 pandas,
11 pathspec,
12 pyproject-metadata,
13 pybind11,
14 pytestCheckHook,
15 pythonOlder,
16 scikit-build-core,
17 scipy,
18}:
19
20buildPythonPackage rec {
21 pname = "phik";
22 version = "0.12.5";
23 pyproject = true;
24
25 disabled = pythonOlder "3.8";
26
27 src = fetchFromGitHub {
28 owner = "KaveIO";
29 repo = "PhiK";
30 tag = "v${version}";
31 hash = "sha256-/Zzin3IHwlFEDQwKjzTwY4ET2r0k3Ne/2lGzXkur9p8=";
32 };
33
34 build-system = [
35 cmake
36 ninja
37 pathspec
38 pybind11
39 pyproject-metadata
40 scikit-build-core
41 ];
42
43 dependencies = [
44 joblib
45 matplotlib
46 numpy
47 pandas
48 scipy
49 ];
50
51 nativeCheckInputs = [ pytestCheckHook ];
52
53 # Uses scikit-build-core to drive build process
54 dontUseCmakeConfigure = true;
55
56 pythonImportsCheck = [ "phik" ];
57
58 preCheck = ''
59 # import from $out
60 rm -r phik
61 '';
62
63 disabledTests = [
64 # AssertionError: np.False_ is not true
65 "test_phik_calculation"
66 ];
67
68 meta = with lib; {
69 description = "Phi_K correlation analyzer library";
70 longDescription = ''
71 Phi_K is a new and practical correlation coefficient based on several refinements to
72 Pearson’s hypothesis test of independence of two variables.
73 '';
74 homepage = "https://phik.readthedocs.io/";
75 changelog = "https://github.com/KaveIO/PhiK/blob/${src.tag}/CHANGES.rst";
76 license = licenses.asl20;
77 maintainers = with maintainers; [ melsigl ];
78 };
79}