@classmethod<EOL><INDENT>def get(cls, service, config=None, persistence_kwargs=None, **context):<DEDENT>
rl_config = cls.get_config(service, config)<EOL>context.update(service=service)<EOL>if isinstance(rl_config, (dict, Mapping)):<EOL><INDENT>if persistence_kwargs is not None:<EOL><INDENT>rl_config.update(persistence_kwargs=persistence_kwargs)<EOL><DEDENT>return RateLimiter(context, **rl_config)<EOL><DEDENT>else:<EOL><INDENT>def _rl(conf):<EOL><INDENT>conf.setdefault('<STR_LIT>',<EOL>persistence_kwargs or {})<EOL>return RateLimiter(context, **conf)<EOL><DEDENT>return MultiRateLimiter(<EOL>[_rl(config) for config in rl_config]<EOL>)<EOL><DEDENT>
Load a rate-limiter from configuration

        :param str service:
          rate limiter name to retrieve
        :param dict config:
          alternate configuration object to use. If `None`, then use the global
          application configuration
        :context:
          Uniquely describe the consumed resource. Used by the persistence layer
          to forge the URI describing the resource.

        :rtype: :py:class:`RateLimiter` or :py:class:`MultiRateLimiter`