🎨 [pre-commit.ci] Auto format from pre-commit.com hooks

This commit is contained in:
pre-commit-ci[bot] 2025-04-15 02:47:42 +00:00
parent f63e983b60
commit cad08bbc4d
8 changed files with 56 additions and 34 deletions

View File

@ -1,12 +1,14 @@
from pydantic import BaseModel
from fastapi import FastAPI, Form, Request
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates
from jinja2 import DictLoader, Environment
from pydantic import BaseModel
class MyModel(BaseModel):
checkbox: bool = True
form_template = """
<form action="/form" method="POST">
{% for field_name, field in model.model_fields.items() %}
@ -31,12 +33,14 @@ templates = Jinja2Templates(env=Environment(loader=loader))
app = FastAPI()
@app.get("/form", response_class=HTMLResponse)
async def show_form(request: Request):
return templates.TemplateResponse(
request=request, name="form.html", context={"model": MyModel}
)
@app.post('/form')
@app.post("/form")
async def submit_form(data: MyModel = Form()) -> MyModel:
return data

View File

@ -1,14 +1,16 @@
from typing import Annotated
from pydantic import BaseModel
from fastapi import FastAPI, Form, Request
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates
from jinja2 import DictLoader, Environment
from pydantic import BaseModel
class MyModel(BaseModel):
checkbox: bool = True
form_template = """
<form action="/form" method="POST">
{% for field_name, field in model.model_fields.items() %}
@ -33,12 +35,14 @@ templates = Jinja2Templates(env=Environment(loader=loader))
app = FastAPI()
@app.get("/form", response_class=HTMLResponse)
async def show_form(request: Request):
return templates.TemplateResponse(
request=request, name="form.html", context={"model": MyModel}
)
@app.post('/form')
@app.post("/form")
async def submit_form(data: Annotated[MyModel, Form()]) -> MyModel:
return data

View File

@ -1,8 +1,9 @@
from pydantic import BaseModel, ValidationInfo, model_validator
from fastapi import FastAPI, Form, Request
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates
from jinja2 import DictLoader, Environment
from pydantic import BaseModel, ValidationInfo, model_validator
class MyModel(BaseModel):
checkbox: bool = True
@ -10,15 +11,15 @@ class MyModel(BaseModel):
@model_validator(mode="before")
def handle_defaults(cls, value: dict, info: ValidationInfo) -> dict:
# if this model is being used outside of fastapi, return normally
if info.context is None or 'fastapi_field' not in info.context:
if info.context is None or "fastapi_field" not in info.context:
return value
# check if we are being validated from form input,
# and if so, treat the unset checkbox as False
field_info = info.context['fastapi_field'].field_info
field_info = info.context["fastapi_field"].field_info
is_form = type(field_info).__name__ == "Form"
if is_form and 'checkbox' not in value:
value['checkbox'] = False
if is_form and "checkbox" not in value:
value["checkbox"] = False
return value
@ -46,12 +47,14 @@ templates = Jinja2Templates(env=Environment(loader=loader))
app = FastAPI()
@app.get("/form", response_class=HTMLResponse)
async def show_form(request: Request):
return templates.TemplateResponse(
request=request, name="form.html", context={"model": MyModel}
)
@app.post('/form')
@app.post("/form")
async def submit_form(data: MyModel = Form()) -> MyModel:
return data

View File

@ -1,10 +1,11 @@
from typing import Annotated
from pydantic import BaseModel, ValidationInfo, model_validator
from fastapi import FastAPI, Form, Request
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates
from jinja2 import DictLoader, Environment
from pydantic import BaseModel, ValidationInfo, model_validator
class MyModel(BaseModel):
checkbox: bool = True
@ -12,15 +13,15 @@ class MyModel(BaseModel):
@model_validator(mode="before")
def handle_defaults(cls, value: dict, info: ValidationInfo) -> dict:
# if this model is being used outside of fastapi, return normally
if info.context is None or 'fastapi_field' not in info.context:
if info.context is None or "fastapi_field" not in info.context:
return value
# check if we are being validated from form input,
# and if so, treat the unset checkbox as False
field_info = info.context['fastapi_field'].field_info
field_info = info.context["fastapi_field"].field_info
is_form = type(field_info).__name__ == "Form"
if is_form and 'checkbox' not in value:
value['checkbox'] = False
if is_form and "checkbox" not in value:
value["checkbox"] = False
return value
@ -48,12 +49,14 @@ templates = Jinja2Templates(env=Environment(loader=loader))
app = FastAPI()
@app.get("/form", response_class=HTMLResponse)
async def show_form(request: Request):
return templates.TemplateResponse(
request=request, name="form.html", context={"model": MyModel}
)
@app.post('/form')
@app.post("/form")
async def submit_form(data: Annotated[MyModel, Form()]) -> MyModel:
return data

View File

@ -1,8 +1,9 @@
from pydantic import BaseModel, model_validator
from fastapi import FastAPI, Form, Request
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates
from jinja2 import DictLoader, Environment
from pydantic import BaseModel, model_validator
class MyModel(BaseModel):
checkbox: bool = True
@ -11,8 +12,8 @@ class MyModel(BaseModel):
def handle_defaults(cls, value: dict) -> dict:
# We can't tell if we're being validated by fastAPI,
# so we have to just YOLO this.
if 'checkbox' not in value:
value['checkbox'] = False
if "checkbox" not in value:
value["checkbox"] = False
return value
@ -40,12 +41,14 @@ templates = Jinja2Templates(env=Environment(loader=loader))
app = FastAPI()
@app.get("/form", response_class=HTMLResponse)
async def show_form(request: Request):
return templates.TemplateResponse(
request=request, name="form.html", context={"model": MyModel}
)
@app.post('/form')
@app.post("/form")
async def submit_form(data: MyModel = Form()) -> MyModel:
return data

View File

@ -1,10 +1,11 @@
from typing import Annotated
from pydantic import BaseModel, model_validator
from fastapi import FastAPI, Form, Request
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates
from jinja2 import DictLoader, Environment
from pydantic import BaseModel, model_validator
class MyModel(BaseModel):
checkbox: bool = True
@ -13,8 +14,8 @@ class MyModel(BaseModel):
def handle_defaults(cls, value: dict) -> dict:
# We can't tell if we're being validated by fastAPI,
# so we have to just YOLO this.
if 'checkbox' not in value:
value['checkbox'] = False
if "checkbox" not in value:
value["checkbox"] = False
return value
@ -42,12 +43,14 @@ templates = Jinja2Templates(env=Environment(loader=loader))
app = FastAPI()
@app.get("/form", response_class=HTMLResponse)
async def show_form(request: Request):
return templates.TemplateResponse(
request=request, name="form.html", context={"model": MyModel}
)
@app.post('/form')
@app.post("/form")
async def submit_form(data: Annotated[MyModel, Form()]) -> MyModel:
return data

View File

@ -126,7 +126,9 @@ if PYDANTIC_V2:
) -> Tuple[Any, Union[List[Dict[str, Any]], None]]:
try:
return (
self._type_adapter.validate_python(value, from_attributes=True, context={"fastapi_field": self}),
self._type_adapter.validate_python(
value, from_attributes=True, context={"fastapi_field": self}
),
None,
)
except ValidationError as exc: