notice

This is unreleased documentation for Rasa Open Source Documentation Master/Unreleased version.
For the latest released documentation, see the latest version (2.8.x).

Version: Master/Unreleased

rasa.utils.common

TempDirectoryPath Objects

class TempDirectoryPath(str, ContextManager)

Represents a path to an temporary directory.

When used as a context manager, it erases the contents of the directory on exit.

read_global_config

def read_global_config(path: Text) -> Dict[Text, Any]

Read global Rasa configuration.

Arguments:

  • path - Path to the configuration

Returns:

The global configuration

set_log_level

def set_log_level(log_level: Optional[int] = None) -> None

Set log level of Rasa and Tensorflow either to the provided log level or to the log level specified in the environment variable 'LOG_LEVEL'. If none is set a default log level will be used.

update_tensorflow_log_level

def update_tensorflow_log_level() -> None

Sets Tensorflow log level based on env variable 'LOG_LEVEL_LIBRARIES'.

update_sanic_log_level

def update_sanic_log_level(log_file: Optional[Text] = None) -> None

Set the log level of sanic loggers to the log level specified in the environment variable 'LOG_LEVEL_LIBRARIES'.

update_asyncio_log_level

def update_asyncio_log_level() -> None

Set the log level of asyncio to the log level specified in the environment variable 'LOG_LEVEL_LIBRARIES'.

update_matplotlib_log_level

def update_matplotlib_log_level() -> None

Set the log level of matplotlib to the log level specified in the environment variable 'LOG_LEVEL_LIBRARIES'.

set_log_and_warnings_filters

def set_log_and_warnings_filters() -> None

Set log filters on the root logger, and duplicate filters for warnings.

Filters only propagate on handlers, not loggers.

sort_list_of_dicts_by_first_key

def sort_list_of_dicts_by_first_key(dicts: List[Dict]) -> List[Dict]

Sorts a list of dictionaries by their first key.

write_global_config_value

def write_global_config_value(name: Text, value: Any) -> bool

Read global Rasa configuration.

Arguments:

  • name - Name of the configuration key
  • value - Value the configuration key should be set to

Returns:

True if the operation was successful.

read_global_config_value

def read_global_config_value(name: Text, unavailable_ok: bool = True) -> Any

Read a value from the global Rasa configuration.

update_existing_keys

def update_existing_keys(original: Dict[Any, Any], updates: Dict[Any, Any]) -> Dict[Any, Any]

Iterate through all the updates and update a value in the original dictionary.

If the updates contain a key that is not present in the original dict, it will be ignored.

RepeatedLogFilter Objects

class RepeatedLogFilter(logging.Filter)

Filter repeated log records.

filter

def filter(record: logging.LogRecord) -> bool

Determines whether current log is different to last log.

run_in_loop

def run_in_loop(f: Coroutine[Any, Any, T], loop: Optional[asyncio.AbstractEventLoop] = None) -> T

Execute the awaitable in the passed loop.

If no loop is passed, the currently existing one is used or a new one is created if no loop has been started in the current context.

After the awaitable is finished, all remaining tasks on the loop will be awaited as well (background tasks).

WARNING: don't use this if there are never ending background tasks scheduled. in this case, this function will never return.

Arguments:

  • f - function to execute
  • loop - loop to use for the execution

Returns:

return value from the function

call_potential_coroutine

async def call_potential_coroutine(coroutine_or_return_value: Union[Any, Coroutine]) -> Any

Awaits coroutine or returns value directly if it's not a coroutine.

Arguments:

  • coroutine_or_return_value - Either the return value of a synchronous function call or a coroutine which needs to be await first.

Returns:

The return value of the function.

directory_size_in_mb

def directory_size_in_mb(path: Path, filenames_to_exclude: Optional[List[Text]] = None) -> float

Calculates the size of a directory.

Arguments:

  • path - The path to the directory.
  • filenames_to_exclude - Allows excluding certain files from the calculation.

Returns:

Directory size in MiB.

copy_directory

def copy_directory(source: Path, destination: Path) -> None

Copies the content of one directory into another.

Unlike shutil.copytree this doesn't raise if destination already exists.

TODO: Drop this in favor of shutil.copytree(..., dirs_exist_ok=True) when

dropping Python 3.7.

Arguments:

  • source - The directory whose contents should be copied to destination.
  • destination - The directory which should contain the content source in the end.

Raises:

  • ValueError - If destination is not empty.

find_unavailable_packages

def find_unavailable_packages(package_names: List[Text]) -> Set[Text]

Tries to import all package names and returns the packages where it failed.

Arguments:

  • package_names - The package names to import.

Returns:

Package names that could not be imported.

module_path_from_class

def module_path_from_class(clazz: Type) -> Text

Return the module path of an instance's class.