同步操作将从 Gitee 极速下载/FastAPI 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
import reimport warningsfrom typing import (TYPE_CHECKING,Any,Literal,)import fastapifrom fastapi._compat import (ModelField,PydanticSchemaGenerationError,Undefined,annotation_is_pydantic_v1,)from fastapi.datastructures import DefaultPlaceholder, DefaultTypefrom fastapi.exceptions import FastAPIDeprecationWarning, PydanticV1NotSupportedErrorfrom pydantic.fields import FieldInfofrom ._compat import v2if TYPE_CHECKING: # pragma: nocoverfrom .routing import APIRoutedef is_body_allowed_for_status_code(status_code: int | str | None) -> bool:if status_code is None:return True# Ref: https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#patterned-fields-1if status_code in {"default","1XX","2XX","3XX","4XX","5XX",}:return Truecurrent_status_code = int(status_code)return not (current_status_code < 200 or current_status_code in {204, 205, 304})def get_path_param_names(path: str) -> set[str]:return set(re.findall("{(.*?)}", path))_invalid_args_message = ("Invalid args for response field! Hint: ""check that {type_} is a valid Pydantic field type. ""If you are using a return type annotation that is not a valid Pydantic ""field (e.g. Union[Response, dict, None]) you can disable generating the ""response model from the type annotation with the path operation decorator ""parameter response_model=None. Read more: ""https://fastapi.tiangolo.com/tutorial/response-model/")def create_model_field(name: str,type_: Any,default: Any | None = Undefined,field_info: FieldInfo | None = None,alias: str | None = None,mode: Literal["validation", "serialization"] = "validation",) -> ModelField:if annotation_is_pydantic_v1(type_):raise PydanticV1NotSupportedError("pydantic.v1 models are no longer supported by FastAPI."f" Please update the response model {type_!r}.")field_info = field_info or FieldInfo(annotation=type_, default=default, alias=alias)try:return v2.ModelField(mode=mode, name=name, field_info=field_info)except PydanticSchemaGenerationError:raise fastapi.exceptions.FastAPIError(_invalid_args_message.format(type_=type_)) from Nonedef generate_operation_id_for_path(*, name: str, path: str, method: str) -> str: # pragma: nocoverwarnings.warn(message="fastapi.utils.generate_operation_id_for_path() was deprecated, ""it is not used internally, and will be removed soon",category=FastAPIDeprecationWarning,stacklevel=2,)operation_id = f"{name}{path}"operation_id = re.sub(r"\W", "_", operation_id)operation_id = f"{operation_id}_{method.lower()}"return operation_iddef generate_unique_id(route: "APIRoute") -> str:operation_id = f"{route.name}{route.path_format}"operation_id = re.sub(r"\W", "_", operation_id)assert route.methodsoperation_id = f"{operation_id}_{list(route.methods)[0].lower()}"return operation_iddef deep_dict_update(main_dict: dict[Any, Any], update_dict: dict[Any, Any]) -> None:for key, value in update_dict.items():if (key in main_dictand isinstance(main_dict[key], dict)and isinstance(value, dict)):deep_dict_update(main_dict[key], value)elif (key in main_dictand isinstance(main_dict[key], list)and isinstance(update_dict[key], list)):main_dict[key] = main_dict[key] + update_dict[key]else:main_dict[key] = valuedef get_value_or_default(first_item: DefaultPlaceholder | DefaultType,*extra_items: DefaultPlaceholder | DefaultType,) -> DefaultPlaceholder | DefaultType:"""Pass items or `DefaultPlaceholder`s by descending priority.The first one to _not_ be a `DefaultPlaceholder` will be returned.Otherwise, the first item (a `DefaultPlaceholder`) will be returned."""items = (first_item,) + extra_itemsfor item in items:if not isinstance(item, DefaultPlaceholder):return itemreturn first_item
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。