Metadata-Version: 2.4
Name: qciconnect
Version: 0.10.0
Summary: The official SDK to the DLR's quantum computing platform QCI Connect.
Keywords: quantum computing, SDK, Software Development Kit, QCI Connect
Author: DLR-SC, David da Costa, Elisabeth Lobe, Thomas Keitzl, Johannes Renkl, Gary Schmiedinghoff, Thomas Stehle, Lukas Windgätter
Author-email: DLR-SC <qc-software@dlr.de>
License-Expression: Apache-2.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python
Classifier: Operating System :: OS Independent
Requires-Dist: qciconnect-common>=0.4.0
Requires-Dist: qciconnect-client>=1.2.0
Requires-Dist: qciconnect-miniserver>=0.5.0
Requires-Dist: qciconnect-alf>=0.3.0
Requires-Dist: qciconnect-applib>=0.3.1
Requires-Python: >=3.12
Description-Content-Type: text/markdown

[<picture><source media="(prefers-color-scheme: dark)" srcset="https://gitlab.com/dlr-sc-qc/qciconnect-sdk/alf/-/raw/main/docs/_static/logo_sdk.svg" height="100"><source media="(prefers-color-scheme: light)" srcset="https://gitlab.com/dlr-sc-qc/qciconnect-sdk/alf/-/raw/main/docs/_static/logo_sdk_dark.svg" height="100">
  <img alt="QCI Connect SDK" src="https://gitlab.com/dlr-sc-qc/qciconnect-sdk/alf/-/raw/main/docs/_static/logo_sdk.svg" height="100"></picture>](https://dlr-sc-qc.gitlab.io/qciconnect-sdk/landing-page/)

# QCI Connect Software Development Kit (SDK)

The software development kit (SDK) of the [QCI Connect](https://qci.dlr.de/connect/) platform is a suite of tools to
- programmatically access its resources (QPUs and HPC simulators),
- conveniently develop applications with abstracted classes,
- locally run and develop algorithms and applications,
- prototype them with the same interface as the platform, and
- prepare them for being made available on the platform.

This release contains the five components `qciconnect.common`, `qciconnect.client`, `qciconnect.alf`, `qciconnect.applib` and `qciconnect.miniserver`. 

## Documentation

You can find more information and technical documentations of the components via the [QCI Connect SDK landing page](https://dlr-sc-qc.gitlab.io/qciconnect-sdk/landing-page/).

## Quick Start

### Pip Installation

The easiest way to install the SDK is via

```bash
pip install qciconnect
```

The SDK components can also be installed separately via

```bash
pip install qciconnect-alf
pip install qciconnect-applib
pip install qciconnect-client
pip install qciconnect-miniserver
```

### Tutorial Notebooks for your Use Case

#### I want to connect to QCI Connect QPUs, Simulators and Compilers
- [Connect to QCI Connect with the API Client](https://dlr-sc-qc.gitlab.io/qciconnect-sdk/api-client/examples/example_remote.html)
- [Use the ALF interfaces for sampling und estimating both locally and on QCI Connect](https://dlr-sc-qc.gitlab.io/qciconnect-sdk/alf/tutorials/Tutorial%2001%20-%20Submit%20Jobs.html)

#### I want to develop Compilers for QCI Connect
- [Build and run your compilers locally on the miniserver](https://gitlab.com/dlr-sc-qc/qciconnect-sdk/miniserver)
- [Access them with the API Client](https://dlr-sc-qc.gitlab.io/qciconnect-sdk/api-client/examples/example_local.html)

#### I want to use/create Error Mitigation Schemes
- [Use the mitigation samplers/estimators in ALF](https://dlr-sc-qc.gitlab.io/qciconnect-sdk/alf/tutorials/Tutorial%2002%20-%20Implement%20and%20Use%20Error%20Mitigation%20Schemes.html)

#### I want to create Quantum Applications
- [Build Apps based on ALF](https://dlr-sc-qc.gitlab.io/qciconnect-sdk/alf/tutorials/Tutorial%2003%20-%20Implement%20and%20Run%20Algorithms.html#)

#### I want to use existing Quantum Applications
- [Check out the tutorial notebooks for the core AppLib](https://dlr-sc-qc.gitlab.io/qciconnect-sdk/applib/usage.html#tutorials)

## Working on Source Code (Dev Mode)

Clone the repository (or download the `.tar.gz` file), initialize the git submodules, then install dependencies. 

We recommend using [ultraviolet](https://docs.astral.sh/uv) ([installation guide](https://docs.astral.sh/uv/getting-started/installation/#installation-methods)).

```bash
git submodule update --init
uv sync
```
You can now [activate](https://docs.python.org/3/library/venv.html#how-venvs-work) the `.venv` in the source directory or use uv to run commands in the `.venv`, e. g.,  `uv run python my_script.py`.
