# Configuration Reference The **`nmk-proto`** plugin handles the configuration items listed in this page. All of them are initiliazed with convenient default values, so that you don't need to setup them for a default working behavior. You can anyway override them in your project if you need to fine tune the plugin behavior. [Some items](extend.md) are specifically designed to be extended by **`nmk`** projects and plugins. ## Generic items (protoFolder)= ### **`protoFolder`** -- Folder for input proto files | Type | Default value | | ---- | -------------------- | | str | ${PROJECTDIR}/protos | This is the path where input proto files are located. (protoInputFiles)= ### **`protoInputFiles`** -- List of input proto files | Type | Default value | | --------- | --------------------------------------------------------- | | list[str] | Generated by {py:class}`nmk_proto.files.ProtoFilesFinder` | Dynamically lists input proto files found in {ref}`${protoFolder}`. (protoAllInputSubDirs)= ### **`protoAllInputSubDirs`** -- List of input proto sub-folders | Type | Default value | | --------- | -------------------------------------------------------------- | | list[str] | Generated by {py:class}`nmk_proto.files.ProtoAllSubDirsFinder` | Dynamically lists all sub-folders of {ref}`${protoFolder}` (exactly one per proto file, in same order than {ref}`${protoInputFiles}`). (protoUniqueInputSubDirs)= ### **`protoUniqueInputSubDirs`** -- Set of input proto sub-folders | Type | Default value | | --------- | ----------------------------------------------------------------- | | list[str] | Generated by {py:class}`nmk_proto.files.ProtoUniqueSubDirsFinder` | Dynamically lists all sub-folders of {ref}`${protoFolder}` (no duplicates). (protoDeps)= ### **`protoDeps`** -- Extra proto paths for code generation | Type | Default value | | --------- | ---------------------------------------------------- | | list[str] | [ {ref}`${protoPythonNmkRoot}` ] | List of extra paths to be specified to protoc when generating code. (protoPathOptions)= ### **`protoPathOptions`** -- Path options list for protoc | Type | Default value | | --------- | ---------------------------------------------------------------- | | list[str] | Generated by {py:class}`nmk_proto.files.ProtoPathOptionsBuilder` | List of protoc path options, derived from {ref}`${protoDeps}` (protoDisableCheck)= ### **`protoDisableCheck`** -- Disable generated code checks | Type | Default value | | ---- | ------------- | | bool | False | If set to true, disable all generated code check tasks (see {ref}`proto.check.py` task). ## Python items (pythonGeneratedSrcFiles)= ### **`pythonGeneratedSrcFiles`** -- Generated python files list | Type | Default value | | --------- | ----------------------------------------------------------------- | | list[str] | Generated by {py:class}`nmk_proto.python.OutputPythonFilesFinder` | List of generated python files (from input proto files); this contributes to [nmk-python generated files list](https://nmk-python.readthedocs.io/en/stable/extend.html#files). (protoPythonCopiedFiles)= ### **`protoPythonCopiedFiles`** -- Copied proto files list | Type | Default value | | --------- | ---------------------------------------------------------------- | | list[str] | Generated by {py:class}`nmk_proto.python.OutputProtoFilesFinder` | List of copied proto files in python module source directory (in order to be bundled in generated python wheel). (protoPythonSrcFolders)= ### **`protoPythonSrcFolders`** -- Generated python modules folders list | Type | Default value | | --------- | ------------------------------------------------------------- | | list[str] | Generated by {py:class}`nmk_proto.python.OutputFoldersFinder` | List of generated python module folders in source directory. (protoPythonSrcFoldersWildcard)= ### **`protoPythonSrcFoldersWildcard`** -- Generated python modules wildcard list | Type | Default value | | --------- | ------------------------------------------------------------------------- | | list[str] | Generated by {py:class}`nmk_proto.python.OutputFoldersFinderWithWildcard` | Same list than {ref}`${protoPythonSrcFolders}`, with a `*.*` wildcard appended to each item. _Changed in version 1.2.0_ -- Previous wildcard was a simple `*` (protoPythonGeneratedInitTemplate)= ### **`protoPythonGeneratedInitTemplate`** -- Path to init file template | Type | Default value | | ---- | ---------------------------------- | | str | ${BASEDIR}/templates/init.py.jinja | This is the path to the template used to generate `__init__.py` files in generated python modules. (protoPythonNmkRoot)= ### **`protoPythonNmkRoot`** -- Link to venv root for proto files references | Type | Default value | | ---- | ------------------------ | | str | ${PROJECTDIR_NMK}/protos | This is the path of the symbolic link to project venv, used for references to proto files provided by venv-installed packages. (protoPythonExtraArgs)= ### **`protoPythonExtraArgs`** -- Extra arguments for python files generation | Type | Default value | | --------- | ------------- | | list[str] | [] | This is a list of extra arguments for python files generation with protoc command.