From 2aaa09c7f0953c71a2d87f406562345e655aaef3 Mon Sep 17 00:00:00 2001 From: kilianar Date: Mon, 18 Nov 2024 22:27:48 +0100 Subject: [PATCH] python3Packages.qiskit: 2.1.1 -> 2.2.3 https://github.com/Qiskit/qiskit/releases/tag/2.2.3 --- .../python-modules/qiskit/default.nix | 121 +++++++++++------- 1 file changed, 78 insertions(+), 43 deletions(-) diff --git a/pkgs/development/python-modules/qiskit/default.nix b/pkgs/development/python-modules/qiskit/default.nix index b40d0c27b933..5946b6d7ec93 100644 --- a/pkgs/development/python-modules/qiskit/default.nix +++ b/pkgs/development/python-modules/qiskit/default.nix @@ -1,76 +1,111 @@ { + stdenv, lib, pythonOlder, buildPythonPackage, fetchFromGitHub, + cargo, + rustPlatform, + rustc, + libiconv, - # build-system + dill, + matplotlib, + numpy, + pillow, + pydot, + pylatexenc, + python-constraint, + rustworkx, + scipy, + seaborn, setuptools, - - # Python Inputs - qiskit-aer, - qiskit-ibmq-provider, - qiskit-ignis, - qiskit-terra, - # Optional inputs - withOptionalPackages ? true, - qiskit-finance, - qiskit-machine-learning, - qiskit-nature, - qiskit-optimization, - # Check Inputs - pytestCheckHook, + setuptools-rust, + stevedore, + symengine, + sympy, + typing-extensions, + z3-solver, }: -let - optionalQiskitPackages = [ - qiskit-finance - qiskit-machine-learning - qiskit-nature - qiskit-optimization - ]; -in buildPythonPackage rec { pname = "qiskit"; - # NOTE: This version denotes a specific set of subpackages. See https://qiskit.org/documentation/release_notes.html#version-history - version = "2.1.1"; + version = "2.2.3"; pyproject = true; - disabled = pythonOlder "3.6"; + disabled = pythonOlder "3.9"; src = fetchFromGitHub { owner = "Qiskit"; repo = "qiskit"; tag = version; - hash = "sha256-WHfsl/T4lmnvkGY7gF5PStilGq3G66TZG9oB1tKwuOQ="; + hash = "sha256-4FniNQghcbWHYkjIhaUXL6QqqIS6dA4LjgOCk9znFOM="; }; - nativeBuildInputs = [ setuptools ]; + nativeBuildInputs = [ + cargo + rustc + rustPlatform.cargoSetupHook + ]; - propagatedBuildInputs = [ - qiskit-aer - qiskit-ibmq-provider - qiskit-ignis - qiskit-terra - ] - ++ lib.optionals withOptionalPackages optionalQiskitPackages; + build-system = [ + setuptools + setuptools-rust + ]; - nativeCheckInputs = [ pytestCheckHook ]; + buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ]; + + cargoDeps = rustPlatform.fetchCargoVendor { + inherit src pname version; + hash = "sha256-61DPuefMnTlYJCCO7YQw6+mfMM20xlS/nY0DI6beo4s="; + }; + + dependencies = [ + dill + numpy + rustworkx + scipy + stevedore + typing-extensions + ]; + + optional-dependencies = { + visualization = [ + matplotlib + pillow + pydot + pylatexenc + seaborn + sympy + ]; + crosstalk-pass = [ + z3-solver + ]; + csp-layout-pass = [ + python-constraint + ]; + qpy-compat = [ + symengine + sympy + ]; + }; pythonImportsCheck = [ "qiskit" "qiskit.circuit" - "qiskit.ignis" - "qiskit.providers.aer" - "qiskit.providers.ibmq" + "qiskit.providers.basic_provider" ]; - meta = with lib; { + meta = { description = "Software for developing quantum computing programs"; - homepage = "https://qiskit.org"; + longDescription = '' + Open-source SDK for working with quantum computers at the level of + extended quantum circuits, operators, and primitives. + ''; + homepage = "https://www.ibm.com/quantum/qiskit"; downloadPage = "https://github.com/QISKit/qiskit/releases"; - changelog = "https://qiskit.org/documentation/release_notes.html"; - license = licenses.asl20; + changelog = "https://docs.quantum.ibm.com/api/qiskit/release-notes"; + license = lib.licenses.asl20; maintainers = [ ]; }; }