Path Expansion

Conversion between pathnames with and without expanded %ENVIRONMENT_VARIABLES%.

mhi.pscad.common.path.expand_path(path: str, abspath: bool = False, folder: str = None) → str

Expand path, by replacing a ~ or ~user prefix, as well as expanding any $var, ${var} and %var% patterns in the path.

Parameters
  • path (str) – The path to be expanded.

  • abspath (bool) – If True, convert resulting path to an absolute path.

  • folder (str) – If provided, the path to the filename is resolved relative to this folder.

Returns

The expanded path, optionally forced to an absolute path.

Return type

str

mhi.pscad.common.path.expand_paths(paths: Sequence[str], abspath: bool = False, folder: str = None) → List[str]

Expand paths, by replacing a ~ or ~user prefix, as well as expanding any $var, ${var} and %var% patterns in the paths.

Parameters
  • path (List[str]) – A list of paths to be expanded.

  • abspath (bool) – If True, convert resulting paths to absolute paths.

  • folder (str) – If provided, the paths to the filenames are resolved relative to this folder.

Returns

A list of expanded paths, optionally forced to absolute paths.

Return type

List[str]

mhi.pscad.common.path.contract_path(path)

Look for and replace any substring of the path that matches a value found in an environment variable with that environment variable: ${key} or %key%. Additionally, replace a path starting with the user’s home path with ~.

Parameters

path (str) – The path to be shortened by replacing parts with environment variables.

Returns

The contracted path.

Return type

str

mhi.pscad.common.path.contract_paths(paths)

Look for and replace any substring of the paths that matches a value found in an environment variable with that environment variable: ${key} or %key%. Additionally, replace paths starting with the user’s home path with ~.

Parameters

paths (List[str]) – The paths to be shortened by replacing parts with environment variables.

Returns

A list of contracted paths.

Return type

List[str]