Name | pytket-qujax JSON |
Version |
0.21.0
JSON |
| download |
home_page | None |
Summary | Extension for pytket, providing access to qujax functions |
upload_time | 2024-10-04 08:29:54 |
maintainer | None |
docs_url | None |
author | TKET development team |
requires_python | >=3.10 |
license | Apache 2 |
keywords |
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# pytket-qujax
[](https://tketusers.slack.com/join/shared_invite/zt-18qmsamj9-UqQFVdkRzxnXCcKtcarLRA#)
[](https://quantumcomputing.stackexchange.com/tags/pytket)
This repository contains the pytket-qujax extension, using CQC's
[pytket](https://tket.quantinuum.com/api-docs/index.html) quantum SDK.
The other pytket extensions can be found [here](https://tket.quantinuum.com/api-docs/extensions)
[Pytket](https://tket.quantinuum.com/api-docs/index.html) is a Python module for interfacing
with CQC tket, a set of quantum programming tools.
[qujax](https://github.com/CQCL/qujax) is a pure [JAX](https://github.com/google/jax)
quantum simulator. pytket-qujax is an extension to [pytket](https://tket.quantinuum.com/api-docs/index.html)
that allows [pytket](https://tket.quantinuum.com/api-docs/index.html) circuits to
be converted to [qujax](https://github.com/CQCL/qujax) for fast (classical) simulation and automatic differentiation.
Some useful links:
- [Documentation](https://tket.quantinuum.com/extensions/pytket-qujax/index.html)
- [PyPI](https://pypi.org/project/pytket-qujax/)
- [qujax](https://github.com/CQCL/qujax)
- [pytket-qujax example notebook (VQE)](https://github.com/CQCL/pytket/blob/main/examples/pytket-qujax_heisenberg_vqe.ipynb)
- [pytket-qujax example notebook (QAOA with `symbol_map`)](https://github.com/CQCL/pytket/blob/main/examples/pytket-qujax_qaoa.ipynb)
- [pytket-qujax example notebook (classifier)](https://github.com/CQCL/pytket/blob/main/examples/pytket-qujax-classification.ipynb)
- [qujax example notebooks](https://github.com/CQCL/qujax/tree/main/examples)
## Getting started
`pytket-qujax` is available for Python 3.10, 3.11 and 3.12, on Linux and MacOS.
To install, run:
```shell
pip install pytket-qujax
```
This will install `pytket` if it isn't already installed, and add new classes
and methods into the `pytket.extensions` namespace.
## Bugs and feature requests
Please file bugs and feature requests on the Github
[issue tracker](https://github.com/CQCL/pytket-qujax/issues).
## 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`, `hypothesis`, 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.
Raw data
{
"_id": null,
"home_page": null,
"name": "pytket-qujax",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": null,
"author": "TKET development team",
"author_email": "tket-support@quantinuum.com",
"download_url": null,
"platform": null,
"description": "# pytket-qujax\n\n[](https://tketusers.slack.com/join/shared_invite/zt-18qmsamj9-UqQFVdkRzxnXCcKtcarLRA#)\n[](https://quantumcomputing.stackexchange.com/tags/pytket)\n\nThis repository contains the pytket-qujax extension, using CQC's\n[pytket](https://tket.quantinuum.com/api-docs/index.html) quantum SDK.\nThe other pytket extensions can be found [here](https://tket.quantinuum.com/api-docs/extensions)\n\n[Pytket](https://tket.quantinuum.com/api-docs/index.html) is a Python module for interfacing\nwith CQC tket, a set of quantum programming tools.\n\n[qujax](https://github.com/CQCL/qujax) is a pure [JAX](https://github.com/google/jax)\nquantum simulator. pytket-qujax is an extension to [pytket](https://tket.quantinuum.com/api-docs/index.html)\nthat allows [pytket](https://tket.quantinuum.com/api-docs/index.html) circuits to\nbe converted to [qujax](https://github.com/CQCL/qujax) for fast (classical) simulation and automatic differentiation.\n\nSome useful links:\n- [Documentation](https://tket.quantinuum.com/extensions/pytket-qujax/index.html)\n- [PyPI](https://pypi.org/project/pytket-qujax/)\n- [qujax](https://github.com/CQCL/qujax)\n- [pytket-qujax example notebook (VQE)](https://github.com/CQCL/pytket/blob/main/examples/pytket-qujax_heisenberg_vqe.ipynb)\n- [pytket-qujax example notebook (QAOA with `symbol_map`)](https://github.com/CQCL/pytket/blob/main/examples/pytket-qujax_qaoa.ipynb)\n- [pytket-qujax example notebook (classifier)](https://github.com/CQCL/pytket/blob/main/examples/pytket-qujax-classification.ipynb)\n- [qujax example notebooks](https://github.com/CQCL/qujax/tree/main/examples)\n\n\n## Getting started\n\n`pytket-qujax` is available for Python 3.10, 3.11 and 3.12, on Linux and MacOS.\nTo install, run:\n\n```shell\npip install pytket-qujax\n```\n\nThis will install `pytket` if it isn't already installed, and add new classes\nand methods into the `pytket.extensions` namespace.\n\n## Bugs and feature requests\n\nPlease file bugs and feature requests on the Github\n[issue tracker](https://github.com/CQCL/pytket-qujax/issues).\n\n## Development\n\nTo install an extension in editable mode, simply change to its subdirectory\nwithin the `modules` directory, and run:\n\n```shell\npip install -e .\n```\n\n## Contributing\n\nPull requests are welcome. To make a PR, first fork the repo, make your proposed\nchanges on the `main` branch, and open a PR from your fork. If it passes\ntests and is accepted after review, it will be merged in.\n\n### Code style\n\n#### Formatting\n\nAll code should be formatted using\n[black](https://black.readthedocs.io/en/stable/), with default options. This is\nchecked on the CI. The CI is currently using version 20.8b1.\n\n#### Type annotation\n\nOn the CI, [mypy](https://mypy.readthedocs.io/en/stable/) is used as a static\ntype checker and all submissions must pass its checks. You should therefore run\n`mypy` locally on any changed files before submitting a PR. Because of the way\nextension modules embed themselves into the `pytket` namespace this is a little\ncomplicated, but it should be sufficient to run the script `modules/mypy-check`\n(passing as a single argument the root directory of the module to test). The\nscript requires `mypy` 0.800 or above.\n\n#### Linting\n\nWe use [pylint](https://pypi.org/project/pylint/) on the CI to check compliance\nwith a set of style requirements (listed in `.pylintrc`). You should run\n`pylint` over any changed files before submitting a PR, to catch any issues.\n\n### Tests\n\nTo run the tests for a module:\n\n1. `cd` into that module's `tests` directory;\n2. ensure you have installed `pytest`, `hypothesis`, and any modules listed in\nthe `test-requirements.txt` file (all via `pip`);\n3. run `pytest`.\n\nWhen adding a new feature, please add a test for it. When fixing a bug, please\nadd a test that demonstrates the fix.\n",
"bugtrack_url": null,
"license": "Apache 2",
"summary": "Extension for pytket, providing access to qujax functions",
"version": "0.21.0",
"project_urls": {
"Documentation": "https://tket.quantinuum.com/extensions/pytket-qujax/index.html",
"Source": "https://github.com/CQCL/pytket-qujax",
"Tracker": "https://github.com/CQCL/pytket-qujax/issues"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1fc90c1ba554e7a66d352febc697e598ed1d19363d55e9c29391e557bcd77e6e",
"md5": "14e84693ff85cdeafe6d25e383b5421e",
"sha256": "9b9b513f5e662c9fa46729bd5605a2911191dbcd966c8ba1c4ac6a40e756ee4a"
},
"downloads": -1,
"filename": "pytket_qujax-0.21.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "14e84693ff85cdeafe6d25e383b5421e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 12547,
"upload_time": "2024-10-04T08:29:54",
"upload_time_iso_8601": "2024-10-04T08:29:54.761792Z",
"url": "https://files.pythonhosted.org/packages/1f/c9/0c1ba554e7a66d352febc697e598ed1d19363d55e9c29391e557bcd77e6e/pytket_qujax-0.21.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-04 08:29:54",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "CQCL",
"github_project": "pytket-qujax",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pytket-qujax"
}