pyIPCMI.ToolChain.Git.py

Exceptions

  • GitException: Base class for all tool specific exceptions

Classes

  • Configuration: Base class for all tool Configuration classes.
  • Git: Undocumented.
  • GitSCM: Represent an executable.
  • GitRevParse: Represent an executable.
  • GitRevList: Represent an executable.
  • GitDescribe: Represent an executable.
  • GitConfig: Represent an executable.
exception pyIPCMI.ToolChain.Git.GitException(message='')[source]

Inheritance

Inheritance diagram of GitException

Members

__init__(message='')

Exception initializer

Parameters:message (str) – The exception message.
__str__()

Returns the exception’s message text.

args
class pyIPCMI.ToolChain.Git.Configuration(host)[source]

Inheritance

Inheritance diagram of Configuration

Members

_vendor = 'Git SCM'

The name of the tools vendor.

_toolName = 'Git'

The name of the tool.

_section = 'INSTALL.Git'

The name of the configuration section. Pattern: INSTALL.Vendor.ToolName.

_template = {'Linux': {'INSTALL.Git': {'Version': '2.8.1', 'InstallationDirectory': '/usr/bin', 'BinaryDirectory': '${InstallationDirectory}', 'HasInstalledGitHooks': 'False', 'HasInstalledGitFilters': 'False'}}, 'Windows': {'INSTALL.Git': {'Version': '2.12.2', 'InstallationDirectory': 'C:/Program Files/Git', 'BinaryDirectory': '${InstallationDirectory}/cmd', 'HasInstalledGitHooks': 'False', 'HasInstalledGitFilters': 'False'}}}

The template for the configuration sections represented as nested dictionaries.

ConfigureForAll()[source]

Start a generic (platform independent) configuration procedure.

Overwrite this method to implement a generic configuration routine for a (tool) Configuration class.

_GetDefaultInstallationDirectory()[source]

Return unresolved default installation directory (str) from template.

Overwrite function in sub-class for automatic search of installation directory.

RunPostConfigurationTasks()[source]

Virtual method. Overwrite to execute post-configuration tasks.

CheckDependency()[source]

Check if all vendor or tool dependencies are fulfilled to configure this tool.

ClearSection(writeWarnings=False)[source]

Clear the configuration section associated to this Configuration class.

ConfigureForDarwin()[source]

Start the configuration procedure for Darwin.

This method is a wrapper for ConfigureForAll(). Overwrite this method to implement a Darwin specific configuration routine.

ConfigureForLinux()[source]

Start the configuration procedure for Linux.

This method is a wrapper for ConfigureForAll(). Overwrite this method to implement a Linux specific configuration routine.

ConfigureForWindows()[source]

Start the configuration procedure for Windows.

This method is a wrapper for ConfigureForAll(). Overwrite this method to implement a Windows specific configuration routine.

classmethod GetSections(platform)[source]

Return all section names for this configuration.

Host

Return the hosting object.

IsConfigured()[source]

Return true if the configurations section is configured

IsSupportedPlatform()[source]

Return true if the given platform is supported by this configuration routine.

Log(entry, condition=True)

Write an entry to the local logger.

LogDebug(*args, condition=True, **kwargs)
LogDryRun(*args, condition=True, **kwargs)
LogError(*args, condition=True, **kwargs)
LogFatal(*args, condition=True, **kwargs)
LogInfo(*args, condition=True, **kwargs)
LogNormal(*args, condition=True, **kwargs)
LogQuiet(*args, condition=True, **kwargs)
LogVerbose(*args, condition=True, **kwargs)
LogWarning(*args, condition=True, **kwargs)
Logger

Return the local logger instance.

PrepareOptions(writeWarnings=True)[source]
PrepareSections(warningWasWritten, writeWarnings=True)[source]
PrepareVersionedSections(writeWarnings=False)
SectionName

Return the configuration’s section name.

State

Return the configuration state.

_Ask(question, default, beforeDefault='', afterDefault='', indent=1)
_AskInstalled(question)[source]

Ask a Yes/No/Pass question.

_AskYes_NoPass(question, indent=1)

Ask a yes/NO/pass question.

_Ask_YesNoPass(question, indent=1)

Ask a YES/no/pass question.

_Configuration__GetGitDirectory()
_Configuration__InstallGitFilters()
_Configuration__InstallGitHooks()
_Configuration__IsUnderGitControl()
_Configuration__UninstallGitFilters()
_Configuration__UninstallGitHooks()
_Configuration__WriteGitSection(binPath)
_ConfigureBinaryDirectory()

Updates section with value from _template and returns directory as Path object.

_ConfigureEdition(editions, defaultEdition)
_ConfigureInstallationDirectory()[source]

Asks for installation directory and updates section. Checks if entered directory exists and returns Path object. If no installation directory was configured before, then _GetDefaultInstallationDir is called.

_ConfigureVersion()

If no version was configured before, then _GetDefaultVersion is called. Asks for version and updates section. Returns version as string.

_GetDefaultEdition()

Returns unresolved default edition (str) from template.

Overwrite this method in a sub-class for automatic search of editions.

