Skip to content

Commit

Permalink
[WIP] Parameter module
Browse files Browse the repository at this point in the history
  • Loading branch information
jenshnielsen committed Jun 13, 2022
1 parent 0202b8b commit 596dc59
Show file tree
Hide file tree
Showing 108 changed files with 1,047 additions and 856 deletions.
7 changes: 7 additions & 0 deletions docs/api/parameters/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.. _parameters_api :

qcodes.parameters
=================

.. automodule:: qcodes.parameters
:autosummary:
10 changes: 5 additions & 5 deletions qcodes/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,10 @@
from qcodes.instrument.channel import ChannelList, ChannelTuple, InstrumentChannel
from qcodes.instrument.function import Function
from qcodes.instrument.ip import IPInstrument
from qcodes.instrument.parameter import (
from qcodes.instrument.visa import VisaInstrument
from qcodes.instrument_drivers.test import test_instrument, test_instruments
from qcodes.monitor.monitor import Monitor
from qcodes.parameters import (
ArrayParameter,
CombinedParameter,
DelegateParameter,
Expand All @@ -63,10 +66,7 @@
ScaledParameter,
combine,
)
from qcodes.instrument.sweep_values import SweepFixedValues, SweepValues
from qcodes.instrument.visa import VisaInstrument
from qcodes.instrument_drivers.test import test_instrument, test_instruments
from qcodes.monitor.monitor import Monitor
from qcodes.parameters.sweep_values import SweepFixedValues, SweepValues
from qcodes.station import Station
from qcodes.utils import validators

Expand Down
4 changes: 2 additions & 2 deletions qcodes/calibrations/keithley.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import time
from typing import TYPE_CHECKING, Optional, Dict

from qcodes.instrument.base import Instrument
from qcodes.instrument.parameter import Parameter
from qcodes.instrument import Instrument
from qcodes.parameters import Parameter

if TYPE_CHECKING:
from qcodes.instrument_drivers.tektronix.Keithley_2600_channels import Keithley_2600
Expand Down
2 changes: 1 addition & 1 deletion qcodes/dataset/data_set.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@
import pandas as pd
import xarray as xr

from qcodes.instrument.parameter import _BaseParameter
from qcodes.parameters import _BaseParameter


log = logging.getLogger(__name__)
Expand Down
2 changes: 1 addition & 1 deletion qcodes/dataset/data_set_in_memory.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
import pandas as pd
import xarray as xr

from ..instrument.parameter import _BaseParameter
from ..parameters import _BaseParameter

log = logging.getLogger(__name__)

Expand Down
2 changes: 1 addition & 1 deletion qcodes/dataset/data_set_protocol.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
import pandas as pd
import xarray as xr

from qcodes.instrument.parameter import _BaseParameter
from qcodes.parameters import _BaseParameter

from .data_set_cache import DataSetCache

Expand Down
9 changes: 6 additions & 3 deletions qcodes/dataset/descriptions/detect_shapes.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@

import numpy as np

from qcodes.instrument.parameter import (ArrayParameter, MultiParameter,
ParameterWithSetpoints,
_BaseParameter)
from qcodes.parameters import (
ArrayParameter,
MultiParameter,
ParameterWithSetpoints,
_BaseParameter,
)
from qcodes.utils.validators import Arrays


Expand Down
2 changes: 1 addition & 1 deletion qcodes/dataset/do_nd.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
from qcodes.dataset.experiment_container import Experiment
from qcodes.dataset.measurements import Measurement
from qcodes.dataset.plotting import plot_and_save_image
from qcodes.instrument.parameter import _BaseParameter
from qcodes.parameters import _BaseParameter
from qcodes.utils.threading import (
SequentialParamsCaller,
ThreadPoolParamsCaller,
Expand Down
4 changes: 2 additions & 2 deletions qcodes/dataset/measurements.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,9 @@
from qcodes.dataset.descriptions.versioning.rundescribertypes import Shapes
from qcodes.dataset.experiment_container import Experiment
from qcodes.dataset.export_config import get_data_export_automatic
from qcodes.instrument.delegate.grouped_parameter import GroupedParameter
from qcodes.instrument.parameter import (
from qcodes.parameters import (
ArrayParameter,
GroupedParameter,
MultiParameter,
Parameter,
ParameterWithSetpoints,
Expand Down
2 changes: 1 addition & 1 deletion qcodes/extensions/slack.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@
from slack_sdk import WebClient

from qcodes import config as qc_config
from qcodes.instrument.parameter import _BaseParameter
from qcodes.loops import active_data_set, active_loop
from qcodes.parameters import _BaseParameter
from qcodes.plots.base import BasePlot


Expand Down
62 changes: 33 additions & 29 deletions qcodes/instrument/__init__.py
Original file line number Diff line number Diff line change
@@ -1,45 +1,49 @@
from .base import Instrument, find_or_create_instrument
from .base import Instrument, InstrumentBase, find_or_create_instrument
from .channel import ChannelList, ChannelTuple, InstrumentChannel, InstrumentModule
from .function import Function
from .group_parameter import Group, GroupParameter

# todo which part of parameter should be exported here for backwards compatibility
# from .group_parameter import Group, GroupParameter
from .ip import IPInstrument
from .parameter import (
ArrayParameter,
CombinedParameter,
DelegateParameter,
ManualParameter,
MultiParameter,
Parameter,
ParameterWithSetpoints,
ScaledParameter,
combine,
)
from .specialized_parameters import ElapsedTimeParameter
from .sweep_values import SweepFixedValues, SweepValues

# from .parameter import (
# ArrayParameter,
# CombinedParameter,
# DelegateParameter,
# ManualParameter,
# MultiParameter,
# Parameter,
# ParameterWithSetpoints,
# ScaledParameter,
# combine,
# )
# from .specialized_parameters import ElapsedTimeParameter
# from qcodes.parameters.sweep_values import SweepFixedValues, SweepValues
from .visa import VisaInstrument

__all__ = [
"ArrayParameter",
# "ArrayParameter",
"ChannelList",
"ChannelTuple",
"CombinedParameter",
"DelegateParameter",
"ElapsedTimeParameter",
# "CombinedParameter",
# "DelegateParameter",
# "ElapsedTimeParameter",
"Function",
"Group",
"GroupParameter",
# "Group",
# "GroupParameter",
"IPInstrument",
"Instrument",
"InstrumentBase",
"InstrumentChannel",
"InstrumentModule",
"ManualParameter",
"MultiParameter",
"Parameter",
"ParameterWithSetpoints",
"ScaledParameter",
"SweepFixedValues",
"SweepValues",
# "ManualParameter",
# "MultiParameter",
# "Parameter",
# "ParameterWithSetpoints",
# "ScaledParameter",
# "SweepFixedValues",
# "SweepValues",
"VisaInstrument",
"combine",
# "combine",
"find_or_create_instrument",
]
2 changes: 1 addition & 1 deletion qcodes/instrument/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@
from typing_extensions import Protocol

from qcodes.logger.instrument_logger import get_instrument_logger
from qcodes.parameters import Parameter, _BaseParameter
from qcodes.utils.helpers import DelegateAttributes, full_class, strip_attrs
from qcodes.utils.metadata import Metadatable
from qcodes.utils.validators import Anything

from .function import Function
from .parameter import Parameter, _BaseParameter

if TYPE_CHECKING:
from qcodes.instrument.channel import ChannelTuple, InstrumentModule
Expand Down
15 changes: 8 additions & 7 deletions qcodes/instrument/channel.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
Dict,
Generic,
Iterable,
Iterator,
List,
MutableSequence,
Optional,
Expand All @@ -18,18 +19,18 @@
overload,
)

from ..utils.helpers import full_class
from ..utils.metadata import Metadatable
from ..utils.validators import Validator
from .base import Instrument, InstrumentBase
from .parameter import (
from qcodes.parameters import (
ArrayParameter,
Iterator,
MultiParameter,
Parameter,
ParamRawDataType,
)

from ..utils.helpers import full_class
from ..utils.metadata import Metadatable
from ..utils.validators import Validator
from .base import Instrument, InstrumentBase


class InstrumentModule(InstrumentBase):
"""
Expand Down Expand Up @@ -101,7 +102,7 @@ class InstrumentChannel(InstrumentModule):
InstrumentModuleType = TypeVar("InstrumentModuleType", bound="InstrumentModule")
T = TypeVar("T", bound="ChannelTuple")


# TODO should this be moved to parameters
class MultiChannelInstrumentParameter(MultiParameter, Generic[InstrumentModuleType]):
"""
Parameter to get or set multiple channels simultaneously.
Expand Down
11 changes: 4 additions & 7 deletions qcodes/instrument/delegate/__init__.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
from qcodes.instrument.delegate.delegate_instrument import (
GroupedParameter,
DelegateInstrument
)
from qcodes.instrument.delegate.instrument_group import InstrumentGroup

from qcodes.instrument.delegate.delegate_channel_instrument import (
DelegateChannelInstrument
DelegateChannelInstrument,
)
from qcodes.instrument.delegate.delegate_instrument import DelegateInstrument
from qcodes.instrument.delegate.instrument_group import InstrumentGroup
from qcodes.parameters.grouped_parameter import GroupedParameter
4 changes: 2 additions & 2 deletions qcodes/instrument/delegate/delegate_instrument.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@

from qcodes.instrument.base import InstrumentBase
from qcodes.instrument.channel import InstrumentChannel
from qcodes.instrument.delegate.grouped_parameter import (
from qcodes.parameters import Parameter
from qcodes.parameters.grouped_parameter import (
DelegateGroup,
DelegateGroupParameter,
GroupedParameter,
)
from qcodes.instrument.parameter import Parameter
from qcodes.station import Station

_log = logging.getLogger(__name__)
Expand Down
10 changes: 4 additions & 6 deletions qcodes/instrument/visa.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
"""Visa instrument driver based on pyvisa."""
from typing import Sequence, Optional, Dict, Union, Any, cast
import warnings
import logging
from packaging.version import Version
from typing import Any, Dict, Optional, Sequence, Union

import pyvisa as visa
import pyvisa.constants as vi_const
import pyvisa.resources

from .base import Instrument, InstrumentBase

import qcodes.utils.validators as vals
from qcodes.utils.deprecate import deprecate
from qcodes.logger.instrument_logger import get_instrument_logger
from qcodes.utils.delaykeyboardinterrupt import DelayedKeyboardInterrupt
from qcodes.utils.deprecate import deprecate

from .base import Instrument, InstrumentBase

VISA_LOGGER = '.'.join((InstrumentBase.__module__, 'com', 'visa'))

Expand Down
10 changes: 5 additions & 5 deletions qcodes/instrument_drivers/AlazarTech/ats_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@
"""


from typing import Dict, Tuple, Union, Any
import ctypes
from ctypes import POINTER

from .dll_wrapper import WrappedDll, Signature
from .constants import BOARD_NAMES, REGISTER_ACCESS_PASSWORD, ReturnCode
from typing import Any, Dict, Tuple, Union

# `_BaseParameter` is needed because users may pass instrument parameters
# that originate from `Instrument.parameters` dictionary which is typed
# with `_BaseParameter`, not `Parameter`.
from qcodes.instrument.parameter import _BaseParameter as Parameter
from qcodes.parameters import _BaseParameter as Parameter

from .constants import BOARD_NAMES, REGISTER_ACCESS_PASSWORD, ReturnCode
from .dll_wrapper import Signature, WrappedDll

# Define aliases for ctypes that match Alazar's notation.
U8 = ctypes.c_uint8
Expand Down
2 changes: 1 addition & 1 deletion qcodes/instrument_drivers/AlazarTech/dll_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
)
from weakref import WeakValueDictionary

from qcodes.instrument.parameter import _BaseParameter
from qcodes.parameters import _BaseParameter

from .constants import API_DMA_IN_PROGRESS, API_SUCCESS, ERROR_CODES, ReturnCode
from .utils import TraceParameter
Expand Down
2 changes: 1 addition & 1 deletion qcodes/instrument_drivers/AlazarTech/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

from typing import TYPE_CHECKING, Any, cast

from qcodes.instrument.parameter import Parameter, ParamRawDataType
from qcodes.parameters import Parameter, ParamRawDataType

if TYPE_CHECKING:
from .ATS import AlazarTech_ATS
Expand Down
3 changes: 1 addition & 2 deletions qcodes/instrument_drivers/Galil/dmc_41x3.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@

import numpy as np

from qcodes.instrument.base import Instrument
from qcodes.instrument.channel import InstrumentChannel
from qcodes.instrument import Instrument, InstrumentChannel
from qcodes.utils.validators import Enum, Ints, Multiples

try:
Expand Down
4 changes: 2 additions & 2 deletions qcodes/instrument_drivers/HP/HP8753D.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
import numpy as np

import qcodes.utils.validators as vals
from qcodes.instrument.parameter import ArrayParameter, ParamRawDataType
from qcodes.instrument.visa import VisaInstrument
from qcodes.instrument import VisaInstrument
from qcodes.parameters import ArrayParameter, ParamRawDataType

log = logging.getLogger(__name__)

Expand Down
2 changes: 1 addition & 1 deletion qcodes/instrument_drivers/Keysight/Infiniium.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from qcodes.instrument import VisaInstrument
from qcodes.instrument.base import InstrumentBase
from qcodes.instrument.channel import ChannelList, InstrumentChannel, InstrumentModule
from qcodes.instrument.parameter import Parameter, ParameterWithSetpoints
from qcodes.parameters import Parameter, ParameterWithSetpoints
from qcodes.utils.deprecate import deprecate
from qcodes.utils.helpers import create_on_off_val_mapping

Expand Down
10 changes: 5 additions & 5 deletions qcodes/instrument_drivers/Keysight/KtM960x.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
from .KtM960xDefs import *

import ctypes
from functools import partial
from typing import (Dict, Optional, Any, Tuple)
from typing import Any, Dict, Optional, Tuple

from qcodes.instrument.base import Instrument
from qcodes.instrument.parameter import ParamRawDataType, MultiParameter
from qcodes.instrument import Instrument
from qcodes.parameters import MultiParameter, ParamRawDataType
from qcodes.utils import validators as vals
from qcodes.utils.helpers import create_on_off_val_mapping

from .KtM960xDefs import *


class Measure(MultiParameter):
def __init__(self, name: str, instrument: "KtM960x") -> None:
Expand Down
Loading

0 comments on commit 596dc59

Please sign in to comment.