Skip to content

Enhancement: Generate correct OpenAPI type and format for pydantic.AwareDateTime #4217

Open
@vrslev

Description

@vrslev

Summary

Litestar doesn't generate OpenAPI type and format for pydantic.AwareDatetime

Basic Example

import datetime

import litestar
import pydantic
from litestar.openapi.spec import OpenAPIFormat, OpenAPIType


class HelloResponse(pydantic.BaseModel):
    stdlib_datetime: datetime.datetime
    aware_datetime: pydantic.AwareDatetime


@litestar.get()
async def hello() -> HelloResponse:
    return HelloResponse(
        stdlib_datetime=datetime.datetime.now(),
        aware_datetime=datetime.datetime.now(datetime.UTC),
    )


app = litestar.Litestar([hello])
props = app.openapi_schema.components.schemas["HelloResponse"].properties

assert props["stdlib_datetime"].type == OpenAPIType.STRING
assert props["stdlib_datetime"].format == OpenAPIFormat.DATE_TIME

assert props["aware_datetime"].type is None  # Expected OpenAPIType.STRING
assert props["aware_datetime"].format is None  # Expected OpenAPIFormat.DATE_TIME

print("Assertions passed, aware datetime is not supported")

Run with uv:

uv run --python 3.13 --with litestar==2.16.0 --with pydantic==2.11.7 --no-project t.py

Drawbacks and Impact

No response

Unresolved questions

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    EnhancementThis is a new feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions