API

Functions to interact with config files

econf.read_file(file_name: str | bytes, delim: str | bytes, comment: str | bytes) EconfFile

Read a config file and write the key-value pairs into a keyfile object

Parameters:
  • file_name – absolute path of file to be parsed

  • delim – delimiter of a key/value e.g. ‘=’

  • comment – string that defines the start of a comment e.g. ‘#’

Returns:

Key-Value storage object

econf.read_file_with_callback(file_name: str | bytes, delim: str | bytes, comment: str | bytes, callback: Callable[[any], bool], callback_data: any) EconfFile

Read a config file and write the key-value pairs into a keyfile object

A user defined function will be called in order e.g. to check the correct file permissions. If the function returns False the parsing will be aborted and an Exception will be raised

Parameters:
  • file_name – absolute path of file to be parsed

  • delim – delimiter of a key/value e.g. ‘=’

  • comment – string that defines the start of a comment e.g. ‘#’

  • callback – User defined function which will be called and returns a boolean

  • callback_data – argument to be give to the callback function

Returns:

Key-Value storage object

econf.new_key_file(delim: str | bytes, comment: str | bytes) EconfFile

Create a new empty keyfile

Parameters:
  • delim – delimiter of a key/value e.g. ‘=’

  • comment – string that defines the start of a comment e.g. ‘#’

Returns:

created EconfFile object

econf.new_ini_file() EconfFile

Create a new empty keyfile with delimiter ‘=’ and comment ‘#’

Returns:

created EconfFile object

econf.merge_files(usr_file: EconfFile, etc_file: EconfFile) EconfFile

Merge the content of 2 keyfile objects

Parameters:
  • usr_file – first EconfFile object

  • etc_file – second EconfFile object

Returns:

merged EconfFile object

econf.read_dirs(usr_conf_dir: str | bytes, etc_conf_dir: str | bytes, project_name: str | bytes, config_suffix: str | bytes, delim: str | bytes, comment: str | bytes) EconfFile

Read configuration from the first found config file and merge with snippets from conf.d/ directory

e.g. searches /usr/etc/ and /etc/ for an example.conf file and merges it with the snippets in either /usr/etc/example.conf.d/ or /etc/example.conf.d

Parameters:
  • usr_conf_dir – absolute path of the first directory to be searched

  • etc_conf_dir – absolute path of the second directory to be searched

  • project_name – basename of the configuration file

  • config_suffix – suffix of the configuration file

  • delim – delimiter of a key/value e.g. ‘=’

  • comment – string that defines the start of a comment e.g. ‘#’

Returns:

merged EconfFile object

econf.read_dirs_with_callback(usr_conf_dir: str | bytes, etc_conf_dir: str | bytes, project_name: str | bytes, config_suffix: str | bytes, delim: str | bytes, comment: str | bytes, callback: Callable[[any], bool], callback_data: any) EconfFile

Read configuration from the first found config file and merge with snippets from conf.d/ directory

For every file a user defined function will be called in order e.g. to check the correct file permissions. If the function returns False the parsing will be aborted and an Exception will be raised

e.g. searches /usr/etc/ and /etc/ for an example.conf file and merges it with the snippets in either /usr/etc/example.conf.d/ or /etc/example.conf.d

Parameters:
  • usr_conf_dir – absolute path of the first directory to be searched

  • etc_conf_dir – absolute path of the second directory to be searched

  • project_name – basename of the configuration file

  • config_suffix – suffix of the configuration file

  • delim – delimiter of a key/value e.g. ‘=’

  • comment – string that defines the start of a comment e.g. ‘#’

  • callback – User defined function which will be called for each file and returns a boolean

  • callback_data – argument to be give to the callback function

Returns:

merged EconfFile object

econf.read_dirs_history(usr_conf_dir: str | bytes, etc_conf_dir: str | bytes, project_name: str | bytes, config_suffix: str | bytes, delim: str | bytes, comment: str | bytes) list[EconfFile]

Read configuration from the first found config file and snippets from conf.d/ directory

e.g. searches /usr/etc/ and /etc/ for an example.conf file and the snippets in either /usr/etc/example.conf.d/ or /etc/example.conf.d

Parameters:
  • usr_conf_dir – absolute path of the first directory to be searched

  • etc_conf_dir – absolute path of the second directory to be searched

  • project_name – basename of the configuration file

  • config_suffix – suffix of the configuration file

  • delim – delimiter of a key/value e.g. ‘=’

  • comment – string that defines the start of a comment e.g. ‘#’

Returns:

list of EconfFile objects

econf.read_dirs_history_with_callback(usr_conf_dir: str | bytes, etc_conf_dir: str | bytes, project_name: str | bytes, config_suffix: str | bytes, delim: str | bytes, comment: str | bytes, callback: Callable[[any], bool], callback_data: any) EconfFile

Read configuration from the first found config file and snippets from conf.d/ directory

For every file a user defined function will be called in order e.g. to check the correct file permissions. If the function returns False the parsing will be aborted and an Exception will be raised

e.g. searches /usr/etc/ and /etc/ for an example.conf file and the snippets in either /usr/etc/example.conf.d/ or /etc/example.conf.d

Parameters:
  • usr_conf_dir – absolute path of the first directory to be searched

  • etc_conf_dir – absolute path of the second directory to be searched

  • project_name – basename of the configuration file

  • config_suffix – suffix of the configuration file

  • delim – delimiter of a key/value e.g. ‘=’

  • comment – string that defines the start of a comment e.g. ‘#’

  • callback – User defined function which will be called for each file and returns a boolean

  • callback_data – argument to be give to the callback function

Returns:

list of EconfFile objects

econf.comment_tag(ef: EconfFile) str

Get the comment tag of the specified EconfFile

Parameters:

ef – Key-Value storage object

Returns:

The comment tag of the EconfFile

econf.set_comment_tag(ef: EconfFile, comment: str | bytes) None

Set the comment tag of the specified EconfFile

Parameters:
  • ef – Key-Value storage object

  • comment – The desired comment tag character

Returns:

Nothing

econf.delimiter_tag(ef: EconfFile) str

Get the delimiter tag of the specified EconfFile

Parameters:

ef – Key-Value storage object

Returns:

the delimiter tag of the EconfFile

econf.set_delimiter_tag(ef: EconfFile, delimiter: str | bytes) None

Set the delimiter tag of the specified EconfFile

Parameters:
  • ef – Key-Value storage object

  • delimiter – The desired delimiter character

Returns:

Nothing

econf.write_file(ef: EconfFile, save_to_dir: str, file_name: str) None

Write content of a keyfile to specified location

Parameters:
  • ef – Key-Value storage object

  • save_to_dir – directory into which the file has to be written

  • file_name – filename with suffix of the to be written file

Returns:

Nothing

econf.get_path(ef: EconfFile) str

Get the path of the source of the given key file

Parameters:

ef – Key-Value storage object

Returns:

path of the config file as string

Functions for getting values

econf.get_groups(ef: EconfFile) list[str]

List all the groups of given keyfile

Parameters:

ef – Key-Value storage object

Returns:

list of groups in the keyfile

econf.get_keys(ef: EconfFile, group: str) list[str]

List all the keys of a given group or all keys in a keyfile

Parameters:
  • ef – Key-Value storage object

  • group – group of the keys to be returned or None for keys without a group

Returns:

list of keys in the given group

econf.get_int_value(ef: EconfFile, group: str, key: str) int

Return an integer value for given group/key

Parameters:
  • ef – Key-Value storage object

  • group – desired group

  • key – key of the value that is requested

Returns:

value of the key

econf.get_uint_value(ef: EconfFile, group: str, key: str) int

Return an unsigned integer value for given group/key

Parameters:
  • ef – Key-Value storage object

  • group – desired group

  • key – key of the value that is requested

Returns:

value of the key

econf.get_float_value(ef: EconfFile, group: str, key: str) float

Return a float value for given group/key

Parameters:
  • ef – Key-Value storage object

  • group – desired group

  • key – key of the value that is requested

Returns:

value of the key

econf.get_string_value(ef: EconfFile, group: str, key: str) str

Return a string value for given group/key

