nmk_base.git

Python module for nmk-base git related resolvers and builders.

Classes

GitVersionRefresh

Builder for git.version task

GitClean

Builder for git.clean task

GitVersionResolver

Resolver for gitVersion config item

GitFileFragmentUpdater

Abstract builder for git-related files

GitIgnore

Builder for git.ignore task

GitAttributes

Builder for git.attributes task

GitIsDirty

Builder for git.dirty task

CIResolver

Resolver for isLocalBuild/isCIBuild config items

Module Contents

class nmk_base.git.GitVersionRefresh(model: nmk.model.model.NmkModel)

Bases: nmk.model.builder.NmkTaskBuilder

Builder for git.version task

build(version: str)

Build logic for git.version task: update .gitversion only if it doesn’t exist or if its content doesn’t match current version.

Parameters:

version – Current build version

class nmk_base.git.GitClean(model: nmk.model.model.NmkModel)

Bases: nmk.model.builder.NmkTaskBuilder

Builder for git.clean task

build()

Build logic for git.clean task: simply run git clean -fdX command, and stop build

Throw:

NmkStopHereError to interrupt current build now

class nmk_base.git.GitVersionResolver(model: nmk.model.model.NmkModel)

Bases: nmk.model.resolver.NmkStrConfigResolver

Resolver for gitVersion config item

get_value(name: str) str

Resolution logic for gitVersion config item: call commands to deduce version from last git tag

Parameters:

name – Config item name

Returns:

Config item value

class nmk_base.git.GitFileFragmentUpdater(model: nmk.model.model.NmkModel)

Bases: nmk_base.common.TemplateBuilder

Abstract builder for git-related files

allow_missing_input(missing_input: pathlib.Path) bool

Tells nmk that project root .gitignore/.gitattributes can be missing

Parameters:

missing_input – path to missing input

Returns:

True if this is the task main input (e.g. .gitIgnore)

build_fragment(kwargs: dict[str, str], template: str)

Build fragment to be inserted in file that can be also manually edited

Parameters:
  • kwargs – keywords for template rendering

  • template – Path to generated file template

class nmk_base.git.GitIgnore(model: nmk.model.model.NmkModel)

Bases: GitFileFragmentUpdater

Builder for git.ignore task

prepare_ignored_file(ignored_file: str) str

Prepare ignored file path by making it relative to project path (is possible)

Parameters:

ignored_file – Path to ignored file

Returns:

Projet relative path if possible, unchanged input value otherwise

build(ignored_files: list[str], template: str)

Generate .gitignore file fragment from template

Parameters:
  • ignored_files – List of files to be ignored

  • template – Path to generated file template

class nmk_base.git.GitAttributes(model: nmk.model.model.NmkModel)

Bases: GitFileFragmentUpdater

Builder for git.attributes task

build(template: str)

Generate .gitattributes file fragment from template

Parameters:

template – Path to generated file template

class nmk_base.git.GitIsDirty(model: nmk.model.model.NmkModel)

Bases: nmk.model.builder.NmkTaskBuilder

Builder for git.dirty task

build()

Build logic for git.dirty task: verifies if git status –porcelain output is empty

class nmk_base.git.CIResolver(model: nmk.model.model.NmkModel)

Bases: nmk.model.resolver.NmkBoolConfigResolver

Resolver for isLocalBuild/isCIBuild config items

get_value(name: str, invert: bool = False) bool

Resolution logic for isLocalBuild/isCIBuild config items: check if CI env var is defined

Parameters:
  • name – Config item name

  • invert – True to invert logic (e.g. for isLocalBuild)