_GetDefaultOptionValue(optionName)[source]
_GetDefaultVersion()

Returns unresolved default version (str) from template.

Overwrite this method in a sub-class for automatic search of version.

_PrintAvailableEditions(editions, selectedEdition)

Print all available editions and return the selected index.

_TestDefaultInstallPath(defaults)[source]

Helper function for automatic search of installation directory.

_TryLog(*args, condition=True, **kwargs)
_multiVersionSupport = False
class pyIPCMI.ToolChain.Git.Git(platform, dryrun, binaryDirectoryPath, version, logger=None)[source]

Inheritance

Inheritance diagram of Git

Members

GetGitRevParse()[source]
GetGitRevList()[source]
GetGitDescribe()[source]
GetGitConfig()[source]
class pyIPCMI.ToolChain.Git.GitSCM(toolchain: pyIPCMI.ToolChain.ToolMixIn)[source]

Inheritance

Inheritance diagram of GitSCM

Members

Clear()[source]
class Executable[source]
class Switch_Version[source]
_name = 'version'
Parameters = [<class 'pyIPCMI.ToolChain.Git.GitSCM.Executable'>, <class 'pyIPCMI.ToolChain.Git.GitSCM.Switch_Version'>]
GetReader()
Log(entry, condition=True)

Write an entry to the local logger.

LogDebug(*args, condition=True, **kwargs)
LogDryRun(*args, condition=True, **kwargs)
LogError(*args, condition=True, **kwargs)
LogFatal(*args, condition=True, **kwargs)
LogInfo(*args, condition=True, **kwargs)
LogNormal(*args, condition=True, **kwargs)
LogQuiet(*args, condition=True, **kwargs)
LogVerbose(*args, condition=True, **kwargs)
LogWarning(*args, condition=True, **kwargs)
Logger

Return the local logger instance.

Path
ReadUntilBoundary(indent=0)
Send(line, end='\n')
SendBoundary()
StartProcess(parameterList)
Terminate()
_TryLog(*args, condition=True, **kwargs)
_pyIPCMI_BOUNDARY = '====== pyIPCMI BOUNDARY ======'
class pyIPCMI.ToolChain.Git.GitRevParse(toolchain: pyIPCMI.ToolChain.ToolMixIn)[source]

Inheritance

Inheritance diagram of GitRevParse

Members

Clear()[source]
class Command[source]
_name = 'rev-parse'
class SwitchInsideWorkingTree[source]
_name = 'is-inside-work-tree'
class SwitchShowTopLevel[source]
_name = 'show-toplevel'
class SwitchGitDir[source]
_name = 'git-dir'
RevParseParameters = [<class 'pyIPCMI.ToolChain.Git.GitRevParse.Command'>, <class 'pyIPCMI.ToolChain.Git.GitRevParse.SwitchInsideWorkingTree'>, <class 'pyIPCMI.ToolChain.Git.GitRevParse.SwitchShowTopLevel'>, <class 'pyIPCMI.ToolChain.Git.GitRevParse.SwitchGitDir'>]
Execute()[source]
class Executable
GetReader()
Log(entry, condition=True)

Write an entry to the local logger.

LogDebug(*args, condition=True, **kwargs)
LogDryRun(*args, condition=True, **kwargs)
LogError(*args, condition=True, **kwargs)
LogFatal(*args, condition=True, **kwargs)
LogInfo(*args, condition=True, **kwargs)
LogNormal(*args, condition=True, **kwargs)
LogQuiet(*args, condition=True, **kwargs)
LogVerbose(*args, condition=True, **kwargs)
LogWarning(*args, condition=True, **kwargs)
Logger

Return the local logger instance.

Parameters = [<class 'pyIPCMI.ToolChain.Git.GitSCM.Executable'>, <class 'pyIPCMI.ToolChain.Git.GitSCM.Switch_Version'>]
Path
ReadUntilBoundary(indent=0)
Send(line, end='\n')
SendBoundary()
StartProcess(parameterList)
class Switch_Version
_name = 'version'
Terminate()
_TryLog(*args, condition=True, **kwargs)
_pyIPCMI_BOUNDARY = '====== pyIPCMI BOUNDARY ======'
class pyIPCMI.ToolChain.Git.GitRevList(toolchain: pyIPCMI.ToolChain.ToolMixIn)[source]

Inheritance

Inheritance diagram of GitRevList

Members

Clear()[source]
class Command[source]
_name = 'rev-list'
class SwitchTags[source]
_name = 'tags'
class SwitchMaxCount[source]
_name = 'max-count'
RevListParameters = [<class 'pyIPCMI.ToolChain.Git.GitRevList.Command'>, <class 'pyIPCMI.ToolChain.Git.GitRevList.SwitchTags'>, <class 'pyIPCMI.ToolChain.Git.GitRevList.SwitchMaxCount'>]
Execute()[source]
class Executable
GetReader()
Log(entry, condition=True)

Write an entry to the local logger.

