1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 matplotlib,
6 niapy,
7 numpy,
8 poetry-core,
9 pytestCheckHook,
10 pythonOlder,
11 scikit-learn,
12 toml-adapt,
13 tomli,
14 torch,
15}:
16
17buildPythonPackage rec {
18 pname = "nianet";
19 version = "1.1.4";
20 pyproject = true;
21
22 disabled = pythonOlder "3.9";
23
24 src = fetchFromGitHub {
25 owner = "SasoPavlic";
26 repo = "nianet";
27 rev = "refs/tags/version_${version}";
28 sha256 = "sha256-FZipl6Z9AfiL6WH0kvUn8bVxt8JLdDVlmTSqnyxe0nY=";
29 };
30
31 nativeBuildInputs = [
32 poetry-core
33 toml-adapt
34 ];
35
36 propagatedBuildInputs = [
37 niapy
38 numpy
39 scikit-learn
40 torch
41 ];
42
43 # create niapy and torch dep version consistent
44 preBuild = ''
45 toml-adapt -path pyproject.toml -a change -dep niapy -ver X
46 toml-adapt -path pyproject.toml -a change -dep torch -ver X
47 '';
48
49 nativeCheckInputs = [
50 pytestCheckHook
51 tomli
52 ];
53
54 pythonImportsCheck = [ "nianet" ];
55
56 meta = with lib; {
57 description = "Designing and constructing neural network topologies using nature-inspired algorithms";
58 homepage = "https://github.com/SasoPavlic/NiaNet";
59 changelog = "https://github.com/SasoPavlic/NiaNet/releases/tag/v${version}";
60 license = licenses.mit;
61 maintainers = with maintainers; [ firefly-cpp ];
62 };
63}