wtools 4.0.0-pre7
ESO waf tools
Loading...
Searching...
No Matches
wtools.utils Namespace Reference

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)
 

Detailed Description

Utility methods for wtools.

Function Documentation

◆ add_taskgen_method()

wtools.utils.add_taskgen_method ( tg,
method,
before = "",
after = "" )
Add `method` to taskgen with ordering constrains using
`before` and `after`.

◆ check_project_naming_convention()

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"_".

◆ dict_update_transform()

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.

◆ get_attr_or_env()

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

◆ getattr_as_list()

List wtools.utils.getattr_as_list ( object obj,
str attr,
* ,
default = [] )
Get attribute `attr` from obj as list`.

◆ getattr_as_list_extend()

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.

◆ make_version_tuple()

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)

◆ merge_unique_items_to_dict()

wtools.utils.merge_unique_items_to_dict ( base_dict,
merged_dict )
Merge unique items from merged_dict to base_dict.

◆ merge_unique_items_to_list()

wtools.utils.merge_unique_items_to_list ( base_list,
merged_list )
Merge unique items from merged_list to base_list.

◆ result_or_value()

wtools.utils.result_or_value ( value,
* args,
** kwargs )
Return result of  `value(*args, **kwargs)` if value is callable, else `value`

◆ sanitize_bash_variable_name()

wtools.utils.sanitize_bash_variable_name ( variable_name)
Adjust variable name to bash standard.

If variable name consists '-' chars, they are converted to '_' char.

◆ version2int()

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