LogDebug(*args, condition=True, **kwargs)
LogDryRun(*args, condition=True, **kwargs)
LogError(*args, condition=True, **kwargs)
LogFatal(*args, condition=True, **kwargs)
LogInfo(*args, condition=True, **kwargs)
LogNormal(*args, condition=True, **kwargs)
LogQuiet(*args, condition=True, **kwargs)
LogVerbose(*args, condition=True, **kwargs)
LogWarning(*args, condition=True, **kwargs)
Logger

Return the local logger instance.

Parameters = [<class 'pyIPCMI.ToolChain.Git.GitSCM.Executable'>, <class 'pyIPCMI.ToolChain.Git.GitSCM.Switch_Version'>]
Path
ReadUntilBoundary(indent=0)
Send(line, end='\n')
SendBoundary()
StartProcess(parameterList)
class Switch_Version
_name = 'version'
Terminate()
_TryLog(*args, condition=True, **kwargs)
_pyIPCMI_BOUNDARY = '====== pyIPCMI BOUNDARY ======'
class pyIPCMI.ToolChain.Git.GitDescribe(toolchain: pyIPCMI.ToolChain.ToolMixIn)[source]

Inheritance

Inheritance diagram of GitDescribe

Members

Clear()[source]
class Command[source]
_name = 'describe'
class SwitchAbbrev[source]
_name = 'abbrev'
class SwitchTags[source]
_name = 'tags'
DescribeParameters = [<class 'pyIPCMI.ToolChain.Git.GitDescribe.Command'>, <class 'pyIPCMI.ToolChain.Git.GitDescribe.SwitchAbbrev'>, <class 'pyIPCMI.ToolChain.Git.GitDescribe.SwitchTags'>]
Execute()[source]
class Executable
GetReader()
Log(entry, condition=True)

Write an entry to the local logger.

LogDebug(*args, condition=True, **kwargs)
LogDryRun(*args, condition=True, **kwargs)
LogError(*args, condition=True, **kwargs)
LogFatal(*args, condition=True, **kwargs)
LogInfo(*args, condition=True, **kwargs)
LogNormal(*args, condition=True, **kwargs)
LogQuiet(*args, condition=True, **kwargs)
LogVerbose(*args, condition=True, **kwargs)
LogWarning(*args, condition=True, **kwargs)
Logger

Return the local logger instance.

Parameters = [<class 'pyIPCMI.ToolChain.Git.GitSCM.Executable'>, <class 'pyIPCMI.ToolChain.Git.GitSCM.Switch_Version'>]
Path
ReadUntilBoundary(indent=0)
Send(line, end='\n')
SendBoundary()
StartProcess(parameterList)
class Switch_Version
_name = 'version'
Terminate()
_TryLog(*args, condition=True, **kwargs)
_pyIPCMI_BOUNDARY = '====== pyIPCMI BOUNDARY ======'
class pyIPCMI.ToolChain.Git.GitConfig(toolchain: pyIPCMI.ToolChain.ToolMixIn)[source]

Inheritance

Inheritance diagram of GitConfig

Members

Clear()[source]
class Command[source]
_name = 'config'
class SwitchUnset[source]
_name = 'unset'
class SwitchRemoveSection[source]
_name = 'remove-section'
class ValueFilterClean[source]
_name = 'clean'
_pattern = 'filter.{1}.{0}'
class ValueFilterSmudge[source]
_name = 'smudge'
_pattern = 'filter.{1}.{0}'
class ValueFilterParameters[source]
ConfigParameters = [<class 'pyIPCMI.ToolChain.Git.GitConfig.Command'>, <class 'pyIPCMI.ToolChain.Git.GitConfig.SwitchUnset'>, <class 'pyIPCMI.ToolChain.Git.GitConfig.SwitchRemoveSection'>, <class 'pyIPCMI.ToolChain.Git.GitConfig.ValueFilterClean'>, <class 'pyIPCMI.ToolChain.Git.GitConfig.ValueFilterSmudge'>, <class 'pyIPCMI.ToolChain.Git.GitConfig.ValueFilterParameters'>]
Execute()[source]
class Executable
GetReader()
Log(entry, condition=True)

Write an entry to the local logger.

LogDebug(*args, condition=True, **kwargs)
LogDryRun(*args, condition=True, **kwargs)
LogError(*args, condition=True, **kwargs)
LogFatal(*args, condition=True, **kwargs)
LogInfo(*args, condition=True, **kwargs)
LogNormal(*args, condition=True, **kwargs)
LogQuiet(*args, condition=True, **kwargs)
LogVerbose(*args, condition=True, **kwargs)
LogWarning(*args, condition=True, **kwargs)
Logger

Return the local logger instance.

Parameters = [<class 'pyIPCMI.ToolChain.Git.GitSCM.Executable'>, <class 'pyIPCMI.ToolChain.Git.GitSCM.Switch_Version'>]
Path
ReadUntilBoundary(indent=0)
Send(line, end='\n')
SendBoundary()
StartProcess(parameterList)
class Switch_Version
_name = 'version'
Terminate()
_TryLog(*args, condition=True, **kwargs)
_pyIPCMI_BOUNDARY = '====== pyIPCMI BOUNDARY ======'