Fix ruff errors

This commit is contained in:
Félix Piédallu 2024-03-14 14:27:23 +01:00
parent e03e960249
commit 0829da0f46

View file

@ -5,14 +5,14 @@ import os
import sys import sys
import time import time
from collections import OrderedDict from collections import OrderedDict
from pathlib import Path
from typing import Any
import toml import toml
import yaml import yaml
CATALOG_LIST_PATH = "/etc/yunohost/apps_catalog.yml" CATALOG_LIST_PATH = Path("/etc/yunohost/apps_catalog.yml").resolve()
assert os.path.exists( assert CATALOG_LIST_PATH.exists(), f"Catalog list yaml file '{CATALOG_LIST_PATH} does not exists"
CATALOG_LIST_PATH
), f"Catalog list yaml file '{CATALOG_LIST_PATH} does not exists"
now = time.time() now = time.time()
my_env = os.environ.copy() my_env = os.environ.copy()
@ -22,13 +22,14 @@ DEFAULT_APPS_FOLDER = "/ynh-dev/custom-catalog/"
DEFAULT_APP_BRANCH = "master" DEFAULT_APP_BRANCH = "master"
def build(folder=DEFAULT_APPS_FOLDER): def build(folder: Path | str = DEFAULT_APPS_FOLDER) -> None:
assert os.path.exists(folder), f"'{folder}' doesn't exists." folder = Path(folder)
assert folder.exists(), f"'{folder}' doesn't exists."
app_list_path = os.path.join(folder, "apps.json") app_list_path = folder / "apps.json"
assert os.path.exists(app_list_path), "no 'apps.json' app list found." assert app_list_path.exists(), "no 'apps.json' app list found."
with open(app_list_path) as f: with app_list_path.open() as f:
app_list = json.load(f) app_list = json.load(f)
apps = {} apps = {}
@ -53,30 +54,30 @@ def build(folder=DEFAULT_APPS_FOLDER):
if "manifest" in app and "resources" in app["manifest"]: if "manifest" in app and "resources" in app["manifest"]:
del app["manifest"]["resources"] del app["manifest"]["resources"]
output_file = os.path.join(folder, "catalog.json") output_file = folder / "catalog.json"
data = { data = {
"apps": apps, "apps": apps,
"from_api_version": 3, "from_api_version": 3,
} }
with open(output_file, "w") as f: with output_file.open("w") as f:
f.write(json.dumps(data, sort_keys=True, indent=2)) f.write(json.dumps(data, sort_keys=True, indent=2))
if fail: if fail:
sys.exit(1) sys.exit(1)
def build_app_dict(app, infos, folder): def build_app_dict(app: str, infos: dict[str, Any], folder: Path) -> dict[str, Any]:
app_folder = os.path.join(folder, app + "_ynh") app_folder = folder / f"{app}_ynh"
# Build the dict with all the infos # Build the dict with all the infos
manifest_toml = os.path.join(app_folder, "manifest.toml") manifest_toml = app_folder / "manifest.toml"
manifest_json = os.path.join(app_folder, "manifest.json") manifest_json = app_folder / "manifest.json"
if os.path.exists(manifest_toml): if manifest_toml.exists():
with open(manifest_toml) as f: with manifest_toml.open() as f:
manifest = toml.load(f, _dict=OrderedDict) manifest = toml.load(f, _dict=OrderedDict)
else: else:
with open(manifest_json) as f: with manifest_json.open() as f:
manifest = json.load(f, _dict=OrderedDict) manifest = json.load(f, _dict=OrderedDict)
return { return {
@ -96,32 +97,27 @@ def build_app_dict(app, infos, folder):
"category": infos.get("category", None), "category": infos.get("category", None),
"subtags": infos.get("subtags", []), "subtags": infos.get("subtags", []),
"potential_alternative_to": infos.get("potential_alternative_to", []), "potential_alternative_to": infos.get("potential_alternative_to", []),
"antifeatures": list( "antifeatures": list(set(list(manifest.get("antifeatures", {}).keys()) + infos.get("antifeatures", []))),
set(
list(manifest.get("antifeatures", {}).keys())
+ infos.get("antifeatures", [])
)
),
} }
def reset(): def reset() -> None:
with open(CATALOG_LIST_PATH, "w") as f: with CATALOG_LIST_PATH.open("w") as f:
catalog_list = [{"id": "default", "url": "https://app.yunohost.org/default/"}] catalog_list = [{"id": "default", "url": "https://app.yunohost.org/default/"}]
yaml.safe_dump(catalog_list, f, default_flow_style=False) yaml.safe_dump(catalog_list, f, default_flow_style=False)
def add(): def add() -> None:
with open(CATALOG_LIST_PATH) as f: with CATALOG_LIST_PATH.open("r") as f:
catalog_list = yaml.load(f, Loader=yaml.FullLoader) catalog_list = yaml.load(f, Loader=yaml.FullLoader)
ids = [catalog["id"] for catalog in catalog_list] ids = [catalog["id"] for catalog in catalog_list]
if "custom" not in ids: if "custom" not in ids:
catalog_list.append({"id": "custom", "url": None}) catalog_list.append({"id": "custom", "url": None})
with open(CATALOG_LIST_PATH, "w") as f: with CATALOG_LIST_PATH.open("w") as f:
yaml.safe_dump(catalog_list, f, default_flow_style=False) yaml.safe_dump(catalog_list, f, default_flow_style=False)
def override(): def override() -> None:
with open(CATALOG_LIST_PATH, "w") as f: with CATALOG_LIST_PATH.open("w") as f:
catalog_list = [{"id": "custom", "url": None}] catalog_list = [{"id": "custom", "url": None}]
yaml.safe_dump(catalog_list, f, default_flow_style=False) yaml.safe_dump(catalog_list, f, default_flow_style=False)