# ChannelSpec

## class ChannelSpec( path: str, kind: Literal['control', 'measurement', 'setting', 'property'], readable: bool, writable: bool, get_command: str | None, set_command: str | None, doc: str, default_name: str, )[source]

Bases: [`object`](https://docs.python.org/3/builtins/functions.html#object "(in Python v3.15)")

One publishable property of a pymeasure instrument.

Variables:
:   - **path** ([*str*](https://docs.python.org/3/builtins/stdtypes.html#str "(in Python v3.15)")) – Attribute path from the root instrument, e.g. `"ch_1.voltage_setpoint"`.
    - **kind** (*Literal**[**'control'**,* *'measurement'**,* *'setting'**,* *'property'**]*) – `"control"` (read and write), `"measurement"` (read only), `"setting"`
      (write only), or `"property"` (a hand-written Python property).
    - **readable** ([*bool*](https://docs.python.org/3/builtins/functions.html#bool "(in Python v3.15)")) – Reading the property queries the instrument.
    - **writable** ([*bool*](https://docs.python.org/3/builtins/functions.html#bool "(in Python v3.15)")) – Assigning the property sends a command.
    - **get_command** ([*str*](https://docs.python.org/3/builtins/stdtypes.html#str "(in Python v3.15)") *|* *None*) – SCPI query template, or `None`.
    - **set_command** ([*str*](https://docs.python.org/3/builtins/stdtypes.html#str "(in Python v3.15)") *|* *None*) – SCPI command template, or `None`.
    - **doc** ([*str*](https://docs.python.org/3/builtins/stdtypes.html#str "(in Python v3.15)")) – First line of the property’s docstring.
    - **default_name** ([*str*](https://docs.python.org/3/builtins/stdtypes.html#str "(in Python v3.15)")) – Channel name the inspection rules give this property, without the
      instrument-name prefix or `.cmd` suffix.

### path: str

### kind: Literal['control', 'measurement', 'setting', 'property']

### readable: bool

### writable: bool

### get_command: str | None

### set_command: str | None

### doc: str

### default_name: str
