1{ lib
2, ase
3, buildPythonPackage
4, cython
5, datamodeldict
6, fetchFromGitHub
7, matplotlib
8, numericalunits
9, numpy
10, pandas
11, phonopy
12, potentials
13, pymatgen
14, pytestCheckHook
15, pythonOlder
16, requests
17, scipy
18, setuptools
19, toolz
20, wheel
21, xmltodict
22, pythonRelaxDepsHook
23}:
24
25buildPythonPackage rec {
26 version = "unstable-2023-07-28";
27 pname = "atomman";
28 format = "pyproject";
29
30 disabled = pythonOlder "3.7";
31
32 src = fetchFromGitHub {
33 owner = "usnistgov";
34 repo = "atomman";
35 rev = "b8af21a9285959d38ee26173081db1b4488401bc";
36 hash = "sha256-WfB+OY61IPprT6OCVHl8VA60p7lLVkRGuyYX+nm7bbA=";
37 };
38
39 nativeBuildInputs = [
40 setuptools
41 wheel
42 pythonRelaxDepsHook
43 ];
44
45 propagatedBuildInputs = [
46 cython
47 datamodeldict
48 matplotlib
49 numericalunits
50 numpy
51 pandas
52 potentials
53 requests
54 scipy
55 toolz
56 xmltodict
57 ];
58
59 pythonRelaxDeps = [ "potentials" ];
60
61 preCheck = ''
62 # By default, pytestCheckHook imports atomman from the current directory
63 # instead of from where `pip` installs it and fails due to missing Cython
64 # modules. Fix this by removing atomman from the current directory.
65 #
66 rm -r atomman
67 '';
68
69 nativeCheckInputs = [
70 ase
71 phonopy
72 pymatgen
73 pytestCheckHook
74 ];
75
76 disabledTests = [
77 "test_unique_shifts_prototype" # needs network access to download database files
78 ];
79
80 pythonImportsCheck = [
81 "atomman"
82 ];
83
84 meta = with lib; {
85 description = "Atomistic Manipulation Toolkit";
86 homepage = "https://github.com/usnistgov/atomman/";
87 license = licenses.mit;
88 maintainers = with maintainers; [ ];
89 };
90}