Metadata-Version: 2.4
Name: quantinuum_qircheck
Version: 0.8.0
Summary: Package to check QIR for compatibility with quantinuum devices
Author: Quantinuum
Maintainer-email: TKET development team <tket-support@quantinuum.com>
License-Expression: Apache-2.0
Project-URL: Repository, https://github.com/CQCL/quantinuum-qircheck
Project-URL: Tracker, https://github.com/CQCL/quantinuum-qircheck/issues
Classifier: Environment :: Console
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering
Requires-Python: <3.13,>=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pyqir~=0.12.3
Dynamic: license-file

# quantinuum-qircheck

[![Slack](https://img.shields.io/badge/Slack-4A154B?style=for-the-badge&logo=slack&logoColor=white)](https://tketusers.slack.com/join/shared_invite/zt-18qmsamj9-UqQFVdkRzxnXCcKtcarLRA#)
[![Stack Exchange](https://img.shields.io/badge/StackExchange-%23ffffff.svg?style=for-the-badge&logo=StackExchange)](https://quantumcomputing.stackexchange.com/tags/pytket)

This repository contains the quantinuum_qircheck package.

## Getting started

`quantinuum_qircheck` is available for Python 3.10, 3.11 and 3.12, on Linux, MacOS
and Windows. To install, run:

```shell
pip install quantinuum_qircheck
```

## Bugs, support and feature requests

Please file bugs and feature requests on the Github
[issue tracker](https://github.com/CQCL/quantinuum-qircheck/issues).

There is also a Slack channel for discussion and support. Click [here](https://tketusers.slack.com/join/shared_invite/zt-18qmsamj9-UqQFVdkRzxnXCcKtcarLRA#/shared-invite/email) to join.

## Development

Install the project and development tools with `uv`:

```sh
uv sync --group dev
```

Install local git hooks with `prek`:

```sh
uvx prek install
```

You could also use `make` targets such as:

```sh
make install    # for installation
make dev        # install the project with lint and test tooling
make lint       # run formatting, linting, and type checking
make tests      # for running tests
make build      # for source and wheel distribution packages
make clean      # to clean up autogenerated files
```

To run the hook suite manually:

```sh
uvx prek run --all-files
```

## Contributing

Pull requests are welcome. To make a PR, first fork the repo, make your proposed
changes on the `main` branch, and open a PR from your fork. If it passes
tests and is accepted after review, it will be merged in.

### Code style

#### Formatting

All code should be formatted using
[ruff format](https://docs.astral.sh/ruff/formatter/). This is
checked on the CI.

#### Type annotation

On the CI, [ty](https://docs.astral.sh/ty/) is used as a static
type checker and all submissions must pass its checks. You should therefore run
`uv run ty check quantinuum_qircheck tests` locally on any changed files before submitting a PR.

#### Linting

We use [ruff](https://github.com/astral-sh/ruff)
on the CI to check compliance with a set of style requirements (listed in `pyproject.toml`).

An easy way to meet all formatting and linting requirements is to run `make lint`
or `uvx prek run --all-files` before sending a PR.

### Tests

To run the tests:

1. run `uv sync --group test` if you have not already installed the test dependencies;
2. run `uv run pytest`.

When adding a new feature, please add a test for it. When fixing a bug, please
add a test that demonstrates the fix.
