xtd.core.config.checkers module

xtd.core.config.checkers.check_file(p_section, p_name, p_value, p_read=False, p_write=False, p_execute=False)[source]

check that given config parameter is a valid file with given rwx attributes

If p_value does not exists and only write attribute is requested, the function checks that the file can be created in its parent directory

Parameters:
  • p_section (str) – parameter section name
  • p_name (str) – parameter name
  • p_value (str) – parameter value
  • p_read (str) – target file should be readable, default False
  • p_write (str) – target file should be writable, default False
  • p_execute (str) – target file should be executable, default False
Returns:

file absolute path

Return type:

bool

Raises:
  • ConfigValueFileError – p_value is a directory
  • ConfigValueFileModeError – p_value dosen’t meet requested rwx attributes
xtd.core.config.checkers.check_dir(p_section, p_name, p_value, p_read=False, p_write=False, p_execute=False)[source]

check that given value is a valid directory for given rwx attributes

Parameters:
  • p_section (str) – parameter section name
  • p_name (str) – parameter name
  • p_value (str) – target directory path
  • p_read (str) – target file should be readable, default False
  • p_write (str) – target file should be writable, default False
  • p_execute (str) – target file should be executable, default False
Returns:

directory absolute path

Return type:

bool

Raises:
  • ConfigValueDirError – p_value is not a directory
  • ConfigValueDirModeError – directory doesn’t meet requested rwx attributes
xtd.core.config.checkers.check_int(p_section, p_name, p_value, p_min=None, p_max=None)[source]

check that given value is a valid integer

If not None, the function will insure that value fits the requested minimum and maximum parameters

Parameters:
  • p_section (str) – parameter section name
  • p_name (str) – parameter name
  • p_value (str) – target value
  • p_min (int) – minimum accepted value, default : None
  • p_max (int) – maximum accepted value, default : None
Returns:

integer converted value

Return type:

int

Raises:
  • ConfigValueTypeError – value is not an integer, nor a int-convertible string
  • ConfigValueLimitsError – value doesn’t match requested min and max constraints
xtd.core.config.checkers.check_float(p_section, p_name, p_value, p_min=None, p_max=None)[source]

check that given value is a valid float

Same as check_int()

Parameters:
  • p_section (str) – parameter section name
  • p_name (str) – parameter name
  • p_value (str) – target value
  • p_min (float) – minimum accepted value, default : None
  • p_max (float) – maximum accepted value, default : None
Raises:
  • ConfigValueTypeError – value is not an integer, nor a int-convertible string
  • ConfigValueLimitsError – value doesn’t match requested min and max constraints
Returns:

float converted value

Return type:

float

xtd.core.config.checkers.check_bool(p_section, p_name, p_value)[source]

check that given value is a valid boolean

Valid boolean are :
  • native bool object
  • str object in the following list : ["on", "yes", "true", "off", "no", "false"] (case insensitive)
Parameters:
  • p_section (str) – parameter section name
  • p_name (str) – parameter name
  • p_value (str) – target value
Raises:

ConfigValueTypeError – invalid input boolean

Returns:

converted value

Return type:

bool

xtd.core.config.checkers.check_enum(p_section, p_name, p_value, p_values)[source]

check that given value matches a set of possible values

Parameters:
  • p_section (str) – parameter section name
  • p_name (str) – parameter name
  • p_value (str) – input value
  • p_values (list) – set of possible authorized values
Raises:

ConfigValueEnumError – value not found in possible values

Returns:

input value

Return type:

bool

xtd.core.config.checkers.check_mail(p_section, p_name, p_value)[source]

check that given value is a syntactical valid mail address

Parameters:
  • p_section (str) – parameter section name
  • p_name (str) – parameter name
  • p_value (str) – input value
Raises:

ConfigValueValueError – value not an email

Returns:

input value

Return type:

bool

xtd.core.config.checkers.check_array(p_section, p_name, p_value, p_check=None, p_delim=', ')[source]

check that given value is convertible to array

A str value is converted to array by splitting each comma separated elements

Additionally, the function checks that each elements meets p_check function requirement.

Example:

l_value = "1,2,3,4,5"
l_value = check_array(l_value, check_float)
print(l_value)
# [1.0, 2.0, 3.0, 4.0]

l_value = "on,on;off,no;true,false"
l_value = check_array(l_value, is_array(p_check=check_bool), p_delim=";")
print(l_value)
# [[True, True], [False, False], [True, False]]
Parameters:
  • p_section (str) – parameter section name
  • p_name (str) – parameter name
  • p_value (str) – input value
  • p_check (function) – sub-checker to call on each elements, default None
  • p_delim (str) – used as delimiter to split given str value
Raises:

ConfigValueValueError – value not an email

Returns:

array-converted value

Return type:

list

xtd.core.config.checkers.check_host(p_section, p_name, p_value)[source]

check that value is locally resolvable hostname

Parameters:
  • p_section (str) – parameter section name
  • p_name (str) – parameter name
  • p_value (str) – input value
Raises:

ConfigValueValueError – value not an hostname

Returns:

input value

Return type:

str

xtd.core.config.checkers.check_json(p_section, p_name, p_value)[source]

check that value is a valid json

if value is str, performs a :py:func:json.loads

Parameters:
  • p_section (str) – parameter section name
  • p_name (str) – parameter name
  • p_value (str) – input value
Raises:

ConfigValueValueError – value not a json

Returns:

dict-converted value

Return type:

dict

xtd.core.config.checkers.check_socket(p_section, p_name, p_value, p_schemes=None, p_checkUnix=False)[source]

check that value is a valid socket url

Parameters:
  • p_section (str) – parameter section name
  • p_name (str) – parameter name
  • p_value (str) – input value
  • p_scheme (list) – valid url schemes
  • p_checkUnix (bool) – authorize “unix+//<file>/path” based url
Raises:

ConfigValueValueError – value a valid socket url

Returns:

input value

Return type:

str

xtd.core.config.checkers.is_file(*p_args, **p_kwds)[source]

Currified version of check_file()

xtd.core.config.checkers.is_dir(*p_args, **p_kwds)[source]

Currified version of check_dir()

xtd.core.config.checkers.is_int(*p_args, **p_kwds)[source]

Currified version of check_int()

xtd.core.config.checkers.is_float(*p_args, **p_kwds)[source]

Currified version of check_float()

xtd.core.config.checkers.is_bool(*p_args, **p_kwds)[source]

Currified version of check_bool()

xtd.core.config.checkers.is_enum(*p_args, **p_kwds)[source]

Currified version of check_enum()

xtd.core.config.checkers.is_mail(*p_args, **p_kwds)[source]

Currified version of check_mail()

xtd.core.config.checkers.is_array(*p_args, **p_kwds)[source]

Currified version of check_array()

xtd.core.config.checkers.is_host(*p_args, **p_kwds)[source]

Currified version of check_host()

xtd.core.config.checkers.is_json(*p_args, **p_kwds)[source]

Currified version of check_json()

xtd.core.config.checkers.is_socket(*p_args, **p_kwds)[source]

Currified version of check_socket()