Improve Python config file template substitution #8

Merged
Jan Lindemann merged 10 commits from jan/feature/20260609-pyproject-toml-add-mypypath into master 2026-06-09 08:13:09 +02:00 AGit
Showing only changes of commit 01be594103 - Show all commits

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>
Jan Lindemann 2026-06-02 21:18:21 +02:00
Signed by: Jan Lindemann
GPG key ID: 3750640C9E25DD61

View file

@ -5,7 +5,7 @@ from typing import Iterable, TypeAlias
from ...lib.log import WARNING, log from ...lib.log import WARNING, log
from .Cmd import Cmd, Parent from .Cmd import Cmd, Parent
from .lib.pkg_relations import VersionSyntax, pkg_relations from .lib.pkg_relations import VersionSyntax, pkg_relations
from .lib.templates import tmpl_render from .lib.templates import RenderValues, tmpl_render
def key_value(s): def key_value(s):
try: try:
@ -37,6 +37,21 @@ class CmdCreateFile(Cmd): # export
entry.append(val) entry.append(val)
return ret return ret
def __render(
self,
template_name: str,
values: list[RenderValues],
li_quote = False,
li_delimiter = '\n',
) -> str:
return tmpl_render(
template_name,
values,
li_quote = li_quote,
li_delimiter = li_delimiter,
search_path = self.app.args.search_path.split(':'),
)
def render_pyright(self, module: str, extra_fields: TupleList) -> str: def render_pyright(self, module: str, extra_fields: TupleList) -> str:
prereq = pkg_relations( prereq = pkg_relations(
self.app, self.app,
@ -64,7 +79,7 @@ class CmdCreateFile(Cmd): # export
} }
self.__update_dict(values, extra_fields) self.__update_dict(values, extra_fields)
return tmpl_render( return self.__render(
'pyrightconfig.json', [values], li_quote = True, li_delimiter = ',\n' 'pyrightconfig.json', [values], li_quote = True, li_delimiter = ',\n'
) )
@ -80,6 +95,11 @@ class CmdCreateFile(Cmd): # export
choices = [fmt.name.lower() for fmt in Fmt], choices = [fmt.name.lower() for fmt in Fmt],
help = 'Output format' help = 'Output format'
) )
parser.add_argument(
'--search-path',
default = '/etc/opt/jw-pkg/templates',
help = 'Template search path, colon separated',
)
parser.add_argument( parser.add_argument(
'-f', '-f',
'--field', '--field',