Compare commits

...

3 Commits

Author SHA1 Message Date
fdcd67aae6 [+] implement interfaces_index 2025-04-18 16:38:36 +03:00
799280f074 [+] add interfaces_index 2025-04-18 16:30:10 +03:00
202bf85f55 [+] partially wrap ip addr 2025-04-17 12:11:18 +03:00
3 changed files with 36 additions and 3 deletions

@ -1,14 +1,17 @@
import shutil
import glob
import subprocess
import pydantic
import pathlib
import ctypes
import os
import sys
import logging
import dataclasses
logger = logging.getLogger(__name__)
from typing import (overload, Optional, Literal,)
from typing import (overload, Optional, Literal, Any, Annotated,)
from .cli_bootstrap import PyProject
@ -89,4 +92,31 @@ def runtime_libdirs_init(
ctypes.cdll.LoadLibrary(preload_found)
else:
raise NotImplementedError
raise NotImplementedError
class interfaces_index_t:
@dataclasses.dataclass
class Interface:
@dataclasses.dataclass
class AddrInfo:
family: str
local: str
name: Annotated[
str,
pydantic.Field(
alias='ifname',
)
]
addr_info: list[AddrInfo]
def interfaces_index() -> list[interfaces_index_t.Interface]:
res = pydantic.RootModel[
list[interfaces_index_t.Interface]
].model_validate_json(
subprocess.check_output([
'ip', '-j', 'addr',
]).decode('utf-8')
).root
return res

@ -1,6 +1,6 @@
[project]
name = 'online.fxreader.pr34'
version = '0.1.5.9'
version = '0.1.5.9+27.1'
dependencies = [
#"-r requirements.txt",

Binary file not shown.