devices

Device Converters

Author: Jacek ‘Szumak’ Kotlarski –<szumak@virthost.pl> Created: 04.12.2023

Purpose: module to string converting.

class jsktoolbox.devices.libs.converters.B64Converter[source]

Bases: NoDynamicAttributes

Base64 Converter class.

classmethod string_to_base64(string, encoding='ascii')[source]

Returns encoded string to bytes.

Parameters:
Return type:

bytes

classmethod base64_to_string(bytes64, encoding='ascii', errors='replace')[source]

Returns decoded bytes to string.

Parameters:
Return type:

str

__setattr__(name, value)

Prevent dynamic attribute assignment on instances.

### Raises: * AttributeError: Attribute not previously declared.

Parameters:
Return type:

None

Base Device Classes

Author: Jacek ‘Szumak’ Kotlarski –<szumak@virthost.pl> Created: 2023-12-04

Purpose: Provide foundational mixins for device abstractions, including shared flags and connector plumbing.

These helpers keep higher-level device classes lightweight by centralising parent management, logging integration, and RouterOS command prefix composition.

class jsktoolbox.devices.libs.base.BDebug[source]

Bases: BData

Expose debug and verbose flags for device components.

property debug: bool

Return debug flag.

### Arguments: * None: No public arguments.

### Returns: bool - True when debug logging is enabled for the device.

### Raises: * None: Accessors do not raise exceptions.

property verbose: bool

Return verbose flag.

### Arguments: * None: No public arguments.

### Returns: bool - True when verbose logging is enabled.

### Raises: * None: Accessors do not raise exceptions.

__setattr__(name, value)

Prevent dynamic attribute assignment on instances.

### Raises: * AttributeError: Attribute not previously declared.

Parameters:
Return type:

None

class jsktoolbox.devices.libs.base.BDev[source]

Bases: BDebug

Coordinate connectors, logging, and parent relationships for devices.

__setattr__(name, value)

Prevent dynamic attribute assignment on instances.

### Raises: * AttributeError: Attribute not previously declared.

Parameters:
Return type:

None

property debug: bool

Return debug flag.

### Arguments: * None: No public arguments.

### Returns: bool - True when debug logging is enabled for the device.

### Raises: * None: Accessors do not raise exceptions.

property verbose: bool

Return verbose flag.

### Arguments: * None: No public arguments.

### Returns: bool - True when verbose logging is enabled.

### Raises: * None: Accessors do not raise exceptions.

property logs: LoggerClient | None

Return the logger client registered for the device.

### Arguments: * None: No public arguments.

### Returns: Optional[LoggerClient] - Configured logger client or None.

### Raises: * None: Accessors do not raise exceptions.

property root: str

Return the accumulated RouterOS command root for the device.

The property aggregates the root path from all parents in the device hierarchy.

### Arguments: * None: No public arguments.

### Returns: str - Command prefix for RouterOS requests.

### Raises: * None: Accessors do not raise exceptions.

property parent: BDev | None

Return the parent device instance if assigned.

### Arguments: * None: No public arguments.

### Returns: Optional[TDev] - Parent device or None for top-level elements.

### Raises: * None: Accessors do not raise exceptions.

MikroTik Devices

Author: Jacek ‘Szumak’ Kotlarski –<szumak@virthost.pl> Created: 2024-05-12

Purpose: Group RouterOS-specific device abstractions and helpers under a dedicated namespace.

The subpackage collects base classes, element definitions, and top-level device facades for MikroTik hardware while delegating networking concerns to jsktoolbox.devices.network.

Network Devices

Author: Jacek ‘Szumak’ Kotlarski –<szumak@virthost.pl> Created: 2024-05-12

Purpose: Collect connector interfaces and implementations used by device packages.

Importing from this namespace offers a stable entry point for consumers that need to build or configure network adapters such as the RouterOS API connector.