def METHOD_NAME(
    self, category: str, field: str, fallback_module_name: Optional[str] = None
) -> str:
    """
    Get module name from the settings.
    :param category: Field category in configuration file.
    :param field: Field in configuration file
    :param fallback_module_name: Default value used if category/field is not found in configuration file
    :raises FileNotFoundError: If unable to find configuration file.
    :raises ValueError: If the category does not exist or the field is empty.
    :raises CX: If the field could not be read and no fallback_module_name was given.
    :returns: The name of the module.
    """
    # FIXME: We can't enabled this check since it is to strict atm.
    # if category not in MODULES_BY_CATEGORY:
    # raise ValueError("category must be one of: %s" % MODULES_BY_CATEGORY.keys())
    if field.isspace():
        raise ValueError('field cannot be empty. Did you mean "module" maybe?')
    try:
        value = self.api.settings().modules.get(category, {}).get("module")
        if value is None:
            raise ModuleNotFoundError("Requested module could not be retrieved")
    except Exception as exception:
        if fallback_module_name is None:
            raise CX(
                f"Cannot find config file setting for: {category}.{field}"
            ) from exception
        value = fallback_module_name
        self.logger.warning(
            'Requested module "%s.%s" not found. Using fallback module: "%s"',
            category,
            field,
            value,
        )
    return value