From 99c2602b7cf4e5b9d61aa5dd76e4a28def12ff2d Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Mon, 12 Jan 2026 10:39:27 -0500 Subject: initial --- flake.lock | 61 +++++++++++++++++++++++++++++++ flake.nix | 50 ++++++++++++++++++++++++++ pkgs/default.nix | 7 ++++ pkgs/ibm-platform-services/default.nix | 45 +++++++++++++++++++++++ pkgs/qiskit-ibm-provider/default.nix | 64 +++++++++++++++++++++++++++++++++ pkgs/qiskit-ibm-runtime/default.nix | 66 ++++++++++++++++++++++++++++++++++ 6 files changed, 293 insertions(+) create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 pkgs/default.nix create mode 100644 pkgs/ibm-platform-services/default.nix create mode 100644 pkgs/qiskit-ibm-provider/default.nix create mode 100644 pkgs/qiskit-ibm-runtime/default.nix diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..6d0ac08 --- /dev/null +++ b/flake.lock @@ -0,0 +1,61 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1767892417, + "narHash": "sha256-dhhvQY67aboBk8b0/u0XB6vwHdgbROZT3fJAjyNh5Ww=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..c12d3f7 --- /dev/null +++ b/flake.nix @@ -0,0 +1,50 @@ +{ + description = "python packagessssssss"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = { + nixpkgs, + flake-utils, + ... + }: let + supportedSystems = let + inherit (flake-utils.lib) system; + in [ + system.aarch64-linux + system.x86_64-linux + ]; + in + flake-utils.lib.eachSystem supportedSystems (system: let + pkgs = import nixpkgs {inherit system;}; + in rec { + packages = import ./pkgs { + inherit pkgs; + }; + + devShell = let + in + pkgs.mkShell + { + packages = with pkgs.python3Packages; + with packages; [ + numpy + scipy + pandas + matplotlib + qiskit + qiskit-ibm-runtime + qiskit-ibm-provider + seaborn + pylatexenc + qiskit-aer + python + ]; + }; + + formatter = pkgs.alejandra; + }); +} diff --git a/pkgs/default.nix b/pkgs/default.nix new file mode 100644 index 0000000..58c22a1 --- /dev/null +++ b/pkgs/default.nix @@ -0,0 +1,7 @@ +{pkgs}: let + inherit (pkgs.python3Packages) callPackage; +in rec { + ibm-platform-services = callPackage ./ibm-platform-services {}; + qiskit-ibm-provider = callPackage ./qiskit-ibm-provider {}; + qiskit-ibm-runtime = callPackage ./qiskit-ibm-runtime {inherit ibm-platform-services;}; +} diff --git a/pkgs/ibm-platform-services/default.nix b/pkgs/ibm-platform-services/default.nix new file mode 100644 index 0000000..60d7736 --- /dev/null +++ b/pkgs/ibm-platform-services/default.nix @@ -0,0 +1,45 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pybind11, + scikit-build, + ibm-cloud-sdk-core, +}: +buildPythonPackage rec { + pname = "ibm-platform-services"; + version = "0.72.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "IBM"; + repo = "platform-services-python-sdk"; + tag = "v${version}"; + hash = "sha256-QxoyRH82Q7bxBK26XwS4oE7mJG2qh8/cpByKcS6rmQc="; + }; + + dontUseCmakeConfigure = true; + + nativeBuildInputs = [ + #cmake + #ninja + ]; + + build-system = [ + pybind11 + scikit-build + ]; + + dependencies = [ + ibm-cloud-sdk-core + ]; + + doCheck = false; + + meta = { + description = "Python client library for IBM Cloud Platform Services"; + homepage = "https://github.com/IBM/platform-services-python-sdk"; + license = lib.licenses.asl20; + maintainers = []; + }; +} diff --git a/pkgs/qiskit-ibm-provider/default.nix b/pkgs/qiskit-ibm-provider/default.nix new file mode 100644 index 0000000..8adc785 --- /dev/null +++ b/pkgs/qiskit-ibm-provider/default.nix @@ -0,0 +1,64 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pybind11, + scikit-build, + qiskit, + python-dateutil, + requests, + requests-ntlm, + websockets, + websocket-client, +}: +buildPythonPackage rec { + pname = "qiskit-ibm-provider"; + version = "0.11.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "Qiskit"; + repo = "qiskit-ibm-provider"; + tag = version; + hash = "sha256-voIyx57airfbi9TTMqWAgnQ3IkvvtKkDMir7J22Cis8="; + }; + + dontUseCmakeConfigure = true; + + # build fails even if setting DISABLE_CONAN flag + postPatch = '' + sed -i -e '/conan/d' pyproject.toml + ''; + + nativeBuildInputs = [ + #cmake + #ninja + ]; + + build-system = [ + pybind11 + scikit-build + ]; + + dependencies = [ + qiskit + requests + requests-ntlm + python-dateutil + websockets + websocket-client + ]; + + preBuild = '' + export DISABLE_CONAN=ON + ''; + + doCheck = false; + + meta = { + description = "Qiskit Provider for accessing the IBM Quantum Services: Online Systems and Simulators "; + homepage = "https://github.com/Qiskit/qiskit-ibm-provider"; + license = lib.licenses.asl20; + maintainers = []; + }; +} diff --git a/pkgs/qiskit-ibm-runtime/default.nix b/pkgs/qiskit-ibm-runtime/default.nix new file mode 100644 index 0000000..51f7f7d --- /dev/null +++ b/pkgs/qiskit-ibm-runtime/default.nix @@ -0,0 +1,66 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pybind11, + scikit-build, + setuptools-scm, + qiskit, + python-dateutil, + requests, + requests-ntlm, + pydantic, + ibm-platform-services, +}: +buildPythonPackage rec { + pname = "qiskit-ibm-runtime"; + version = "0.45.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "Qiskit"; + repo = "qiskit-ibm-runtime"; + tag = version; + hash = "sha256-JnQH8IWaUemer9c6aaaTtCkQXW3x4Pe32aLXxHhiRTg="; + }; + + dontUseCmakeConfigure = true; + + # build fails even if setting DISABLE_CONAN flag + postPatch = '' + sed -i -e '/conan/d' pyproject.toml + ''; + + nativeBuildInputs = [ + #cmake + #ninja + ]; + + build-system = [ + pybind11 + scikit-build + setuptools-scm + ]; + + dependencies = [ + qiskit + requests + requests-ntlm + python-dateutil + pydantic + ibm-platform-services + ]; + + preBuild = '' + export DISABLE_CONAN=ON + ''; + + doCheck = false; + + meta = { + description = "IBM Client for Qiskit Runtime "; + homepage = "https://github.com/Qiskit/qiskit-ibm-runtime"; + license = lib.licenses.asl20; + maintainers = []; + }; +} -- cgit v1.2.3-freya