示例#1
0
def register_metadata(func, package=None):
    """Register skill package metadata

  Args:
    func (func): Function which will be called with a function to translate strings using the package translations at runtime
    package (str): Optional package name (usually __package__), if not given pytlas will try to determine it based on the call stack

  """

    package = package or get_caller_package_name()

    module_metas[package] = func

    logging.info('Registered "%s.%s" metadata' % (package, func.__name__))
示例#2
0
def register(intent, handler, package=None):
    """Register an intent handler.

  Args:
    intent (str): Name of the intent to handle
    handler (func): Handler to be called when the intent is triggered
    package (str): Optional package name (usually __package__), if not given pytlas will try to determine it based on the call stack

  """

    package = package or get_caller_package_name() or handler.__module__

    logging.info('Registered "%s.%s" which should handle "%s" intent' %
                 (package, handler.__name__, intent))

    handlers[intent] = handler
示例#3
0
def register(name, func, package=None):
    """Register a hook handler.

  Args:
    name (str): Hook name to listen for
    func (func): Function to call upon hook trigger
    package (str): Optional package name (usually __package__), if not given pytlas will try to determine it based on the call stack

  """

    package = package or get_caller_package_name()

    if name not in hooks:
        logging.warning('Not a valid hook name: "%s"' % name)
    else:
        hooks[name].append(func)
        logging.info('Registered "%s.%s" handler for hook "%s"' %
                     (package, func.__name__, name))
示例#4
0
def register(lang, func, package=None):
    """Register translations into the system.

  Args:
    lang (str): Language being loaded
    func (func): Function to call to load a dictionary of translations
    package (str): Optional package name (usually __package__), if not given pytlas will try to determine it based on the call stack

  """

    package = package or get_caller_package_name()

    if not should_load_resources(lang):
        return logging.debug('Skipped "%s" translations for language "%s"' %
                             (package, lang))

    if package not in module_translations:
        module_translations[package] = {}

    module_translations[package][lang] = func

    logging.info('Registered "%s.%s" translations for the lang "%s"' %
                 (package, func.__name__, lang))
示例#5
0
def register(lang, func, package=None):
    """Register training data written using the chatl DSL language into the system.

  Args:
    lang (str): Language for which the training has been made for
    func (func): Function to call to return training data written using the chatl DSL
    package (str): Optional package name (usually __package__), if not given pytlas will try to determine it based on the call stack

  """

    package = package or get_caller_package_name()

    if not should_load_resources(lang):
        return logging.debug('Skipped "%s" training data for language "%s"' %
                             (package, lang))

    if package not in module_trainings:
        module_trainings[package] = {}

    module_trainings[package][lang] = func

    logging.info('Registered "%s.%s" training data for the lang "%s"' %
                 (package, func.__name__, lang))
示例#6
0
 def new(func):
     register(lang, func, package or get_caller_package_name()
              or func.__module__)
     return func
示例#7
0
 def new(func):
     register(ON_AGENT_DESTROYED, func, package
              or get_caller_package_name() or func.__module__)
     return func