Skip to content

Commit 00077c1

Browse files
committed
🚚 Move declaration of FieldInfoMetadata above overloads for Field to keep the logic consistent
1 parent d74d27b commit 00077c1

File tree

1 file changed

+32
-32
lines changed

1 file changed

+32
-32
lines changed

‎sqlmodel/main.py‎

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,38 @@ def __init__(
200200
self.sa_relationship_kwargs = sa_relationship_kwargs
201201

202202

203+
@dataclass
204+
class FieldInfoMetadata:
205+
primary_key: Union[bool, UndefinedType] = Undefined
206+
nullable: Union[bool, UndefinedType] = Undefined
207+
foreign_key: Any = Undefined
208+
ondelete: Union[OnDeleteType, UndefinedType] = Undefined
209+
unique: Union[bool, UndefinedType] = Undefined
210+
index: Union[bool, UndefinedType] = Undefined
211+
sa_type: Union[type[Any], UndefinedType] = Undefined
212+
sa_column: Union[Column[Any], UndefinedType] = Undefined
213+
sa_column_args: Union[Sequence[Any], UndefinedType] = Undefined
214+
sa_column_kwargs: Union[Mapping[str, Any], UndefinedType] = Undefined
215+
216+
217+
def _get_sqlmodel_field_metadata(field_info: Any) -> Optional[FieldInfoMetadata]:
218+
metadata_items = getattr(field_info, "metadata", None)
219+
if metadata_items:
220+
for meta in metadata_items:
221+
if isinstance(meta, FieldInfoMetadata):
222+
return meta
223+
return None
224+
225+
226+
def _get_sqlmodel_field_value(
227+
field_info: Any, attribute: str, default: Any = Undefined
228+
) -> Any:
229+
metadata = _get_sqlmodel_field_metadata(field_info)
230+
if metadata is not None and hasattr(metadata, attribute):
231+
return getattr(metadata, attribute)
232+
return getattr(field_info, attribute, default)
233+
234+
203235
# include sa_type, sa_column_args, sa_column_kwargs
204236
@overload
205237
def Field(
@@ -330,38 +362,6 @@ def Field(
330362
) -> Any: ...
331363

332364

333-
@dataclass
334-
class FieldInfoMetadata:
335-
primary_key: Union[bool, UndefinedType] = Undefined
336-
nullable: Union[bool, UndefinedType] = Undefined
337-
foreign_key: Any = Undefined
338-
ondelete: Union[OnDeleteType, UndefinedType] = Undefined
339-
unique: Union[bool, UndefinedType] = Undefined
340-
index: Union[bool, UndefinedType] = Undefined
341-
sa_type: Union[type[Any], UndefinedType] = Undefined
342-
sa_column: Union[Column[Any], UndefinedType] = Undefined
343-
sa_column_args: Union[Sequence[Any], UndefinedType] = Undefined
344-
sa_column_kwargs: Union[Mapping[str, Any], UndefinedType] = Undefined
345-
346-
347-
def _get_sqlmodel_field_metadata(field_info: Any) -> Optional[FieldInfoMetadata]:
348-
metadata_items = getattr(field_info, "metadata", None)
349-
if metadata_items:
350-
for meta in metadata_items:
351-
if isinstance(meta, FieldInfoMetadata):
352-
return meta
353-
return None
354-
355-
356-
def _get_sqlmodel_field_value(
357-
field_info: Any, attribute: str, default: Any = Undefined
358-
) -> Any:
359-
metadata = _get_sqlmodel_field_metadata(field_info)
360-
if metadata is not None and hasattr(metadata, attribute):
361-
return getattr(metadata, attribute)
362-
return getattr(field_info, attribute, default)
363-
364-
365365
def Field(
366366
default: Any = Undefined,
367367
*,

0 commit comments

Comments
 (0)