nova-mvvm 0.15.0__tar.gz → 0.15.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/PKG-INFO +1 -1
  2. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/pixi.lock +7 -7
  3. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/pyproject.toml +1 -1
  4. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/src/nova/mvvm/trame_binding/binding.py +5 -0
  5. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/tests/test_trame_bindings.py +4 -0
  6. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/.copier-answers.yml +0 -0
  7. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/.dockerignore +0 -0
  8. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/.github/workflows/build-test.yml +0 -0
  9. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/.github/workflows/nova-mvvm.yml +0 -0
  10. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/.gitignore +0 -0
  11. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/.pre-commit-config.yaml +0 -0
  12. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/.readthedocs.yml +0 -0
  13. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/.vscode/extensions.json +0 -0
  14. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/.vscode/launch.json +0 -0
  15. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/.vscode/settings.json +0 -0
  16. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/CODE_OF_CONDUCT.md +0 -0
  17. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/CONTRIBUTING.md +0 -0
  18. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/DEVELOPMENT.MD +0 -0
  19. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/LICENSE +0 -0
  20. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/README.md +0 -0
  21. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/build_docs.sh +0 -0
  22. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/dockerfiles/Dockerfile +0 -0
  23. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/docs/api_reference.rst +0 -0
  24. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/docs/conf.py +0 -0
  25. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/docs/core_concepts/data_binding.rst +0 -0
  26. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/docs/core_concepts/index.rst +0 -0
  27. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/docs/core_concepts/mvvm.png +0 -0
  28. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/docs/core_concepts/mvvm.rst +0 -0
  29. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/docs/core_concepts/pydantic.rst +0 -0
  30. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/docs/examples/basic_usage.rst +0 -0
  31. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/docs/examples/index.rst +0 -0
  32. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/docs/index.rst +0 -0
  33. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/docs/installation.rst +0 -0
  34. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/docs/interface.rst +0 -0
  35. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/src/nova/__init__.py +0 -0
  36. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/src/nova/mvvm/__init__.py +0 -0
  37. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/src/nova/mvvm/_internal/pydantic_utils.py +0 -0
  38. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/src/nova/mvvm/_internal/pyqt_communicator.py +0 -0
  39. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/src/nova/mvvm/_internal/utils.py +0 -0
  40. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/src/nova/mvvm/bindings_map.py +0 -0
  41. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/src/nova/mvvm/interface.py +0 -0
  42. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/src/nova/mvvm/panel_binding/__init__.py +0 -0
  43. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/src/nova/mvvm/panel_binding/binding.py +0 -0
  44. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/src/nova/mvvm/pydantic_utils.py +0 -0
  45. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/src/nova/mvvm/pyqt5_binding/__init__.py +0 -0
  46. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/src/nova/mvvm/pyqt5_binding/binding.py +0 -0
  47. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/src/nova/mvvm/pyqt5_binding/pyqt5_worker.py +0 -0
  48. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/src/nova/mvvm/pyqt6_binding/__init__.py +0 -0
  49. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/src/nova/mvvm/pyqt6_binding/binding.py +0 -0
  50. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/src/nova/mvvm/pyqt6_binding/pyqt6_worker.py +0 -0
  51. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/src/nova/mvvm/trame_binding/__init__.py +0 -0
  52. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/src/nova/mvvm/trame_binding/trame_worker.py +0 -0
  53. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/tests/__init__.py +0 -0
  54. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/tests/model.py +0 -0
  55. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/tests/test_panel_bindings.py +0 -0
  56. {nova_mvvm-0.15.0 → nova_mvvm-0.15.1}/tests/test_pyqt6_bindings.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nova-mvvm
3
- Version: 0.15.0
3
+ Version: 0.15.1
4
4
  Summary: A Python Package for Model-View-ViewModel pattern
5
5
  Author-email: Sergey Yakubov <yakubovs@ornl.gov>, John Duggan <dugganjw@ornl.gov>, Greg Watson <watsongr@ornl.gov>
6
6
  License-Expression: MIT
@@ -98,7 +98,7 @@ environments:
98
98
  - pypi: https://files.pythonhosted.org/packages/12/27/fb8d7338b4d551900fa3e580acbe7a0cf655d940e164cb5c00ec31961094/orderly_set-5.5.0-py3-none-any.whl
99
99
  - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl
100
100
  - pypi: https://files.pythonhosted.org/packages/f7/a3/51e02ebc2a14974170d51e2410dfdab58870ea9bcd37cda15bd553d24dc4/pandas-3.0.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
101
- - pypi: https://files.pythonhosted.org/packages/b0/2d/a159ff23441ad2fc8081ea553a53804d3f1625bb6b1b7e1b4d2eb9371676/panel-1.8.5-py3-none-any.whl
101
+ - pypi: https://files.pythonhosted.org/packages/f2/f9/08b9a36815074e99ff3ded1ad1a20dca1dc9a7c116628b3c9808df451da4/panel-1.8.6-py3-none-any.whl
102
102
  - pypi: https://files.pythonhosted.org/packages/11/da/9d476e9aadfa854719f3cb917e3f7a170a657a182d8d1d6e546594a4872b/param-2.3.1-py3-none-any.whl