Parameters:
  • ef – Key-Value storage object

  • group – desired group

  • key – key of the value that is requested

Returns:

value of the key

econf.get_bool_value(ef: EconfFile, group: str, key: str) bool

Return a boolean value for given group/key

Parameters:
  • ef – Key-Value storage object

  • group – desired group

  • key – key of the value that is requested

Returns:

value of the key

Functions for getting values with defaults

econf.get_int_value_def(ef: EconfFile, group: str, key: str, default: int) int

Return an integer value for given group/key or return a default value if key is not found

Parameters:
  • ef – Key-Value storage object

  • group – desired group

  • key – key of the value that is requested

  • default – value to be returned if no key is found

Returns:

value of the key

econf.get_uint_value_def(ef: EconfFile, group: str, key: str, default: int) int

Return an unsigned integer value for given group/key or return a default value if key is not found

Parameters:
  • ef – Key-Value storage object

  • group – desired group

  • key – key of the value that is requested

  • default – value to be returned if no key is found

Returns:

value of the key

econf.get_float_value_def(ef: EconfFile, group: str, key: str, default: float) float

Return a float value for given group/key or return a default value if key is not found

Parameters:
  • ef – Key-Value storage object

  • group – desired group

  • key – key of the value that is requested

  • default – value to be returned if no key is found

Returns:

value of the key

econf.get_string_value_def(ef: EconfFile, group: str, key: str, default: str) str

Return a string value for given group/key or return a default value if key is not found

Parameters:
  • ef – Key-Value storage object

  • group – desired group

  • key – key of the value that is requested

  • default – value to be returned if no key is found

Returns:

value of the key

econf.get_bool_value_def(ef: EconfFile, group: str, key: str, default: bool) bool

Return a boolean value for given group/key or return a default value if key is not found

Parameters:
  • ef – Key-Value storage object

  • group – desired group

  • key – key of the value that is requested

  • default – value to be returned if no key is found

Returns:

value of the key

Functions for setting values

econf.set_value(ef: EconfFile, group: str | bytes, key: str | bytes, value: int | float | str | bool) None

Dynamically set a value in a keyfile and returns a status code

Parameters:
  • ef – EconfFile object to set value in

  • group – group of the key to be changed

  • key – key to be changed

  • value – desired value

Returns:

Nothing

econf.set_int_value(ef: EconfFile, group: str, key: str, value: int) None

Setting an integer value for given group/key

Parameters:
  • ef – Key-Value storage object

  • group – desired group

  • key – key of the value that is requested

  • value – value to be set for given key

Returns:

Nothing

econf.set_uint_value(ef: EconfFile, group: str, key: str, value: int) None

Setting an unsigned integer value for given group/key

Parameters:
  • ef – Key-Value storage object

  • group – desired group

  • key – key of the value that is requested

  • value – value to be set for given key

Returns:

Nothing

econf.set_float_value(ef: EconfFile, group: str, key: str, value: float) None

Setting a float value for given group/key

Parameters:
  • ef – Key-Value storage object

  • group – desired group

  • key – key of the value that is requested

  • value – value to be set for given key

Returns:

Nothing

econf.set_string_value(ef: EconfFile, group: str, key: str, value: str | bytes) None

Setting a string value for given group/key

Parameters:
  • ef – Key-Value storage object

  • group – desired group

  • key – key of the value that is requested

  • value – value to be set for given key

Returns:

Nothing

econf.set_bool_value(ef: EconfFile, group: str, key: str, value: bool) None

Setting a boolean value for given group/key

Parameters:
  • ef – Key-Value storage object

  • group – desired group

  • key – key of the value that is requested

  • value – value to be set for given key

Returns:

Nothing

Functions for memory management

econf.free_file(ef: EconfFile)

Free the memory of a given keyfile

This function is called automatically at the end of every objects lifetime and should not be used otherwise

Parameters:

ef – EconfFile to be freed

Returns:

None

Functions for handling error codes

econf.err_string(error: int) str

Convert an error code into error message

Parameters:

error – error code as integer

Returns:

error string

econf.err_location() Tuple[str, int]

Info about the line where an error happened

Returns:

path to the last handled file and number of last handled line