nmk_proto.python ================ .. py:module:: nmk_proto.python .. autoapi-nested-parse:: Python related resolvers and builders sub-module Classes ------- .. autoapisummary:: nmk_proto.python.OutputFoldersFinder nmk_proto.python.OutputPythonFilesFinder nmk_proto.python.OutputProtoFilesFinder nmk_proto.python.OutputFoldersFinderWithWildcard nmk_proto.python.ProtoLinkBuilder nmk_proto.python.ProtoPythonBuilder nmk_proto.python.ProtoPythonChecker Module Contents --------------- .. py:class:: OutputFoldersFinder(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk.model.resolver.NmkListConfigResolver` Generated python module folders resolver .. py:method:: get_value(name: str, input_subdirs: list[str]) -> list[str] List all generated python module folders :param name: config item name :param input_subdirs: list of unique input subdirs :return: list of generated python module folders .. py:class:: OutputPythonFilesFinder(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk.model.resolver.NmkListConfigResolver` Generated python files resolver .. py:method:: get_value(name: str, folder: str, input_files: list[str], src_folders: list[str]) -> list[str] List all generated python files names :param name: config item name :param folder: root proto folder :param input_files: list of all input proto files :param src_folders: list of python generated source folders :return: list of generated files names .. py:class:: OutputProtoFilesFinder(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk.model.resolver.NmkListConfigResolver` Copied proto files resolver .. py:method:: 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 :param name: config item name :param folder: root proto folder :param input_files: list of all input proto files :param src_folders: list of python generated source folders :return: list of copied proto files names .. py:class:: OutputFoldersFinderWithWildcard(model: nmk.model.model.NmkModel) Bases: :py:obj:`OutputFoldersFinder` Generated python module wildcards resolver .. py:method:: get_value(name: str, input_subdirs: list[str]) -> list[str] List all generated python module folders, with appended '/*.*' wildcard :param name: config item name :param input_subdirs: list of unique input subdirs :return: list of generated python module wildcards .. py:class:: ProtoLinkBuilder(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk.model.builder.NmkTaskBuilder` proto.link silent task builder .. py:method:: build() Create local project symbolic link to venv root .. py:class:: ProtoPythonBuilder(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk_base.common.TemplateBuilder` proto.gen.py task builder .. py:method:: 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. :param init_template: path to __init__.py file template :param all_input_subdirs: list of all input subdirs (one per found proto file) :param options: list of proto paths options :param src_folders: list of python generated source folders :param extra_args: list of extra arguments for protoc command .. py:class:: ProtoPythonChecker(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk.model.builder.NmkTaskBuilder` proto.check.py task builder .. py:method:: 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). :param src_folders: list of python module folders to be checked