This commit adds @override decorators to approximately 300 methods
across 76 files that inherit from base classes such as AbstractCmd,
FileContext, ExecContext, Distro, SSHClient, and others.
The decorator ensures the type checker can verify that overridden
methods have compatible signatures and prevents accidental shadowing
of inherited methods without intent.
Files modified include command classes, library modules, distro
implementations, and SSH client implementations.
Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL with pi.dev v
Signed-off-by: Jan Lindemann <jan@janware.com>
pyrightconfig.json as generated by CmdCreateFile, doesn't contain the
repository's own Python source location in "extra_paths", fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
- Add an additional, more generic value that --format understands:
"tmpl". If chosen, the template selected by the new option
--template-name is rendered by replacing --field key=value pairs.
- This commit also adds the option --quote, which makes the
renderer enclose the rendered variable values in double quotes.
Signed-off-by: Jan Lindemann <jan@janware.com>
Add --search-path to the list of CmdCreateFile's supported options.
Its value is split by ":" and subsequently passed to the tmpl_render()'s
search_path argument.
Signed-off-by: Jan Lindemann <jan@janware.com>
tmpl_render()'s "values" argument currently understands
dict[str,str|list[str]]. Enhance that to understand the broader
RenderValues type, which also includes Iterable[tuple[str, str]], as
produced by argparse.add_argument(action='append').
This commit also adds proper type-checking for the values argument.
Before, its type had gone unchecked entirely.
Signed-off-by: Jan Lindemann <jan@janware.com>
In order to allow Pyright to check the types provided by dependant
repositories without installing them, pyrightconfig.json contains a
list of paths to their root directories in "extraPaths". These paths
are unusable for Pyright, though: For type checking to work, it needs
to be pointed to the "jw" namespace package paths within those repos.
This commit achieves that by appending the subdirs src/python and
tools/python to them, provided they exist.
TODO: This fix hardcodes the current project directory structure.
Better would be a way to customize that via makefiles, where the
paths can be more easily customized.
Signed-off-by: Jan Lindemann <jan@janware.com>
Add CmdCreateFile as a command to generate files from project
metadata. It uses the new tmpl_render() engine, might serve as a
central location to replace other code generating files, let's see
how that evolves.
Signed-off-by: Jan Lindemann <jan@janware.com>