nxt_path module

Common nxt pathing operations. Both for file and node paths.

full_file_expand(path, start=None)[source]

A combination of commonly used os.path functions called to completely expand given path. If start is given, os.cwd is temporarily changed in order to influence the start of relative path expansion. Return value will always use forward slashes as seperator.

Parameters:
  • path (str) – path to expand
  • start (str, optional) – base directory to expand from, defaults to os cwd
Returns:

given path expanded. Relative paths, environment variables, and user character “~” are expanded.

Return type:

[type]

unify_env_vars(path, target_platform='win32')[source]

Replace foreign platform environment variables with platform native ones Environment variable patterns must be defined in PLATFORM_VAR_PATTERN_MAP and PLATFORM_VAR_PATTERN_MAP to be able to find and replace.

In short, if you’re on windows, convert linux style environment vars to windows style. If you’re on linux, the reverse.

Supports mixed type environment variables.

Parameters:
  • path – string to replace variables in
  • target_platform (str, optional) – platform to unify as, defaults to sys.platform
Returns:

given path as unified as possible

Return type:

str

expand_relative_node_path(rel_path, start_node_path)[source]

Expands given node rel_path using start_node_path as root of relative path. This function does not validate the path, it is only a string machine.

Parameters:
  • rel_path (str) – relative path to expand.
  • start_node_path (str) – node to treat as root of relative path.
Returns:

expanded node path

Return type:

str

path_attr_partition(str_path)[source]

Returns a tuple of the node path and attribute name from the given path.

>>> nxt_path.node_path_partition('somewhere/else.attr')
('somewhere/else', 'attr')
>>> nxt_path.node_path_partition('...attr')
('..', 'attr')
>>> nxt_path.node_path_partition('..attr')
('.', 'attr')
Parameters:str_path (str) – node or attribute path
Returns:tuple of node path and attr name (‘node/path’, ‘attr_name’)
Return type:tuple
str_path_to_node_namespace(str_path)[source]

Given an absolute node or attr str_path, split it into the list-“namespace” format used by stage. NOTE that if given an attribute path, that attribute name will not be present in the returned path.

node_namespace_to_str_path(namespace)[source]

Given a node namespace, return it rejoined into a full string path.

node_path_from_attr_path(attr_path)[source]

Given an attribute path, return the node path contained within.

Parameters:attr_path (str) – path to attribute
Returns:node path
Return type:str
attr_name_from_attr_path(attr_path)[source]

Given an attribute path, return the attribute name.

Parameters:attr_path (str) – path to attribute
Returns:attr name contained within input
Return type:str
node_name_from_node_path(node_path)[source]

Given a node path, return the node name of specified node.

Parameters:node_path (node path to get node name from) – str
Returns:node name
Return type:str
get_parent_path(node_path)[source]

Returns the parent path implied by given node_path

Parameters:node_path (node path to get parent path from) – str
Returns:parent path
Return type:str
get_root_path(node_path)[source]

Returns the implied “root” node of the given path. A root is a node with no parent.

Parameters:node_path (node path to get root path from) – str
Returns:root path
Return type:str
is_attr_path(path)[source]

Whether the given path appears to be a path to an attribute.

Parameters:node_path (path to check) – str
Returns:True/False whether path appears to be an attribute path.
Return type:bool
make_attr_path(node_path, attr_name)[source]

Given a node path and attr name, join them into an attribute path.

Parameters:
  • node_path (str) – node path to join
  • attr_name (str) – attr name to join
Returns:

constructed attribute path

Return type:

str

join_node_paths(node_path1, node_path2)[source]

Given 2 node paths, treat node_path1 as ancestor, and combine their paths together

Parameters:
  • node_path1 (str) – intended ancestor of given paths
  • node_path2 (str) – intended descendant of given paths
Returns:

path to descendant of node_path1

Return type:

str

replace_ancestor(path, old_ancestor, new_ancestor)[source]

Given a node path, replace given old ancestor path with new ancestor path.

Parameters:
  • path (str) – Original path which will have its ancestor replaced
  • old_ancestor (str) – Path to ancestor of path that will be replaced
  • new_ancestor (str) – New ancestor to replace old_ancestor
Returns:

New path with old_ancestor replaced with new_ancestor

Return type:

str

is_ancestor(path_to_check, ancestor_path)[source]

Returns if given ancestor_path is an ancestor path to path_to_check

Parameters:
  • path_to_check (str) – potential descendant path
  • ancestor_path (str) – potential ancestor path
Returns:

Whether ancestor_path is ancestor of path_to_check

Return type:

bool

all_ancestor_paths(path)[source]

Returns the ancestor paths implied by given path

Parameters:path (str) – node path
Returns:list of implied ancestor paths
Return type:list
get_path_depth(path)[source]

Get depth of given path. Depth is number of nodes deep from world. World is depth 0.

Parameters:path (str) – path to check depth of.
Returns:depth of given path.
Return type:int
trim_to_depth(path, trim_depth)[source]

Trim a path to given depth. Removes nodes from the end of the path to trim to an ancestor path of given path. If trim depth is 0, world path is returned. If trim depth is greater than or equal to the depth of given path, path is returned unchanged.

Parameters:
  • path (str) – path to trim
  • trim_depth (int) – depth to trim to
Returns:

path, trimmed to trim depth if possible

Return type:

str