Add type hints and docstrings for VLANs, Interfaces, and System properties in NodeConfig

- Enhanced the `vlans`, `interfaces`, and `system` properties with type hints for better clarity and type checking.
- Added detailed docstrings to each property, describing the return types and structure of the associated configurations.
This commit is contained in:
IluaAir
2026-07-23 10:24:51 +03:00
parent 6bc47f1b4f
commit 260c02f81d
2 changed files with 36 additions and 4 deletions

View File

@@ -10,6 +10,9 @@ from .interfaces import BaseDevice, device_registry
if TYPE_CHECKING: if TYPE_CHECKING:
from requests import Session from requests import Session
from oxi.interfaces.contract import Interfaces, System, Vlans
TModel = TypeVar("TModel", bound=BaseModel) TModel = TypeVar("TModel", bound=BaseModel)
@@ -83,13 +86,42 @@ class NodeConfig:
return self.text return self.text
@property @property
def vlans(self): def vlans(self) -> list["Vlans"]:
"""
Returns the list of VLAN configurations for the node.
:return: List of Vlans associated with the device.
vlan_id: int
name: str | None = Field(default=None, alias="description")
:rtype: list[oxi.interfaces.contract.Vlans]
"""
return ModelView(self._parsed_data.vlans)
return ModelView(self._parsed_data.vlans) return ModelView(self._parsed_data.vlans)
@property @property
def interfaces(self): def interfaces(self) -> list["Interfaces"]:
"""
Returns the list of Interfaces configurations for the node.
:return: List of Interfaces associated with the device.
name: str = Field(alias="interface")
ip_address: IPv4Address | None = None
mask: int | None = None
description: str | None = None
shutdown: bool = False
:rtype: list[oxi.interfaces.contract.Interfaces]
"""
return ModelView(self._parsed_data.interfaces) return ModelView(self._parsed_data.interfaces)
@property @property
def system(self): def system(self) -> "System":
"""
Returns the Systems configurations for the node.
:return: System associated with the device.
model: str
serial_number: str
version: str
:rtype: oxi.interfaces.contract.System
"""
return ModelView(self._parsed_data.system) return ModelView(self._parsed_data.system)

View File

@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project] [project]
name = "oxipy" name = "oxipy"
version = "0.1.3" version = "0.1.4"
description = "Python client for Oxidized API with TTP-based config parsing" description = "Python client for Oxidized API with TTP-based config parsing"
readme = "README.md" readme = "README.md"
license = "Apache-2.0" license = "Apache-2.0"