Metadata-Version: 2.4
Name: ionpulse_sequence_generator
Version: 2.4.1
Author-email: Martin Stadler <mstadle@phys.ethz.ch>, Alexander Ferk <alferk@phys.ethz.ch>, Mose Mueller <mosmuell@ethz.ch>, Carmelo Mordini <carmelo@zuriq.com>
Requires-Python: <4,>=3.10
Requires-Dist: click<9,>=8.2.1
Requires-Dist: msgpack<2,>=1.0.5
Requires-Dist: numpy<3,>=2.2
Requires-Dist: orjson<4,>=3.10
Requires-Dist: scipy<2,>=1.15
Description-Content-Type: text/markdown

# Ionpulse Sequence Generator
This package provides a convenient API to create pulse sequences for the ionpulse application running on M-ACTION or QUENCH. It generates a dictionary which can be translated into JSON and sent to ionpulse as a string, generating a sequence of operations.

The sequence generator is meant to be used as a dependency of [pycrystal](https://gitlab.phys.ethz.ch/tiqi-projects/pycrystal), but can be used standalone.

To connect to to Ionpulse, you can use e.g. [tiqi-zedboard](https://gitlab.phys.ethz.ch/tiqi-projects/drivers/tiqi-zedboard) for this.

## Contributing
Contributions to the sequence generator are always welcome!

To contribute, please create a virtual environment to run the tests and formatting from:
```
uv sync
```
Then install the pre-commit hook for formatting your code using Ruff:
```
uv run pre-commit install
```
For VSCode you can also install the Ruff formatting extension.

As this package integrates with [pycrystal](https://gitlab.phys.ethz.ch/tiqi-projects/pycrystal), [ionpulse](https://gitlab.phys.ethz.ch/tiqi-projects/ionpulse_sdk_core) and the [ionpulse-sequence-visualizer](https://gitlab.phys.ethz.ch/tiqi-projects/library-visualiser), integration testing with these projects is important before contributions can be merged.

Integration tests with [ionpulse-sequence-visualizer](https://gitlab.phys.ethz.ch/tiqi-projects/library-visualiser) are currently performed automatically with a cross project pipeline.

For [pycrystal](https://gitlab.phys.ethz.ch/tiqi-projects/pycrystal) and [ionpulse](https://gitlab.phys.ethz.ch/tiqi-projects/ionpulse_sdk_core) integration tests have to be performed manually.


## Installation
For standalone use we recommend installing with `poetry`:
```sh
    uv add ionpulse_sequence_generator @ git+ssh://git@gitlab.phys.ethz.ch:tiqi-projects/ionpulse_sequence_generator
```

For installation with `pip` use
```sh
    pip install [-e] git+ssh://git@gitlab.phys.ethz.ch:tiqi-projects/ionpulse_sequence_generator
```
with the `-e` flag to install in editable mode.

