Skip to content

Config

Classes

The config module contains a few important classes that are used both internally and exported for stable use outside the library.

Description and reference for these is shown in classes.

Functions

Use libbot.utils.config to import the below functions.

Note

All functions are available in sync and async variants under the same name. Use await function_name() for async and function_name() for sync invocation.

config_delete(key, *path, missing_ok=False, config_file=DEFAULT_CONFIG_LOCATION) async

Delete config's key by its path.

Parameters:

Name Type Description Default
key str

Key to delete.

required
*path str

Path to the key of the target (pass *[] or don't pass anything at all to delete on the top/root level)

()
missing_ok bool

Do not raise an exception if the key is missing. Defaults to False.

False
config_file str | Path

Path-like object or path as a string of a location of the config file. Defaults to "config.json".

DEFAULT_CONFIG_LOCATION

Raises:

Type Description
KeyError

Key is not found under path provided and missing_ok is False.

config_get(key, *path, config_file=DEFAULT_CONFIG_LOCATION) async

Get a value of the config key by its path provided. For example, foo.bar.key has a path of "foo", "bar" and the key "key".

Parameters:

Name Type Description Default
key str

Key that contains the value

required
*path str

Path to the key that contains the value (pass *[] or don't pass anything at all to get on the top/root level)

()
config_file str | Path

Path-like object or path as a string of a location of the config file. Defaults to "config.json"

DEFAULT_CONFIG_LOCATION

Returns:

Name Type Description
Any Any

Key's value

Example

Get the "salary" of "Pete" from this JSON structure: {"users": {"Pete": {"salary": 10.0}}}

This can be easily done with the following code:

salary: float = libbot.sync.config_get("salary", "users", "Pete")

config_set(key, value, *path, config_file=DEFAULT_CONFIG_LOCATION) async

Set config's key by its path to the value.

Parameters:

Name Type Description Default
key str

Key that leads to the value.

required
value Any

Any JSON-serializable data.

required
*path str

Path to the key of the target (pass *[] or don't pass anything at all to set on the top/root level).

()
config_file str | Path

Path-like object or path as a string of a location of the config file. Defaults to "config.json".

DEFAULT_CONFIG_LOCATION

Raises:

Type Description
KeyError

Key was not found under the provided path.