1{
2 stdenv,
3 buildPythonPackage,
4 lib,
5 fetchPypi,
6 poetry-core,
7 ipykernel,
8 networkx,
9 numpy,
10 packaging,
11 pint,
12 pydantic,
13 pytestCheckHook,
14 pythonOlder,
15 scipy,
16}:
17
18buildPythonPackage rec {
19 pname = "qcelemental";
20 version = "0.29.0";
21 pyproject = true;
22
23 disabled = pythonOlder "3.7";
24
25 src = fetchPypi {
26 inherit pname version;
27 hash = "sha256-v2NO5lLn2V6QbikZiVEyJCM7HXBcJq/qyG5FHzFrPAQ=";
28 };
29
30 build-system = [ poetry-core ];
31
32 dependencies = [
33 numpy
34 packaging
35 pint
36 pydantic
37 ];
38
39 optional-dependencies = {
40 viz = [
41 # TODO: nglview
42 ipykernel
43 ];
44 align = [
45 networkx
46 scipy
47 ];
48 };
49
50 nativeCheckInputs = [ pytestCheckHook ] ++ lib.flatten (lib.attrValues optional-dependencies);
51
52 pythonImportsCheck = [ "qcelemental" ];
53
54 meta = with lib; {
55 broken = stdenv.hostPlatform.isDarwin;
56 description = "Periodic table, physical constants and molecule parsing for quantum chemistry";
57 homepage = "https://github.com/MolSSI/QCElemental";
58 changelog = "https://github.com/MolSSI/QCElemental/blob/v${version}/docs/changelog.rst";
59 license = licenses.bsd3;
60 maintainers = with maintainers; [ sheepforce ];
61 };
62}