Metadata-Version: 2.1
Name: qermit
Version: 0.6.0
Summary: Python package for quantum error mitigation.
Author: Daniel Mills
Author-email: daniel.mills@quantinuum.com
Requires-Python: >=3.10,<3.14
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Provides-Extra: docs
Provides-Extra: tests
Requires-Dist: furo (>=2024.8.6,<2025.0.0) ; extra == "docs"
Requires-Dist: jupyter-sphinx (>=0.5.3,<0.6.0) ; extra == "docs"
Requires-Dist: matplotlib (>=3.8.3,<4.0.0)
Requires-Dist: mypy (>=1.9.0,<2.0.0) ; extra == "tests"
Requires-Dist: myst-nb (>=1.1.2,<2.0.0) ; extra == "docs"
Requires-Dist: pytest (>=8.1.1,<9.0.0) ; extra == "tests"
Requires-Dist: pytest-cov (>=6.0.0,<7.0.0) ; extra == "tests"
Requires-Dist: pytket-qiskit (>=0.60.0,<0.61.0)
Requires-Dist: pytket-quantinuum[pecos] (>=0.41.0,<0.42.0) ; extra == "tests" or extra == "docs"
Requires-Dist: qiskit-ibm-provider (>=0.11.0,<0.12.0) ; extra == "tests"
Requires-Dist: ruff (>=0.8.1,<0.9.0) ; extra == "tests"
Requires-Dist: sphinx (>=8.1.3,<9.0.0) ; extra == "docs"
Requires-Dist: sphinx-autodoc-typehints (>=2.5.0,<3.0.0) ; extra == "docs"
Description-Content-Type: text/markdown

# Qermit

[![PyPI version](https://badge.fury.io/py/qermit.svg)](https://badge.fury.io/py/qermit)

`qermit` is a python module for running error-mitigation protocols on quantum processors using the [pytket](https://docs.quantinuum.com/tket) quantum computing toolkit.

This repo contains API documentation, a user manual for getting started with `qermit` and source code.

## Getting Started

`qermit` is compatible with the `pytket` 1.0 release and so is available for Python 3.9, 3.10 and 3.11 on Linux, MacOS and Windows.
To install, run:

``pip install qermit``

API documentation can be found at [cqcl.github.io/Qermit](https://cqcl.github.io/Qermit).

To get a more in depth explanation of Qermit and its features including how to construct custom methods see the [manual](https://cqcl.github.io/Qermit/manual/) which includes examples.



## Bugs

Please file bugs on the Github
[issue tracker](https://github.com/CQCL/Qermit/issues).

## How to cite

If you wish to cite Qermit in any academic publications, we generally recommend citing our [benchmarking paper](https://doi.org/10.48550/arXiv.2204.09725) for most cases.

## Contributing

Pull requests or feature suggestions are very 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 adhere to [flake8](https://flake8.pycqa.org/en/latest/)
formatting, ignoring only E501 and W503

#### Type annotation

On the CI, [mypy](https://mypy.readthedocs.io/en/stable/) is used as a static
type checker and all submissions must pass its checks. You should therefore run
`mypy` locally on any changed files before submitting a PR. 

### Tests

To run the tests:

1. `cd` into the `tests` directory;
2. ensure you have installed `pytest`;
3. 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.

