Metadata-Version: 2.4
Name: perceval-interop
Version: 1.2.2
Summary: Interoperability packages between Perceval and other quantum computing frameworks
Home-page: https://github.com/Quandela/Perceval_Interop
Author: quandela
Project-URL: Documentation, https://perceval.quandela.net/interopdocs/
Project-URL: Source, https://github.com/Quandela/Perceval_Interop
Project-URL: Tracker, https://github.com/Quandela/Perceval_Interop/issues
Classifier: Programming Language :: Python :: 3.9
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
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9,<3.15
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: perceval-quandela<2.0.0,>=1.0.1
Provides-Extra: qiskit
Requires-Dist: qiskit~=2.1.2; extra == "qiskit"
Requires-Dist: seaborn~=0.13; extra == "qiskit"
Provides-Extra: qutip
Requires-Dist: scipy<1.17; extra == "qutip"
Requires-Dist: qutip~=5.0.4; extra == "qutip"
Provides-Extra: myqlm
Requires-Dist: myqlm~=1.11.3; extra == "myqlm"
Provides-Extra: cqasm
Requires-Dist: libqasm==1.2.1; extra == "cqasm"
Provides-Extra: all
Requires-Dist: qiskit~=2.1.2; extra == "all"
Requires-Dist: seaborn~=0.13; extra == "all"
Requires-Dist: scipy<1.17; extra == "all"
Requires-Dist: qutip~=5.0.4; extra == "all"
Requires-Dist: myqlm~=1.11.3; extra == "all"
Requires-Dist: libqasm==1.2.1; extra == "all"
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license-file
Dynamic: project-url
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary


[![GitHub release](https://img.shields.io/github/v/release/Quandela/Perceval_Interop.svg?style=plastic)](https://github.com/Quandela/Perceval_Interop/releases/latest)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/perceval-interop?style=plastic)
[![CI](https://github.com/Quandela/Perceval_Interop/actions/workflows/python-publish.yml/badge.svg)](https://github.com/Quandela/Perceval-Interop/actions/workflows/python-publish.yml)

[![CI](https://github.com/Quandela/Perceval_Interop/actions/workflows/autotests.yml/badge.svg)](https://github.com/Quandela/Perceval_Interop/actions/workflows/autotests.yml)
[![CI](https://github.com/Quandela/Perceval_Interop/actions/workflows/build-and-deploy-docs.yml/badge.svg)](https://github.com/Quandela/Perceval_Interop/actions/workflows/build-and-deploy-docs.yml)

# Perceval_Interop <a href="https://perceval.quandela.net" target="_blank"> <img src="https://raw.githubusercontent.com/Quandela/Perceval_Interop/main/logo-perceval.png" width="50" height="50"> </a>


Perceval_Interop is designed to facilitate a bridge between Perceval, a photonic quantum
computing framework, and several leading gate-based frameworks through a python API.

It provides converters to translate gate-based quantum circuits from various frameworks
into Perceval's linear optical circuits using dual rail encoding. Currently
supported frameworks include:

- Quantum gate circuit conversion from **Qiskit**, **myQLM**, and **cQASM**.
- Quantum states conversion from **Qutip** and **Qiskit**.


# Installation

Perceval-Interop requires:

* Python between 3.9 and 3.13

## PIP
We recommend installing it with `pip`, and selecting any interop package such as `qiskit`, `qutip`, `myqlm`, or `cqasm`:

```bash
pip install --upgrade pip
pip install perceval-interop[qiskit] #install qiskit and seaborn
pip install perceval-interop[qutip] #install qutip
pip install perceval-interop[myqlm] #install myqlm
pip install perceval-interop[cqasm] #install cqasm
pip install perceval-interop[all] #install all above
```

## GitHub
```bash
git clone https://github.com/quandela/Perceval
```
then to install Perceval:
```bash
pip install .
```
Or for developers:
```bash
pip install -e .
```

# Running tests

Unit tests files are part of the repository in `tests/` and can be run with:

```
pip install -r tests/requirements.txt
pytest
```

Additionally, you can see a coverage report with the command:

```
pytest --cov=perceval-interop
```

# Documentation and Forum

* The [documentation](https://perceval.quandela.net/interopdocs/)
* The [Community Forum](https://community.quandela.com/)

#

[<img src="https://raw.githubusercontent.com/Quandela/Perceval_Interop/main/logo-quandela.png" width="300" height=auto>](https://www.quandela.com/)

[![Twitter Follow](https://img.shields.io/twitter/follow/Quandela_SAS?style=social)](https://twitter.com/Quandela_SAS)
[![YouTube Channel Subscribers](https://img.shields.io/youtube/channel/subscribers/UCl5YMpSqknJ1n-IT-XWfLsQ?style=social)](https://www.youtube.com/channel/UCl5YMpSqknJ1n-IT-XWfLsQ)
