Coverage for opt/mealie/lib/python3.12/site-packages/mealie/schema/mapper.py: 43%
10 statements
« prev ^ index » next coverage.py v7.10.6, created at 2025-11-25 17:29 +0000
« prev ^ index » next coverage.py v7.10.6, created at 2025-11-25 17:29 +0000
1from pydantic import BaseModel 1a
4def mapper[U: BaseModel, T: BaseModel](source: U, dest: T, **_) -> T: 1a
5 """
6 Map a source model to a destination model. Only top-level fields are mapped.
7 """
9 for field in source.__class__.model_fields:
10 if field in dest.__class__.model_fields:
11 setattr(dest, field, getattr(source, field))
13 return dest
16def cast[U: BaseModel, T: BaseModel](source: U, dest: type[T], **kwargs) -> T: 1a
17 create_data = { 1bcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO
18 field: getattr(source, field) for field in source.__class__.model_fields if field in dest.model_fields
19 }
20 create_data.update(kwargs or {}) 1bcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO
21 return dest(**create_data) 1bcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO