quantum-starter-lab


Namequantum-starter-lab JSON
Version 0.1.5 PyPI version JSON
download
home_pageNone
SummaryA Python package for quantum computing demos, simulations, and NISQ research tools.
upload_time2025-08-09 19:36:44
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/4d/96/bc2269bf4017e61443a03a62b5c4d6943ffed53fca553636ea50b6dc2164/quantum_starter_lab-0.1.5.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.5",
    "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": "f358fa8d11d9fdf747ac675dee8cbd42e0b0bb415a267cbdf2b1e10cb1a654dd",
                "md5": "0bca4c5bc679edbab102ff12fd4b6f48",
                "sha256": "5db998cfcb5423c8653c423f15a7f80655ac77d0c71a12f8ed8c6b4281336a47"
            },
            "downloads": -1,
            "filename": "quantum_starter_lab-0.1.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0bca4c5bc679edbab102ff12fd4b6f48",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 30720,
            "upload_time": "2025-08-09T19:36:42",
            "upload_time_iso_8601": "2025-08-09T19:36:42.861428Z",
            "url": "https://files.pythonhosted.org/packages/f3/58/fa8d11d9fdf747ac675dee8cbd42e0b0bb415a267cbdf2b1e10cb1a654dd/quantum_starter_lab-0.1.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4d96bc2269bf4017e61443a03a62b5c4d6943ffed53fca553636ea50b6dc2164",
                "md5": "240853cc0ad9498045145d23116f47ed",
                "sha256": "9b89244f79aede587a1d491ea804406653b22afa83a08460efb72a43af17ddfb"
            },
            "downloads": -1,
            "filename": "quantum_starter_lab-0.1.5.tar.gz",
            "has_sig": false,
            "md5_digest": "240853cc0ad9498045145d23116f47ed",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 137864,
            "upload_time": "2025-08-09T19:36:44",
            "upload_time_iso_8601": "2025-08-09T19:36:44.553433Z",
            "url": "https://files.pythonhosted.org/packages/4d/96/bc2269bf4017e61443a03a62b5c4d6943ffed53fca553636ea50b6dc2164/quantum_starter_lab-0.1.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-09 19:36:44",
    "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: 0.51482s