-
Notifications
You must be signed in to change notification settings - Fork 297
Description
Hi, In modern-apis-with-fastapi, inappropriate dependency versioning constraints can cause risks.
Below are the dependencies and version constraints that the project is using
fastapi
uvicorn
httpx
jinja2
aiofiles
requests
The version constraint == will introduce the risk of dependency conflicts because the scope of dependencies is too strict.
The version constraint No Upper Bound and * will introduce the risk of the missing API Error because the latest version of the dependencies may remove some APIs.
After further analysis, in this project,
The version constraint of dependency fastapi can be changed to >=0.51.0,<=0.78.0.
The version constraint of dependency httpx can be changed to >=0.6.7,<=0.7.8.
The version constraint of dependency httpx can be changed to >=0.10.0,<=0.11.1.
The version constraint of dependency requests can be changed to >=0.2.1,<=0.2.3.
The version constraint of dependency requests can be changed to >=0.7.0,<=2.24.0.
The version constraint of dependency requests can be changed to ==2.26.0.
The above modification suggestions can reduce the dependency conflicts as much as possible,
and introduce the latest version as much as possible without calling Error in the projects.
The invocation of the current project includes all the following methods.
The calling methods from the fastapi
fastapi.FastAPI fastapi.FastAPI.get fastapi.APIRouter.get fastapi.Response fastapi.APIRouter fastapi.FastAPI.include_router fastapi.APIRouter.post fastapi.Depends
The calling methods from the httpx
httpx.AsyncClient
The calling methods from the requests
requests.get requests.post
The calling methods from the all methods
__create_key choice.lower.strip configure_routing state.strip pathlib.Path.absolute.exists configure_fake_data super fastapi.FastAPI bs4.BeautifulSoup.select_one __reports.append repr fastapi.responses.HTMLResponse fastapi.APIRouter.post models.location.Location requests.get.raise_for_status get_html asyncio.new_event_loop.run_until_complete city.strip open country.strip get_title_range services.report_service.add_report report_event Order asyncio.create_task tasks.append str collections.namedtuple header.text.strip configure_api_keys start_response configure __cache.get r.get bs4.BeautifulSoup pathlib.Path.absolute services.openweather_service.get_report_async requests.get Exception requests.get.json r.get.get uuid.uuid4 fastapi.APIRouter.get state.strip.lower client.get.json fastapi.FastAPI.get models.reports.Report range fastapi.responses.RedirectResponse services.report_service.get_reports client.get input.lower Item datetime.timedelta receive starlette.staticfiles.StaticFiles httpx.AsyncClient json.load.get get_title fastapi.APIRouter datetime.datetime.now.total_seconds list fastapi.responses.JSONResponse main city.strip.lower starlette.templating.Jinja2Templates asyncio.new_event_loop fastapi.Response json.load __clean_out_of_date fastapi.FastAPI.mount fastapi.FastAPI.include_router uvicorn.run client.get.raise_for_status asyncio.run country.strip.lower units.strip units.strip.lower print datetime.datetime.now.get __cache.items resp.json.get starlette.templating.Jinja2Templates.TemplateResponse pathlib.Path counter float __reports.sort send super.__init__ see_events requests.post fastapi.Depends dateutil.parser.parse isinstance datetime.datetime.now int input
@developer
Could please help me check this issue?
May I pull a request to fix it?
Thank you very much.