Loading pyproject.toml +1 −1 Original line number Diff line number Diff line [tool.poetry] name = "nova-mvvm" version = "0.7.0" version = "0.7.1" description = "A Python Package for Model-View-ViewModel pattern" authors = ["Yakubov, Sergey <yakubovs@ornl.gov>"] readme = "README.md" Loading src/nova/mvvm/_internal/pydantic_utils.py +2 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,8 @@ def get_updated_fields(old: BaseModel, new: BaseModel) -> list[str]: if "values_changed" in diff: # DeepDiff adds .root to the root object, we don't need that updates = [k.removeprefix("root.") for k in diff["values_changed"].keys()] if "type_changes" in diff: updates += [k.removeprefix("root.") for k in diff["type_changes"].keys()] for item in ["iterable_item_added", "iterable_item_removed"]: # for added/removed items DeepDiff adds its index, we don't need that as well if item in diff: Loading tests/model.py +1 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ class User(BaseModel): username: str = Field( default="default_user", min_length=2, title="User Name", description="hint", examples=["user"] ) email: Optional[str] = Field(default=None, title="Email Address") age: int = Field(default=30, gt=20) ranges: List[Range] = Field( default_factory=lambda: [ Loading tests/test_trame_bindings.py +5 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,11 @@ test_cases: List[Dict[str, Any]] = [ "input": {"field": "username", "value": "newname"}, "result": {"value": "newname", "error": False}, }, { "test_name": "update email", "input": {"field": "email", "value": "test@test.com"}, "result": {"value": "test@test.com", "error": False}, }, { "test_name": "empty username", "input": {"field": "username", "value": ""}, Loading Loading
pyproject.toml +1 −1 Original line number Diff line number Diff line [tool.poetry] name = "nova-mvvm" version = "0.7.0" version = "0.7.1" description = "A Python Package for Model-View-ViewModel pattern" authors = ["Yakubov, Sergey <yakubovs@ornl.gov>"] readme = "README.md" Loading
src/nova/mvvm/_internal/pydantic_utils.py +2 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,8 @@ def get_updated_fields(old: BaseModel, new: BaseModel) -> list[str]: if "values_changed" in diff: # DeepDiff adds .root to the root object, we don't need that updates = [k.removeprefix("root.") for k in diff["values_changed"].keys()] if "type_changes" in diff: updates += [k.removeprefix("root.") for k in diff["type_changes"].keys()] for item in ["iterable_item_added", "iterable_item_removed"]: # for added/removed items DeepDiff adds its index, we don't need that as well if item in diff: Loading
tests/model.py +1 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ class User(BaseModel): username: str = Field( default="default_user", min_length=2, title="User Name", description="hint", examples=["user"] ) email: Optional[str] = Field(default=None, title="Email Address") age: int = Field(default=30, gt=20) ranges: List[Range] = Field( default_factory=lambda: [ Loading
tests/test_trame_bindings.py +5 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,11 @@ test_cases: List[Dict[str, Any]] = [ "input": {"field": "username", "value": "newname"}, "result": {"value": "newname", "error": False}, }, { "test_name": "update email", "input": {"field": "email", "value": "test@test.com"}, "result": {"value": "test@test.com", "error": False}, }, { "test_name": "empty username", "input": {"field": "username", "value": ""}, Loading