Skip to content

Commit

Permalink
Add BackendV2 mocked backend (Qiskit/qiskit#7643)
Browse files Browse the repository at this point in the history
* Add backend converter script from Matthew

Co-Authored-By: Matthew Treinish <[email protected]>

* FakeBackendV2, FakeQasmBeckendV2, FakeJakartaV2 in progress

* Temporary fix for circular import

* First try of implementing FakeJakartaV2 based on FakeQasmBackendV2/FakeBackendV2

* Implement FakeQasmBackend methods into FakeBackendV2

* Implement FakePulseBackend methods into FakeBackendV2

* Import missing PulseDefaults and adjust _get_conf_from_json method position

* Adjust _get_config_from_dict method position

* Fix target property

Need to take closer look at _convert_to_target method

* Fix _default_options method

* Add FakeProviderV2 for V2 fake backends

* Remove FakeQasmBackendV2 class

* Copy run method from FakeBackendV1

* change configuration to self._configuration

* Update backend_converter.py

Based on the latest version on Qiskit/qiskit-ibm-runtime#102

Co-Authored-By: Rathish Cholarajan <[email protected]>

* @rathishcholarajan Use BackendConfiguration, BackendProperties and PulseDefaults classes for convert_to_target

* Add dtm

* Add qubit properties

* Add drive, measure and acquire channels.

* Fix test_fake_backends

* Fix ConfigurableFakeBackend circular import problem

* Fix configurable_backend circular import problem

* FakeAlmadenV2

* FakeArmonkV2

* FakeAthensV2

* FakeBelemV2

* FakeBoeblingenV2

* Add fake backends (except rueschlikon, tenerife and tokyo)

* import fake v2 backends in __init__.py

* add fake backends to mock.backend.__init__ and fake provider

* Fix typos

* Add defs files to manila, poughkeepsie, rome and santiago

* Fix FakeCambridgeV2

* Add Hanoi and Kolkata to FakeProviderV2

* Handle no pulse backends in V2

* Fix getting qubit properties from properties bug

* Fix _parse_inst_map for BackendV2 with no pulse support

* Revert "Update backend_converter.py"

This reverts commit 2438935d218bf3e1059bef185d77c426cc0978d3.

* Revert " @rathishcholarajan Use BackendConfiguration, BackendProperties and PulseDefaults classes for convert_to_target"

This reverts commit eec4a49f590399c15a90c4579844009cc9d0dc20.

* Use dicts instead of conf, props, defs objects

* remove channels

* add type hints

* Use dict.get instead of brackets

* clean up backend_converter.py

* construct target using defs files if it exist

* Fix typo in target.acquire_alignment

* Handle BackendV2 in transpiler._parse_inst_map

* Comment out backends in fake provider and Aer run method for testing

* undo typo fix for target.acquire_alignment

* Revert "Comment out backends in fake provider and Aer run method for testing"

This reverts commit 2127b345b63e9dea1bbdbd44b397f1d14089213b.

* Copy NoiseModel.from_backend() method from Aer

* modify NoiseModel.from_backend method to support V2 backend

* Build V2 backend noise model from self._props_dict

* black reformatting

* Move V2 backend code to above V1 and Legacy

* Clean up FakeBackendV2 for testing

* Order FakeBackendV2 to match BackendV2

* Uncomment out fake backends from fake provider v1 and fake legacy provider

* Remove unused imports

* Remove FakeTokyoV2 import

* Remove warnings for missing conf, props and defs files

* Remove lazy loading of target

* Remove lazy loading of qubit properties

* Remove deprecation warning for standard_gates option in noise model

* linting for fake_backend.py

* linting for backend_converter.py

* fix `Redefining name 'warnings' from outer scope` error

* lint: rename qubit_props_dict_from_props_dict

* Raise error for pulse simulation

* remove warnings flag

* Move V2 to in front of V1

* revert changes in transpiler._parse_inst_map

The changes are now in a separate PR: Qiskit/qiskit#7765

* remove warnings flag

* fix 'no-else-raise' error

* Add docstring to FakeBackendV2

* rename `kwargs` to `options` in .run method

following BackendV2

* Update qiskit/test/mock/fake_backend.py

Co-authored-by: Matthew Treinish <[email protected]>

* Update qiskit/test/mock/fake_backend.py

Co-authored-by: Matthew Treinish <[email protected]>

* Update qiskit/test/mock/fake_backend.py

Co-authored-by: Matthew Treinish <[email protected]>

* rearrange raising error for pulse job

* Add a TODO comment for removing PulseDefaults

* fix typo

* black reformat

* Add release note.

* Fix no else raise error

* Add blank new line in release note

* black formatting

* fix release note missing black tick

* Rename FakeProviderV2 to FakeProviderForBackendV2

* Re-export FakeProviderForBackendV2 to qiskit.providers.fake_provider

* black reformatting

Co-authored-by: Matthew Treinish <[email protected]>
Co-authored-by: Rathish Cholarajan <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
  • Loading branch information
4 people authored Mar 31, 2022
1 parent 88c32a2 commit b5b5a78
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion qiskit_ibm_provider/fake_provider/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,11 @@
The mock devices are mainly for testing the compiler.
"""

from qiskit.test.mock.fake_provider import FakeProvider, FakeLegacyProvider
from qiskit.test.mock.fake_provider import (
FakeProviderForBackendV2,
FakeProvider,
FakeLegacyProvider,
)
from qiskit.test.mock.fake_provider import FakeProviderFactory
from qiskit.test.mock.fake_backend import FakeBackend, FakeLegacyBackend
from qiskit.test.mock.fake_pulse_backend import FakePulseBackend, FakePulseLegacyBackend
Expand Down

0 comments on commit b5b5a78

Please sign in to comment.