quantum-starter-lab


Namequantum-starter-lab JSON
Version 0.1.6 PyPI version JSON
download
home_pageNone
SummaryA Python package for quantum computing demos, simulations, and NISQ research tools.
upload_time2025-08-15 18:10:46
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseApache-2.0
keywords cirq education nisq qiskit quantum algorithms quantum computing research simulation
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # quantum-starter-lab

[![PyPI version](https://img.shields.io/pypi/v/quantum-starter-lab.svg)](https://pypi.org/project/quantum-starter-lab/)
[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![GitHub issues](https://img.shields.io/github/issues/Pranava-Kumar/quantum-starter-lab)](https://github.com/Pranava-Kumar/quantum-starter-lab/issues)
[![GitHub stars](https://img.shields.io/github/stars/Pranava-Kumar/quantum-starter-lab)](https://github.com/Pranava-Kumar/quantum-starter-lab/stargazers)

This package abstracts complex quantum frameworks, making it easy to experiment with entanglement, superposition, and more—perfect for students, educators, and researchers exploring noisy intermediate-scale quantum (NISQ) applications without building everything from scratch.

## Features:

Easy-to-Use API: Run quantum demos with minimal code.

Multiple Backends: Supports Qiskit Aer and Cirq Simulator (with plans for real hardware integration).

Noise Simulation: Apply realistic noise models (bit-flip, depolarizing, amplitude damping) to study error effects.

Visualization: Built-in plotting for circuit diagrams and result histograms.

Reproducibility: Seed support for consistent results.

Extensible: Modular IR (Intermediate Representation) for custom circuits.

Research Tools: Export results to JSON/CSV for analysis; upcoming VQE and QAOA for optimization studies.

Cross-Platform: Works on Windows, macOS, and Linux.

# Installation:

You can install quantum-starter-lab from PyPI using pip or uv (recommended for faster installs).

## Using uv (Preferred)
uv is a fast Python package manager.

uv venv  # Create a virtual environment

.venv\Scripts\activate  # Activate on Windows (or source .venv/bin/activate on Unix)

uv pip install quantum-starter-lab

## Using pip

python -m venv .venv

.venv\Scripts\activate

pip install quantum-starter-lab

# Development Installation

## Clone the repo and install in editable mode for contributing:

git clone https://github.com/Pranava-Kumar/quantum-starter-lab.git

cd quantum-starter-lab

uv venv

.venv\Scripts\activate

uv sync --all-extras --dev

uv pip install -e .

Requirements: Python >=3.10, Qiskit, Cirq, Matplotlib, NumPy.

# Quick Start
## After installation, run a simple demo:

from quantum_starter_lab.api import make_bell

### Run the Bell state demo

results = make_bell(backend="qiskit.aer", seed=42)

print(results)  # Prints explanation, counts, and probabilities

results.plot()  # Displays circuit and histogram


## Example Usage

Here's a complete script testing multiple functions (save as test_quantum_lab.py and run with uv run python test_quantum_lab.py):

import math

from quantum_starter_lab.api import make_bell, deutsch_jozsa, bernstein_vazirani, grover, teleportation

SEED = 42

BACKEND = "qiskit.aer"

### Bell state with noise

results_bell = make_bell(backend=BACKEND, noise_name="depolarizing", p=0.05, seed=SEED)

print("Bell Results:", results_bell)

results_bell.plot()  # View plot

### Deutsch-Jozsa

results_dj = deutsch_jozsa(n_qubits=3, oracle_type="balanced", backend=BACKEND, seed=SEED)

print("DJ Results:", results_dj)

### Bernstein-Vazirani

results_bv = bernstein_vazirani(n_qubits=4, secret_string="1011", backend=BACKEND, seed=SEED)

print("BV Results:", results_bv)

### Grover's search

results_grover = grover(n_qubits=3, marked_item="110", backend=BACKEND, seed=SEED)

print("Grover Results:", results_grover)

### Teleportation

results_tele = teleportation(initial_state_angle=math.pi, backend=BACKEND, seed=SEED)  # Teleport |1>

print("Teleportation Results:", results_tele)

Expected output includes printed results and plots for each demo.

### For research workflows, export data:

results.export_data("results.json")  # Upcoming feature in v0.2.0 

# Setup and Development

Virtual Environment: Use uv or venv as shown in Installation.

Running Tests: After development install, run make test (requires Makefile from repo).

Linting: make lint to check code style.

Building and Publishing: Use uv build and your GitHub workflow for releases.

For real hardware, install extras: uv pip install qiskit-ibm-provider and pass backend="ibm_q".

# Roadmap
v0.2.0: Enhanced parameters and data export.

v0.3.0: VQE and QAOA for research.

v1.0.0: Real hardware support and community contributions.

# Contributing
We welcome contributions! To get started:

Fork the repo.

Create a feature branch (git checkout -b feature/new-demo).

Commit changes (git commit -m "Add VQE function").

Push (git push origin feature/new-demo).

Open a Pull Request.

## See CONTRIBUTING.md for details. Report issues or suggest features on GitHub Issues.

# License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

## Acknowledgments
### Built with Qiskit and Cirq.
### Inspired by quantum education resources from IBM and Google.

# Contact
Author: Pranava Kumar (pranavakumar.it@gmail.com)

Project Link: https://github.com/Pranava-Kumar/quantum-starter-lab

For questions or collaboration, open an issue or reach out!

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "quantum-starter-lab",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "cirq, education, nisq, qiskit, quantum algorithms, quantum computing, research, simulation",
    "author": null,
    "author_email": "Pranava Kumar <pranavakumar.it@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/32/ad/3335946eb1e523bac1058c067d3f0ac7b58d86d17114b4c98fedf6656495/quantum_starter_lab-0.1.6.tar.gz",
    "platform": null,
    "description": "# quantum-starter-lab\n\n[![PyPI version](https://img.shields.io/pypi/v/quantum-starter-lab.svg)](https://pypi.org/project/quantum-starter-lab/)\n[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![GitHub issues](https://img.shields.io/github/issues/Pranava-Kumar/quantum-starter-lab)](https://github.com/Pranava-Kumar/quantum-starter-lab/issues)\n[![GitHub stars](https://img.shields.io/github/stars/Pranava-Kumar/quantum-starter-lab)](https://github.com/Pranava-Kumar/quantum-starter-lab/stargazers)\n\nThis package abstracts complex quantum frameworks, making it easy to experiment with entanglement, superposition, and more\u2014perfect for students, educators, and researchers exploring noisy intermediate-scale quantum (NISQ) applications without building everything from scratch.\n\n## Features:\n\nEasy-to-Use API: Run quantum demos with minimal code.\n\nMultiple Backends: Supports Qiskit Aer and Cirq Simulator (with plans for real hardware integration).\n\nNoise Simulation: Apply realistic noise models (bit-flip, depolarizing, amplitude damping) to study error effects.\n\nVisualization: Built-in plotting for circuit diagrams and result histograms.\n\nReproducibility: Seed support for consistent results.\n\nExtensible: Modular IR (Intermediate Representation) for custom circuits.\n\nResearch Tools: Export results to JSON/CSV for analysis; upcoming VQE and QAOA for optimization studies.\n\nCross-Platform: Works on Windows, macOS, and Linux.\n\n# Installation:\n\nYou can install quantum-starter-lab from PyPI using pip or uv (recommended for faster installs).\n\n## Using uv (Preferred)\nuv is a fast Python package manager.\n\nuv venv  # Create a virtual environment\n\n.venv\\Scripts\\activate  # Activate on Windows (or source .venv/bin/activate on Unix)\n\nuv pip install quantum-starter-lab\n\n## Using pip\n\npython -m venv .venv\n\n.venv\\Scripts\\activate\n\npip install quantum-starter-lab\n\n# Development Installation\n\n## Clone the repo and install in editable mode for contributing:\n\ngit clone https://github.com/Pranava-Kumar/quantum-starter-lab.git\n\ncd quantum-starter-lab\n\nuv venv\n\n.venv\\Scripts\\activate\n\nuv sync --all-extras --dev\n\nuv pip install -e .\n\nRequirements: Python >=3.10, Qiskit, Cirq, Matplotlib, NumPy.\n\n# Quick Start\n## After installation, run a simple demo:\n\nfrom quantum_starter_lab.api import make_bell\n\n### Run the Bell state demo\n\nresults = make_bell(backend=\"qiskit.aer\", seed=42)\n\nprint(results)  # Prints explanation, counts, and probabilities\n\nresults.plot()  # Displays circuit and histogram\n\n\n## Example Usage\n\nHere's a complete script testing multiple functions (save as test_quantum_lab.py and run with uv run python test_quantum_lab.py):\n\nimport math\n\nfrom quantum_starter_lab.api import make_bell, deutsch_jozsa, bernstein_vazirani, grover, teleportation\n\nSEED = 42\n\nBACKEND = \"qiskit.aer\"\n\n### Bell state with noise\n\nresults_bell = make_bell(backend=BACKEND, noise_name=\"depolarizing\", p=0.05, seed=SEED)\n\nprint(\"Bell Results:\", results_bell)\n\nresults_bell.plot()  # View plot\n\n### Deutsch-Jozsa\n\nresults_dj = deutsch_jozsa(n_qubits=3, oracle_type=\"balanced\", backend=BACKEND, seed=SEED)\n\nprint(\"DJ Results:\", results_dj)\n\n### Bernstein-Vazirani\n\nresults_bv = bernstein_vazirani(n_qubits=4, secret_string=\"1011\", backend=BACKEND, seed=SEED)\n\nprint(\"BV Results:\", results_bv)\n\n### Grover's search\n\nresults_grover = grover(n_qubits=3, marked_item=\"110\", backend=BACKEND, seed=SEED)\n\nprint(\"Grover Results:\", results_grover)\n\n### Teleportation\n\nresults_tele = teleportation(initial_state_angle=math.pi, backend=BACKEND, seed=SEED)  # Teleport |1>\n\nprint(\"Teleportation Results:\", results_tele)\n\nExpected output includes printed results and plots for each demo.\n\n### For research workflows, export data:\n\nresults.export_data(\"results.json\")  # Upcoming feature in v0.2.0 \n\n# Setup and Development\n\nVirtual Environment: Use uv or venv as shown in Installation.\n\nRunning Tests: After development install, run make test (requires Makefile from repo).\n\nLinting: make lint to check code style.\n\nBuilding and Publishing: Use uv build and your GitHub workflow for releases.\n\nFor real hardware, install extras: uv pip install qiskit-ibm-provider and pass backend=\"ibm_q\".\n\n# Roadmap\nv0.2.0: Enhanced parameters and data export.\n\nv0.3.0: VQE and QAOA for research.\n\nv1.0.0: Real hardware support and community contributions.\n\n# Contributing\nWe welcome contributions! To get started:\n\nFork the repo.\n\nCreate a feature branch (git checkout -b feature/new-demo).\n\nCommit changes (git commit -m \"Add VQE function\").\n\nPush (git push origin feature/new-demo).\n\nOpen a Pull Request.\n\n## See CONTRIBUTING.md for details. Report issues or suggest features on GitHub Issues.\n\n# License\nThis project is licensed under the Apache License 2.0 - see the LICENSE file for details.\n\n## Acknowledgments\n### Built with Qiskit and Cirq.\n### Inspired by quantum education resources from IBM and Google.\n\n# Contact\nAuthor: Pranava Kumar (pranavakumar.it@gmail.com)\n\nProject Link: https://github.com/Pranava-Kumar/quantum-starter-lab\n\nFor questions or collaboration, open an issue or reach out!\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "A Python package for quantum computing demos, simulations, and NISQ research tools.",
    "version": "0.1.6",
    "project_urls": {
        "Changelog": "https://github.com/Pranava-Kumar/quantum-starter-lab/blob/main/RELEASE_NOTES.md",
        "Documentation": "https://pranava-kumar.github.io/quantum-starter-lab",
        "Repository": "https://github.com/Pranava-Kumar/quantum-starter-lab"
    },
    "split_keywords": [
        "cirq",
        " education",
        " nisq",
        " qiskit",
        " quantum algorithms",
        " quantum computing",
        " research",
        " simulation"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5374ac69af581aba502f33304cbcc993a3f80a4e6b08dcbaa8b6ca2b076be7e9",
                "md5": "9c81ccab5d5c3dadc02ad18fd327535b",
                "sha256": "707d7b5105150cdce0a3495ba7e9b9f53655dc448d5353132c84f5f84ff55729"
            },
            "downloads": -1,
            "filename": "quantum_starter_lab-0.1.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9c81ccab5d5c3dadc02ad18fd327535b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 33753,
            "upload_time": "2025-08-15T18:10:44",
            "upload_time_iso_8601": "2025-08-15T18:10:44.843988Z",
            "url": "https://files.pythonhosted.org/packages/53/74/ac69af581aba502f33304cbcc993a3f80a4e6b08dcbaa8b6ca2b076be7e9/quantum_starter_lab-0.1.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "32ad3335946eb1e523bac1058c067d3f0ac7b58d86d17114b4c98fedf6656495",
                "md5": "e0f2543023412d1fb76938339d65a9c1",
                "sha256": "bf43b017784d975f163133e94099b01b84365633c76318f439a468e19504133b"
            },
            "downloads": -1,
            "filename": "quantum_starter_lab-0.1.6.tar.gz",
            "has_sig": false,
            "md5_digest": "e0f2543023412d1fb76938339d65a9c1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 147966,
            "upload_time": "2025-08-15T18:10:46",
            "upload_time_iso_8601": "2025-08-15T18:10:46.235852Z",
            "url": "https://files.pythonhosted.org/packages/32/ad/3335946eb1e523bac1058c067d3f0ac7b58d86d17114b4c98fedf6656495/quantum_starter_lab-0.1.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-15 18:10:46",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Pranava-Kumar",
    "github_project": "quantum-starter-lab",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "quantum-starter-lab"
}
        
Elapsed time: 2.88510s