103
103
  - pypi: https://files.pythonhosted.org/packages/32/2b/121e912bd60eebd623f873fd090de0e84f322972ab25a7f9044c056804ed/pathspec-1.0.3-py3-none-any.whl
104
104
  - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl
@@ -246,7 +246,7 @@ environments:
246
246
  - pypi: https://files.pythonhosted.org/packages/12/27/fb8d7338b4d551900fa3e580acbe7a0cf655d940e164cb5c00ec31961094/orderly_set-5.5.0-py3-none-any.whl
247
247
  - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl
248
248
  - pypi: https://files.pythonhosted.org/packages/6f/fa/7f0ac4ca8877c57537aaff2a842f8760e630d8e824b730eb2e859ffe96ca/pandas-3.0.0-cp313-cp313-macosx_10_13_x86_64.whl
249
- - pypi: https://files.pythonhosted.org/packages/b0/2d/a159ff23441ad2fc8081ea553a53804d3f1625bb6b1b7e1b4d2eb9371676/panel-1.8.5-py3-none-any.whl
249
+ - pypi: https://files.pythonhosted.org/packages/f2/f9/08b9a36815074e99ff3ded1ad1a20dca1dc9a7c116628b3c9808df451da4/panel-1.8.6-py3-none-any.whl
250
250
  - pypi: https://files.pythonhosted.org/packages/11/da/9d476e9aadfa854719f3cb917e3f7a170a657a182d8d1d6e546594a4872b/param-2.3.1-py3-none-any.whl
251
251
  - pypi: https://files.pythonhosted.org/packages/32/2b/121e912bd60eebd623f873fd090de0e84f322972ab25a7f9044c056804ed/pathspec-1.0.3-py3-none-any.whl
252
252
  - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl
@@ -1565,8 +1565,8 @@ packages:
1565
1565
  requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*'
1566
1566
  - pypi: ./
1567
1567
  name: nova-mvvm
1568
- version: 0.15.0
1569
- sha256: 5d05608440e40865e7c58e93067aa242f1c5029837545a8d4420f693d73d14d3
1568
+ version: 0.15.1
1569
+ sha256: 2465026d50835e407095f9cbd2e320371daf37b624d999d5b626e9fbba29498a
1570
1570
  requires_dist:
1571
1571
  - trame
1572
1572
  - deepdiff
@@ -1809,10 +1809,10 @@ packages:
1809
1809
  - xlsxwriter>=3.2.0 ; extra == 'all'
1810
1810
  - zstandard>=0.23.0 ; extra == 'all'
1811
1811
  requires_python: '>=3.11'
1812
- - pypi: https://files.pythonhosted.org/packages/b0/2d/a159ff23441ad2fc8081ea553a53804d3f1625bb6b1b7e1b4d2eb9371676/panel-1.8.5-py3-none-any.whl
1812
+ - pypi: https://files.pythonhosted.org/packages/f2/f9/08b9a36815074e99ff3ded1ad1a20dca1dc9a7c116628b3c9808df451da4/panel-1.8.6-py3-none-any.whl
1813
1813
  name: panel
1814
- version: 1.8.5
1815
- sha256: b2baf010fcfac4c92eeffe71f469907b2f7fadcffdd36e42f87c541cbb48c3b3
1814
+ version: 1.8.6
1815
+ sha256: 658d7c6586787719ee12ebf359dbfdf4f9800b4792f296de6ca0af250d971b7a
1816
1816
  requires_dist:
1817
1817
  - bleach
1818
1818
  - bokeh>=3.7.0,<3.9.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "nova-mvvm"
3
- version = "0.15.0"
3
+ version = "0.15.1"
4
4
  description = "A Python Package for Model-View-ViewModel pattern"
5
5
  authors = [
6
6
  { name = "Sergey Yakubov", email = "yakubovs@ornl.gov" },
@@ -186,6 +186,11 @@ class StateConnection:
186
186
  base_name = name_in_state
187
187
  state_obj = self.state
188
188
 
189
+ if not isinstance(state_obj, State) and not isinstance(state_obj, dict):
190
+ # TODO: it would be preferred to disallow non-Pydantic objects from use, but
191
+ # until that is complete we need to skip error tracking for them.
192
+ return
193
+
189
194
  if is_async():
190
195
  with self.state:
191
196
  state_obj[name_in_state] = value
@@ -193,6 +193,10 @@ async def test_binding_incorrect_value(server: Server) -> None:
193
193
  await asyncio.sleep(1)
194
194
  assert len(server.state.test_range[ERROR_FIELD_NAME]) == 1
195
195
 
196
+ binding3 = TrameBinding(server.state).new_bind([])
197
+ binding3.connect("test_non_pydantic")
198
+ binding3.update_in_view(["test"])
199
+
196
200
 
197
201
  res = 0
198
202
  progress_value: float = -1
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes