mirror of
https://github.com/hay-kot/mealie.git
synced 2025-08-22 22:43:34 -07:00
fix some deprecation warnings
This commit is contained in:
parent
be16c53db9
commit
779f12dbb8
2 changed files with 15 additions and 11 deletions
|
@ -80,7 +80,7 @@ class MealieModel(BaseModel):
|
|||
Adds UTC timezone information to all datetimes in the model.
|
||||
The server stores everything in UTC without timezone info.
|
||||
"""
|
||||
for field in self.model_fields:
|
||||
for field in self.__class__.model_fields:
|
||||
val = getattr(self, field)
|
||||
if not isinstance(val, datetime):
|
||||
continue
|
||||
|
@ -94,7 +94,9 @@ class MealieModel(BaseModel):
|
|||
Cast the current model to another with additional arguments. Useful for
|
||||
transforming DTOs into models that are saved to a database
|
||||
"""
|
||||
create_data = {field: getattr(self, field) for field in self.model_fields if field in cls.model_fields}
|
||||
create_data = {
|
||||
field: getattr(self, field) for field in self.__class__.model_fields if field in cls.model_fields
|
||||
}
|
||||
create_data.update(kwargs or {})
|
||||
return cls(**create_data)
|
||||
|
||||
|
@ -104,8 +106,8 @@ class MealieModel(BaseModel):
|
|||
for method chaining.
|
||||
"""
|
||||
|
||||
for field in self.model_fields:
|
||||
if field in dest.model_fields:
|
||||
for field in self.__class__.model_fields:
|
||||
if field in dest.__class__.model_fields:
|
||||
setattr(dest, field, getattr(self, field))
|
||||
|
||||
return dest
|
||||
|
@ -115,8 +117,8 @@ class MealieModel(BaseModel):
|
|||
Map matching values from another model to the current model.
|
||||
"""
|
||||
|
||||
for field in src.model_fields:
|
||||
if field in self.model_fields:
|
||||
for field in src.__class__.model_fields:
|
||||
if field in self.__class__.model_fields:
|
||||
setattr(self, field, getattr(src, field))
|
||||
|
||||
def merge[T: BaseModel](self, src: T, replace_null=False):
|
||||
|
@ -124,9 +126,9 @@ class MealieModel(BaseModel):
|
|||
Replace matching values from another instance to the current instance.
|
||||
"""
|
||||
|
||||
for field in src.model_fields:
|
||||
for field in src.__class__.model_fields:
|
||||
val = getattr(src, field)
|
||||
if field in self.model_fields and (val is not None or replace_null):
|
||||
if field in self.__class__.model_fields and (val is not None or replace_null):
|
||||
setattr(self, field, val)
|
||||
|
||||
@classmethod
|
||||
|
|
|
@ -6,14 +6,16 @@ def mapper[U: BaseModel, T: BaseModel](source: U, dest: T, **_) -> T:
|
|||
Map a source model to a destination model. Only top-level fields are mapped.
|
||||
"""
|
||||
|
||||
for field in source.model_fields:
|
||||
if field in dest.model_fields:
|
||||
for field in source.__class__.model_fields:
|
||||
if field in dest.__class__.model_fields:
|
||||
setattr(dest, field, getattr(source, field))
|
||||
|
||||
return dest
|
||||
|
||||
|
||||
def cast[U: BaseModel, T: BaseModel](source: U, dest: type[T], **kwargs) -> T:
|
||||
create_data = {field: getattr(source, field) for field in source.model_fields if field in dest.model_fields}
|
||||
create_data = {
|
||||
field: getattr(source, field) for field in source.__class__.model_fields if field in dest.model_fields
|
||||
}
|
||||
create_data.update(kwargs or {})
|
||||
return dest(**create_data)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue