12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- from __future__ import annotations
- import enum
- class ConfigVars:
- ENABLED = "RATELIMIT_ENABLED"
- KEY_FUNC = "RATELIMIT_KEY_FUNC"
- KEY_PREFIX = "RATELIMIT_KEY_PREFIX"
- FAIL_ON_FIRST_BREACH = "RATELIMIT_FAIL_ON_FIRST_BREACH"
- ON_BREACH = "RATELIMIT_ON_BREACH_CALLBACK"
- SWALLOW_ERRORS = "RATELIMIT_SWALLOW_ERRORS"
- APPLICATION_LIMITS = "RATELIMIT_APPLICATION"
- APPLICATION_LIMITS_PER_METHOD = "RATELIMIT_APPLICATION_PER_METHOD"
- APPLICATION_LIMITS_EXEMPT_WHEN = "RATELIMIT_APPLICATION_EXEMPT_WHEN"
- APPLICATION_LIMITS_DEDUCT_WHEN = "RATELIMIT_APPLICATION_DEDUCT_WHEN"
- APPLICATION_LIMITS_COST = "RATELIMIT_APPLICATION_COST"
- DEFAULT_LIMITS = "RATELIMIT_DEFAULT"
- DEFAULT_LIMITS_PER_METHOD = "RATELIMIT_DEFAULTS_PER_METHOD"
- DEFAULT_LIMITS_EXEMPT_WHEN = "RATELIMIT_DEFAULTS_EXEMPT_WHEN"
- DEFAULT_LIMITS_DEDUCT_WHEN = "RATELIMIT_DEFAULTS_DEDUCT_WHEN"
- DEFAULT_LIMITS_COST = "RATELIMIT_DEFAULTS_COST"
- REQUEST_IDENTIFIER = "RATELIMIT_REQUEST_IDENTIFIER"
- STRATEGY = "RATELIMIT_STRATEGY"
- STORAGE_URI = "RATELIMIT_STORAGE_URI"
- STORAGE_OPTIONS = "RATELIMIT_STORAGE_OPTIONS"
- HEADERS_ENABLED = "RATELIMIT_HEADERS_ENABLED"
- HEADER_LIMIT = "RATELIMIT_HEADER_LIMIT"
- HEADER_REMAINING = "RATELIMIT_HEADER_REMAINING"
- HEADER_RESET = "RATELIMIT_HEADER_RESET"
- HEADER_RETRY_AFTER = "RATELIMIT_HEADER_RETRY_AFTER"
- HEADER_RETRY_AFTER_VALUE = "RATELIMIT_HEADER_RETRY_AFTER_VALUE"
- IN_MEMORY_FALLBACK = "RATELIMIT_IN_MEMORY_FALLBACK"
- IN_MEMORY_FALLBACK_ENABLED = "RATELIMIT_IN_MEMORY_FALLBACK_ENABLED"
- META_LIMITS = "RATELIMIT_META"
- ON_META_BREACH = "RATELIMIT_ON_META_BREACH_CALLBACK"
- class HeaderNames(enum.Enum):
- """
- Enumeration of supported rate limit related headers to
- be used when configuring via :paramref:`~flask_limiter.Limiter.header_name_mapping`
- """
- #: Timestamp at which this rate limit will be reset
- RESET = "X-RateLimit-Reset"
- #: Remaining number of requests within the current window
- REMAINING = "X-RateLimit-Remaining"
- #: Total number of allowed requests within a window
- LIMIT = "X-RateLimit-Limit"
- #: Number of seconds to retry after at
- RETRY_AFTER = "Retry-After"
- class ExemptionScope(enum.Flag):
- """
- Flags used to configure the scope of exemption when used
- in conjunction with :meth:`~flask_limiter.Limiter.exempt`.
- """
- NONE = 0
- #: Exempt from application wide "global" limits
- APPLICATION = enum.auto()
- #: Exempt from default limits configured on the extension
- META = enum.auto()
- #: Exempts from meta limits
- DEFAULT = enum.auto()
- #: Exempts any nested blueprints. See :ref:`recipes:nested blueprints`
- DESCENDENTS = enum.auto()
- #: Exempt from any rate limits inherited from ancestor blueprints.
- #: See :ref:`recipes:nested blueprints`
- ANCESTORS = enum.auto()
- MAX_BACKEND_CHECKS = 5
|