Nix fmt doesn't complain anymore

This commit is contained in:
2023-10-23 01:30:47 +02:00
parent 7a354875c9
commit f1b66d7996
9 changed files with 60 additions and 57 deletions

View File

@@ -1,23 +1,27 @@
from typing import Dict, Optional, Tuple, Callable, Any, Mapping, List import logging
from pathlib import Path import multiprocessing as mp
import ipdb
import os import os
import shlex
import stat import stat
import subprocess import subprocess
from .dirs import find_git_repo_root
import multiprocessing as mp
from .types import FlakeName
import logging
import sys import sys
import shlex from pathlib import Path
import time from typing import Any, Callable, Dict, List, Optional
import ipdb
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
def command_exec(cmd: List[str], work_dir: Path, env: Dict[str, str]) -> None: def command_exec(cmd: List[str], work_dir: Path, env: Dict[str, str]) -> None:
subprocess.run(cmd, check=True, env=env, cwd=work_dir.resolve()) subprocess.run(cmd, check=True, env=env, cwd=work_dir.resolve())
def repro_env_break(work_dir: Path, env: Optional[Dict[str, str]] = None, cmd: Optional[List[str]] = None) -> None:
def repro_env_break(
work_dir: Path,
env: Optional[Dict[str, str]] = None,
cmd: Optional[List[str]] = None,
) -> None:
if env is None: if env is None:
env = os.environ.copy() env = os.environ.copy()
else: else:
@@ -40,6 +44,7 @@ def repro_env_break(work_dir: Path, env: Optional[Dict[str, str]] = None, cmd: O
finally: finally:
proc.terminate() proc.terminate()
def write_command(command: str, loc: Path) -> None: def write_command(command: str, loc: Path) -> None:
with open(loc, "w") as f: with open(loc, "w") as f:
f.write("#!/usr/bin/env bash\n") f.write("#!/usr/bin/env bash\n")
@@ -47,6 +52,7 @@ def write_command(command: str, loc:Path) -> None:
st = os.stat(loc) st = os.stat(loc)
os.chmod(loc, st.st_mode | stat.S_IEXEC) os.chmod(loc, st.st_mode | stat.S_IEXEC)
def spawn_process(func: Callable, **kwargs: Any) -> mp.Process: def spawn_process(func: Callable, **kwargs: Any) -> mp.Process:
mp.set_start_method(method="spawn") mp.set_start_method(method="spawn")
proc = mp.Process(target=func, kwargs=kwargs) proc = mp.Process(target=func, kwargs=kwargs)
@@ -59,7 +65,7 @@ def dump_env(env: Dict[str, str], loc: Path) -> None:
with open(loc, "w") as f: with open(loc, "w") as f:
f.write("#!/usr/bin/env bash\n") f.write("#!/usr/bin/env bash\n")
for k, v in cenv.items(): for k, v in cenv.items():
if v.count('\n') > 0 or v.count("\"") > 0 or v.count("'") > 0: if v.count("\n") > 0 or v.count('"') > 0 or v.count("'") > 0:
continue continue
f.write(f"export {k}='{v}'\n") f.write(f"export {k}='{v}'\n")
st = os.stat(loc) st = os.stat(loc)

View File

@@ -3,11 +3,13 @@ from pathlib import Path
from typing import Any from typing import Any
from pydantic import AnyUrl, BaseModel, validator from pydantic import AnyUrl, BaseModel, validator
from pydantic.tools import parse_obj_as
from ..dirs import clan_data_dir, clan_flakes_dir from ..dirs import clan_data_dir, clan_flakes_dir
from ..flakes.create import DEFAULT_URL
from ..types import validate_path from ..types import validate_path
DEFAULT_URL = parse_obj_as(AnyUrl, "http://localhost:8000")
log = logging.getLogger(__name__) log = logging.getLogger(__name__)

View File

@@ -1,10 +1,6 @@
from enum import Enum from enum import Enum
from typing import Dict, List
from pydantic import BaseModel, Field from pydantic import BaseModel
from ..async_cmd import CmdOut
from ..task_manager import TaskStatus
class Status(Enum): class Status(Enum):
@@ -16,6 +12,3 @@ class Status(Enum):
class Machine(BaseModel): class Machine(BaseModel):
name: str name: str
status: Status status: Status

View File

@@ -29,7 +29,6 @@ def setup_app() -> FastAPI:
app.include_router(health.router) app.include_router(health.router)
# Needs to be last in register. Because of wildcard route # Needs to be last in register. Because of wildcard route
app.include_router(root.router) app.include_router(root.router)
app.add_exception_handler(ClanError, clan_error_handler) app.add_exception_handler(ClanError, clan_error_handler)

View File

@@ -13,6 +13,7 @@ from typing import Iterator
import uvicorn import uvicorn
from pydantic import AnyUrl, IPvAnyAddress from pydantic import AnyUrl, IPvAnyAddress
from pydantic.tools import parse_obj_as from pydantic.tools import parse_obj_as
from clan_cli.errors import ClanError from clan_cli.errors import ClanError
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@@ -25,9 +26,7 @@ def open_browser(base_url: AnyUrl, sub_url: str) -> None:
break break
except OSError: except OSError:
time.sleep(i) time.sleep(i)
url = parse_obj_as( url = parse_obj_as(AnyUrl, f"{base_url}/{sub_url.removeprefix('/')}")
AnyUrl, f"{base_url}/{sub_url.removeprefix('/')}"
)
_open_browser(url) _open_browser(url)

View File

@@ -37,6 +37,10 @@ exclude = "clan_cli.nixpkgs"
module = "argcomplete.*" module = "argcomplete.*"
ignore_missing_imports = true ignore_missing_imports = true
[[tool.mypy.overrides]]
module = "ipdb.*"
ignore_missing_imports = true
[[tool.mypy.overrides]] [[tool.mypy.overrides]]
module = "jsonschema.*" module = "jsonschema.*"
ignore_missing_imports = true ignore_missing_imports = true
@@ -52,7 +56,7 @@ ignore_missing_imports = true
[tool.ruff] [tool.ruff]
line-length = 88 line-length = 88
select = [ "E", "F", "I", "U", "N"] select = [ "E", "F", "I", "N"]
ignore = [ "E501" ] ignore = [ "E501" ]
[tool.black] [tool.black]

View File

@@ -6,7 +6,7 @@ import {
CssBaseline, CssBaseline,
IconButton, IconButton,
ThemeProvider, ThemeProvider,
useMediaQuery useMediaQuery,
} from "@mui/material"; } from "@mui/material";
import { StyledEngineProvider } from "@mui/material/styles"; import { StyledEngineProvider } from "@mui/material/styles";
import axios from "axios"; import axios from "axios";