Metadata-Version: 2.4
Name: quantify-scheduler
Version: 0.28.0.post1
Summary: Quantify-scheduler is a Python package for writing quantum programs featuring a hybrid gate-pulse control model with explicit timing control.
Maintainer-email: Robert Sokolewicz <rsokolewicz@qblox.com>, Amirtha Varshiny Arumugam <amirthavarshiny@orangeqs.com>, Viacheslav Ostroukh <viacheslav@orangeqs.com>, Gábor Oszkár Dénes <gdenes@qblox.com>
License: BSD-3-Clause
Project-URL: Documentation, https://quantify-os.org/docs/quantify-scheduler/
Project-URL: Source, https://gitlab.com/quantify-os/quantify-scheduler
Project-URL: Issue tracker, https://gitlab.com/quantify-os/quantify-scheduler/-/issues
Project-URL: Changelog, https://gitlab.com/quantify-os/quantify-scheduler/-/blob/main/CHANGELOG.md
Project-URL: Slack, https://join.slack.com/t/quantify-hq/shared_invite/zt-1nd78r4e9-rbWdna53cW4DO_YbtMhVuA
Project-URL: Authors, https://gitlab.com/quantify-os/quantify-scheduler/-/blob/main/AUTHORS.md
Keywords: quantum,quantify
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
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: Topic :: Scientific/Engineering
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: AUTHORS.md
Requires-Dist: columnar
Requires-Dist: dataclasses-json
Requires-Dist: eval-type-backport; python_version < "3.10"
Requires-Dist: fastjsonschema
Requires-Dist: jinja2>=3.1.2
Requires-Dist: matplotlib
Requires-Dist: networkx
Requires-Dist: numpy<2.0; python_version < "3.10"
Requires-Dist: numpy; python_version >= "3.10"
Requires-Dist: pandas[output_formatting]
Requires-Dist: pathvalidate
Requires-Dist: plotly
Requires-Dist: pydantic>2.0
Requires-Dist: qblox-instruments<2,>=0.17.0
Requires-Dist: quantify-core>=0.8.3
Requires-Dist: qcodes>=0.32.0
Requires-Dist: scipy
Requires-Dist: xxhash
Requires-Dist: ruamel.yaml>=0.18.0
Requires-Dist: rich[jupyter]
Requires-Dist: pyqt5-qt5<=5.15.2; platform_system == "Windows"
Provides-Extra: test
Requires-Dist: pytest~=8.3; extra == "test"
Requires-Dist: pytest-mock~=3.14; extra == "test"
Requires-Dist: diff-cover~=9.2; extra == "test"
Requires-Dist: pytest-mpl~=0.17; extra == "test"
Provides-Extra: docs
Requires-Dist: jupyter-sphinx~=0.5.3; extra == "docs"
Requires-Dist: jupytext~=1.16; extra == "docs"
Requires-Dist: sphinx~=7.4; extra == "docs"
Requires-Dist: pydata-sphinx-theme~=0.16.1; extra == "docs"
Requires-Dist: myst-nb~=1.2; extra == "docs"
Requires-Dist: hvplot~=0.11.2; extra == "docs"
Requires-Dist: plotly~=6.0.1; extra == "docs"
Requires-Dist: scanpydoc~=0.14.0; extra == "docs"
Requires-Dist: sphinx-autoapi~=3.6; extra == "docs"
Requires-Dist: sphinx-autodoc-typehints<3.1; extra == "docs"
Requires-Dist: sphinx-design~=0.6.1; extra == "docs"
Requires-Dist: sphinx-jsonschema~=1.19; extra == "docs"
Requires-Dist: sphinx-togglebutton~=0.3.2; extra == "docs"
Requires-Dist: sphinx-copybutton~=0.5.2; extra == "docs"
Requires-Dist: sphinxcontrib-bibtex~=2.6; extra == "docs"
Requires-Dist: sphinxcontrib-mermaid~=1.0; extra == "docs"
Requires-Dist: quantify_scheduler[zhinst]; extra == "docs"
Provides-Extra: dev
Requires-Dist: pre-commit~=4.1; extra == "dev"
Requires-Dist: pre-commit-hooks~=5.0; extra == "dev"
Requires-Dist: pyright==1.1.396; extra == "dev"
Requires-Dist: pytest-cov~=6.0; extra == "dev"
Requires-Dist: pytest-xdist~=3.6; extra == "dev"
Requires-Dist: ruff~=0.11.0; extra == "dev"
Requires-Dist: typos~=1.30; extra == "dev"
Requires-Dist: commitizen~=4.4; extra == "dev"
Requires-Dist: sphinx-autobuild~=2024.10; extra == "dev"
Requires-Dist: quantify-scheduler[docs,test]; extra == "dev"
Provides-Extra: zhinst
Requires-Dist: zhinst==21.8.20515; python_version < "3.10" and extra == "zhinst"
Requires-Dist: zhinst-qcodes==0.1.4; python_version < "3.10" and extra == "zhinst"
Requires-Dist: zhinst-toolkit==0.1.5; python_version < "3.10" and extra == "zhinst"
Dynamic: license-file

