1{ lib
2, pkgs
3, buildPythonPackage
4, pythonOlder
5, pytestCheckHook
6, pytest-xdist
7, fetchFromGitHub
8, numpy
9, pybind11
10, cirq-core
11, matplotlib
12, networkx
13, scipy
14, pandas
15}:
16
17buildPythonPackage rec {
18 pname = "stim";
19 version = "1.9.0";
20 format = "pyproject";
21
22 disabled = pythonOlder "3.6";
23
24 src = pkgs.fetchFromGitHub {
25 owner = "quantumlib";
26 repo = "Stim";
27 rev = "refs/tags/v${version}";
28 sha256 = "sha256-zXWdJjFkf74FCWxyVMF8dx0P8GmUkuHFxUo5wYNU2o0=";
29 };
30
31 propagatedBuildInputs = [
32 numpy
33 pybind11
34 ];
35
36 checkInputs = [
37 pytestCheckHook
38 pytest-xdist
39
40 cirq-core
41 matplotlib
42 networkx
43 scipy
44 pandas
45 ];
46
47 meta = {
48 description = "A tool for high performance simulation and analysis of quantum stabilizer circuits, especially quantum error correction (QEC) circuits.";
49 license = lib.licenses.asl20;
50 maintainers = with lib.maintainers; [ chrispattison ];
51 homepage = "https://github.com/quantumlib/stim";
52 };
53
54 pythonImportsCheck = [ "stim" ];
55
56 enableParallelBuilding = true;
57
58 disabledTestPaths = [
59 # No pymatching
60 "glue/sample/src/sinter/main_test.py"
61 "glue/sample/src/sinter/decoding_test.py"
62 "glue/sample/src/sinter/predict_test.py"
63 "glue/sample/src/sinter/collection_test.py"
64 "glue/sample/src/sinter/collection_work_manager.py"
65 "glue/sample/src/sinter/worker_test.py"
66 ];
67}