1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 loguru,
6 niapy,
7 numpy,
8 pandas,
9 poetry-core,
10 pytestCheckHook,
11 pythonOlder,
12 scikit-learn,
13 toml-adapt,
14 typer,
15}:
16
17buildPythonPackage rec {
18 pname = "niaaml";
19 version = "2.1.2";
20 pyproject = true;
21
22 disabled = pythonOlder "3.9";
23
24 src = fetchFromGitHub {
25 owner = "firefly-cpp";
26 repo = "NiaAML";
27 tag = version;
28 hash = "sha256-i5hjmvN9qJCGVDmRDBTiaNQn+1kZHr2iWNnD7GUimr4=";
29 };
30
31 pythonRelaxDeps = [
32 "numpy"
33 "pandas"
34 ];
35
36 nativeBuildInputs = [
37 poetry-core
38 toml-adapt
39 ];
40
41 propagatedBuildInputs = [
42 loguru
43 niapy
44 numpy
45 pandas
46 scikit-learn
47 typer
48 ];
49
50 # create scikit-learn and niapy deps version consistent
51 preBuild = ''
52 toml-adapt -path pyproject.toml -a change -dep scikit-learn -ver X
53 toml-adapt -path pyproject.toml -a change -dep niapy -ver X
54 '';
55
56 nativeCheckInputs = [ pytestCheckHook ];
57
58 pythonImportsCheck = [ "niaaml" ];
59
60 meta = with lib; {
61 description = "Python automated machine learning framework";
62 homepage = "https://github.com/firefly-cpp/NiaAML";
63 changelog = "https://github.com/firefly-cpp/NiaAML/releases/tag/${version}";
64 license = licenses.mit;
65 maintainers = with maintainers; [ firefly-cpp ];
66 };
67}