Skip to main content

Quantum circuit analysis and structured feature extraction tools.

Project description

qCoder

qCoder helps developers inspect quantum circuits before they run them. It reads OpenQASM circuits, extracts repeatable structural features, and emits structured JSON (single file) or JSONL (batches)—useful for notebooks, CI, pull-request review, and AI coding assistants when you attach or paste deterministic context next to circuit text.

CLI: qcoder analyze, qcoder batch, qcoder context, and qcoder review. Optional Qiskit / Cirq / PennyLane intake (structure/export only, no simulator or hardware execution): pip install "qcoder[qiskit]", pip install "qcoder[cirq]", pip install "qcoder[pennylane]".

Company / legal: Quantum Ready Solutions. Product docs: qcoder.ai · manual. Source: github.com/QuantumReadySolutions/qCoder. Support: support@qcoder.ai.

What qCoder analyzes

qCoder summarizes circuit structure from declarations in your source files. Pair its JSON output with simulator or hardware run data whenever you need execution evidence.

Package layout (supported public surface)

For this release, treat the supported surface as:

  • qcoder analyze — single-circuit extraction (human or --json).
  • qcoder batch — directory batch to JSONL.
  • Optional --guidance on analyze / batch — deterministic heuristic starting points (shots and simulator/MPS settings) derived from circuit structure.
  • qcoder context — deterministic preflight context artifacts (JSON + Markdown), including optional --guidance and optional --full-features glossary appendix.
  • qcoder review — deterministic post-run review artifacts (JSON + Markdown) from user-provided counts.
  • Counts intake normalizationqcoder.counts.v0 and qiskit_counts normalization into the same deterministic review path.
  • qcoder[qiskit] — optional QuantumCircuit intake into the same extractor as OpenQASM.
  • qcoder[cirq] — optional Cirq Circuit intake into the same extractor as OpenQASM.
  • qcoder[pennylane] — optional PennyLane circuit intake into the same extractor as OpenQASM.
  • Documented feature output — see qcoder.ai — Feature reference and engines/feature_extraction/features/schema_v0.py; JSON carries a schema_version alongside named fields.

Other modules under src/qcoder may exist for prototyping (extra tooling or engines outside the commands above). Unless documented here, docs/, or qcoder.ai, they do not share the same stability expectations as the commands and artifact formats listed above.

Brief notes live in docs/architecture.md.

Install

pip install qcoder

Pre-release lines on PyPI use segments such as 0.3.0a1.

Optional Qiskit adapter:

pip install "qcoder[qiskit]"

Optional Cirq adapter:

pip install "qcoder[cirq]"

Optional PennyLane adapter:

pip install "qcoder[pennylane]"

Requires Python 3.11+. Runtime dependency: NumPy.

Machine-readable JSON from qcoder analyze --json includes a derived feature_map object (name → value) for easier reading. The canonical circuit feature bundle remains the nested features object (schema_version, feature_names, features).

Optional --guidance adds heuristic shot-count and simulator/MPS starting-point suggestions derived from structural features. These suggestions are transparent, non-guaranteed starting points only; qCoder performs no backend execution and includes no telemetry/upload in this flow.

qcoder context and qcoder review generate deterministic local artifacts (JSON + Markdown) intended for user-controlled AI-assisted planning/review workflows. "LLM-ready/RAG-ready" in this project means users can attach or paste these artifacts manually; qCoder itself performs no retrieval, embeddings, network calls, or telemetry/upload in this flow.

The optional Qiskit, Cirq, and PennyLane adapters are structure/export intake paths only. qCoder does not execute simulators or hardware backends in these flows.

CLI quickstart

qcoder analyze path/to/circuit.qasm
qcoder analyze path/to/circuit.qasm --json
qcoder analyze path/to/circuit.qasm --json --guidance
qcoder context path/to/circuit.qasm --out-json preflight.context.json --out-md preflight.context.md --guidance
qcoder batch circuits --out batch.features.jsonl --pattern "*.qasm"
qcoder batch circuits --out batch.features.jsonl --pattern "*.qasm" --guidance
qcoder review --counts-json counts.json --format qiskit_counts --preflight-json preflight.context.json --out-json execution.review.json --out-md execution.review.md

Batch: JSONL records are written to --out. Status lines (for example record counts) may go to stderr, so prefer --out over shell stdout redirection for the JSONL stream.

Develop / test (from a clone)

If you use pyenv, select the intended Python before creating the venv (for example pyenv local 3.11.x or pyenv shell 3.11.x) so python -m venv uses that interpreter.

python -m venv .venv
source .venv/bin/activate
pip install -e ".[qiskit]"
pip install pytest
pytest -q

License

Licensed under the Apache License 2.0. See LICENSE and NOTICE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qcoder-0.3.0a1.tar.gz (123.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qcoder-0.3.0a1-py3-none-any.whl (117.3 kB view details)

Uploaded Python 3

File details

Details for the file qcoder-0.3.0a1.tar.gz.

File metadata

  • Download URL: qcoder-0.3.0a1.tar.gz
  • Upload date:
  • Size: 123.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for qcoder-0.3.0a1.tar.gz
Algorithm Hash digest
SHA256 6db7546d6ee7a519cf8a532fabeb30923b03bfb482d9741a6935d04808f6b40a
MD5 f6009a7335273b496b685bd0c2b7cedc
BLAKE2b-256 f3c8efa7437767c645891f2522ab46b3ccfa5603c2c28fee74c39094330d935a

See more details on using hashes here.

File details

Details for the file qcoder-0.3.0a1-py3-none-any.whl.

File metadata

  • Download URL: qcoder-0.3.0a1-py3-none-any.whl
  • Upload date:
  • Size: 117.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for qcoder-0.3.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 b89352e3faa7dd06671e624c95f8f4851b256055c08cb25dc66a405dffa65370
MD5 81d5a39670771f4229610e6cf1fe59b6
BLAKE2b-256 8ddabaed6b2e622fdae94738008b7dd4fc1be563e016b4e1d33d3b99e93f9e0d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page