pytket-qsharp


Namepytket-qsharp JSON
Version 0.40.0 PyPI version JSON
download
home_page
SummaryExtension for pytket, providing access to Azure devices and simulators via Microsoft QDK
upload_time2024-03-19 15:23:43
maintainer
docs_urlNone
authorTKET development team
requires_python>=3.10
licenseApache 2
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pytket-qsharp

[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.

[Azure Quantum](https://azure.microsoft.com/en-gb/services/quantum/) is a portal for accessing
quantum computers via Microsoft Azure.

Microsoft's [QDK](https://docs.microsoft.com/en-us/quantum/install-guide) is a
language and associated toolkit for quantum programming.

`pytket-qsharp` is an extension to `pytket` that allows `pytket` circuits to be
executed on remote devices and simulators via Azure Quantum,
as well as local simulators and resource estimators from the Microsoft QDK.

## Backends provided in this module

This module provides four
[backends](https://tket.quantinuum.com/api-docs/backends.html), all deriving
from the `pytket` `Backend` class:

* `AzureBackend`, for executing pytket circuits on targets the user has access to on Azure Quantum;

* `QsharpSimulatorBackend`, for simulating a general pure-quantum circuit using
the QDK;

* `QsharpToffoliSimulatorBackend`, for simulating a Toffoli circuit using the
QDK;

* [disabled] `QsharpEstimatorBackend`, for estimating various quantum resources of a
circuit using the QDK. This provides a `get_resources` method, which returns a
dictionary.

## Getting started

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

```shell
pip install pytket-qsharp
```

This will install `pytket` if it isn't already installed, and add new classes
and methods into the `pytket.extensions` namespace.

In order to use `pytket-qsharp` you will first need to install the `dotnet` SDK
(6.0) and the `iqsharp` tool. On some Linux systems it is also necessary to
modify your `PATH`:

1. See [this page](https://dotnet.microsoft.com/download/dotnet-core/6.0) for
instructions on installing the SDK on your operating system.

2. On Linux, ensure that the `dotnet` tools directory is on your path. Typically
this will be `~/.dotnet/tools`.

3. Run `dotnet tool install -g Microsoft.Quantum.IQSharp`.

4. Run `dotnet iqsharp install --user`.


Alternatively, you can set up an environment with all the required packages using conda:

```
conda create -n qsharp-env -c quantum-engineering qsharp notebook

conda activate qsharp-env
```

## Bugs, support and feature requests

Please file bugs and feature requests on the Github
[issue tracker](https://github.com/CQCL/pytket-qsharp/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 `develop` 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": "",
    "name": "pytket-qsharp",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "",
    "keywords": "",
    "author": "TKET development team",
    "author_email": "tket-support@cambridgequantum.com",
    "download_url": "",
    "platform": null,
    "description": "# pytket-qsharp\n\n[Pytket](https://tket.quantinuum.com/api-docs/index.html) is a python module for interfacing\nwith tket, a quantum computing toolkit and optimising compiler developed by Quantinuum.\n\n[Azure Quantum](https://azure.microsoft.com/en-gb/services/quantum/) is a portal for accessing\nquantum computers via Microsoft Azure.\n\nMicrosoft's [QDK](https://docs.microsoft.com/en-us/quantum/install-guide) is a\nlanguage and associated toolkit for quantum programming.\n\n`pytket-qsharp` is an extension to `pytket` that allows `pytket` circuits to be\nexecuted on remote devices and simulators via Azure Quantum,\nas well as local simulators and resource estimators from the Microsoft QDK.\n\n## Backends provided in this module\n\nThis module provides four\n[backends](https://tket.quantinuum.com/api-docs/backends.html), all deriving\nfrom the `pytket` `Backend` class:\n\n* `AzureBackend`, for executing pytket circuits on targets the user has access to on Azure Quantum;\n\n* `QsharpSimulatorBackend`, for simulating a general pure-quantum circuit using\nthe QDK;\n\n* `QsharpToffoliSimulatorBackend`, for simulating a Toffoli circuit using the\nQDK;\n\n* [disabled] `QsharpEstimatorBackend`, for estimating various quantum resources of a\ncircuit using the QDK. This provides a `get_resources` method, which returns a\ndictionary.\n\n## Getting started\n\n`pytket-qsharp` is available for Python 3.10, 3.11 and 3.12, on Linux, MacOS\nand Windows. To install, run:\n\n```shell\npip install pytket-qsharp\n```\n\nThis will install `pytket` if it isn't already installed, and add new classes\nand methods into the `pytket.extensions` namespace.\n\nIn order to use `pytket-qsharp` you will first need to install the `dotnet` SDK\n(6.0) and the `iqsharp` tool. On some Linux systems it is also necessary to\nmodify your `PATH`:\n\n1. See [this page](https://dotnet.microsoft.com/download/dotnet-core/6.0) for\ninstructions on installing the SDK on your operating system.\n\n2. On Linux, ensure that the `dotnet` tools directory is on your path. Typically\nthis will be `~/.dotnet/tools`.\n\n3. Run `dotnet tool install -g Microsoft.Quantum.IQSharp`.\n\n4. Run `dotnet iqsharp install --user`.\n\n\nAlternatively, you can set up an environment with all the required packages using conda:\n\n```\nconda create -n qsharp-env -c quantum-engineering qsharp notebook\n\nconda activate qsharp-env\n```\n\n## Bugs, support and feature requests\n\nPlease file bugs and feature requests on the Github\n[issue tracker](https://github.com/CQCL/pytket-qsharp/issues).\n\nThere 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.\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 `develop` 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 Azure devices and simulators via Microsoft QDK",
    "version": "0.40.0",
    "project_urls": {
        "Documentation": "https://cqcl.github.io/pytket-qsharp/api/index.html",
        "Source": "https://github.com/CQCL/pytket-qsharp",
        "Tracker": "https://github.com/CQCL/pytket-qsharp/issues"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c68437ae7e11cf8d94d3845cc66647f235882747bf6355c65d213543016c489b",
                "md5": "35a7d1d04f588632c7a97415e706d471",
                "sha256": "6725b177419898132601bfc4c6e779da1eb047fa42e83c706996c0d88826cc72"
            },
            "downloads": -1,
            "filename": "pytket_qsharp-0.40.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "35a7d1d04f588632c7a97415e706d471",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 22131,
            "upload_time": "2024-03-19T15:23:43",
            "upload_time_iso_8601": "2024-03-19T15:23:43.331699Z",
            "url": "https://files.pythonhosted.org/packages/c6/84/37ae7e11cf8d94d3845cc66647f235882747bf6355c65d213543016c489b/pytket_qsharp-0.40.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-19 15:23:43",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "CQCL",
    "github_project": "pytket-qsharp",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pytket-qsharp"
}
        
Elapsed time: 0.23055s