Node

class pyrogue.Node(*, name, description='', expand=True, hidden=False, groups=None, guiGroup=None)[source]

Base class for nodes in the PyRogue tree.

Each node is associated with a parent and has a link to the top node of a tree. A node has a list of sub-nodes as well as each sub-node being attached as an attribute. This allows tree browsing using: node1.node2.node3

Parameters:
  • name (str) – Global name of the node.

  • description (str, default: '') – Human-readable description.

  • expand (bool, default: True) – Default GUI expand state.

  • hidden (bool, default: False) – If True, add the node to the Hidden group.

  • groups (list[str] | None, default: None) – Groups to assign.

  • guiGroup (str | None, default: None) – GUI grouping label.

property nodeCount: int

Return the total node count.

property name: str

Return the node name.

property description: str

Return the node description.

property groups: list[str]

Return the node groups.

inGroup(group)[source]

Return True if the node is in the provided group or groups.

Parameters:

group (str) – Group name or list of groups to test.

Return type:

bool

filterByGroup(incGroups, excGroups)[source]

Return True if the node passes include/exclude filters.

Parameters:
  • incGroups (str | list[str] | None) – Group name or group names to include.

  • excGroups (str | list[str] | None) – Group name or group names to exclude.

Return type:

bool

addToGroup(group)[source]

Add this node to a group and propagate to children.

Parameters:

group (str) – Group name to add.

Return type:

None

removeFromGroup(group)[source]

Remove this node from a group.

Parameters:

group (str) – Group name to remove.

Return type:

None

property hidden: bool

Return True if the node is hidden.

property path: str

Return the full node path.

property expand: bool

Return the expand state.

property guiGroup: str | None

Return the GUI group label.

add(node)[source]

Add a node as a child.

Return type:

None

Parameters:

node (Node | Iterable[Node])

addNode(nodeClass, **kwargs)[source]

Construct and add a node of nodeClass.

Return type:

None

Parameters:
addNodes(nodeClass, number, stride, **kwargs)[source]

Add a series of nodes with indexed names.

Return type:

None

Parameters:
property nodeList: list[Node]

Return a recursive list of nodes.

getNodes(typ, excTyp=None, incGroups=None, excGroups=None)[source]

Get a filtered ordered dictionary of nodes. pass a class to typ to receive a certain type of node exc is a class type to exclude, incGroups is an optional group or list of groups that this node must be part of excGroups is an optional group or list of groups that this node must not be part of

Parameters:
  • typ (type[Node])

  • excTyp (type[Node] | None, default: None) – Type to exclude.

  • incGroups (str | list[str] | None, default: None) – Group name or group names to include.

  • excGroups (str | list[str] | None, default: None) – Group name or group names to exclude.

Returns:

Ordered dictionary of nodes.

Return type:

OrderedDict[str, Node]

property nodes: OrderedDict[str, Node]

Return an ordered dictionary of direct child nodes.

property variables: OrderedDict[str, BaseVariable]

Return direct child variables (excluding commands).

variablesByGroup(incGroups=None, excGroups=None)[source]

Return variables filtered by group.

Return type:

OrderedDict[str, BaseVariable]

Parameters:
property variableList: list[BaseVariable]

Return a recursive list of variables and commands.

property commands: OrderedDict[str, BaseCommand]

Return direct child commands.

commandsByGroup(incGroups=None, excGroups=None)[source]

Return commands filtered by group.

Return type:

OrderedDict[str, BaseCommand]

Parameters:
property devices: OrderedDict[str, Device]

Return direct child devices.

devicesByGroup(incGroups=None, excGroups=None)[source]

Return devices filtered by group.

Return type:

OrderedDict[str, Device]

Parameters:
property deviceList: list[Device]

Return a recursive list of devices.

property parent: Node

Return the parent node.

property root: Root

Return the root node.

node(name)[source]

Return a direct child node by name.

Parameters:

name (str) – Child node name.

Return type:

Node

property isDevice: bool

Return True if this node is a device.

property isVariable: bool

Return True if this node is a variable (excluding commands).

property isCommand: bool

Return True if this node is a command.

find(*, recurse=True, typ=None, **kwargs)[source]

Find all child nodes that are a base class of ‘typ’ and whose properties match all of the kwargs. For string properties, accepts regexes.

Parameters:
  • recurse (bool, default: True) – If True, recurse into child nodes.

  • typ (type[Node] | None, default: None) – Base class type to match.

  • **kwargs (Any)

Returns:

List of nodes that match the criteria.

Return type:

list[Node]

callRecursive(func, nodeTypes=None, **kwargs)[source]

Call a named method on this node and matching children.

Parameters:
  • func (str) – Method name to call.

  • nodeTypes (Iterable[type[Node]] | None, default: None) – Node types to include.

  • **kwargs (Any) – Arguments forwarded to the method call.

Return type:

None

makeRecursive(func, nodeTypes=None)[source]

Create a recursive wrapper for a named method.

Parameters:
  • func (str) – Method name to call.

  • nodeTypes (Iterable[type[Node]] | None, default: None) – Node types to include.

Return type:

Callable[..., None]

isinstance(typ)[source]

Return True if this node is an instance of typ.

Return type:

bool

Parameters:

typ (type[Node])

getYaml(readFirst=False, modes=['RW', 'RO', 'WO'], incGroups=None, excGroups=None, recurse=True)[source]

Return current values as YAML text.

Parameters:
  • readFirst (bool, default: False) – If True, perform a full hardware read before exporting.

  • modes (list[str], default: ['RW', 'RO', 'WO']) – Variable modes to include. Allowed values are 'RW', 'WO', and 'RO'.

  • incGroups (str | list[str] | None, default: None) – Group name or group names to include.

  • excGroups (str | list[str] | None, default: None) – Group name or group names to exclude.

  • recurse (bool, default: True) – If True, recurse into child devices.

Returns:

YAML-formatted representation of the node subtree.

Return type:

str

printYaml(readFirst=False, modes=['RW', 'RO', 'WO'], incGroups=None, excGroups=None, recurse=False)[source]

Print the YAML representation to stdout.

Parameters:
  • readFirst (bool, default: False) – If True, perform a full hardware read before exporting.

  • modes (list[str], default: ['RW', 'RO', 'WO']) – Variable modes to include. Allowed values are 'RW', 'WO', and 'RO'.

  • incGroups (str | list[str] | None, default: None) – Group name or group names to include.

  • excGroups (str | list[str] | None, default: None) – Group name or group names to exclude.

  • recurse (bool, default: False) – If True, recurse into child devices.

Return type:

None

nodeMatch(name)[source]

Match a node name, including array-style accessors.

Parameters:

name (str) – Node name or array accessor string.

Returns:

Matching nodes.

Return type:

list[Node]