diff --git a/docs/changes/newsfragments/5367.breaking b/docs/changes/newsfragments/5367.breaking new file mode 100644 index 00000000000..cf8ffdf8a5b --- /dev/null +++ b/docs/changes/newsfragments/5367.breaking @@ -0,0 +1,5 @@ +The deprecated modules +`qcodes.data`, `qcodes.loop`, `qcodes.actions`, `qcodes.plots`, +`qcodes.measure`, `qcodes.extensions.slack`, `qcodes.utils.magic`, qcodes.utils.qt_helpers` +`qcodes.utils.slack` has been removed. +The modules can be found in `qcodes_loop `_ diff --git a/pyproject.toml b/pyproject.toml index 66df6124133..05add732892 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -74,7 +74,7 @@ qtplot = ["pyqtgraph>=0.11.0"] slack = ["slack-sdk>=3.4.2"] # can be removed once deprecated slack are removed zurichinstruments = ["zhinst-qcodes>=0.3"] -loop = ["qcodes_loop>=0.1.1"] +loop = ["qcodes_loop>=0.1.2"] test = [ "coverage[toml]>=6.0.0", "deepdiff>=5.0.2", @@ -90,7 +90,6 @@ test = [ "pytest-rerunfailures>=10.0", "pytest-xdist>=2.0.0", "PyVisa-sim>=0.4.0", - "slack-sdk>=3.4.2", # can be dropped when deprecated slack ext is deleted "sphinx>=4.5.0", # sphinx extension tests "types-jsonschema>=4.16.0", "types_requests>=0.1.8", @@ -178,14 +177,6 @@ module = [ "qcodes.instrument.mockers.ami430", "qcodes.instrument_drivers.Harvard.*", "qcodes.instrument_drivers.Keysight.keysightb1500.message_builder.*", - # deprecated non typed modules - "qcodes.actions.*", - "qcodes.data.*", - "qcodes.loops", - "qcodes.measure", - "qcodes.plots.*", - "qcodes.utils.magic", - "qcodes.extensions.slack", ] disallow_untyped_defs = false disallow_incomplete_defs = false @@ -205,7 +196,6 @@ module = [ "mcl_RF_Switch_Controller_NET45", "opencensus.ext.azure.*", "pywinusb.*", - "pyqtgraph.*", # can be droped once deprecated plots module is deleted "ruamel", "spyder.utils.site", "spyder_kernels.customize", @@ -219,15 +209,6 @@ ignore_missing_imports = true include = ["qcodes"] ignore = [ "qcodes/instrument_drivers/Harvard/Decadac.py", - # deprecated non typed modules - "qcodes/actions.py", - "qcodes/data", - "qcodes/loops.py", - "qcodes/measure.py", - "qcodes/plots/pyqtgraph.py", - "qcodes/plots/qcmatplotlib.py", - "qcodes/plots/base.py", - "qcodes/extensions/slack.py" ] reportMissingTypeStubs = true @@ -269,30 +250,11 @@ extend-exclude = ["typings"] [tool.ruff.per-file-ignores] # deprecated modules left # for backwards compatibility -"qcodes/actions.py" = ["F401"] -"qcodes/data/__init__.py" = ["F401"] -"qcodes/data/data_array.py" = ["F401"] -"qcodes/data/data_set.py" = ["F401"] -"qcodes/data/format.py" = ["F401"] -"qcodes/data/gnuplot_format.py" = ["F401"] -"qcodes/data/hdf5_format.py" = ["F401"] -"qcodes/data/hdf5_format_hickle.py" = ["F401"] -"qcodes/data/io.py" = ["F401"] -"qcodes/data/location.py" = ["F401"] -"qcodes/plots/pyqtgraph.py" = ["F401"] -"qcodes/plots/qcmatplotlib.py" = ["F401"] -"qcodes/loops.py" = ["F401"] -"qcodes/measure.py" = ["F401"] -"qcodes/plots/base.py" = ["F401"] -"qcodes/plots/colors.py" = ["F401"] "qcodes/utils/validators.py" = ["F401"] "qcodes/utils/threading.py" = ["F401"] -"qcodes/utils/qt_helpers.py" = ["F401"] "qcodes/utils/plotting.py" = ["F401"] "qcodes/utils/metadata.py" = ["F401"] -"qcodes/utils/magic.py" = ["F401"] "qcodes/utils/helpers.py" = ["F401"] -"qcodes/extensions/slack.py" = ["F401"] "qcodes/instrument_drivers/AimTTi/AimTTi_PL601P_channels.py" = ["F401"] "qcodes/instrument_drivers/tektronix/Keithley_6500.py" = ["F401"] "qcodes/instrument_drivers/tektronix/Keithley_2600_channels.py" = ["F401"] diff --git a/qcodes/actions.py b/qcodes/actions.py deleted file mode 100644 index ac38a74838d..00000000000 --- a/qcodes/actions.py +++ /dev/null @@ -1,25 +0,0 @@ -"""Actions, mainly to be executed in measurement Loops.""" -import time - -from qcodes.utils import is_function, issue_deprecation_warning, thread_map - -try: - from qcodes_loop.actions import ( - BreakIf, - Task, - UnsafeThreadingException, - Wait, - _actions_snapshot, - _Measure, - _Nest, - _QcodesBreak, - ) - -except ImportError as e: - raise ImportError( - "qcodes.actions is deprecated and has moved to " - "the package `qcodes_loop`. Please install qcodes_loop directly or " - "with `pip install qcodes[loop]" - ) from e - -issue_deprecation_warning("qcodes.actions module", alternative="qcodes_loop.actions") diff --git a/qcodes/data/__init__.py b/qcodes/data/__init__.py deleted file mode 100644 index cfcea4c744f..00000000000 --- a/qcodes/data/__init__.py +++ /dev/null @@ -1,20 +0,0 @@ -""" -This module has moved to the qcodes_loop package. -""" -from qcodes.utils import issue_deprecation_warning - -try: - from qcodes_loop.data.data_array import DataArray - from qcodes_loop.data.format import Formatter - from qcodes_loop.data.gnuplot_format import GNUPlotFormat - from qcodes_loop.data.hdf5_format import HDF5Format - from qcodes_loop.data.io import DiskIO - from qcodes_loop.data.location import FormatLocation -except ImportError as e: - raise ImportError( - "qcodes.data is deprecated and has moved to " - "the package `qcodes_loop`. Please install qcodes_loop directly or " - "with `pip install qcodes[loop]" - ) from e - -issue_deprecation_warning("qcodes.data module", alternative="qcodes_loop.data") diff --git a/qcodes/data/data_array.py b/qcodes/data/data_array.py deleted file mode 100644 index 015decbf35a..00000000000 --- a/qcodes/data/data_array.py +++ /dev/null @@ -1,30 +0,0 @@ -import collections.abc -from typing import TYPE_CHECKING, Any, Optional - -import numpy as np - -if TYPE_CHECKING: - import xarray as xr - -import logging - -from qcodes.utils import DelegateAttributes, full_class, issue_deprecation_warning - -_LOG = logging.getLogger(__name__) - -try: - from qcodes_loop.data.data_array import ( - DataArray, - data_array_to_xarray_dictionary, - xarray_data_array_dictionary_to_data_array, - ) -except ImportError as e: - raise ImportError( - "qcodes.data.data_array is deprecated and has moved to " - "the package `qcodes_loop`. Please install qcodes_loop directly or " - "with `pip install qcodes[loop]" - ) from e - -issue_deprecation_warning( - "qcodes.data.data_array module", alternative="qcodes_loop.data.data_array" -) diff --git a/qcodes/data/data_set.py b/qcodes/data/data_set.py deleted file mode 100644 index f0c1a8b058e..00000000000 --- a/qcodes/data/data_set.py +++ /dev/null @@ -1,48 +0,0 @@ -"""DataSet class and factory functions.""" -from __future__ import annotations - -import logging -import time -from collections import OrderedDict -from copy import deepcopy -from traceback import format_exc -from typing import TYPE_CHECKING, Any, Callable - -import numpy as np - -from qcodes.utils import ( - DelegateAttributes, - deep_update, - full_class, - issue_deprecation_warning, -) - -try: - from qcodes_loop.data.data_array import ( - DataArray, - data_array_to_xarray_dictionary, - xarray_data_array_dictionary_to_data_array, - ) - from qcodes_loop.data.data_set import ( - DataSet, - _PrettyPrintDict, - dataset_to_xarray_dictionary, - load_data, - new_data, - qcodes_dataset_to_xarray_dataset, - xarray_dataset_to_qcodes_dataset, - xarray_dictionary_to_dataset, - ) - from qcodes_loop.data.gnuplot_format import GNUPlotFormat - from qcodes_loop.data.io import DiskIO - from qcodes_loop.data.location import FormatLocation -except ImportError as e: - raise ImportError( - "qcodes.data.data_set is deprecated and has moved to " - "the package `qcodes_loop`. Please install qcodes_loop directly or " - "with `pip install qcodes[loop]" - ) from e - -issue_deprecation_warning( - "qcodes.data.data_set module", alternative="qcodes_loop.data.data_set" -) diff --git a/qcodes/data/format.py b/qcodes/data/format.py deleted file mode 100644 index 8ec9f9bdbe5..00000000000 --- a/qcodes/data/format.py +++ /dev/null @@ -1,20 +0,0 @@ -import logging -from collections import namedtuple -from operator import attrgetter -from traceback import format_exc - -from qcodes.utils import issue_deprecation_warning - -log = logging.getLogger(__name__) - -try: - from qcodes_loop.data.format import ArrayGroup, Formatter -except ImportError as e: - raise ImportError( - "qcodes.data.format is deprecated and has moved to " - "the package `qcodes_loop`. Please install qcodes_loop directly or " - "with `pip install qcodes[loop]" - ) from e -issue_deprecation_warning( - "qcodes.data.format module", alternative="qcodes_loop.data.format" -) diff --git a/qcodes/data/gnuplot_format.py b/qcodes/data/gnuplot_format.py deleted file mode 100644 index f54c6a2104b..00000000000 --- a/qcodes/data/gnuplot_format.py +++ /dev/null @@ -1,23 +0,0 @@ -import json -import logging -import math -import re -from typing import TYPE_CHECKING - -import numpy as np - -from qcodes.utils import NumpyJSONEncoder, deep_update, issue_deprecation_warning - -try: - from qcodes_loop.data.data_array import DataArray - from qcodes_loop.data.format import Formatter - from qcodes_loop.data.gnuplot_format import GNUPlotFormat -except ImportError as e: - raise ImportError( - "qcodes.data.gunplot_format is deprecated and has moved to " - "the package `qcodes_loop`. Please install qcodes_loop directly or " - "with `pip install qcodes[loop]" - ) from e -issue_deprecation_warning( - "qcodes.data.gunplot_format module", alternative="qcodes_loop.data.gunplot_format" -) diff --git a/qcodes/data/hdf5_format.py b/qcodes/data/hdf5_format.py deleted file mode 100644 index 2415e8fa502..00000000000 --- a/qcodes/data/hdf5_format.py +++ /dev/null @@ -1,28 +0,0 @@ -import json -import logging -import os -from typing import TYPE_CHECKING - -import numpy as np - -import qcodes as qc -from qcodes.utils import NumpyJSONEncoder, deep_update, issue_deprecation_warning - -try: - from qcodes_loop.data.data_array import DataArray - from qcodes_loop.data.format import Formatter - from qcodes_loop.data.hdf5_format import ( - HDF5Format, - HDF5FormatMetadata, - _encode_to_utf8, - str_to_bool, - ) -except ImportError as e: - raise ImportError( - "qcodes.data.hdf5_format is deprecated and has moved to " - "the package `qcodes_loop`. Please install qcodes_loop directly or " - "with `pip install qcodes[loop]" - ) from e -issue_deprecation_warning( - "qcodes.data.hdf5_format module", alternative="qcodes_loop.data.hdf5_format" -) diff --git a/qcodes/data/hdf5_format_hickle.py b/qcodes/data/hdf5_format_hickle.py deleted file mode 100644 index 83f32bb1835..00000000000 --- a/qcodes/data/hdf5_format_hickle.py +++ /dev/null @@ -1,18 +0,0 @@ -import logging -from typing import TYPE_CHECKING - -from qcodes.utils import deep_update, issue_deprecation_warning - -try: - from qcodes_loop.data.hdf5_format import HDF5Format - from qcodes_loop.data.hdf5_format_hickle import HDF5FormatHickle -except ImportError as e: - raise ImportError( - "qcodes.data.hdf5_format_hickle is deprecated and has moved to " - "the package `qcodes_loop`. Please install qcodes_loop directly or " - "with `pip install qcodes[loop]" - ) from e -issue_deprecation_warning( - "qcodes.data.hdf5_format_hickle module", - alternative="qcodes_loop.data.hdf5_format_hickle", -) diff --git a/qcodes/data/io.py b/qcodes/data/io.py deleted file mode 100644 index 5de8e567943..00000000000 --- a/qcodes/data/io.py +++ /dev/null @@ -1,17 +0,0 @@ -import os -import re -import shutil -from contextlib import contextmanager -from fnmatch import fnmatch - -from qcodes.utils import issue_deprecation_warning - -try: - from qcodes_loop.data.io import ALLOWED_OPEN_MODES, DiskIO -except ImportError as e: - raise ImportError( - "qcodes.data.io is deprecated and has moved to " - "the package `qcodes_loop`. Please install qcodes_loop directly or " - "with `pip install qcodes[loop]" - ) from e -issue_deprecation_warning("qcodes.data.io module", alternative="qcodes_loop.data.io") diff --git a/qcodes/data/location.py b/qcodes/data/location.py deleted file mode 100644 index a0bd7dd26cc..00000000000 --- a/qcodes/data/location.py +++ /dev/null @@ -1,20 +0,0 @@ -"""Standard location_provider class(es) for creating DataSet locations.""" -import re -import string -from datetime import datetime -from typing import cast - -import qcodes -from qcodes.utils import issue_deprecation_warning - -try: - from qcodes_loop.data.location import FormatLocation, SafeFormatter -except ImportError as e: - raise ImportError( - "qcodes.data.location is deprecated and has moved to " - "the package `qcodes_loop`. Please install qcodes_loop directly or " - "with `pip install qcodes[loop]" - ) from e -issue_deprecation_warning( - "qcodes.data.location module", alternative="qcodes_loop.data.location" -) diff --git a/qcodes/extensions/slack.py b/qcodes/extensions/slack.py deleted file mode 100644 index 8e80ae50d72..00000000000 --- a/qcodes/extensions/slack.py +++ /dev/null @@ -1,35 +0,0 @@ -import inspect -import logging -import os -import tempfile -import threading -import traceback -import warnings -from functools import partial -from time import sleep - -from requests.exceptions import ConnectTimeout, HTTPError, ReadTimeout -from slack_sdk import WebClient -from urllib3.exceptions import ReadTimeoutError - -from qcodes import config as qc_config -from qcodes.parameters import ParameterBase -from qcodes.utils import issue_deprecation_warning - -try: - from qcodes_loop.extensions.slack import Slack, SlackTimeoutWarning, convert_command - from qcodes_loop.loops import active_data_set, active_loop - from qcodes_loop.plots.base import BasePlot -except ImportError as e: - raise ImportError( - "qcodes.utils.slack is deprecated and has moved to " - "the package `qcodes_loop`. Please install qcodes_loop directly or " - "with `pip install qcodes[loop]" - ) from e - - - -__all__ = ["Slack", "SlackTimeoutWarning", "convert_command"] -issue_deprecation_warning( - "qcodes.utils.slack module", alternative="qcodes_loop.extensions.slack" -) diff --git a/qcodes/loops.py b/qcodes/loops.py deleted file mode 100644 index a749777f5fa..00000000000 --- a/qcodes/loops.py +++ /dev/null @@ -1,42 +0,0 @@ -""" -Deprecated -""" -import logging -import time -from collections.abc import Sequence -from datetime import datetime -from typing import Optional - -import numpy as np - -from qcodes.metadatable import Metadatable -from qcodes.station import Station -from qcodes.utils import full_class, issue_deprecation_warning - -try: - from qcodes_loop.actions import ( - BreakIf, - Task, - Wait, - _actions_snapshot, - _Measure, - _Nest, - _QcodesBreak, - ) - from qcodes_loop.data.data_array import DataArray - from qcodes_loop.data.data_set import new_data - from qcodes_loop.loops import ( - ActiveLoop, - Loop, - active_data_set, - active_loop, - tprint, - wait_secs, - ) -except ImportError as e: - raise ImportError( - "qcodes.loops is deprecated and has moved to " - "the package `qcodes_loop`. Please install qcodes_loop directly or " - "with `pip install qcodes[loop]" - ) from e -issue_deprecation_warning("qcodes.loops module", alternative="qcodes_loop.loops") diff --git a/qcodes/measure.py b/qcodes/measure.py deleted file mode 100644 index 55d205fbb8a..00000000000 --- a/qcodes/measure.py +++ /dev/null @@ -1,19 +0,0 @@ -from collections.abc import Sequence -from datetime import datetime -from typing import Optional - -from qcodes.metadatable import Metadatable -from qcodes.parameters import Parameter -from qcodes.utils import full_class, issue_deprecation_warning - -try: - from qcodes_loop.actions import _actions_snapshot - from qcodes_loop.loops import Loop - from qcodes_loop.measure import Measure -except ImportError as e: - raise ImportError( - "qcodes.measure is deprecated and has moved to " - "the package `qcodes_loop`. Please install qcodes_loop directly or " - "with `pip install qcodes[loop]" - ) from e -issue_deprecation_warning("qcodes.measure module", alternative="qcodes_loop.measure") diff --git a/qcodes/plots/__init__.py b/qcodes/plots/__init__.py deleted file mode 100644 index c24ab92278f..00000000000 --- a/qcodes/plots/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -from qcodes.utils import issue_deprecation_warning - -issue_deprecation_warning("qcodes.plots", alternative="qcodes_loop.plots") diff --git a/qcodes/plots/base.py b/qcodes/plots/base.py deleted file mode 100644 index fee31ba36f2..00000000000 --- a/qcodes/plots/base.py +++ /dev/null @@ -1,14 +0,0 @@ -""" -Deprecated -""" -from qcodes.utils import issue_deprecation_warning - -try: - from qcodes_loop.plots.base import BasePlot -except ImportError as e: - raise ImportError( - "qcodes.plots.base is deprecated and has moved to " - "the package `qcodes_loop`. Please install qcodes_loop directly or " - "with `pip install qcodes[loop]" - ) from e -issue_deprecation_warning("qcodes.plots.base", alternative="qcodes_loop.plots.base") diff --git a/qcodes/plots/colors.py b/qcodes/plots/colors.py deleted file mode 100644 index fba324c5960..00000000000 --- a/qcodes/plots/colors.py +++ /dev/null @@ -1,17 +0,0 @@ -from qcodes.utils import issue_deprecation_warning - -try: - from qcodes_loop.plots.colors import ( - color_cycle, - colorscales, - colorscales_raw, - make_rgba, - one_rgba, - ) -except ImportError as e: - raise ImportError( - "qcodes.plots.colors is deprecated and has moved to " - "the package `qcodes_loop`. Please install qcodes_loop directly or " - "with `pip install qcodes[loop]" - ) from e -issue_deprecation_warning("qcodes.plots.colors", alternative="qcodes_loop.plots.colors") diff --git a/qcodes/plots/pyqtgraph.py b/qcodes/plots/pyqtgraph.py deleted file mode 100644 index 0a045a0ac89..00000000000 --- a/qcodes/plots/pyqtgraph.py +++ /dev/null @@ -1,32 +0,0 @@ -""" -Live plotting using pyqtgraph -""" -import logging -import warnings -from collections import deque, namedtuple -from typing import Optional, Union, cast - -import numpy as np -import pyqtgraph as pg -import pyqtgraph.multiprocess as pgmp -from pyqtgraph import QtGui -from pyqtgraph.graphicsItems.PlotItem.PlotItem import PlotItem -from pyqtgraph.multiprocess.remoteproxy import ClosedError, ObjectProxy - -import qcodes -import qcodes.utils.qt_helpers -from qcodes.utils import issue_deprecation_warning - -try: - from qcodes_loop.plots.base import BasePlot - from qcodes_loop.plots.colors import color_cycle, colorscales - from qcodes_loop.plots.pyqtgraph import QtPlot, TransformState -except ImportError as e: - raise ImportError( - "qcodes.plots.pyqtgraph is deprecated and has moved to " - "the package `qcodes_loop`. Please install qcodes_loop directly or " - "with `pip install qcodes[loop]" - ) from e -issue_deprecation_warning( - "qcodes.plots.pyqtgraph", alternative="qcodes_loop.plots.pyqtgraph" -) diff --git a/qcodes/plots/qcmatplotlib.py b/qcodes/plots/qcmatplotlib.py deleted file mode 100644 index 7b2120bc193..00000000000 --- a/qcodes/plots/qcmatplotlib.py +++ /dev/null @@ -1,27 +0,0 @@ -""" -Live plotting in Jupyter notebooks -using the nbagg backend and matplotlib -""" -from collections.abc import Mapping, Sequence -from copy import deepcopy -from functools import partial - -import numpy as np -from numpy.ma import getmask, masked_invalid - -import qcodes -from qcodes.utils import issue_deprecation_warning - -try: - from qcodes_loop.data.data_array import DataArray - from qcodes_loop.plots.base import BasePlot - from qcodes_loop.plots.qcmatplotlib import MatPlot -except ImportError as e: - raise ImportError( - "qcodes.plots.qcmatplotlib is deprecated and has moved to " - "the package `qcodes_loop`. Please install qcodes_loop directly or " - "with `pip install qcodes[loop]" - ) from e -issue_deprecation_warning( - "qcodes.plots.qcmatplotlib module", alternative="qcodes_loop.plots.qcmatplotlib" -) diff --git a/qcodes/utils/magic.py b/qcodes/utils/magic.py deleted file mode 100644 index dce6f743913..00000000000 --- a/qcodes/utils/magic.py +++ /dev/null @@ -1,18 +0,0 @@ -# get_ipython is part of the public api but IPython does -# not use __all__ to mark this -from IPython import get_ipython # type: ignore[attr-defined] -from IPython.core.magic import Magics, line_cell_magic, magics_class - -from qcodes.utils import issue_deprecation_warning - -try: - from qcodes_loop.utils.magic import QCoDeSMagic, register_magic_class -except ImportError as e: - raise ImportError( - "qcodes.utils.magic is deprecated and has moved to " - "the package `qcodes_loop`. Please install qcodes_loop directly or " - "with `pip install qcodes[loop]" - ) from e -issue_deprecation_warning( - "qcodes.utils.magic module", alternative="qcodes_loop.utils.magic" -) diff --git a/qcodes/utils/qt_helpers.py b/qcodes/utils/qt_helpers.py deleted file mode 100644 index ce692514e43..00000000000 --- a/qcodes/utils/qt_helpers.py +++ /dev/null @@ -1,14 +0,0 @@ -from qcodes.utils import issue_deprecation_warning - -try: - from qcodes_loop.utils.qt_helpers import foreground_qt_window -except ImportError as e: - raise ImportError( - "qcodes.utils.qt_helpers is deprecated and has moved to " - "the package `qcodes_loop`. Please install qcodes_loop directly or " - "with `pip install qcodes[loop]" - ) from e - -issue_deprecation_warning( - "qcodes.utils.qt_helpers module", alternative="qcodes_loop.utils.qt_helpers" -) diff --git a/qcodes/utils/slack.py b/qcodes/utils/slack.py deleted file mode 100644 index 1d8d09381d1..00000000000 --- a/qcodes/utils/slack.py +++ /dev/null @@ -1,17 +0,0 @@ -from qcodes.utils import issue_deprecation_warning - -try: - from qcodes_loop.extensions.slack import Slack, SlackTimeoutWarning, convert_command -except ImportError as e: - raise ImportError( - "qcodes.utils.slack is deprecated and has moved to " - "the package `qcodes_loop`. Please install qcodes_loop directly or " - "with `pip install qcodes[loop]" - ) from e - - - -__all__ = ["Slack", "SlackTimeoutWarning", "convert_command"] -issue_deprecation_warning( - "qcodes.utils.slack module", alternative="qcodes_loop.extensions.slack" -)