![]() |
wtools 4.0.0-pre7
ESO waf tools
|
Functions | |
| get_attr_or_env (tg, str attr_name, default=None, *, env_name=None) | |
| tuple | make_version_tuple (str version) |
| int | version2int (str version) |
| dict_update_transform (dict dst, dict src, *k, **kwargs) | |
| get_wscript_frame () | |
| List | getattr_as_list (object obj, str attr, *, default=[]) |
| List[str] | getattr_as_list_extend (object obj, str attr, Union[List[str], str] values, *, default=[]) |
| add_taskgen_method (tg, method, before="", after="") | |
| merge_unique_items_to_list (base_list, merged_list) | |
| merge_unique_items_to_dict (base_dict, merged_dict) | |
| sanitize_bash_variable_name (variable_name) | |
| check_project_naming_convention (name) | |
| result_or_value (value, *args, **kwargs) | |
Utility methods for wtools.
| wtools.utils.add_taskgen_method | ( | tg, | |
| method, | |||
| before = "", | |||
| after = "" ) |
Add `method` to taskgen with ordering constrains using `before` and `after`.
| wtools.utils.check_project_naming_convention | ( | name | ) |
Checks if project naming convention is met for given name. If not ConfigurationError is raised. The valid project name should start with a letter and contain letters, numbers, hyphen "-" and underscore"_".
| wtools.utils.dict_update_transform | ( | dict | dst, |
| dict | src, | ||
| * | k, | ||
| ** | kwargs ) |
Update or transform dst using src. If a dictionary key is callable then it will be invoked with the corresponding value (or None) from dst as well as forward any additional arguments *k, **kwargs.
| wtools.utils.get_attr_or_env | ( | tg, | |
| str | attr_name, | ||
| default = None, | |||
| * | , | ||
| env_name = None ) |
Get first of either 1. Taskgen attribute 2. Environment value (using upper case of `attr_name` if not provided) 3. default value
| List wtools.utils.getattr_as_list | ( | object | obj, |
| str | attr, | ||
| * | , | ||
| default = [] ) |
Get attribute `attr` from obj as list`.
| List[str] wtools.utils.getattr_as_list_extend | ( | object | obj, |
| str | attr, | ||
| Union[List[str], str] | values, | ||
| * | , | ||
| default = [] ) |
Extend attribute `attr` from obj as a list with additinal values.
| tuple wtools.utils.make_version_tuple | ( | str | version | ) |
Make an integer tuple from version string.
Assumes dotted version form (also compatible with semver):
- x
- x.y
- x.y.z
- x[.y[.z]]-anything
- x[.y[.z]]+anything
>>> make_version_tuple("1")
(1,)
>>> make_version_tuple("1.2")
(1, 2)
>>> make_version_tuple("1.2.3")
(1, 2, 3)
>>> make_version_tuple("1.2.3-pre1")
(1, 2, 3)
>>> make_version_tuple("1.2.3-pre1+foo")
(1, 2, 3)
>>> make_version_tuple("1.2.3+pre1-foo")
(1, 2, 3)
>>> make_version_tuple("1.2.3+foo")
(1, 2, 3)
>>> make_version_tuple("23.11")
(23, 11)
| wtools.utils.merge_unique_items_to_dict | ( | base_dict, | |
| merged_dict ) |
Merge unique items from merged_dict to base_dict.
| wtools.utils.merge_unique_items_to_list | ( | base_list, | |
| merged_list ) |
Merge unique items from merged_list to base_list.
| wtools.utils.result_or_value | ( | value, | |
| * | args, | ||
| ** | kwargs ) |
Return result of `value(*args, **kwargs)` if value is callable, else `value`
| wtools.utils.sanitize_bash_variable_name | ( | variable_name | ) |
Adjust variable name to bash standard. If variable name consists '-' chars, they are converted to '_' char.
| int wtools.utils.version2int | ( | str | version | ) |
Return integer representation of `num` of dotted `version` string using same scheme as
BOOST_VERSION.
Version string is permissive and can be any of the following forms
- `x.y.z`, `x.y.z-anything` or `x.y.z+anything`
- `x.y`, `x.y-anything` or `x.y+anything`
- `x`, `x-anything` or `x+anything`
such that resulting number `num` (using integer arithmetics):
x = num / 100000
y = num / 100 % 1000
z = num % 100
>>> version2int("0.0.3")
3
>>> version2int("0.5.0")
500
>>> version2int("1.0.0")
100000
>>> version2int("1.2.3")
100203
>>> version2int("23.09")
2300900