def test_deprecated_module_does_not_wrap_mockfinder(): @modulize('sphinx.ext.autodoc.mock') def module_code( # pylint: disable=unused-variable # https://github.com/PyCQA/pylint/issues/2842 __name__, ): # pylint: disable=redefined-builtin # put module code here class MockFinder(MetaPathFinder): def __init__(self, modnames: List[str]) -> None: super().__init__() def find_spec( self, fullname: Optional[str] = None, path: Optional[Sequence[Union[bytes, str]]] = None, target: Optional[ModuleType] = None, ) -> None: pass # the function must return locals() return locals() from sphinx.ext.autodoc.mock import MockFinder fake_mockfinder = MockFinder([]) sys.meta_path.insert(0, fake_mockfinder) deprecated_submodule( new_module_name='sphinx_1', old_parent='sphinx_2', old_child='old_ch', deadline='v1.2', create_attribute=False, ) assert fake_mockfinder in sys.meta_path # Cleanup sys.metapath after test sys.meta_path.remove(fake_mockfinder)
def test_deprecated_module_deadline_validation(): with pytest.raises(AssertionError, match='deadline should match vX.Y'): deprecated_submodule( new_module_name='new', old_parent='old_p', old_child='old_ch', deadline='invalid', create_attribute=False, )
def _test_metadata_distributions_after_deprecated_submodule(): # verify deprecated_submodule does not break importlib_metadata.distributions() # See https://github.com/quantumlib/Cirq/issues/4729 deprecated_submodule( new_module_name='cirq.neutral_atoms', old_parent='cirq', old_child='swiss_atoms', deadline="v0.14", create_attribute=True, ) m = pytest.importorskip("importlib_metadata") distlist = list(m.distributions()) assert all(isinstance(d.name, str) for d in distlist)
from cirq import testing # Registers cirq-core's public classes for JSON serialization. # pylint: disable=wrong-import-position from cirq.protocols.json_serialization import _register_resolver from cirq.json_resolver_cache import _class_resolver_dictionary _register_resolver(_class_resolver_dictionary) # contrib's json resolver cache depends on cirq.DEFAULT_RESOLVER from cirq import contrib # deprecate cirq.ops and related attributes from cirq import _compat _compat.deprecated_submodule( new_module_name='cirq.circuits.moment', old_parent='cirq.ops', old_child='moment', deadline='v0.16', create_attribute=True, ) ops.Moment = Moment # type: ignore _compat.deprecate_attributes('cirq.ops', {'Moment': ('v0.16', 'Use cirq.circuits.Moment instead')}) # pylint: enable=wrong-import-position
single_qubit_matrix_to_phxz, single_qubit_op_to_framed_phase_form, three_qubit_matrix_to_operations, two_qubit_matrix_to_cz_operations, two_qubit_matrix_to_diagonal_and_cz_operations, two_qubit_matrix_to_diagonal_and_operations, two_qubit_matrix_to_operations, two_qubit_matrix_to_sqrt_iswap_operations, ) from cirq import _compat _compat.deprecated_submodule( new_module_name= "cirq.transformers.analytical_decompositions.clifford_decomposition", old_parent="cirq.optimizers", old_child="clifford_decomposition", deadline="v0.16", create_attribute=True, ) _compat.deprecated_submodule( new_module_name= "cirq.transformers.analytical_decompositions.cphase_to_fsim", old_parent="cirq.optimizers", old_child="cphase_to_fsim", deadline="v0.16", create_attribute=True, ) _compat.deprecated_submodule( new_module_name=
) # pylint: enable=redefined-builtin # Unflattened sub-modules. from cirq import ( pasqal, testing, ) try: _compat.deprecated_submodule( new_module_name='cirq_google', old_parent=__name__, old_child='google', deadline="v0.14", create_attribute=True, ) except ImportError as ex: # coverage: ignore warning("Can't import cirq_google: ", exc_info=ex) try: _compat.deprecated_submodule( new_module_name='cirq_aqt', old_parent=__name__, old_child='aqt', deadline="v0.14", create_attribute=True, )
"""Test module for deprecation testing. See cirq/_compat_test.py for the tests. This module contains example deprecations for modules. """ import sys from logging import info from cirq import _compat info("init:compat_test_data") # simulates a rename of a child module # fake_a -> module_a _compat.deprecated_submodule( new_module_name=f"{__name__}.module_a", old_parent=__name__, old_child="fake_a", deadline="v0.20", create_attribute=True, ) # simulates a rename of a grandchild module # module_a.fake_ab -> module_a.module_b _compat.deprecated_submodule( new_module_name=f"{__name__}.module_a.module_b", old_parent=f"{__name__}.module_a", old_child="fake_ab", deadline="v0.20", create_attribute=True, ) # simulates a rename of a child module with same prefix
# pylint: disable=wrong-or-nonexistent-copyright-notice from cirq import _compat from cirq_google.optimizers.two_qubit_gates.gate_compilation import ( gate_product_tabulation, GateTabulation, ) _compat.deprecated_submodule( new_module_name= "cirq.transformers.heuristic_decompositions.gate_tabulation_math_utils", old_parent=__name__, old_child="math_utils", deadline="v0.16", create_attribute=True, )