Method dispatcher

Dispatcher is used to add methods (functions) to the server.

For usage examples see Dispatcher.add_method()

class jsonrpc.dispatcher.Dispatcher(prototype=None)[source]

Dictionary like object which maps method_name to method.


Build method dispatcher.

Parameters:prototype (object or dict, optional) – Initial method mapping.


Init object with method dictionary.

>>> Dispatcher({"sum": lambda a, b: a + b})
add_method(f, name=None)[source]

Add a method to the dispatcher.

  • f (callable) – Callable to be added.
  • name (str, optional) – Name to register (the default is function f name)


When used as a decorator keeps callable object unmodified.


Use as method

>>> d = Dispatcher()
>>> d.add_method(lambda a, b: a + b, name="sum")
<function __main__.<lambda>>

Or use as decorator

>>> d = Dispatcher()
>>> @d.add_method
    def mymethod(*args, **kwargs):
        print(args, kwargs)
build_method_map(prototype, prefix='')[source]

Add prototype methods to the dispatcher.

  • prototype (object or dict) – Initial method mapping. If given prototype is a dictionary then all callable objects will be added to dispatcher. If given prototype is an object then all public methods will be used.
  • prefix (string, optional) – Prefix of methods