# quantify-scheduler

[![Slack](https://img.shields.io/badge/slack-chat-green.svg)](https://quantify-os.org/slack.html#sec-slack)
[![Pipelines](https://gitlab.com/quantify-os/quantify-scheduler/badges/main/pipeline.svg)](https://gitlab.com/quantify-os/quantify-scheduler/-/pipelines/)
[![PyPi](https://img.shields.io/pypi/v/quantify-scheduler.svg)](https://pypi.org/project/quantify-scheduler)
[![Code Quality](https://app.codacy.com/project/badge/Grade/0c9cf5b6eb5f47ffbd2bb484d555c7e3)](https://app.codacy.com/gl/quantify-os/quantify-scheduler/dashboard?utm_source=gitlab.com&amp;utm_medium=referral&amp;utm_content=quantify-os/quantify-scheduler&amp;utm_campaign=Badge_Grade)
[![Coverage](https://app.codacy.com/project/badge/Coverage/0c9cf5b6eb5f47ffbd2bb484d555c7e3)](https://app.codacy.com/gl/quantify-os/quantify-scheduler/dashboard?utm_source=gitlab.com&amp;utm_medium=referral&amp;utm_content=quantify-os/quantify-scheduler&amp;utm_campaign=Badge_Coverage)
[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://gitlab.com/quantify-os/quantify-scheduler/-/raw/main/LICENSE)
[![Code style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Unitary Fund](https://img.shields.io/badge/Supported%20By-UNITARY%20FUND-brightgreen.svg?style=flat)](https://unitary.fund)
[![Documentation](https://img.shields.io/badge/documentation-grey)](https://quantify-os.org/docs/quantify-scheduler)

![Quantify logo](https://gitlab.com/quantify-os/quantify-scheduler/-/raw/main/docs/source/images/QUANTIFY_LANDSCAPE.svg)

Quantify is a Python-based data acquisition framework focused on Quantum Computing and
solid-state physics experiments.
The framework consists of [quantify-core](https://pypi.org/project/quantify-core/) ([git](https://gitlab.com/quantify-os/quantify-core/) | [docs](https://quantify-os.org/docs/quantify-core/))
and [quantify-scheduler](https://pypi.org/project/quantify-scheduler/) ([git](https://gitlab.com/quantify-os/quantify-scheduler/) | [docs](https://quantify-os.org/docs/quantify-scheduler/)).
It is built on top of [QCoDeS](https://microsoft.github.io/Qcodes/)
and is a spiritual successor of [PycQED](https://github.com/DiCarloLab-Delft/PycQED_py3).

`quantify-scheduler` is a Python module for writing quantum programs featuring a hybrid gate-pulse control model with explicit timing control.
This control model allows quantum gate and pulse-level descriptions to be combined in a clearly defined and hardware-agnostic way.
`quantify-scheduler` is designed to allow experimentalists to easily define complex experiments. It produces synchronized pulse schedules
that are distributed to control hardware, after compiling these schedules into control-hardware specific executable programs.

## deprecation timeline

`quantify-scheduler` will be deprecated soon. The current timeline is:

- feature and bugfix support until 31 December 2025
- bugfix support until 30 June 2026
- end-of-life starting 1 July 2026

Users are encouraged to migrate to [quantify](https://pypi.org/project/quantify/) and [qblox-scheduler](https://pypi.org/project/qblox-scheduler/) instead.

## Hardware/driver compatibility

**Qblox**

| quantify-scheduler |                      qblox-instruments                       |                               Cluster firmware                                |
|--------------------|:------------------------------------------------------------:|:-----------------------------------------------------------------------------:|
| v0.28.0            | [1.x.y](https://pypi.org/project/qblox-instruments/) | [>=1.0.0, <2.0.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/) |
| v0.27.0            | [1.0.x](https://pypi.org/project/qblox-instruments/1.0.0/)   | [0.13.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.13.0) |
|                    | [1.1.x](https://pypi.org/project/qblox-instruments/1.1.1/)   | [0.13.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.13.0), [>=1.0.0, <2.0.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/) |
| v0.26.0            | [1.0.0](https://pypi.org/project/qblox-instruments/1.0.0/)   | [0.13.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.13.0) |
|                    | [0.17.0](https://pypi.org/project/qblox-instruments/0.17.0/) | [0.12.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.12.0) |
| v0.25.0            | [0.17.0](https://pypi.org/project/qblox-instruments/0.17.0/) | [0.12.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.12.0) |
| v0.24.0            | [0.17.0](https://pypi.org/project/qblox-instruments/0.17.0/) | [0.12.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.12.0) |
| v0.23.0            | [0.16.0](https://pypi.org/project/qblox-instruments/0.16.0/) | [0.11.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.11.0) |
| v0.22.2            | [0.15.0](https://pypi.org/project/qblox-instruments/0.15.0/) | [0.10.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.10.0) |
|                    | [0.14.2](https://pypi.org/project/qblox-instruments/0.14.2/) | [0.9.2](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.9.2) |
|                    | [0.14.1](https://pypi.org/project/qblox-instruments/0.14.1/) | [0.9.1](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.9.1) |
| v0.22.1            | [0.14.2](https://pypi.org/project/qblox-instruments/0.14.2/) | [0.9.2](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.9.2) |
|                    | [0.14.1](https://pypi.org/project/qblox-instruments/0.14.1/) | [0.9.1](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.9.1) |
| v0.22.0            | [0.14.2](https://pypi.org/project/qblox-instruments/0.14.2/) | [0.9.2](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.9.2) |
|                    | [0.14.1](https://pypi.org/project/qblox-instruments/0.14.1/) | [0.9.1](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.9.1) |
|                    | [0.14.0](https://pypi.org/project/qblox-instruments/0.14.0/) | [0.9.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.9.0) |
| v0.21.2            | [0.14.0](https://pypi.org/project/qblox-instruments/0.14.0/) | [0.9.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.9.0) |
| v0.21.1            | [0.14.0](https://pypi.org/project/qblox-instruments/0.14.0/) | [0.9.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.9.0) |
| v0.21.0            | [0.14.0](https://pypi.org/project/qblox-instruments/0.14.0/) | [0.9.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.9.0) |
| v0.20.1            | [0.13.0](https://pypi.org/project/qblox-instruments/0.13.0/) | [0.8.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.8.0) |
| v0.20.1            | [0.12.0](https://pypi.org/project/qblox-instruments/0.12.0/) | [0.7.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.7.0) |
| v0.20.0            | [0.13.0](https://pypi.org/project/qblox-instruments/0.13.0/) | [0.8.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.8.0) |
| v0.20.0            | [0.12.0](https://pypi.org/project/qblox-instruments/0.12.0/) | [0.7.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.7.0) |
| v0.19.0            | [0.12.0](https://pypi.org/project/qblox-instruments/0.12.0/) | [0.7.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.7.0) |
| v0.18.2            | [0.11.2](https://pypi.org/project/qblox-instruments/0.11.2/) | [0.6.2](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.6.2) |
|                    | [0.11.1](https://pypi.org/project/qblox-instruments/0.11.1/) | [0.6.1](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.6.1) |
|                    | [0.11.0](https://pypi.org/project/qblox-instruments/0.11.0/) | [0.6.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.6.0) |
| v0.18.1            | [0.11.2](https://pypi.org/project/qblox-instruments/0.11.2/) | [0.6.2](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.6.2) |
|                    | [0.11.1](https://pypi.org/project/qblox-instruments/0.11.1/) | [0.6.1](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.6.1) |
|                    | [0.11.0](https://pypi.org/project/qblox-instruments/0.11.0/) | [0.6.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.6.0) |
| v0.18.0            | [0.11.2](https://pypi.org/project/qblox-instruments/0.11.2/) | [0.6.2](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.6.2) |
|                    | [0.11.1](https://pypi.org/project/qblox-instruments/0.11.1/) | [0.6.1](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.6.1) |
|                    | [0.11.0](https://pypi.org/project/qblox-instruments/0.11.0/) | [0.6.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.6.0) |
| v0.17.1            | [0.11.2](https://pypi.org/project/qblox-instruments/0.11.2/) | [0.6.2](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.6.2) |
|                    | [0.11.1](https://pypi.org/project/qblox-instruments/0.11.1/) | [0.6.1](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.6.1) |
|                    | [0.11.0](https://pypi.org/project/qblox-instruments/0.11.0/) | [0.6.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.6.0) |
| v0.17.0            | [0.11.2](https://pypi.org/project/qblox-instruments/0.11.2/) | [0.6.2](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.6.2) |
|                    | [0.11.1](https://pypi.org/project/qblox-instruments/0.11.1/) | [0.6.1](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.6.1) |
|                    | [0.11.0](https://pypi.org/project/qblox-instruments/0.11.0/) | [0.6.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.6.0) |
| v0.16.1            | [0.11.2](https://pypi.org/project/qblox-instruments/0.11.2/) | [0.6.2](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.6.2) |
|                    | [0.11.1](https://pypi.org/project/qblox-instruments/0.11.1/) | [0.6.1](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.6.1) |
|                    | [0.11.0](https://pypi.org/project/qblox-instruments/0.11.0/) | [0.6.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.6.0) |
| v0.16.0            | [0.11.2](https://pypi.org/project/qblox-instruments/0.11.2/) | [0.6.2](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.6.2) |
|                    | [0.11.1](https://pypi.org/project/qblox-instruments/0.11.1/) | [0.6.1](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.6.1) |
|                    | [0.11.0](https://pypi.org/project/qblox-instruments/0.11.0/) | [0.6.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.6.0) |
| v0.15.0            | [0.10.x](https://pypi.org/project/qblox-instruments/0.10.0/) | [0.5.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.5.0) |
|                    |  [0.9.0](https://pypi.org/project/qblox-instruments/0.9.0/)  | [0.4.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.4.0) |
| v0.14.0            | [0.10.x](https://pypi.org/project/qblox-instruments/0.10.0/) | [0.5.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.5.0) |
|                    |  [0.9.0](https://pypi.org/project/qblox-instruments/0.9.0/)  | [0.4.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.4.0) |
| v0.13.0            | [0.10.x](https://pypi.org/project/qblox-instruments/0.10.0/) | [0.5.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.5.0) |
|                    |  [0.9.0](https://pypi.org/project/qblox-instruments/0.9.0/)  | [0.4.0](https://gitlab.com/qblox/releases/cluster_releases/-/releases/v0.4.0) |

**Zurich Instruments**
- `zhinst==21.8.20515`, `zhinst-qcodes==0.1.4`, `zhinst-toolkit==0.1.5`


## Overview and Community

For a general overview of Quantify and connecting to its open-source community, see [quantify-os.org](https://quantify-os.org/).
Quantify is maintained by the Quantify Consortium consisting of Qblox and Orange Quantum Systems.

[<img src="https://gitlab.com/quantify-os/quantify-scheduler/-/raw/main/docs/source/images/Qblox_logo.svg" alt="Qblox logo" width=200px/>](https://www.qblox.com)
&nbsp;
&nbsp;
&nbsp;
&nbsp;
[<img src="https://gitlab.com/quantify-os/quantify-scheduler/-/raw/main/docs/source/images/OQS_logo_with_text.svg" alt="Orange Quantum Systems logo" width=200px/>](https://orangeqs.com)

&nbsp;

The software is free to use under the conditions specified in the [license](https://gitlab.com/quantify-os/quantify-scheduler/-/raw/main/LICENSE).
