mirror of
https://github.com/nonebot/nonebot2.git
synced 2025-09-06 12:06:45 +00:00
add fastapi driver, config
This commit is contained in:
@ -2,8 +2,50 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import logging
|
||||
from .log import logger
|
||||
import importlib
|
||||
from typing import Optional
|
||||
from ipaddress import IPv4Address
|
||||
|
||||
from .log import logger
|
||||
from .config import Env, Config
|
||||
from .drivers import BaseDriver
|
||||
|
||||
_driver: Optional[BaseDriver] = None
|
||||
|
||||
|
||||
def get_driver() -> BaseDriver:
|
||||
if _driver is None:
|
||||
raise ValueError("NoneBot has not been initialized.")
|
||||
return _driver
|
||||
|
||||
|
||||
def get_app():
|
||||
driver = get_driver()
|
||||
return driver.server_app
|
||||
|
||||
|
||||
def get_asgi():
|
||||
driver = get_driver()
|
||||
return driver.asgi
|
||||
|
||||
|
||||
def init(*, _env_file=None, **kwargs):
|
||||
global _driver
|
||||
env = Env()
|
||||
config = Config(**kwargs, _env_file=_env_file or f".env.{env.environment}")
|
||||
|
||||
logger.setLevel(logging.DEBUG if config.debug else logging.INFO)
|
||||
logger.debug(f"Loaded config: {config.dict()}")
|
||||
|
||||
Driver = getattr(importlib.import_module(config.driver), "Driver")
|
||||
_driver = Driver(config)
|
||||
|
||||
|
||||
def run(host: Optional[IPv4Address] = None,
|
||||
port: Optional[int] = None,
|
||||
*args,
|
||||
**kwargs):
|
||||
get_driver().run(host, port, *args, **kwargs)
|
||||
|
||||
logger.setLevel(level=logging.DEBUG)
|
||||
|
||||
from .plugin import load_plugins, get_loaded_plugins
|
||||
|
Reference in New Issue
Block a user