Source code for limits.storage

from six.moves import urllib

from limits.errors import ConfigurationError
from .memory import MemoryStorage

from .base import Storage
from .registry import SCHEMES
from .redis import RedisStorage
from .redis_cluster import RedisClusterStorage
from .redis_sentinel import RedisSentinelStorage
from .memcached import MemcachedStorage
from .gae_memcached import GAEMemcachedStorage


[docs]def storage_from_string(storage_string, **options): """ factory function to get an instance of the storage class based on the uri of the storage :param storage_string: a string of the form method://host:port :return: an instance of :class:`flask_limiter.storage.Storage` """ scheme = urllib.parse.urlparse(storage_string).scheme if scheme not in SCHEMES: raise ConfigurationError("unknown storage scheme : %s" % storage_string) return SCHEMES[scheme](storage_string, **options)
__all__ = [ "storage_from_string", "Storage", "MemoryStorage", "RedisStorage", "RedisClusterStorage", "RedisSentinelStorage", "MemcachedStorage", "GAEMemcachedStorage", ]