Skip to content

Commit 1ca48d9

Browse files
committed
Remove unused sqlmodel_table_construct
1 parent 9b51f27 commit 1ca48d9

File tree

1 file changed

+0
-68
lines changed

1 file changed

+0
-68
lines changed

sqlmodel/_compat.py

Lines changed: 0 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -205,74 +205,6 @@ def get_field_metadata(field: Any) -> Any:
205205
return FakeMetadata()
206206

207207

208-
def sqlmodel_table_construct(
209-
*,
210-
self_instance: _TSQLModel,
211-
values: dict[str, Any],
212-
_fields_set: set[str] | None = None,
213-
) -> _TSQLModel:
214-
# Copy from Pydantic's BaseModel.construct()
215-
# Ref: https://github.com/pydantic/pydantic/blob/v2.5.2/pydantic/main.py#L198
216-
# Modified to not include everything, only the model fields, and to
217-
# set relationships
218-
# SQLModel override to get class SQLAlchemy __dict__ attributes and
219-
# set them back in after creating the object
220-
# new_obj = cls.__new__(cls)
221-
cls = type(self_instance)
222-
old_dict = self_instance.__dict__.copy()
223-
# End SQLModel override
224-
225-
fields_values: dict[str, Any] = {}
226-
defaults: dict[
227-
str, Any
228-
] = {} # keeping this separate from `fields_values` helps us compute `_fields_set`
229-
for name, field in cls.model_fields.items():
230-
if field.alias and field.alias in values:
231-
fields_values[name] = values.pop(field.alias)
232-
elif name in values:
233-
fields_values[name] = values.pop(name)
234-
elif not field.is_required():
235-
defaults[name] = field.get_default(call_default_factory=True)
236-
if _fields_set is None:
237-
_fields_set = set(fields_values.keys())
238-
fields_values.update(defaults)
239-
240-
_extra: dict[str, Any] | None = None
241-
if cls.model_config.get("extra") == "allow":
242-
_extra = {}
243-
for k, v in values.items():
244-
_extra[k] = v
245-
# SQLModel override, do not include everything, only the model fields
246-
# else:
247-
# fields_values.update(values)
248-
# End SQLModel override
249-
# SQLModel override
250-
# Do not set __dict__, instead use setattr to trigger SQLAlchemy
251-
# object.__setattr__(new_obj, "__dict__", fields_values)
252-
# instrumentation
253-
for key, value in {**old_dict, **fields_values}.items():
254-
setattr(self_instance, key, value)
255-
# End SQLModel override
256-
object.__setattr__(self_instance, "__pydantic_fields_set__", _fields_set)
257-
if not cls.__pydantic_root_model__:
258-
object.__setattr__(self_instance, "__pydantic_extra__", _extra)
259-
260-
if cls.__pydantic_post_init__:
261-
self_instance.model_post_init(None)
262-
elif not cls.__pydantic_root_model__:
263-
# Note: if there are any private attributes, cls.__pydantic_post_init__ would exist
264-
# Since it doesn't, that means that `__pydantic_private__` should be set to None
265-
object.__setattr__(self_instance, "__pydantic_private__", None)
266-
# SQLModel override, set relationships
267-
# Get and set any relationship objects
268-
for key in self_instance.__sqlmodel_relationships__:
269-
value = values.get(key, Undefined)
270-
if value is not Undefined:
271-
setattr(self_instance, key, value)
272-
# End SQLModel override
273-
return self_instance
274-
275-
276208
def sqlmodel_validate(
277209
cls: type[_TSQLModel],
278210
obj: Any,

0 commit comments

Comments
 (0)