Commit graph jw-pkg/src/python/jw/pkg/cmds/projects/CmdCreateFile.py
Author SHA1 Message Date
5fa008be5a
App, lib, cmds: Fix mypy.explicit-override fallout
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>
2026-08-07 18:02:26 +02:00
60bd4b461b
cmds.projects.CmdCreateFile: Add self to extra_paths
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>
2026-07-22 12:01:29 +02:00
da877c624f
cmds.projects.CmdCreateFile: Add more options
- 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>
2026-06-09 07:46:47 +02:00
01be594103
cmds.projects.CmdCreateFile: Support --search-path
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>
2026-06-09 07:46:27 +02:00
81e71bc5c1
cmds.projects.lib.templates.tmpl_render(): RenderValues
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>
2026-06-09 07:45:49 +02:00
c0c9148281
cmds.projects.CmdCreateFile: Add subdirs src/python
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>
2026-06-09 07:45:15 +02:00
6dfb238364
cmds.projects.CmdCreateFile: Fix double-double quotes
CmdCreateFile creates quotes in- and outside of tmpl_render(), which
makes for one too many. Fix that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-04 23:14:49 +02:00
49016373e1
cmds.projects.CmdCreateFile: Add module
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>
2026-05-31 18:20:29 +02:00