diff --git a/constraints.txt b/constraints.txt index 6681de226d93..8c561f52f0f6 100644 --- a/constraints.txt +++ b/constraints.txt @@ -7,6 +7,10 @@ scipy<1.11; python_version<'3.12' # See https://github.com/Qiskit/qiskit/issues/12655 for current details. scipy==1.13.1; python_version=='3.12' +# Rustworkx 0.15.0 contains a bug that breaks graphviz-related tests. +# See https://github.com/Qiskit/rustworkx/pull/1229 for the fix. +rustworkx==0.14.2 + # z3-solver from 4.12.3 onwards upped the minimum macOS API version for its # wheels to 11.7. The Azure VM images contain pre-built CPythons, of which at # least CPython 3.8 was compiled for an older macOS, so does not match a diff --git a/test/utils/base.py b/test/utils/base.py index bebf03008858..ce9509709bad 100644 --- a/test/utils/base.py +++ b/test/utils/base.py @@ -204,6 +204,20 @@ def setUpClass(cls): warnings.filterwarnings("error", category=DeprecationWarning) warnings.filterwarnings("error", category=QiskitWarning) + # Numpy 2 made a few new modules private, and have warnings that trigger if you try to + # access attributes that _would_ have existed. Unfortunately, Python's `warnings` module + # adds a field called `__warningregistry__` to any module that triggers a warning, and + # `unittest.TestCase.assertWarns` then queries said fields on all existing modules. On + # macOS ARM, we see some (we think harmless) warnings come out of `numpy.linalg._linalg` (a + # now-private module) during transpilation, which means that subsequent `assertWarns` calls + # can spuriously trick Numpy into sending out a nonsense `DeprecationWarning`. + # Tracking issue: https://github.com/Qiskit/qiskit/issues/12679 + warnings.filterwarnings( + "ignore", + category=DeprecationWarning, + message=r".*numpy\.(\w+\.)*__warningregistry__", + ) + # We only use pandas transitively through seaborn, so it's their responsibility to mark if # their use of pandas would be a problem. warnings.filterwarnings(