Skip to content

Commit

Permalink
Merge pull request #150 from YunoHost/actions/black
Browse files Browse the repository at this point in the history
Format Python code with Black
  • Loading branch information
alexAubin authored Jun 9, 2024
2 parents e38782b + 8ec0c96 commit f3b8c6b
Showing 1 changed file with 29 additions and 8 deletions.
37 changes: 29 additions & 8 deletions package_linter.py
Original file line number Diff line number Diff line change
Expand Up @@ -312,14 +312,20 @@ def file_exists(file_path):

def cache_file(cachefile: str, ttl_s: int):
def cache_is_fresh():
return os.path.exists(cachefile) and time.time() - os.path.getmtime(cachefile) < ttl_s
return (
os.path.exists(cachefile)
and time.time() - os.path.getmtime(cachefile) < ttl_s
)

def decorator(function):
def wrapper(*args, **kwargs):
if not cache_is_fresh():
with open(cachefile, "w+") as outfile:
outfile.write(function(*args, **kwargs))
return open(cachefile).read()

return wrapper

return decorator


Expand All @@ -330,29 +336,38 @@ def spdx_licenses():

@cache_file(".manifest.v2.schema.json", 3600)
def manifest_v2_schema():
return urlopen("https://raw.githubusercontent.com/YunoHost/apps/master/schemas/manifest.v2.schema.json")["content"]
return urlopen(
"https://raw.githubusercontent.com/YunoHost/apps/master/schemas/manifest.v2.schema.json"
)["content"]


@cache_file(".tests.v1.schema.json", 3600)
def tests_v1_schema():
return urlopen("https://raw.githubusercontent.com/YunoHost/apps/master/schemas/tests.v1.schema.json")["content"]
return urlopen(
"https://raw.githubusercontent.com/YunoHost/apps/master/schemas/tests.v1.schema.json"
)["content"]


@cache_file(".config_panel.v1.schema.json", 3600)
def config_panel_v1_schema():
return urlopen("https://raw.githubusercontent.com/YunoHost/apps/master/schemas/config_panel.v1.schema.json")["content"]
return urlopen(
"https://raw.githubusercontent.com/YunoHost/apps/master/schemas/config_panel.v1.schema.json"
)["content"]


def validate_schema(name: str, schema, data):
v = jsonschema.Draft7Validator(schema)

for error in v.iter_errors(data):
try:
error_path = " > ".join(error.path)
except:
error_path = str(error.path)

yield Info(f"Error validating {name} using schema: in key {error_path}\n {error.message}")
yield Info(
f"Error validating {name} using schema: in key {error_path}\n {error.message}"
)


tests = {}
tests_reports = {
Expand Down Expand Up @@ -782,7 +797,11 @@ def config_panel(app):
"The config panel is set to version 1.x, but the config script is apparently still using some old code from 0.1 such as '$YNH_CONFIG_STUFF' or 'yunohost app action'"
)

validate_schema("config_panel", config_panel_v1_schema(), toml.load(app.path + "config_panel.toml"))
validate_schema(
"config_panel",
config_panel_v1_schema(),
toml.load(app.path + "config_panel.toml"),
)

@test()
def badges_in_readme(app):
Expand Down Expand Up @@ -1198,7 +1217,9 @@ def tests_toml(self):
"The 'check_process' file that interfaces with the app CI has now been replaced with 'tests.toml' format and is now mandatory for apps v2."
)
else:
validate_schema("tests.toml", tests_v1_schema(), toml.load(app.path + "tests.toml"))
validate_schema(
"tests.toml", tests_v1_schema(), toml.load(app.path + "tests.toml")
)

@test()
def check_process_syntax(self):
Expand Down

0 comments on commit f3b8c6b

Please sign in to comment.