diff --git a/slowapi/__init__.py b/slowapi/__init__.py index 4438295..85e9dbc 100644 --- a/slowapi/__init__.py +++ b/slowapi/__init__.py @@ -1 +1,6 @@ from .extension import Limiter, _rate_limit_exceeded_handler + +__all__ = [ + "Limiter", + "_rate_limit_exceeded_handler" +] diff --git a/slowapi/extension.py b/slowapi/extension.py index 242b2c0..594273f 100644 --- a/slowapi/extension.py +++ b/slowapi/extension.py @@ -2,45 +2,36 @@ The starlette extension to rate-limit requests """ import asyncio -from datetime import datetime, timedelta import functools import inspect import itertools -import json import logging -import sys import time -import warnings +from datetime import datetime from email.utils import formatdate, parsedate_to_datetime from functools import wraps from typing import ( Any, - Awaitable, Callable, Dict, List, Optional, Set, Tuple, - Type, TypeVar, Union, ) from limits import RateLimitItem # type: ignore from limits.errors import ConfigurationError # type: ignore -from limits.storage import Storage # type: ignore from limits.storage import MemoryStorage, storage_from_string +from limits.storage import Storage # type: ignore from limits.strategies import STRATEGIES, RateLimiter # type: ignore -from starlette.applications import Starlette from starlette.config import Config -from starlette.exceptions import HTTPException -from starlette.middleware.base import BaseHTTPMiddleware from starlette.requests import Request from starlette.responses import JSONResponse, Response from .errors import RateLimitExceeded -from .util import get_ipaddr from .wrappers import Limit, LimitGroup # used to annotate get_app_config method diff --git a/slowapi/middleware.py b/slowapi/middleware.py index 894d3f1..451fed1 100644 --- a/slowapi/middleware.py +++ b/slowapi/middleware.py @@ -1,14 +1,11 @@ -from typing import Union - from starlette.applications import Starlette from starlette.middleware.base import ( BaseHTTPMiddleware, RequestResponseEndpoint, - DispatchFunction, ) from starlette.requests import Request from starlette.responses import Response -from starlette.routing import Route, BaseRoute, WebSocketRoute, Match +from starlette.routing import Match from slowapi import Limiter, _rate_limit_exceeded_handler diff --git a/tests/__init__.py b/tests/__init__.py index 3fec7aa..b28ea52 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,17 +1,13 @@ import logging -import platform -import unittest -from functools import wraps -import redis from fastapi import FastAPI from mock import mock # type: ignore from starlette.applications import Starlette from slowapi.errors import RateLimitExceeded from slowapi.extension import Limiter, _rate_limit_exceeded_handler -from slowapi.util import get_remote_address from slowapi.middleware import SlowAPIMiddleware +from slowapi.util import get_remote_address class TestSlowapi: diff --git a/tests/test_starlette_extension.py b/tests/test_starlette_extension.py index b93d051..b36b9ad 100644 --- a/tests/test_starlette_extension.py +++ b/tests/test_starlette_extension.py @@ -1,10 +1,8 @@ import time import hiro # type: ignore -from starlette.applications import Starlette from starlette.requests import Request from starlette.responses import PlainTextResponse -from starlette.routing import Route from starlette.testclient import TestClient from slowapi.util import get_ipaddr, get_remote_address