https://github.com/cqcl/pytket-quest
https://github.com/cqcl/pytket-quest
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/cqcl/pytket-quest
- Owner: CQCL
- License: apache-2.0
- Created: 2024-05-01T17:57:28.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-01T16:39:15.000Z (over 1 year ago)
- Last Synced: 2025-05-07T04:48:18.262Z (about 1 year ago)
- Language: Python
- Size: 131 KB
- Stars: 3
- Watchers: 10
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# pytket-quest
[Pytket](https://tket.quantinuum.com/api-docs/index.html) is a python module for interfacing
with tket, a quantum computing toolkit and optimising compiler developed by Quantinuum.
[QuEST](https://quest.qtechtheory.org/) is an open-source high performance simulator of
quantum circuits, state-vectors and density matrices.
## Getting started
`pytket-quest` is available for Python 3.10 and 3.11 on Linux, MacOS and
Windows. To install, run:
```shell
pip install pytket-quest
```
This will install `pytket` if it isn't already installed, and add new classes
and methods into the `pytket.extensions` namespace.
## Bugs, support and feature requests
Please file bugs and feature requests on the Github
[issue tracker](https://github.com/CQCL/pytket-quest/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
To install an extension in editable mode, simply change to its subdirectory
within the `modules` directory, and run:
```shell
pip install -e .
```
## 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
[black](https://black.readthedocs.io/en/stable/), with default options. This is
checked on the CI. The CI is currently using version 20.8b1.
#### 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. Because of the way
extension modules embed themselves into the `pytket` namespace this is a little
complicated, but it should be sufficient to run the script `modules/mypy-check`
(passing as a single argument the root directory of the module to test). The
script requires `mypy` 0.800 or above.
#### Linting
We use [pylint](https://pypi.org/project/pylint/) on the CI to check compliance
with a set of style requirements (listed in `.pylintrc`). You should run
`pylint` over any changed files before submitting a PR, to catch any issues.
### Tests
To run the tests for a module:
1. `cd` into that module's `tests` directory;
2. ensure you have installed `pytest`, and any modules listed in
the `test-requirements.txt` file (all via `pip`);
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.
## Acknowledgements
We acknowledge the outstanding contributions from
[Oleksii Borodenko](https://github.com/TerraVenil) and
[Ignacio Salgado](https://github.com/Salgi15), who
worked on the first version of this package as part of the
[Quantum Open Source Foundation mentorship program](https://www.qosf.org/qc_mentorship/).