Compare commits

..

3 Commits

Author SHA1 Message Date
7ad8e4a781 [+] fix ruff execution in cli 2025-04-14 17:32:25 +03:00
8d43813c37 [+] add linters 2025-04-12 16:22:21 +03:00
ae4fcb16f2 [+] fix ninja tests 2025-04-08 16:42:47 +03:00
9 changed files with 58 additions and 62 deletions

@ -1 +1 @@
Subproject commit e52e1c22071d49ff23768dfefd1b33b94552ff6d
Subproject commit adef10a8c41f5c550622879370a40f8a9e545574

@ -1 +1 @@
Subproject commit f2366f328fb8129fa6ae26d00b421025d2f090c7
Subproject commit 3c691ef68d8899edf328d5b06135c0d3b02e7940

@ -1158,7 +1158,6 @@ done'
)
def http_server(argv):
from .commands_typed import os as commands_os
assert isinstance(argv, list) and all([isinstance(o, str) for o in argv])
parser = optparse.OptionParser()
parser.add_option(
@ -1216,17 +1215,10 @@ def http_server(argv):
try:
assert not socket.inet_aton(options.host) is None
# subprocess.check_call([
# 'ping', '-w', '1',
# options.host
# ])
assert options.host in sum([
[
o2.local
for o2 in o.addr_info
]
for o in commands_os.interfaces_index()
], [])
subprocess.check_call([
'ping', '-w', '1',
options.host
])
except Exception:
raise RuntimeError('invalid ip address %s' % options.host)

@ -65,6 +65,42 @@ class CLI(abc.ABC):
argv,
)
def ruff(
self,
project_name: str,
argv: list[str],
) -> None:
project = self.projects[project_name]
if len(argv) == 0:
argv = ['check', '.',]
subprocess.check_call([
self.dist_settings.python_path,
'-m',
'ruff',
'--config', str(project.source_dir / 'pyproject.toml'),
*argv,
])
def pyright(
self,
project_name: str,
argv: list[str],
) -> None:
project = self.projects[project_name]
if len(argv) == 0:
argv = ['--threads', '3', '.']
subprocess.check_call([
self.dist_settings.python_path,
'-m',
'pyright',
'-p', str(project.source_dir / 'pyproject.toml'),
*argv,
])
def pip_sync(
self,
project: str,
@ -266,15 +302,16 @@ class CLI(abc.ABC):
env=dict(list(os.environ.items())) | env,
)
if tests:
subprocess.check_call(
[
'ninja',
'-C',
str(project.build_dir / 'pyproject'),
'test',
]
)
if not project.meson_path is None:
if tests:
subprocess.check_call(
[
'ninja',
'-C',
str(project.build_dir / 'pyproject'),
'test',
]
)
def meson_install(
self,

@ -1,17 +1,14 @@
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, Any, Annotated,)
from typing import (overload, Optional, Literal,)
from .cli_bootstrap import PyProject
@ -92,31 +89,4 @@ def runtime_libdirs_init(
ctypes.cdll.LoadLibrary(preload_found)
else:
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
raise NotImplementedError

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

BIN
releases/whl/online_fxreader_pr34-0.1.5.10-py3-none-any.whl (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.