from oxi.interfaces import register_parser from oxi.interfaces.base import BaseDevice from oxi.interfaces.contract import Interfaces, System, Vlans @register_parser(["routeros", "ros", "mikrotik"]) class Mikrotik(BaseDevice): template = "mikrotik.ttp" def system(self) -> "System": systems = self._raw.get("system") return System(**systems) def interfaces(self) -> "Interfaces": return [Interfaces(**item) for item in self._raw.get("interfaces")] def vlans(self) -> list["Vlans"]: return [Vlans(**item) for item in self._raw.get("vlans")] if __name__ == "__main__": with open("../../test.txt") as file: data = file.read() mikr = Mikrotik(data) print(mikr.parse().json())