dev #3

Merged
gitark merged 84 commits from dev into main 2026-06-12 16:00:25 +03:00
2 changed files with 23 additions and 8 deletions
Showing only changes of commit ac835d6b56 - Show all commits

View File

@@ -1,6 +1,6 @@
from functools import cached_property
import json
from typing import TYPE_CHECKING, Generic, TypeVar
from typing import TYPE_CHECKING, Generic, Iterator, Type, TypeVar
from pydantic import BaseModel
@@ -24,6 +24,21 @@ class ModelView(Generic[TModel]):
)
return self._model.model_dump_json(by_alias=True)
def __iter__(self) -> Iterator[TModel]:
if isinstance(self._model, list):
return iter(self._model)
raise TypeError("This view wraps a single model, not a list")
def __len__(self) -> int:
if isinstance(self._model, list):
return len(self._model)
raise TypeError("This view wraps a single model, not a list")
def __getitem__(self, item):
if isinstance(self._model, list):
return self._model[item]
raise TypeError("This view wraps a single model, not a list")
def __getattr__(self, item):
return getattr(self._model, item)

View File

@@ -33,13 +33,13 @@ class Keenetic(BaseDevice):
item["description"] = decoded
return interfaces
# def vlans(self):
# vlans = self.raw["vlans"]
# for item in vlans:
# if item.get("description"):
# decoded = self._decode_utf(item.get("description", ""))
# item["description"] = decoded
# return vlans
def vlans(self):
vlans = self.raw["vlans"]
for item in vlans:
if item.get("description"):
decoded = self._decode_utf(item.get("description", ""))
item["description"] = decoded
return vlans
if __name__ == "__main__":