confattr.types module
- class confattr.types.Regex(pattern: str)
Bases:
object
- help = '\n\tA regular expression in python syntax.\n\tYou can specify flags by starting the regular expression with `(?aiLmsux)`.\n\thttps://docs.python.org/3/library/re.html#regular-expression-syntax\n\t'
- type_name = 'regular expression'
- class confattr.types.SubprocessCommand(arg: SubprocessCommand | Sequence[str] | str, *, env: Mapping[str, str] | None = None)
Bases:
object
- help = '\tA command to be executed as a subprocess.\n\tThe command is executed without a shell so redirection or wildcard expansion is not possible.\n\tSetting environment variables and piping like in a POSIX shell, however, are implemented in python and should work platform independently.\n\tIf you need a shell write the command to a file, insert an appropriate shebang line, make the file executable and set this value to the file.\n\t'
- parse_str(arg: str) None
Parses a string as returned by
__str__()
and initializes this objcet accordingly- Parameters:
arg¶ – The string to be parsed
- Raises:
ValueError – if arg is invalid
- Example:
If the input is
arg = 'ENVVAR1=val ENVVAR2= cmd --arg1 --arg2'
this function sets .. code-block:self.env = {'ENVVAR1' : 'val', 'ENVVAR2' : ''} self.cmd = ['cmd', '--arg1', '--arg2']
- python_callbacks: MutableMapping[str, Callable[[SubprocessCommand, Callable[[SubprocessCommand], ContextManager[SubprocessCommand]] | None], None]] = {}
- classmethod register_python_callback(name: str, func: Callable[[SubprocessCommand, Callable[[SubprocessCommand], ContextManager[SubprocessCommand]] | None], None]) None
- replace(wildcard: str, replacement: str) SubprocessCommand
- run(*, context: TYPE_CONTEXT | None) CompletedProcess[bytes] | None
Runs this command and returns when the command is finished.
- Parameters:
context¶ – returns a context manager which can be used to stop and start an urwid screen.
It takes the command to be executed so that it can log the command and it returns the command to be executed so that it can modify the command, e.g. processing and intercepting some environment variables.
- Returns:
The completed process
- Raises:
OSError – e.g. if the program was not found
CalledProcessError – if the called program failed
- type_name = 'command'
- class confattr.types.SubprocessCommandWithAlternatives(commands: Sequence[SubprocessCommand | Sequence[str] | str] | str)
Bases:
object
- SEP = '||'
- get_preferred_command() SubprocessCommand
- help = '\n\tOne or more commands separated by ||.\n\tThe first command where the program is installed is executed. The other commands are ignored.\n\n\tThe command is executed without a shell so redirection or wildcard expansion is not possible.\n\tSetting environment variables and piping like in a POSIX shell, however, are implemented in python and should work platform independently.\n\tIf you need a shell write the command to a file, insert an appropriate shebang line, make the file executable and set this value to the file.\n\t'
- replace(wildcard: str, replacement: str) SubprocessCommand
- type_name = 'command with alternatives'