-
Notifications
You must be signed in to change notification settings - Fork 69
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Compatibility with 1.0 for devices (#493)
* remove deprecated installation syntax from test yaml * run all the test vs Qiskit 1.0 * update to only raise error for BasicAer * add missing import * reorganize test parameterization for 1.0 * remove unused import * add a BasicSimulator device * import BasicSimulatorDevice * update combinations of test devices and backends * update devices and backends in integration tests * update tests for incompatible devices and versions * update QiskitDevice tests to use IBMQ instead of BasicAer * tweak QiskitDevice for compatibility with BasicSimulator * fix bad relative import path * skip devices in conftest with incompatible provider-backend combinations * qasm_simulator is just qasm_simulator for old qiskit too now * more fixes for combinations of providers and backends * move import to top level * update to supported backends in test_qiskit_device.py * correct Regex pattern for error test * update providers and backends in test_integration.py * trigger ci * use provider that doesn't requre token * run device integration tests with 1.0 * correct backend for 1.0 device integration tests * upload 1.0 test results to codecov * add IBMQ tests with 1.0 * add basicsim device to documentation * update install instructions * update changelog * update basicsim documentation * update docstring for basicsim * cutoff for basicaer is 0.46 instead of 0.45.3 * remove whitespace * black formatting * indicate partial version number * small docs update * Apply suggestions from code review Co-authored-by: Thomas R. Bromley <[email protected]> * rearrange order of device cards on docs page * docs updates * Update doc/devices/basicsim.rst Co-authored-by: Thomas R. Bromley <[email protected]> * add reference * correct reference * maybe it doesn't like underscores? * update reference * update refs * add custom analytic not supported msg for BasicProvider device * update warning * remove unused import * remove kwarg section of basic_simulator docstring * trigger ci * Unpin Qiskit where relevant (#508) * update to use requirements-ci and requirements-ci-legacy * unpin qiskit-ibm-runtime * add explicit qiskit-ibm-runtime requirement * unpin in upload yaml * update changelog * add codecov token for 1.0 tests * add codecov token for 1.0 tests one more place --------- Co-authored-by: Thomas R. Bromley <[email protected]>
- Loading branch information
1 parent
18c3c7a
commit e3f9482
Showing
22 changed files
with
370 additions
and
146 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
name: IBMQ integration tests with Qiskit 1.0 | ||
on: | ||
schedule: | ||
- cron: '1 0 * * 0,4' # At 01:00 on Sunday and Thursday. | ||
workflow_dispatch: | ||
|
||
jobs: | ||
tests: | ||
runs-on: ubuntu-latest | ||
|
||
strategy: | ||
matrix: | ||
python-version: [3.9] | ||
|
||
steps: | ||
- name: Cancel Previous Runs | ||
uses: styfle/[email protected] | ||
with: | ||
access_token: ${{ github.token }} | ||
|
||
- uses: actions/checkout@v2 | ||
|
||
- name: Set up Python | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
|
||
- name: Install dependencies | ||
run: | | ||
python -m pip install --upgrade pip | ||
pip install -r requirements-ci.txt | ||
pip install wheel pytest pytest-cov pytest-mock flaky --upgrade | ||
pip freeze | ||
- name: Install Plugin | ||
run: | | ||
pip install git+https://github.com/PennyLaneAI/pennylane-qiskit.git@${{ github.ref }} | ||
pip freeze | ||
- name: Run tests | ||
# Only run IBMQ and Runtime tests (skipped otherwise) | ||
run: python -m pytest tests -k 'test_ibmq.py or test_runtime.py' --cov=pennylane_qiskit --cov-report=term-missing --cov-report=xml -p no:warnings --tb=native | ||
env: | ||
IBMQX_TOKEN: ${{ secrets.IBMQX_TOKEN_TEST }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -29,18 +29,61 @@ jobs: | |
- name: Install dependencies | ||
run: | | ||
python -m pip install --upgrade pip | ||
pip install -r requirements-ci0.txt | ||
pip install -r requirements-ci.txt | ||
pip install wheel pytest pytest-cov pytest-mock flaky --upgrade | ||
pip freeze | ||
- name: Install Plugin | ||
run: | | ||
pip install git+https://github.com/PennyLaneAI/pennylane-qiskit.git@${{ github.ref }} | ||
pip freeze | ||
- name: Run standard Qiskit plugin tests | ||
# Run the standard tests with the most recent version of Qiskit | ||
run: python -m pytest tests -k 'not test_ibmq.py and not test_runtime.py' --cov=pennylane_qiskit --cov-report=term-missing --cov-report=xml -p no:warnings --tb=native | ||
|
||
- name: Upload coverage to Codecov | ||
uses: codecov/codecov-action@v4 | ||
with: | ||
token: ${{ secrets.codecov_token }} | ||
file: ./coverage.xml | ||
|
||
integration-tests: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Cancel Previous Runs | ||
uses: styfle/[email protected] | ||
with: | ||
access_token: ${{ github.token }} | ||
|
||
- uses: actions/checkout@v2 | ||
|
||
- name: Set up Python | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: 3.9 | ||
|
||
- name: Install dependencies | ||
run: | | ||
python -m pip install --upgrade pip | ||
pip install -r requirements-ci.txt | ||
pip install wheel pytest pytest-cov pytest-mock pytest-benchmark flaky --upgrade | ||
- name: Install Plugin | ||
run: | | ||
python setup.py bdist_wheel | ||
pip install dist/PennyLane*.whl | ||
- name: Run Qiskit converter tests | ||
# Test conversion to PennyLane with Qiskit 1.0.0 | ||
run: python -m pytest tests/test_converter.py | ||
- name: Run tests | ||
run: | | ||
pl-device-test --device=qiskit.basicsim --tb=short --skip-ops --shots=20000 --device-kwargs backend=basic_simulator | ||
pl-device-test --device=qiskit.aer --tb=short --skip-ops --shots=20000 --device-kwargs backend=qasm_simulator | ||
pl-device-test --device=qiskit.aer --tb=short --skip-ops --shots=None --device-kwargs backend=statevector_simulator | ||
pl-device-test --device=qiskit.aer --tb=short --skip-ops --shots=None --device-kwargs backend=unitary_simulator | ||
- name: Run temporary tests | ||
# tests that test intermediate functionality, will be removed when everything is fully compatible with 1.0 | ||
run: python -m pytest tests/test_new_qiskit_temp.py | ||
- name: Upload coverage to Codecov | ||
uses: codecov/codecov-action@v4 | ||
with: | ||
token: ${{ secrets.codecov_token }} | ||
file: ./coverage.xml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
.. _basicsim device page: | ||
|
||
The BasicSim device | ||
=================== | ||
|
||
Qiskit comes packed with a | ||
`basic pure-Python simulator <https://docs.quantum.ibm.com/api/qiskit/qiskit.providers.basic_provider.BasicSimulator>`_ | ||
that can be accessed in this plugin through: | ||
|
||
.. code-block:: python | ||
import pennylane as qml | ||
dev = qml.device('qiskit.basicsim', wires=2) | ||
This device uses the Qiskit ``BasicSimulator`` backend from the | ||
`basic_provider <https://docs.quantum.ibm.com/api/qiskit/providers_basic_provider>`_ module in Qiskit. | ||
|
||
.. note:: | ||
|
||
The `Qiskit Aer <https://qiskit.github.io/qiskit-aer/>`_ device | ||
provides a fast simulator that is also capable of simulating | ||
noise. It is available as :ref:`"qiskit.aer" <aer device page>`, but the backend must be | ||
installed separately with ``pip install qiskit-aer``. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.