Remove deprecated top-level `classicalfunction` imports (#11486)

* Remove deprecated top-level classicalfunction imports

* add reno

* new editor does not automatically run black yet... sorry

* Update releasenotes/notes/remove-cfun-toplevel-5d0d58bed83d57ed.yaml

Co-authored-by: Jake Lishman <jake@binhbar.com>

---------

Co-authored-by: Jake Lishman <jake@binhbar.com>
This commit is contained in:
Julien Gacon 2024-01-05 14:31:40 +01:00 committed by GitHub
parent 33d5afe540
commit 654a53051a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 25 deletions

View File

@ -398,28 +398,3 @@ from .controlflow import (
BreakLoopOp, BreakLoopOp,
ContinueLoopOp, ContinueLoopOp,
) )
_DEPRECATED_NAMES = {
"Int1": "qiskit.circuit.classicalfunction.types",
"Int2": "qiskit.circuit.classicalfunction.types",
"classical_function": "qiskit.circuit.classicalfunction",
"BooleanExpression": "qiskit.circuit.classicalfunction",
}
def __getattr__(name):
if name in _DEPRECATED_NAMES:
import importlib
import warnings
module_name = _DEPRECATED_NAMES[name]
warnings.warn(
f"Accessing '{name}' from '{__name__}' is deprecated since Qiskit Terra 0.22 "
f"and will be removed in 0.23. Import from '{module_name}' instead. "
"This will require installing 'tweedledum' as an optional dependency from Terra 0.23.",
DeprecationWarning,
stacklevel=2,
)
return getattr(importlib.import_module(module_name), name)
raise AttributeError(f"module '{__name__}' has no attribute '{name}'")

View File

@ -0,0 +1,6 @@
---
upgrade:
- |
Importing :class:`.Int1`, :class:`.Int2`, :class:`.BooleanFunction`, :func:`.classical_function`
from :mod:`qiskit.circuit` is now disabled. Instead, import the objects from the
:mod:`qiskit.circuit.classicalfunction` submodule, which requires the ``tweedledum`` package.