Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove deprecated qiskit.IBMQ alias object #10525

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 0 additions & 50 deletions qiskit/__init__.py
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Those the comment on the top still applies?

# Moved to after IBMQ and Aer imports due to import issues
# with other modules that check for IBMQ (tools)

Original file line number Diff line number Diff line change
Expand Up @@ -137,57 +137,7 @@ def __getattr__(self, attr):
return getattr(self.aer, attr)


class IBMQWrapper:
"""Lazy loading wrapper for IBMQ provider."""

def __init__(self):
self.ibmq = None

def __bool__(self):
if self.ibmq is None:
try:
from qiskit.providers import ibmq

self.ibmq = ibmq.IBMQ
warnings.warn(
"The qiskit.IBMQ entrypoint and the qiskit-ibmq-provider package ("
"accessible from 'qiskit.providers.ibmq`) are deprecated and will be removed "
"in a future release. Instead you should use the qiskit-ibm-provider package "
"which is accessible from 'qiskit_ibm_provider'. You can install it with "
"'pip install qiskit_ibm_provider'",
DeprecationWarning,
stacklevel=2,
)

except ImportError:
return False
return True

def __getattr__(self, attr):
if not self.ibmq:
try:
from qiskit.providers import ibmq

self.ibmq = ibmq.IBMQ
warnings.warn(
"The qiskit.IBMQ entrypoint and the qiskit-ibmq-provider package ("
"accessible from 'qiskit.providers.ibmq`) are deprecated and will be removed "
"in a future release. Instead you should use the qiskit-ibm-provider package "
"which is accessible from 'qiskit_ibm_provider'. You can install it with "
"'pip install qiskit_ibm_provider'. Just replace 'qiskit.IBMQ' with "
"'qiskit_ibm_provider.IBMProvider'",
DeprecationWarning,
stacklevel=2,
)
except ImportError as ex:
raise MissingOptionalLibraryError(
"qiskit-ibmq-provider", "IBMQ provider", "pip install qiskit-ibmq-provider"
) from ex
return getattr(self.ibmq, attr)


Aer = AerWrapper()
IBMQ = IBMQWrapper()

__all__ = [
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think "IBMQ", needs to be removed from this list

"Aer",
Expand Down
2 changes: 1 addition & 1 deletion qiskit/providers/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -461,7 +461,7 @@ def get_translation_stage_plugin(self):
handles submitting the circuits to the backend to be executed and returning a
:class:`~qiskit.providers.Job` object. Depending on the type of backend this
typically involves serializing the circuit object into the API format used by a
backend. For example, on IBMQ backends from the ``qiskit-ibmq-provider``
backend. For example, on IBM Quantum backends from the ``qiskit-ibm-provider``
package this involves converting from a quantum circuit and options into a
`qobj <https://arxiv.org/abs/1809.03452>`__ JSON payload and submitting
that to the IBM Quantum API. Since every backend interface is different (and
Expand Down
13 changes: 13 additions & 0 deletions releasenotes/notes/remove-deprecated-aliases-73eedaa4c610c4cf.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
upgrade:
- |
The deprecated ``qiskit.IBMQ`` object hase been removed. The object was marked
as deprecated. This alias object was marked as deprecated in the 0.23.0 release.
This alias object lazily redirected attribute access to ``qiskit.providers.ibmq.IBMQ``. As the
``qiskit-ibmq-provider`` package has now been retired and superseded by
``qiskit-ibm-provider`` package which maintains its own namespace
maintaining this alias is no longer relevant. If you
were relying on the ``qiskit.IBMQ`` alias you should migrate your usage to
the ``qiskit-ibm-provider`` package, see the
`migration guide <https://qiskit.org/ecosystem/ibm-provider/tutorials/Migration_Guide_from_qiskit-ibmq-provider.html>`__
for more details.