Я хочу иметь возможность периодически «перезагружать/перезагружать» файловую базу, поскольку я постоянно добавляю в набор данных новых производителей. Однако мне всегда нужно перезапускать FastAPI, иначе модели не будут генерироваться заново.
Ниже вы найдете отрывок моего кода.
Код: Выделить всё
class carHandler:
...
def getCarModel(self, type) -> list:
tempArr = []
for manufacturer in self.manufacturers:
if ((manufacturer.type in type or type == ["all"]):
tempArr.append((manufacturer.name, manufacturer.name))
tempArrSorted = sorted(tempArr, key=lambda x: x[0])
return enum.Enum(f'Available {type}', dict(tempArrSorted))
cH = carHandler()
allowedTruckModel = cH.getCarModel(["trucks"])
...
@self.get("/manufacturer/{name}", tags=["api"])
async def get_truck_manufacturer_information(name: allowedTruckModel) -> models.outputModel:
return endpoint_logic.get_manufacturer(name)
[*]напрямую использовать вызов функции в качестве параметра, например,
Вот что я пробовал:
напрямую использовать вызов функции в качестве параметра, например,
р>
Код: Выделить всё
async def get_truck_manufacturer_information(name: cH.getCarModel(["trucks"]))
Код: Выделить всё
Call expression not allowed in type expressionPylancereportInvalidTypeForm
[*]Посмотрел возможность перезапуска/обновления FastAPI:
Код: Выделить всё
@self.get("/updateCH", include_in_schema=False)
async def updateCH(request: Request):
cH.update()
reloadKeys()
updateModels()
request.app.openapi_schema = None
request.app.setup()
return f"success"
Подробнее здесь: https://stackoverflow.com/questions/791 ... at-runtime
Мобильная версия