nmk_proto.python

Python related resolvers and builders sub-module

Classes

OutputFoldersFinder

Generated python module folders resolver

OutputPythonFilesFinder

Generated python files resolver

OutputProtoFilesFinder

Copied proto files resolver

OutputFoldersFinderWithWildcard

Generated python module wildcards resolver

ProtoLinkBuilder

proto.link silent task builder

ProtoPythonBuilder

proto.gen.py task builder

ProtoPythonChecker

proto.check.py task builder

Module Contents

class nmk_proto.python.OutputFoldersFinder(model: nmk.model.model.NmkModel)

Bases: nmk.model.resolver.NmkListConfigResolver

Generated python module folders resolver

get_value(name: str, input_subdirs: list[str]) list[str]

List all generated python module folders

Parameters:
  • name – config item name

  • input_subdirs – list of unique input subdirs

Returns:

list of generated python module folders

class nmk_proto.python.OutputPythonFilesFinder(model: nmk.model.model.NmkModel)

Bases: nmk.model.resolver.NmkListConfigResolver

Generated python files resolver

get_value(name: str, folder: str, input_files: list[str], src_folders: list[str]) list[str]

List all generated python files names

Parameters:
  • name – config item name

  • folder – root proto folder

  • input_files – list of all input proto files

  • src_folders – list of python generated source folders

Returns:

list of generated files names

class nmk_proto.python.OutputProtoFilesFinder(model: nmk.model.model.NmkModel)

Bases: nmk.model.resolver.NmkListConfigResolver

Copied proto files resolver

get_value(name: str, folder: str, input_files: list[str], src_folders: list[str]) list[str]

List all names of proto files copied in python source directory

Parameters:
  • name – config item name

  • folder – root proto folder

  • input_files – list of all input proto files

  • src_folders – list of python generated source folders

Returns:

list of copied proto files names

class nmk_proto.python.OutputFoldersFinderWithWildcard(model: nmk.model.model.NmkModel)

Bases: OutputFoldersFinder

Generated python module wildcards resolver

get_value(name: str, input_subdirs: list[str]) list[str]

List all generated python module folders, with appended ‘/.’ wildcard

Parameters:
  • name – config item name

  • input_subdirs – list of unique input subdirs

Returns:

list of generated python module wildcards

class nmk_proto.python.ProtoLinkBuilder(model: nmk.model.model.NmkModel)

Bases: nmk.model.builder.NmkTaskBuilder

proto.link silent task builder

build()

Create local project symbolic link to venv root

class nmk_proto.python.ProtoPythonBuilder(model: nmk.model.model.NmkModel)

Bases: nmk_base.common.TemplateBuilder

proto.gen.py task builder

build(init_template: str, all_input_subdirs: list[str], options: list[str], src_folders: list[str], extra_args: list[str])

Generate python files from input proto ones

Iterates on input proto files, and call protoc tool to generate python files. Also generate __init__.py files for all generated modules, from provided template.

Parameters:
  • init_template – path to __init__.py file template

  • all_input_subdirs – list of all input subdirs (one per found proto file)

  • options – list of proto paths options

  • src_folders – list of python generated source folders

  • extra_args – list of extra arguments for protoc command

class nmk_proto.python.ProtoPythonChecker(model: nmk.model.model.NmkModel)

Bases: nmk.model.builder.NmkTaskBuilder

proto.check.py task builder

build(src_folders: list[str])

Check generated python files import

Verifies (for all generated python modules folders) that importing all generated files at once works well (typically to make sure there are no enum naming conflicts).

Parameters:

src_folders – list of python module folders to be checked