Files
nixpkgs/pkgs/development/python-modules/cirq-core/default.nix
2026-08-19 18:39:46 +02:00

108 lines
2.2 KiB
Nix

{
lib,
stdenv,
attrs,
autoray ? null,
buildPythonPackage,
duet,
fetchFromGitHub,
freezegun,
matplotlib,
networkx,
numpy,
opt-einsum,
pandas,
ply,
pylatex ? null,
pyquil ? null,
pytest-asyncio,
pytest-benchmark,
pytestCheckHook,
quimb ? null,
requests,
scipy,
setuptools,
sortedcontainers,
sympy,
tqdm,
typing-extensions,
withContribRequires ? false,
}:
buildPythonPackage (finalAttrs: {
pname = "cirq-core";
version = "1.7.0";
pyproject = true;
src = fetchFromGitHub {
owner = "quantumlib";
repo = "cirq";
tag = "v${finalAttrs.version}";
hash = "sha256-OAyBYzMEFyVMlxN5UjrKk1x2rSayLyAIAC5h96JeqK0=";
};
sourceRoot = "${finalAttrs.src.name}/${finalAttrs.pname}";
pythonRelaxDeps = [ "matplotlib" ];
build-system = [ setuptools ];
dependencies = [
attrs
duet
matplotlib
networkx
numpy
pandas
requests
scipy
sortedcontainers
sympy
tqdm
typing-extensions
]
++ lib.optionals withContribRequires [
autoray
opt-einsum
ply
pylatex
pyquil
quimb
];
nativeCheckInputs = [
freezegun
pytest-asyncio
pytest-benchmark
pytestCheckHook
];
disabledTestPaths = lib.optionals (!withContribRequires) [
# Requires external (unpackaged) libraries, so untested
"cirq/contrib/"
# No need to test the version number
"cirq/_version_test.py"
];
disabledTests = [
# Assertion error
"test_parameterized_cphase"
]
++ lib.optionals stdenv.hostPlatform.isAarch64 [
# https://github.com/quantumlib/Cirq/issues/5924
"test_prepare_two_qubit_state_using_sqrt_iswap"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# test_scalar_division[scalar9-terms9-terms_expected9] result differs in the final digit
"test_scalar_division"
];
meta = {
description = "Framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits";
homepage = "https://github.com/quantumlib/cirq";
changelog = "https://github.com/quantumlib/Cirq/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ fab ];
};
})