mirror of
https://github.com/Paillat-dev/pycord-rest.git
synced 2026-01-02 09:06:20 +00:00
✨ Use ClassVars for constructor classes to allow more customization when subclassing (#8)
This commit is contained in:
@@ -53,10 +53,15 @@ def not_supported[T, U](func: Callable[[T], U]) -> Callable[[T], U]:
|
|||||||
|
|
||||||
|
|
||||||
class App(discord.Bot):
|
class App(discord.Bot):
|
||||||
|
_UvicornConfig: type[uvicorn.Config] = uvicorn.Config
|
||||||
|
_UvicornServer: type[uvicorn.Server] = uvicorn.Server
|
||||||
|
_FastAPI: type[FastAPI] = FastAPI
|
||||||
|
_APIRouter: type[APIRouter] = APIRouter
|
||||||
|
|
||||||
def __init__(self, *args: Any, **options: Any) -> None: # pyright: ignore [reportExplicitAny]
|
def __init__(self, *args: Any, **options: Any) -> None: # pyright: ignore [reportExplicitAny]
|
||||||
super().__init__(*args, **options) # pyright: ignore [reportUnknownMemberType]
|
super().__init__(*args, **options) # pyright: ignore [reportUnknownMemberType]
|
||||||
self._app: FastAPI = FastAPI(openapi_url=None, docs_url=None, redoc_url=None)
|
self._app: FastAPI = self._FastAPI(openapi_url=None, docs_url=None, redoc_url=None)
|
||||||
self.router: APIRouter = APIRouter()
|
self.router: APIRouter = self._APIRouter()
|
||||||
self._public_key: str | None = None
|
self._public_key: str | None = None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@@ -263,8 +268,8 @@ class App(discord.Bot):
|
|||||||
self._app.include_router(self.router)
|
self._app.include_router(self.router)
|
||||||
uvicorn_options = uvicorn_options or {}
|
uvicorn_options = uvicorn_options or {}
|
||||||
uvicorn_options["log_level"] = uvicorn_options.get("log_level", logging.root.level)
|
uvicorn_options["log_level"] = uvicorn_options.get("log_level", logging.root.level)
|
||||||
config = uvicorn.Config(self._app, **uvicorn_options)
|
config = self._UvicornConfig(self._app, **uvicorn_options)
|
||||||
server = uvicorn.Server(config)
|
server = self._UvicornServer(config)
|
||||||
try:
|
try:
|
||||||
self.dispatch("connect")
|
self.dispatch("connect")
|
||||||
await server.serve()
|
await server.serve()
|
||||||
|
|||||||
Reference in New Issue
Block a user