tox,osbuild: deal with stages that have external json data
Some existing code/test assumes that anything in `stages/` is executable. This commit fixes this and excludes e.g. json from lintables.
This commit is contained in:
parent
9b09ed9eb4
commit
16d30254c4
3 changed files with 15 additions and 7 deletions
|
|
@ -25,5 +25,10 @@ ignore = [
|
||||||
"PLW2901", # pylint: redefined loop variable
|
"PLW2901", # pylint: redefined loop variable
|
||||||
]
|
]
|
||||||
|
|
||||||
|
extend-exclude = [
|
||||||
|
"*.json",
|
||||||
|
]
|
||||||
|
force-exclude = true
|
||||||
|
|
||||||
[format]
|
[format]
|
||||||
quote-style = "preserve"
|
quote-style = "preserve"
|
||||||
|
|
|
||||||
|
|
@ -465,6 +465,8 @@ class ModuleInfo:
|
||||||
|
|
||||||
docstring = ast.get_docstring(tree)
|
docstring = ast.get_docstring(tree)
|
||||||
doclist = docstring.split("\n") if docstring else []
|
doclist = docstring.split("\n") if docstring else []
|
||||||
|
summary = doclist[0] if len(doclist) > 0 else ""
|
||||||
|
long_description = "\n".join(doclist[1:]) if len(doclist) > 0 else ""
|
||||||
|
|
||||||
assigns = filter_type(tree.body, ast.Assign)
|
assigns = filter_type(tree.body, ast.Assign)
|
||||||
values = {
|
values = {
|
||||||
|
|
@ -485,8 +487,8 @@ class ModuleInfo:
|
||||||
"1": parse_schema(values.get("SCHEMA")),
|
"1": parse_schema(values.get("SCHEMA")),
|
||||||
"2": parse_schema(values.get("SCHEMA_2")),
|
"2": parse_schema(values.get("SCHEMA_2")),
|
||||||
},
|
},
|
||||||
'desc': doclist[0],
|
'desc': summary,
|
||||||
'info': "\n".join(doclist[1:]),
|
'info': long_description,
|
||||||
'caps': parse_caps(values.get("CAPABILITIES"))
|
'caps': parse_caps(values.get("CAPABILITIES"))
|
||||||
}
|
}
|
||||||
return cls(klass, name, path, info)
|
return cls(klass, name, path, info)
|
||||||
|
|
@ -616,7 +618,7 @@ class Index:
|
||||||
raise ValueError(f"Unsupported nodule class: {klass}")
|
raise ValueError(f"Unsupported nodule class: {klass}")
|
||||||
|
|
||||||
path = os.path.join(self.path, module_path)
|
path = os.path.join(self.path, module_path)
|
||||||
modules = filter(lambda f: os.path.isfile(f"{path}/{f}"),
|
modules = filter(lambda f: os.path.isfile(f"{path}/{f}") and not path.endswith("-meta.json"),
|
||||||
os.listdir(path))
|
os.listdir(path))
|
||||||
return list(modules)
|
return list(modules)
|
||||||
|
|
||||||
|
|
|
||||||
9
tox.ini
9
tox.ini
|
|
@ -22,10 +22,11 @@ deps =
|
||||||
pykickstart
|
pykickstart
|
||||||
# required by pykickstart but not pulled in automatically :/
|
# required by pykickstart but not pulled in automatically :/
|
||||||
requests
|
requests
|
||||||
tox-backticks
|
|
||||||
|
|
||||||
setenv =
|
setenv =
|
||||||
LINTABLES = osbuild/ assemblers/* devices/* inputs/*.* mounts/* runners/* sources/*.* stages/*.* inputs/test/*.py stages/test/*.py sources/test/*.py test/ `find ./tools ! -name "*.sh" -type f`
|
LINTABLES = osbuild/ assemblers/* devices/* inputs/*.* mounts/* runners/* sources/*.* stages/*.* inputs/test/*.py stages/test/*.py sources/test/*.py test/ tools/
|
||||||
|
LINTABLES_EXCLUDES = "*.json,*.sh"
|
||||||
|
LINTABLES_EXCLUDES_RE = ".*\.json$,.*\.sh"
|
||||||
TYPEABLES = osbuild
|
TYPEABLES = osbuild
|
||||||
TYPEABLES_STRICT = ./osbuild/main_cli.py
|
TYPEABLES_STRICT = ./osbuild/main_cli.py
|
||||||
|
|
||||||
|
|
@ -51,14 +52,14 @@ deps =
|
||||||
pycodestyle==2.11.0
|
pycodestyle==2.11.0
|
||||||
|
|
||||||
commands =
|
commands =
|
||||||
bash -c 'python -m autopep8 --diff --max-line-length 120 -a -a -a -j0 -r --exit-code {env:LINTABLES}'
|
bash -c 'python -m autopep8 --diff --max-line-length 120 -a -a -a -j0 -r --exclude {env:LINTABLES_EXCLUDES} --exit-code {env:LINTABLES}'
|
||||||
|
|
||||||
[testenv:pylint]
|
[testenv:pylint]
|
||||||
deps =
|
deps =
|
||||||
pylint==3.0.2
|
pylint==3.0.2
|
||||||
|
|
||||||
commands =
|
commands =
|
||||||
bash -c 'python -m pylint {env:LINTABLES}'
|
bash -c 'python -m pylint --ignore-patterns {env:LINTABLES_EXCLUDES_RE} {env:LINTABLES}'
|
||||||
|
|
||||||
[testenv:mypy]
|
[testenv:mypy]
|
||||||
deps =
|
deps =
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue