Metadata-Version: 2.4
Name: hdh
Version: 0.1.8
Summary: Hybrid Dependency Hypergraphs for quantum computation: translation, visualization, and partitioning.
License: MIT
License-File: LICENSE
Keywords: quantum,compiler,partitioning,hdh,hypergraph
Author: Maria Gragera Garces
Author-email: m.gragera.gaces@gmail.com
Requires-Python: >=3.10,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: matplotlib (>=3.0,<4.0)
Requires-Dist: metis (==0.2a5)
Requires-Dist: networkx (>=3.0,<4.0)
Requires-Dist: qiskit (>=1.0,<2.0)
Project-URL: Homepage, https://pypi.org/project/hdh/
Project-URL: Repository, https://github.com/grageragarces/hdh
Description-Content-Type: text/markdown


![HDH Logo](https://raw.githubusercontent.com/grageragarces/hdh/main/miscellaneous/img/logo.png)

# Hybrid Dependency Hypergraphs for Quantum Computation

<p style="text-align:center">
  <a href="https://pypi.org/project/hdh/">
    <img src="https://badge.fury.io/py/hdh.svg" alt="PyPI version">
  </a>
  · MIT Licensed ·
  <a href="https://unitary.foundation">
    <img src="https://img.shields.io/badge/Supported%20By-UNITARY%20FOUNDATION-brightgreen.svg?style=for-the-badge" alt="Unitary Foundation">
  </a>
  · Author: Maria Gragera Garces
  <br><br>
  <em>Work in Progress - Preparing for 1.0</em>
</p>

[![Documentation](https://img.shields.io/badge/docs-online-blue)](https://your-docs-url)

Documentation can be found at: https://grageragarces.github.io/HDH/

---

## What is HDH?

**HDH (Hybrid Dependency Hypergraph)** is an intermediate directed hypergraph-based representation designed to encode the dependecies arising in any quantum workload.
It provides a unified structure that makes it easier to:

- Translate quantum programs (e.g., a circuit or a mbqc pattern) into a unified hypergraph format
- Analyze and visualize the logical and temporal dependencies within a computation
- Partition workloads across devices, taking into account hardware and network constraints

---

## Current Capabilities

- Qiskit, Braket, Cirq and Pennylane circuit mappings to HDHs
- OpenQASM 2.0 file parsing  
- Model-specific abstractions for:
  - Quantum Circuits
  - Measurement-Based Quantum Computing (MBQC)
  - Quantum Walks
  - Quantum Cellular Automata (QCA)
- Capability to partition HDHs and evaluate partitions

---

## Installation

```bash
pip install hdh
```
---
## Quickstart

### From Qiskit

```python
from qiskit import QuantumCircuit
from hdh.converters import from_qiskit
from hdh.visualize import plot_hdh

qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)

hdh = from_qiskit(qc)

plot_hdh(hdh)
```

### From QASM file

```python
from hdh.converters import from_qasm
from hdh.visualize import plot_hdh

qasm_path = os.path.join(os.path.dirname(__file__), 'test_qasm_file.qasm')
hdh = from_qasm('file', qasm_path)

plot_hdh(hdh)
```
---

## Tests and Demos

All tests are under `tests/` and can be run with:

```bash
pytest
```

---

## Contributing

Pull requests welcome. Please open an issue or get in touch if you're interested in:

- SDK compatibility  
- Frontend tools (visualization, benchmarking) 

or if you've found a bug! 

---

## Citation

More formal citation and paper preprint coming soon. Stay tuned for updates.

