Continuous discovery, analysis, and opportunity engine for the quantum computing software ecosystem.
The WestQuant Quantum Package Radar is a permanent part of the WestQuant Open infrastructure. It continuously monitors PyPI and GitHub for new quantum computing packages, releases, repositories, features, and APIs — then analyzes each discovery to identify concrete opportunities for new WestQuant plugins, adapters, benchmarks, and training-data generators.
The radar does not just read release notes. Its primary purpose is to answer:
A new quantum feature was released. Can WestQuant use it? Do we already support it? Can we create a general interface? Can we generate training data from it? Can we benchmark it? Can this become a new WestQuant feature?
PyPI updates ───────┐
PyPI new packages ──┤
GitHub search ──────┤
GitHub releases ────┤
GitHub tags/commits ┤
▼
┌──────────────┐
│ INGEST ENGINE│
└──────┬───────┘
▼
Deduplicate / Normalize
│
▼
RELEVANCE FILTER
│
┌────────────┴─────────────┐
│ │
irrelevant relevant
│ ▼
archive DOWNLOAD / DIFF
│
▼
SECURITY SANDBOX
│
▼
CAPABILITY ANALYSIS
│
▼
WESTQUANT GAP MAP
│
┌────────────────┼───────────────┐
▼ ▼ ▼
Adapter Plugin Benchmark
│ │ │
▼ ▼ ▼
Data generator Optimizer hook Example
└────────────────┬───────────────┘
▼
OPPORTUNITY SCORE
│
▼
PROPOSE WESTQUANT PR
│
▼
Human approval
│
▼
Package / Release
- Beyond monitoring — The radar identifies opportunities, not just news
- Security first — All third-party code is untrusted; execution only in isolated sandbox
- Structured output — All analysis is JSON, suitable for ML training data
- Human approval — The radar generates proposals, never publishes without approval
- Self-updating ecosystem — Radar and WestQuant packages form a closed loop
Every discovery gets an opportunity score:
O = 0.25R + 0.20G + 0.20U + 0.15F + 0.10D + 0.10N
| Component | Meaning |
|---|---|
| R | Relevance to WestQuant |
| G | Capability gap |
| U | Estimated user value |
| F | Implementation feasibility |
| D | Training-data value |
| N | Novelty |
Action thresholds:
| Score | Action |
|---|---|
| 0.00–0.30 | Archive |
| 0.30–0.50 | Watch |
| 0.50–0.70 | Investigate |
| 0.70–0.85 | Prototype |
| 0.85–1.00 | Generate PR |
| Radar detects | WestQuant can create |
|---|---|
| New gate/operation | Wrapper + compatibility layer |
| New optimizer | WestQuant optimizer adapter |
| New transpiler | Representation-scheduling integration |
| New backend | Backend plugin |
| New QPU provider | Provider adapter |
| New simulator | Benchmark connector |
| New noise model | Noise-analysis plugin |
| New QEC method | QEC experiment adapter |
| New QML method | ML data generator |
| New circuit transform | WestQuant transformation primitive |
| Breaking API change | Compatibility patch |
| New benchmark | WestQuant benchmark implementation |
| New algorithm implementation | Training-data generator |
| New circuit representation | Representation scheduling candidate |
| Feature in one framework only | Cross-framework abstraction |
pip install westquant-radarFor development:
git clone https://github.com/WestQuantOpen/westquant-radar
cd westquant-radar
pip install -e ".[dev]"# Run with default config
westquant-radar run
# Run with custom config and GitHub token
westquant-radar run --config registry/config.yaml --github-token "$GITHUB_TOKEN"westquant-radar report --format markdown
westquant-radar report --format jsonwestquant-radar opportunities --limit 20All monitoring targets are configurable via YAML files in registry/:
| File | Purpose |
|---|---|
config.yaml |
Main configuration (scheduling, enablement) |
frameworks.yaml |
Quantum frameworks to track |
packages.yaml |
PyPI packages (priority + watched) |
github_repos.yaml |
GitHub repos and search queries |
capabilities.yaml |
WestQuant capability registry |
| Task | Default |
|---|---|
| PyPI global discovery | Every 30 min |
| Priority PyPI packages | Every 15 min |
| Priority GitHub repos | Every 30 min |
| GitHub ecosystem search | Every 2 hours |
| Deep analysis | On relevant event |
| Opportunity report | Daily at 9 AM |
The radar persists:
- Projects — discovered quantum projects
- Repositories — GitHub repos being tracked
- Packages — PyPI packages being tracked
- Releases — version releases with diffs
- Events — normalized discovery events
- Capabilities — WestQuant capability registry
- Analyses — full analysis results (JSON)
- Opportunities — scored development opportunities
- Generated proposals — implementation plans for high-scoring opportunities
Storage uses SQLite initially, with a storage interface that can be replaced by PostgreSQL.
- All downloaded packages and source repositories are treated as untrusted input
- Package execution occurs only in an ephemeral isolated Docker container with:
- No production credentials
- No host filesystem access
- Resource limits (memory, CPU)
- Temporary filesystem
- Restricted or disabled network access
- Execution timeout
- Never exposes GitHub tokens, PyPI credentials, or cloud credentials to analysis containers
- Never executes arbitrary
setup.py/ install hooks outside the sandbox - The radar never publishes to PyPI without human approval
All analysis output is structured JSON:
{
"project": "example-quantum-package",
"version": "2.4.0",
"event": "release",
"quantum_relevance": 0.96,
"changes": [
{
"type": "new_feature",
"area": "circuit_optimization",
"description": "New circuit transformation API"
}
],
"westquant": {
"currently_supported": false,
"compatibility_risk": "low",
"training_data_value": 0.82
},
"opportunities": [
{
"type": "adapter",
"score": 0.91,
"suggested_package": "westquant-example",
"prototype": true
},
{
"type": "benchmark",
"score": 0.78,
"prototype": true
}
]
}This structured output is designed to become training data for future WQT models.
The radar seeds with the major quantum ecosystems:
| Framework | PyPI | GitHub |
|---|---|---|
| Qiskit | qiskit | Qiskit/qiskit |
| PennyLane | pennylane | PennyLaneAI/pennylane |
| Cirq | cirq | quantumlib/cirq |
| Amazon Braket | amazon-braket-sdk | amazon-braket/amazon-braket-sdk-python |
| Q# | qsharp | microsoft/qsharp |
| CUDA-Q | cudaquantum | NVIDIA/cuda-quantum |
| pytket | pytket | CQCL/tket |
| Mitiq | mitiq | unitaryfund/mitiq |
| Stim | stim | quantumlib/Stim |
| PyMatching | pymatching | osm-quantum/PyMatching |
Automatic discovery of previously unknown projects is supported via GitHub search.
westquant-radar/
├── radar/
│ ├── sources/ # PyPI + GitHub data sources
│ │ ├── pypi.py
│ │ ├── github_search.py
│ │ ├── github_releases.py
│ │ └── github_commits.py
│ ├── normalize/ # Event normalization
│ ├── classifiers/ # Quantum relevance + category classification
│ ├── diff/ # Release diff analysis
│ ├── sandbox/ # Security sandbox for untrusted code
│ ├── capability_map/ # WestQuant capability registry
│ ├── opportunity/ # Opportunity generation + scoring
│ ├── addon_generator/ # Implementation proposal generation
│ ├── reports/ # Daily and framework-change reports
│ ├── schemas.py # Pydantic data models
│ ├── storage.py # SQLite storage layer
│ ├── pipeline.py # Main pipeline orchestrator
│ └── cli.py # CLI entry point
├── registry/ # YAML configuration
│ ├── config.yaml
│ ├── frameworks.yaml
│ ├── packages.yaml
│ ├── github_repos.yaml
│ └── capabilities.yaml
├── tests/ # Unit + integration + e2e tests
├── docker/
│ └── sandbox.Dockerfile # Security sandbox image
└── .github/workflows/
└── radar.yml # CI + scheduled runs
# Run tests
pytest tests/ -v
# Type check
mypy radar/ --ignore-missing-imports
# Lint
ruff check radar/ tests/
# Run end-to-end acceptance test
pytest tests/test_e2e_acceptance.py -vMIT
David Vesterlund — ORCID: 0009-0000-6455-1141 Vesterlund Ventures / WestQuant Open Source Project, Stockholm
The radar is the first step toward a self-expanding WestQuant ecosystem:
Discover → Understand → Invent → Implement → Test → Learn
Future evolution: the radar feeds discoveries to WQT10/WQT20, which attempts to construct the WestQuant adapter, runs it in the sandbox, benchmarks the result, and submits a ready PR. That is a closed loop — the beginning of a self-expanding quantum software ecosystem.