Skip to content

Commit

Permalink
Cache calculated field_aliases for a schema
Browse files Browse the repository at this point in the history
  • Loading branch information
charles-dyfis-net committed Oct 1, 2024
1 parent f26087d commit c1a375b
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions litestar/openapi/spec/schema.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from __future__ import annotations

from dataclasses import dataclass, field, fields, is_dataclass
from typing import TYPE_CHECKING, Any, Hashable, Mapping, Sequence
from typing import TYPE_CHECKING, Any, Dict, Hashable, Mapping, Sequence, cast

from litestar.openapi.spec.base import BaseSchemaObject
from litestar.utils.predicates import is_non_string_sequence
Expand Down Expand Up @@ -648,11 +648,14 @@ def __hash__(self) -> int:
return _recursive_hash(self)

@classmethod
def field_aliases(cls) -> dict[str, str]:
def field_aliases(cls) -> Dict[str, str]:
if hasattr(cls, "_field_aliases"):
return cast(Dict[str, str], cls._field_aliases)
retval = {}
for field_def in fields(cls):
if field_def.metadata is not None and (field_alias := field_def.metadata.get("alias")):
retval[field_alias] = field_def.name
cls._field_aliases = retval
return retval


Expand Down

0 comments on commit c1a375b

Please sign in to comment.