Source code for nidaqmx.system.storage.persisted_scale

"""NI-DAQmx persisted scale classes."""

from nidaqmx import utils
from nidaqmx.scale import _ScaleAlternateConstructor

__all__ = ["PersistedScale"]


[docs] class PersistedScale: """Represents a saved DAQmx custom scale. Use the DAQmx Persisted Scale properties to query information about programmatically saved custom scales. """ __slots__ = ["_name", "_interpreter", "__weakref__"]
[docs] def __init__(self, name, *, grpc_options=None): """Initialize a new PersistedScale. Args: name (str): Specifies the name of the saved scale. grpc_options (Optional[:class:`~nidaqmx.GrpcSessionOptions`]): Specifies the gRPC session options. """ self._name = name self._interpreter = utils._select_interpreter(grpc_options)
[docs] def __eq__(self, other): # noqa: D105 - Missing docstring in magic method (auto-generated noqa) if isinstance(other, self.__class__): return self._name == other._name return False
[docs] def __hash__(self): # noqa: D105 - Missing docstring in magic method (auto-generated noqa) return hash(self._name)
[docs] def __ne__(self, other): # noqa: D105 - Missing docstring in magic method (auto-generated noqa) return not self.__eq__(other)
[docs] def __repr__(self): # noqa: D105 - Missing docstring in magic method (auto-generated noqa) return f"PersistedScale(name={self._name})"
@property def name(self): """str: Indicates the name of the custom scale.""" return self._name @property def author(self): """str: Indicates the author of the custom scale.""" val = self._interpreter.get_persisted_scale_attribute_string(self._name, 0x22D4) return val @property def allow_interactive_editing(self): """bool: Indicates whether the custom scale can be edited in the DAQ Assistant.""" val = self._interpreter.get_persisted_scale_attribute_bool(self._name, 0x22D5) return val @property def allow_interactive_deletion(self): """bool: Indicates whether the custom scale can be deleted through MAX.""" val = self._interpreter.get_persisted_scale_attribute_bool(self._name, 0x22D6) return val
[docs] def delete(self): """Deletes this custom scale from MAX. This function does not remove the custom scale from virtual channels that use it. """ self._interpreter.delete_saved_scale(self._name)
[docs] def load(self): """Loads this custom scale. Returns: nidaqmx.scale.Scale: Indicates the loaded Scale object. """ return _ScaleAlternateConstructor(self._name, self._interpreter)
class _PersistedScaleAlternateConstructor(PersistedScale): """Provide an alternate constructor for the PersistedScale object. This is a private API used to instantiate a PersistedScale with an existing interpreter. """ # Setting __slots__ avoids TypeError: __class__ assignment: 'Base' object layout differs from 'Derived'. # noqa: W505 - doc line too long (108 > 100 characters) (auto-generated noqa) __slots__ = () def __init__(self, name, interpreter): """Initialize a new PersistedScale with an existing interpreter. Args: name: Specifies the name of the PersistedScale. interpreter: Specifies the interpreter instance. """ self._name = name self._interpreter = interpreter # Use meta-programming to change the type of this object to PersistedScale, # so the user isn't confused when doing introspection. self.__class__ = PersistedScale # type: ignore[assignment]