Это потому, что флаг --debug делает больше, чем просто устанавливает debug=True
в функции запуска.
В источнике Uvicorn кажется, что они создают StatReload
, которыйбыл импортирован из uvicorn.reloaders.statreload
Я не смог найти никакой документации, касающейся этой функции, но, похоже, все, что вам нужно сделать, это взять:
uvicorn.run(app,
host=run_config['api_host'],
port=run_config['api_port'],
log_level=run_config['log_level'],
debug='true')
и сделать это:
from uvicorn.reloaders.statreload import StatReload
from uvicorn.main import run, get_logger
reloader = StatReload(get_logger(run_config['log_level']))
reloader.run(run, {
'app': app,
'host': run_config['api_host'],
'port': run_config['api_port'],
'log_level': run_config['log_level'],
'debug': 'true'
})