nova-mvvm 0.15.0__tar.gz → 0.16.0__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.
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/PKG-INFO +1 -1
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/pixi.lock +80 -78
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/pyproject.toml +1 -1
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/src/nova/mvvm/_internal/pydantic_utils.py +5 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/src/nova/mvvm/pydantic_utils.py +16 -2
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/src/nova/mvvm/trame_binding/binding.py +5 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/tests/model.py +16 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/tests/test_trame_bindings.py +20 -1
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/.copier-answers.yml +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/.dockerignore +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/.github/workflows/build-test.yml +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/.github/workflows/nova-mvvm.yml +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/.gitignore +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/.pre-commit-config.yaml +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/.readthedocs.yml +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/.vscode/extensions.json +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/.vscode/launch.json +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/.vscode/settings.json +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/CODE_OF_CONDUCT.md +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/CONTRIBUTING.md +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/DEVELOPMENT.MD +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/LICENSE +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/README.md +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/build_docs.sh +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/dockerfiles/Dockerfile +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/docs/api_reference.rst +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/docs/conf.py +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/docs/core_concepts/data_binding.rst +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/docs/core_concepts/index.rst +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/docs/core_concepts/mvvm.png +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/docs/core_concepts/mvvm.rst +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/docs/core_concepts/pydantic.rst +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/docs/examples/basic_usage.rst +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/docs/examples/index.rst +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/docs/index.rst +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/docs/installation.rst +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/docs/interface.rst +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/src/nova/__init__.py +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/src/nova/mvvm/__init__.py +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/src/nova/mvvm/_internal/pyqt_communicator.py +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/src/nova/mvvm/_internal/utils.py +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/src/nova/mvvm/bindings_map.py +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/src/nova/mvvm/interface.py +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/src/nova/mvvm/panel_binding/__init__.py +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/src/nova/mvvm/panel_binding/binding.py +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/src/nova/mvvm/pyqt5_binding/__init__.py +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/src/nova/mvvm/pyqt5_binding/binding.py +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/src/nova/mvvm/pyqt5_binding/pyqt5_worker.py +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/src/nova/mvvm/pyqt6_binding/__init__.py +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/src/nova/mvvm/pyqt6_binding/binding.py +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/src/nova/mvvm/pyqt6_binding/pyqt6_worker.py +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/src/nova/mvvm/trame_binding/__init__.py +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/src/nova/mvvm/trame_binding/trame_worker.py +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/tests/__init__.py +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/tests/test_panel_bindings.py +0 -0
- {nova_mvvm-0.15.0 → nova_mvvm-0.16.0}/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.
|
|
3
|
+
Version: 0.16.0
|
|
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
|
|
@@ -42,7 +42,7 @@ environments:
|
|
|
42
42
|
- pypi: https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl
|
|
43
43
|
- pypi: https://files.pythonhosted.org/packages/38/0e/27be9fdef66e72d64c0cdc3cc2823101b80585f8119b5c112c2e8f5f7dab/anyio-4.12.1-py3-none-any.whl
|
|
44
44
|
- pypi: https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl
|
|
45
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
45
|
+
- pypi: https://files.pythonhosted.org/packages/77/f5/21d2de20e8b8b0408f0681956ca2c69f1320a3848ac50e6e7f39c6159675/babel-2.18.0-py3-none-any.whl
|
|
46
46
|
- pypi: https://files.pythonhosted.org/packages/82/a2/ac67e79e137eb98aead66c7162bafe3cffcb82ef9cdeb6367ec18d88fbce/backports_zstd-1.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
|
|
47
47
|
- pypi: https://files.pythonhosted.org/packages/cd/3a/577b549de0cc09d95f11087ee63c739bba856cd3952697eec4c4bb91350a/bleach-6.3.0-py3-none-any.whl
|
|
48
48
|
- pypi: https://files.pythonhosted.org/packages/f6/a8/877f306720bc114c612579c5af36bcb359026b83d051226945499b306b1a/bokeh-3.8.2-py3-none-any.whl
|
|
@@ -54,8 +54,8 @@ environments:
|
|
|
54
54
|
- pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl
|
|
55
55
|
- pypi: https://files.pythonhosted.org/packages/4b/32/e0f13a1c5b0f8572d0ec6ae2f6c677b7991fafd95da523159c19eff0696a/contourpy-1.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
|
|
56
56
|
- pypi: https://files.pythonhosted.org/packages/b8/01/74922a1c552137c05a41fee0c61153753dddc9117d19c7c5902c146c25ab/copier-9.11.3-py3-none-any.whl
|
|
57
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
58
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
57
|
+
- pypi: https://files.pythonhosted.org/packages/6f/99/97b600225fbf631e6f5bfd3ad5bcaf87fbb9e34ff87492e5a572ff01bbe2/coverage-7.13.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
|
|
58
|
+
- pypi: https://files.pythonhosted.org/packages/2b/08/f83e2e0814248b844265802d081f2fac2f1cbe6cd258e72ba14ff006823a/cryptography-46.0.4-cp311-abi3-manylinux_2_28_x86_64.whl
|
|
59
59
|
- pypi: https://files.pythonhosted.org/packages/f7/e6/efe534ef0952b531b630780e19cabd416e2032697019d5295defc6ef9bd9/deepdiff-8.6.1-py3-none-any.whl
|
|
60
60
|
- pypi: https://files.pythonhosted.org/packages/33/6b/e0547afaf41bf2c42e52430072fa5658766e3d65bd4b03a563d1b6336f57/distlib-0.4.0-py2.py3-none-any.whl
|
|
61
61
|
- pypi: https://files.pythonhosted.org/packages/02/10/5da547df7a391dcde17f59520a231527b8571e6f46fc8efb02ccb370ab12/docutils-0.22.4-py3-none-any.whl
|
|
@@ -92,15 +92,15 @@ environments:
|
|
|
92
92
|
- pypi: https://files.pythonhosted.org/packages/b0/73/6e1b01cbeb458807aa0831742232dbdd1fa92bfa33f52a3f176b4ff3dc11/multidict-6.7.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
|
|
93
93
|
- pypi: https://files.pythonhosted.org/packages/d1/32/dd260d52babf67bad8e6770f8e1102021877ce0edea106e72df5626bb0ec/mypy-1.19.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
|
|
94
94
|
- pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl
|
|
95
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
95
|
+
- pypi: https://files.pythonhosted.org/packages/03/cc/7cb74758e6df95e0c4e1253f203b6dd7f348bf2f29cf89e9210a2416d535/narwhals-2.16.0-py3-none-any.whl
|
|
96
96
|
- pypi: https://files.pythonhosted.org/packages/88/b2/d0896bdcdc8d28a7fc5717c305f1a861c26e18c05047949fb371034d98bd/nodeenv-1.10.0-py2.py3-none-any.whl
|
|
97
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
97
|
+
- pypi: https://files.pythonhosted.org/packages/04/dc/46066ce18d01645541f0186877377b9371b8fa8017fa8262002b4ef22612/numpy-2.4.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
|
|
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/
|
|
101
|
+
- pypi: https://files.pythonhosted.org/packages/47/75/689e2ebb7fca5c7c67ce2e2a91538b66b75a3e27a7496aa9ed96c349b2a6/panel-1.8.7-py3-none-any.whl
|
|
102
102
|
- pypi: https://files.pythonhosted.org/packages/11/da/9d476e9aadfa854719f3cb917e3f7a170a657a182d8d1d6e546594a4872b/param-2.3.1-py3-none-any.whl
|
|
103
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
103
|
+
- pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl
|
|
104
104
|
- pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl
|
|
105
105
|
- pypi: https://files.pythonhosted.org/packages/01/9a/632e58ec89a32738cabfd9ec418f0e9898a2b4719afc581f07c04a05e3c9/pillow-12.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
|
|
106
106
|
- pypi: https://files.pythonhosted.org/packages/cb/28/3bfe2fa5a7b9c46fe7e13c97bda14c895fb10fa2ebf1d0abb90e0cea7ee1/platformdirs-4.5.1-py3-none-any.whl
|
|
@@ -130,7 +130,7 @@ environments:
|
|
|
130
130
|
- pypi: https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
|
|
131
131
|
- pypi: https://files.pythonhosted.org/packages/3c/26/1062c7ec1b053db9e499b4d2d5bc231743201b74051c973dadeac80a8f43/questionary-2.1.1-py3-none-any.whl
|
|
132
132
|
- pypi: https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl
|
|
133
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
133
|
+
- pypi: https://files.pythonhosted.org/packages/ef/45/615f5babd880b4bd7d405cc0dc348234c5ffb6ed1ea33e152ede08b2072d/rich-14.3.2-py3-none-any.whl
|
|
134
134
|
- pypi: https://files.pythonhosted.org/packages/04/54/6f679c435d28e0a568d8e8a7c0a93a09010818634c3c3907fc98d8983770/roman_numerals-4.1.0-py3-none-any.whl
|
|
135
135
|
- pypi: https://files.pythonhosted.org/packages/ee/79/6ad4dda2cfd55e41ac9ed6d73ef9ab9475b1eef69f3a85957210c74ba12c/ruff-0.14.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
|
|
136
136
|
- pypi: https://files.pythonhosted.org/packages/b7/46/f5af3402b579fd5e11573ce652019a67074317e18c1935cc0b4ba9b35552/secretstorage-3.5.0-py3-none-any.whl
|
|
@@ -151,7 +151,7 @@ environments:
|
|
|
151
151
|
- pypi: https://files.pythonhosted.org/packages/c7/18/c86eb8e0202e32dd3df50d43d7ff9854f8e0603945ff398974c1d91ac1ef/tomli_w-1.2.0-py3-none-any.whl
|
|
152
152
|
- pypi: https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814/tomlkit-0.14.0-py3-none-any.whl
|
|
153
153
|
- pypi: https://files.pythonhosted.org/packages/50/d4/e51d52047e7eb9a582da59f32125d17c0482d065afd5d3bc435ff2120dc5/tornado-6.5.4-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
|
|
154
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
154
|
+
- pypi: https://files.pythonhosted.org/packages/f5/e2/31eac96de2915cf20ccaed0225035db149dfb9165a9ed28d4b252ef3f7f7/tqdm-4.67.2-py3-none-any.whl
|
|
155
155
|
- pypi: https://files.pythonhosted.org/packages/70/15/5869b2c7556fce52306b6b65b06ec7c088f063b865cdfa75ad30bc229b7c/trame-3.12.0-py3-none-any.whl
|
|
156
156
|
- pypi: https://files.pythonhosted.org/packages/0f/3b/defac846c42dfaf27090d8294fbda0cbbeeb2e80b4b651841cc0e8f35d34/trame_client-3.11.2-py3-none-any.whl
|
|
157
157
|
- pypi: https://files.pythonhosted.org/packages/f4/69/daf207ff13168c454b984e3d90cbb5765cf3db43243bf6d69eae5c749ca1/trame_common-1.1.1-py3-none-any.whl
|
|
@@ -162,9 +162,9 @@ environments:
|
|
|
162
162
|
- pypi: https://files.pythonhosted.org/packages/37/87/1f677586e8ac487e29672e4b17455758fce261de06a0d086167bb760361a/uc_micro_py-1.0.3-py3-none-any.whl
|
|
163
163
|
- pypi: https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl
|
|
164
164
|
- pypi: https://files.pythonhosted.org/packages/43/99/3ec6335ded5b88c2f7ed25c56ffd952546f7ed007ffb1e1539dc3b57015a/userpath-1.9.2-py3-none-any.whl
|
|
165
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
165
|
+
- pypi: https://files.pythonhosted.org/packages/9a/fd/82561751105ed232f1781747bc336b20e8d57ee07b4d2ed3fa6cf2718d71/uv-0.9.28-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
|
|
166
166
|
- pypi: https://files.pythonhosted.org/packages/6a/2a/dc2228b2888f51192c7dc766106cd475f1b768c10caaf9727659726f7391/virtualenv-20.36.1-py3-none-any.whl
|
|
167
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
167
|
+
- pypi: https://files.pythonhosted.org/packages/3c/c1/d73f12f8cdb1891334a2ccf7389eed244d3941e74d80dd220badb937f3fb/wcwidth-0.5.3-py3-none-any.whl
|
|
168
168
|
- pypi: https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl
|
|
169
169
|
- pypi: https://files.pythonhosted.org/packages/a2/33/44baf508511b036e455693cd874088f622b8f68e61415e92581a3ffdbbee/wslink-2.5.0-py3-none-any.whl
|
|
170
170
|
- pypi: https://files.pythonhosted.org/packages/ef/5c/2c189d18d495dd0fa3f27ccc60762bbc787eed95b9b0147266e72bb76585/xyzservices-2025.11.0-py3-none-any.whl
|
|
@@ -193,7 +193,7 @@ environments:
|
|
|
193
193
|
- pypi: https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl
|
|
194
194
|
- pypi: https://files.pythonhosted.org/packages/38/0e/27be9fdef66e72d64c0cdc3cc2823101b80585f8119b5c112c2e8f5f7dab/anyio-4.12.1-py3-none-any.whl
|
|
195
195
|
- pypi: https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl
|
|
196
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
196
|
+
- pypi: https://files.pythonhosted.org/packages/77/f5/21d2de20e8b8b0408f0681956ca2c69f1320a3848ac50e6e7f39c6159675/babel-2.18.0-py3-none-any.whl
|
|
197
197
|
- pypi: https://files.pythonhosted.org/packages/0c/7d/53e8da5950cdfc5e8fe23efd5165ce2f4fed5222f9a3292e0cdb03dd8c0d/backports_zstd-1.3.0-cp313-cp313-macosx_10_13_x86_64.whl
|
|
198
198
|
- pypi: https://files.pythonhosted.org/packages/cd/3a/577b549de0cc09d95f11087ee63c739bba856cd3952697eec4c4bb91350a/bleach-6.3.0-py3-none-any.whl
|
|
199
199
|
- pypi: https://files.pythonhosted.org/packages/f6/a8/877f306720bc114c612579c5af36bcb359026b83d051226945499b306b1a/bokeh-3.8.2-py3-none-any.whl
|
|
@@ -204,7 +204,7 @@ environments:
|
|
|
204
204
|
- pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl
|
|
205
205
|
- pypi: https://files.pythonhosted.org/packages/68/35/0167aad910bbdb9599272bd96d01a9ec6852f36b9455cf2ca67bd4cc2d23/contourpy-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl
|
|
206
206
|
- pypi: https://files.pythonhosted.org/packages/b8/01/74922a1c552137c05a41fee0c61153753dddc9117d19c7c5902c146c25ab/copier-9.11.3-py3-none-any.whl
|
|
207
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
207
|
+
- pypi: https://files.pythonhosted.org/packages/81/f3/4c333da7b373e8c8bfb62517e8174a01dcc373d7a9083698e3b39d50d59c/coverage-7.13.3-cp313-cp313-macosx_10_13_x86_64.whl
|
|
208
208
|
- pypi: https://files.pythonhosted.org/packages/f7/e6/efe534ef0952b531b630780e19cabd416e2032697019d5295defc6ef9bd9/deepdiff-8.6.1-py3-none-any.whl
|
|
209
209
|
- pypi: https://files.pythonhosted.org/packages/33/6b/e0547afaf41bf2c42e52430072fa5658766e3d65bd4b03a563d1b6336f57/distlib-0.4.0-py2.py3-none-any.whl
|
|
210
210
|
- pypi: https://files.pythonhosted.org/packages/02/10/5da547df7a391dcde17f59520a231527b8571e6f46fc8efb02ccb370ab12/docutils-0.22.4-py3-none-any.whl
|
|
@@ -240,15 +240,15 @@ environments:
|
|
|
240
240
|
- pypi: https://files.pythonhosted.org/packages/c7/75/bc704ae15fee974f8fccd871305e254754167dce5f9e42d88a2def741a1d/multidict-6.7.1-cp313-cp313-macosx_10_13_x86_64.whl
|
|
241
241
|
- pypi: https://files.pythonhosted.org/packages/de/9f/a6abae693f7a0c697dbb435aac52e958dc8da44e92e08ba88d2e42326176/mypy-1.19.1-cp313-cp313-macosx_10_13_x86_64.whl
|
|
242
242
|
- pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl
|
|
243
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
243
|
+
- pypi: https://files.pythonhosted.org/packages/03/cc/7cb74758e6df95e0c4e1253f203b6dd7f348bf2f29cf89e9210a2416d535/narwhals-2.16.0-py3-none-any.whl
|
|
244
244
|
- pypi: https://files.pythonhosted.org/packages/88/b2/d0896bdcdc8d28a7fc5717c305f1a861c26e18c05047949fb371034d98bd/nodeenv-1.10.0-py2.py3-none-any.whl
|
|
245
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
245
|
+
- pypi: https://files.pythonhosted.org/packages/a1/22/815b9fe25d1d7ae7d492152adbc7226d3eff731dffc38fe970589fcaaa38/numpy-2.4.2-cp313-cp313-macosx_10_13_x86_64.whl
|
|
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/
|
|
249
|
+
- pypi: https://files.pythonhosted.org/packages/47/75/689e2ebb7fca5c7c67ce2e2a91538b66b75a3e27a7496aa9ed96c349b2a6/panel-1.8.7-py3-none-any.whl
|
|
250
250
|
- pypi: https://files.pythonhosted.org/packages/11/da/9d476e9aadfa854719f3cb917e3f7a170a657a182d8d1d6e546594a4872b/param-2.3.1-py3-none-any.whl
|
|
251
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
251
|
+
- pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl
|
|
252
252
|
- pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl
|
|
253
253
|
- pypi: https://files.pythonhosted.org/packages/4f/bf/28ab865de622e14b747f0cd7877510848252d950e43002e224fb1c9ababf/pillow-12.1.0-cp313-cp313-macosx_10_13_x86_64.whl
|
|
254
254
|
- pypi: https://files.pythonhosted.org/packages/cb/28/3bfe2fa5a7b9c46fe7e13c97bda14c895fb10fa2ebf1d0abb90e0cea7ee1/platformdirs-4.5.1-py3-none-any.whl
|
|
@@ -267,7 +267,7 @@ environments:
|
|
|
267
267
|
- pypi: https://files.pythonhosted.org/packages/46/90/bf01ac2132400997a3474051dd680a583381ebf98b2f5d64d4e54138dc42/pyqt5_qt5-5.15.18-py3-none-macosx_10_13_x86_64.whl
|
|
268
268
|
- pypi: https://files.pythonhosted.org/packages/79/67/8d43d0fea10ff48ddecc8534aead8b855dc80df80653b8b1bf9e1f993063/pyqt5_sip-12.18.0-cp313-cp313-macosx_10_13_universal2.whl
|
|
269
269
|
- pypi: https://files.pythonhosted.org/packages/fb/3f/f073a980969aa485ef288eb2e3b94c223ba9c7ac9941543f19b51659b98d/pyqt6-6.10.2-cp39-abi3-macosx_10_14_universal2.whl
|
|
270
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
270
|
+
- pypi: https://files.pythonhosted.org/packages/9a/eb/f04d547d8ed9f20c7b246db4ef5d93b49cab4692009a10652ed0a8b9d2aa/pyqt6_qt6-6.10.2-py3-none-macosx_10_14_x86_64.whl
|
|
271
271
|
- pypi: https://files.pythonhosted.org/packages/df/a0/46abcae4fce175a326185460a02c13ab81332bca7dd55c1e853ba6aee71e/pyqt6_sip-13.11.0-cp313-cp313-macosx_10_13_universal2.whl
|
|
272
272
|
- pypi: https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl
|
|
273
273
|
- pypi: https://files.pythonhosted.org/packages/e5/35/f8b19922b6a25bc0880171a2f1a003eaeb93657475193ab516fd87cac9da/pytest_asyncio-1.3.0-py3-none-any.whl
|
|
@@ -277,7 +277,7 @@ environments:
|
|
|
277
277
|
- pypi: https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl
|
|
278
278
|
- pypi: https://files.pythonhosted.org/packages/3c/26/1062c7ec1b053db9e499b4d2d5bc231743201b74051c973dadeac80a8f43/questionary-2.1.1-py3-none-any.whl
|
|
279
279
|
- pypi: https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl
|
|
280
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
280
|
+
- pypi: https://files.pythonhosted.org/packages/ef/45/615f5babd880b4bd7d405cc0dc348234c5ffb6ed1ea33e152ede08b2072d/rich-14.3.2-py3-none-any.whl
|
|
281
281
|
- pypi: https://files.pythonhosted.org/packages/04/54/6f679c435d28e0a568d8e8a7c0a93a09010818634c3c3907fc98d8983770/roman_numerals-4.1.0-py3-none-any.whl
|
|
282
282
|
- pypi: https://files.pythonhosted.org/packages/46/c8/09b3ab245d8652eafe5256ab59718641429f68681ee713ff06c5c549f156/ruff-0.14.4-py3-none-macosx_10_12_x86_64.whl
|
|
283
283
|
- pypi: https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl
|
|
@@ -297,7 +297,7 @@ environments:
|
|
|
297
297
|
- pypi: https://files.pythonhosted.org/packages/c7/18/c86eb8e0202e32dd3df50d43d7ff9854f8e0603945ff398974c1d91ac1ef/tomli_w-1.2.0-py3-none-any.whl
|
|
298
298
|
- pypi: https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814/tomlkit-0.14.0-py3-none-any.whl
|
|
299
299
|
- pypi: https://files.pythonhosted.org/packages/db/7e/f7b8d8c4453f305a51f80dbb49014257bb7d28ccb4bbb8dd328ea995ecad/tornado-6.5.4-cp39-abi3-macosx_10_9_x86_64.whl
|
|
300
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
300
|
+
- pypi: https://files.pythonhosted.org/packages/f5/e2/31eac96de2915cf20ccaed0225035db149dfb9165a9ed28d4b252ef3f7f7/tqdm-4.67.2-py3-none-any.whl
|
|
301
301
|
- pypi: https://files.pythonhosted.org/packages/70/15/5869b2c7556fce52306b6b65b06ec7c088f063b865cdfa75ad30bc229b7c/trame-3.12.0-py3-none-any.whl
|
|
302
302
|
- pypi: https://files.pythonhosted.org/packages/0f/3b/defac846c42dfaf27090d8294fbda0cbbeeb2e80b4b651841cc0e8f35d34/trame_client-3.11.2-py3-none-any.whl
|
|
303
303
|
- pypi: https://files.pythonhosted.org/packages/f4/69/daf207ff13168c454b984e3d90cbb5765cf3db43243bf6d69eae5c749ca1/trame_common-1.1.1-py3-none-any.whl
|
|
@@ -308,9 +308,9 @@ environments:
|
|
|
308
308
|
- pypi: https://files.pythonhosted.org/packages/37/87/1f677586e8ac487e29672e4b17455758fce261de06a0d086167bb760361a/uc_micro_py-1.0.3-py3-none-any.whl
|
|
309
309
|
- pypi: https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl
|
|
310
310
|
- pypi: https://files.pythonhosted.org/packages/43/99/3ec6335ded5b88c2f7ed25c56ffd952546f7ed007ffb1e1539dc3b57015a/userpath-1.9.2-py3-none-any.whl
|
|
311
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
311
|
+
- pypi: https://files.pythonhosted.org/packages/f0/ed/77294752bf722e1d6b666bd6592b6ac975dabcf1fde49e98a75cac23d45c/uv-0.9.28-py3-none-macosx_10_12_x86_64.whl
|
|
312
312
|
- pypi: https://files.pythonhosted.org/packages/6a/2a/dc2228b2888f51192c7dc766106cd475f1b768c10caaf9727659726f7391/virtualenv-20.36.1-py3-none-any.whl
|
|
313
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
313
|
+
- pypi: https://files.pythonhosted.org/packages/3c/c1/d73f12f8cdb1891334a2ccf7389eed244d3941e74d80dd220badb937f3fb/wcwidth-0.5.3-py3-none-any.whl
|
|
314
314
|
- pypi: https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl
|
|
315
315
|
- pypi: https://files.pythonhosted.org/packages/a2/33/44baf508511b036e455693cd874088f622b8f68e61415e92581a3ffdbbee/wslink-2.5.0-py3-none-any.whl
|
|
316
316
|
- pypi: https://files.pythonhosted.org/packages/ef/5c/2c189d18d495dd0fa3f27ccc60762bbc787eed95b9b0147266e72bb76585/xyzservices-2025.11.0-py3-none-any.whl
|
|
@@ -361,7 +361,7 @@ environments:
|
|
|
361
361
|
- pypi: https://files.pythonhosted.org/packages/e6/ad/3cc14f097111b4de0040c83a525973216457bbeeb63739ef1ed275c1c021/certifi-2026.1.4-py3-none-any.whl
|
|
362
362
|
- pypi: https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
|
|
363
363
|
- pypi: https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl
|
|
364
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
364
|
+
- pypi: https://files.pythonhosted.org/packages/2b/08/f83e2e0814248b844265802d081f2fac2f1cbe6cd258e72ba14ff006823a/cryptography-46.0.4-cp311-abi3-manylinux_2_28_x86_64.whl
|
|
365
365
|
- pypi: https://files.pythonhosted.org/packages/f7/e6/efe534ef0952b531b630780e19cabd416e2032697019d5295defc6ef9bd9/deepdiff-8.6.1-py3-none-any.whl
|
|
366
366
|
- pypi: https://files.pythonhosted.org/packages/33/6b/e0547afaf41bf2c42e52430072fa5658766e3d65bd4b03a563d1b6336f57/distlib-0.4.0-py2.py3-none-any.whl
|
|
367
367
|
- pypi: https://files.pythonhosted.org/packages/b5/36/7fb70f04bf00bc646cd5bb45aa9eddb15e19437a28b8fb2b4a5249fac770/filelock-3.20.3-py3-none-any.whl
|
|
@@ -385,7 +385,7 @@ environments:
|
|
|
385
385
|
- pypi: https://files.pythonhosted.org/packages/b0/73/6e1b01cbeb458807aa0831742232dbdd1fa92bfa33f52a3f176b4ff3dc11/multidict-6.7.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
|
|
386
386
|
- pypi: https://files.pythonhosted.org/packages/12/27/fb8d7338b4d551900fa3e580acbe7a0cf655d940e164cb5c00ec31961094/orderly_set-5.5.0-py3-none-any.whl
|
|
387
387
|
- pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl
|
|
388
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
388
|
+
- pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl
|
|
389
389
|
- pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl
|
|
390
390
|
- pypi: https://files.pythonhosted.org/packages/cb/28/3bfe2fa5a7b9c46fe7e13c97bda14c895fb10fa2ebf1d0abb90e0cea7ee1/platformdirs-4.5.1-py3-none-any.whl
|
|
391
391
|
- pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl
|
|
@@ -397,7 +397,7 @@ environments:
|
|
|
397
397
|
- pypi: https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl
|
|
398
398
|
- pypi: https://files.pythonhosted.org/packages/bd/24/12818598c362d7f300f18e74db45963dbcb85150324092410c8b49405e42/pyproject_hooks-1.2.0-py3-none-any.whl
|
|
399
399
|
- pypi: https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
|
|
400
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
400
|
+
- pypi: https://files.pythonhosted.org/packages/ef/45/615f5babd880b4bd7d405cc0dc348234c5ffb6ed1ea33e152ede08b2072d/rich-14.3.2-py3-none-any.whl
|
|
401
401
|
- pypi: https://files.pythonhosted.org/packages/b7/46/f5af3402b579fd5e11573ce652019a67074317e18c1935cc0b4ba9b35552/secretstorage-3.5.0-py3-none-any.whl
|
|
402
402
|
- pypi: https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl
|
|
403
403
|
- pypi: https://files.pythonhosted.org/packages/c7/18/c86eb8e0202e32dd3df50d43d7ff9854f8e0603945ff398974c1d91ac1ef/tomli_w-1.2.0-py3-none-any.whl
|
|
@@ -410,7 +410,7 @@ environments:
|
|
|
410
410
|
- pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl
|
|
411
411
|
- pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl
|
|
412
412
|
- pypi: https://files.pythonhosted.org/packages/43/99/3ec6335ded5b88c2f7ed25c56ffd952546f7ed007ffb1e1539dc3b57015a/userpath-1.9.2-py3-none-any.whl
|
|
413
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
413
|
+
- pypi: https://files.pythonhosted.org/packages/9a/fd/82561751105ed232f1781747bc336b20e8d57ee07b4d2ed3fa6cf2718d71/uv-0.9.28-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
|
|
414
414
|
- pypi: https://files.pythonhosted.org/packages/6a/2a/dc2228b2888f51192c7dc766106cd475f1b768c10caaf9727659726f7391/virtualenv-20.36.1-py3-none-any.whl
|
|
415
415
|
- pypi: https://files.pythonhosted.org/packages/a2/33/44baf508511b036e455693cd874088f622b8f68e61415e92581a3ffdbbee/wslink-2.5.0-py3-none-any.whl
|
|
416
416
|
- pypi: https://files.pythonhosted.org/packages/11/c9/cd8538dc2e7727095e0c1d867bad1e40c98f37763e6d995c1939f5fdc7b1/yarl-1.22.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
|
|
@@ -462,7 +462,7 @@ environments:
|
|
|
462
462
|
- pypi: https://files.pythonhosted.org/packages/c7/75/bc704ae15fee974f8fccd871305e254754167dce5f9e42d88a2def741a1d/multidict-6.7.1-cp313-cp313-macosx_10_13_x86_64.whl
|
|
463
463
|
- pypi: https://files.pythonhosted.org/packages/12/27/fb8d7338b4d551900fa3e580acbe7a0cf655d940e164cb5c00ec31961094/orderly_set-5.5.0-py3-none-any.whl
|
|
464
464
|
- pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl
|
|
465
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
465
|
+
- pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl
|
|
466
466
|
- pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl
|
|
467
467
|
- pypi: https://files.pythonhosted.org/packages/cb/28/3bfe2fa5a7b9c46fe7e13c97bda14c895fb10fa2ebf1d0abb90e0cea7ee1/platformdirs-4.5.1-py3-none-any.whl
|
|
468
468
|
- pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl
|
|
@@ -473,7 +473,7 @@ environments:
|
|
|
473
473
|
- pypi: https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl
|
|
474
474
|
- pypi: https://files.pythonhosted.org/packages/bd/24/12818598c362d7f300f18e74db45963dbcb85150324092410c8b49405e42/pyproject_hooks-1.2.0-py3-none-any.whl
|
|
475
475
|
- pypi: https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl
|
|
476
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
476
|
+
- pypi: https://files.pythonhosted.org/packages/ef/45/615f5babd880b4bd7d405cc0dc348234c5ffb6ed1ea33e152ede08b2072d/rich-14.3.2-py3-none-any.whl
|
|
477
477
|
- pypi: https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl
|
|
478
478
|
- pypi: https://files.pythonhosted.org/packages/c7/18/c86eb8e0202e32dd3df50d43d7ff9854f8e0603945ff398974c1d91ac1ef/tomli_w-1.2.0-py3-none-any.whl
|
|
479
479
|
- pypi: https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814/tomlkit-0.14.0-py3-none-any.whl
|
|
@@ -485,7 +485,7 @@ environments:
|
|
|
485
485
|
- pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl
|
|
486
486
|
- pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl
|
|
487
487
|
- pypi: https://files.pythonhosted.org/packages/43/99/3ec6335ded5b88c2f7ed25c56ffd952546f7ed007ffb1e1539dc3b57015a/userpath-1.9.2-py3-none-any.whl
|
|
488
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
488
|
+
- pypi: https://files.pythonhosted.org/packages/f0/ed/77294752bf722e1d6b666bd6592b6ac975dabcf1fde49e98a75cac23d45c/uv-0.9.28-py3-none-macosx_10_12_x86_64.whl
|
|
489
489
|
- pypi: https://files.pythonhosted.org/packages/6a/2a/dc2228b2888f51192c7dc766106cd475f1b768c10caaf9727659726f7391/virtualenv-20.36.1-py3-none-any.whl
|
|
490
490
|
- pypi: https://files.pythonhosted.org/packages/a2/33/44baf508511b036e455693cd874088f622b8f68e61415e92581a3ffdbbee/wslink-2.5.0-py3-none-any.whl
|
|
491
491
|
- pypi: https://files.pythonhosted.org/packages/01/88/04d98af0b47e0ef42597b9b28863b9060bb515524da0a65d5f4db160b2d5/yarl-1.22.0-cp313-cp313-macosx_10_13_x86_64.whl
|
|
@@ -589,10 +589,10 @@ packages:
|
|
|
589
589
|
version: 25.4.0
|
|
590
590
|
sha256: adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373
|
|
591
591
|
requires_python: '>=3.9'
|
|
592
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
592
|
+
- pypi: https://files.pythonhosted.org/packages/77/f5/21d2de20e8b8b0408f0681956ca2c69f1320a3848ac50e6e7f39c6159675/babel-2.18.0-py3-none-any.whl
|
|
593
593
|
name: babel
|
|
594
|
-
version: 2.
|
|
595
|
-
sha256:
|
|
594
|
+
version: 2.18.0
|
|
595
|
+
sha256: e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35
|
|
596
596
|
requires_dist:
|
|
597
597
|
- pytz>=2015.7 ; python_full_version < '3.9'
|
|
598
598
|
- tzdata ; sys_platform == 'win32' and extra == 'dev'
|
|
@@ -777,31 +777,31 @@ packages:
|
|
|
777
777
|
- questionary>=1.8.1
|
|
778
778
|
- typing-extensions>=4.0.0,<5.0.0 ; python_full_version < '3.11'
|
|
779
779
|
requires_python: '>=3.10'
|
|
780
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
780
|
+
- pypi: https://files.pythonhosted.org/packages/6f/99/97b600225fbf631e6f5bfd3ad5bcaf87fbb9e34ff87492e5a572ff01bbe2/coverage-7.13.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
|
|
781
781
|
name: coverage
|
|
782
|
-
version: 7.13.
|
|
783
|
-
sha256:
|
|
782
|
+
version: 7.13.3
|
|
783
|
+
sha256: 16d23d6579cf80a474ad160ca14d8b319abaa6db62759d6eef53b2fc979b58c8
|
|
784
784
|
requires_dist:
|
|
785
785
|
- tomli ; python_full_version <= '3.11' and extra == 'toml'
|
|
786
786
|
requires_python: '>=3.10'
|
|
787
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
787
|
+
- pypi: https://files.pythonhosted.org/packages/81/f3/4c333da7b373e8c8bfb62517e8174a01dcc373d7a9083698e3b39d50d59c/coverage-7.13.3-cp313-cp313-macosx_10_13_x86_64.whl
|
|
788
788
|
name: coverage
|
|
789
|
-
version: 7.13.
|
|
790
|
-
sha256:
|
|
789
|
+
version: 7.13.3
|
|
790
|
+
sha256: 853c3d3c79ff0db65797aad79dee6be020efd218ac4510f15a205f1e8d13ce25
|
|
791
791
|
requires_dist:
|
|
792
792
|
- tomli ; python_full_version <= '3.11' and extra == 'toml'
|
|
793
793
|
requires_python: '>=3.10'
|
|
794
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
794
|
+
- pypi: https://files.pythonhosted.org/packages/2b/08/f83e2e0814248b844265802d081f2fac2f1cbe6cd258e72ba14ff006823a/cryptography-46.0.4-cp311-abi3-manylinux_2_28_x86_64.whl
|
|
795
795
|
name: cryptography
|
|
796
|
-
version: 46.0.
|
|
797
|
-
sha256:
|
|
796
|
+
version: 46.0.4
|
|
797
|
+
sha256: 0a9ad24359fee86f131836a9ac3bffc9329e956624a2d379b613f8f8abaf5255
|
|
798
798
|
requires_dist:
|
|
799
799
|
- cffi>=1.14 ; python_full_version == '3.8.*' and platform_python_implementation != 'PyPy'
|
|
800
800
|
- cffi>=2.0.0 ; python_full_version >= '3.9' and platform_python_implementation != 'PyPy'
|
|
801
801
|
- typing-extensions>=4.13.2 ; python_full_version < '3.11'
|
|
802
802
|
- bcrypt>=3.1.5 ; extra == 'ssh'
|
|
803
803
|
- nox[uv]>=2024.4.15 ; extra == 'nox'
|
|
804
|
-
- cryptography-vectors==46.0.
|
|
804
|
+
- cryptography-vectors==46.0.4 ; extra == 'test'
|
|
805
805
|
- pytest>=7.4.0 ; extra == 'test'
|
|
806
806
|
- pytest-benchmark>=4.0 ; extra == 'test'
|
|
807
807
|
- pytest-cov>=2.10.1 ; extra == 'test'
|
|
@@ -1519,12 +1519,12 @@ packages:
|
|
|
1519
1519
|
version: 1.1.0
|
|
1520
1520
|
sha256: 1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505
|
|
1521
1521
|
requires_python: '>=3.8'
|
|
1522
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
1522
|
+
- pypi: https://files.pythonhosted.org/packages/03/cc/7cb74758e6df95e0c4e1253f203b6dd7f348bf2f29cf89e9210a2416d535/narwhals-2.16.0-py3-none-any.whl
|
|
1523
1523
|
name: narwhals
|
|
1524
|
-
version: 2.
|
|
1525
|
-
sha256:
|
|
1524
|
+
version: 2.16.0
|
|
1525
|
+
sha256: 846f1fd7093ac69d63526e50732033e86c30ea0026a44d9b23991010c7d1485d
|
|
1526
1526
|
requires_dist:
|
|
1527
|
-
- cudf>=24.10.0 ; extra == 'cudf'
|
|
1527
|
+
- cudf-cu12>=24.10.0 ; extra == 'cudf'
|
|
1528
1528
|
- dask[dataframe]>=2024.8 ; extra == 'dask'
|
|
1529
1529
|
- duckdb>=1.1 ; extra == 'duckdb'
|
|
1530
1530
|
- ibis-framework>=6.0.0 ; extra == 'ibis'
|
|
@@ -1537,6 +1537,8 @@ packages:
|
|
|
1537
1537
|
- pyarrow>=13.0.0 ; extra == 'pyarrow'
|
|
1538
1538
|
- pyspark>=3.5.0 ; extra == 'pyspark'
|
|
1539
1539
|
- pyspark[connect]>=3.5.0 ; extra == 'pyspark-connect'
|
|
1540
|
+
- duckdb>=1.1 ; extra == 'sql'
|
|
1541
|
+
- sqlparse ; extra == 'sql'
|
|
1540
1542
|
- sqlframe>=3.22.0,!=3.39.3 ; extra == 'sqlframe'
|
|
1541
1543
|
requires_python: '>=3.9'
|
|
1542
1544
|
- conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda
|
|
@@ -1565,8 +1567,8 @@ packages:
|
|
|
1565
1567
|
requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*'
|
|
1566
1568
|
- pypi: ./
|
|
1567
1569
|
name: nova-mvvm
|
|
1568
|
-
version: 0.
|
|
1569
|
-
sha256:
|
|
1570
|
+
version: 0.16.0
|
|
1571
|
+
sha256: 884aeeb063a23bf686d3ef56a1d2ac87a2877206c358e2ef9ce88a401a419f5c
|
|
1570
1572
|
requires_dist:
|
|
1571
1573
|
- trame
|
|
1572
1574
|
- deepdiff
|
|
@@ -1575,15 +1577,15 @@ packages:
|
|
|
1575
1577
|
- pyqt6 ; extra == 'pyqt6'
|
|
1576
1578
|
- panel ; extra == 'panel'
|
|
1577
1579
|
requires_python: '>=3.10,<3.14'
|
|
1578
|
-
- pypi: https://files.pythonhosted.org/packages/04/
|
|
1580
|
+
- pypi: https://files.pythonhosted.org/packages/04/dc/46066ce18d01645541f0186877377b9371b8fa8017fa8262002b4ef22612/numpy-2.4.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
|
|
1579
1581
|
name: numpy
|
|
1580
|
-
version: 2.4.
|
|
1581
|
-
sha256:
|
|
1582
|
+
version: 2.4.2
|
|
1583
|
+
sha256: d0d9b7c93578baafcbc5f0b83eaf17b79d345c6f36917ba0c67f45226911d499
|
|
1582
1584
|
requires_python: '>=3.11'
|
|
1583
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
1585
|
+
- pypi: https://files.pythonhosted.org/packages/a1/22/815b9fe25d1d7ae7d492152adbc7226d3eff731dffc38fe970589fcaaa38/numpy-2.4.2-cp313-cp313-macosx_10_13_x86_64.whl
|
|
1584
1586
|
name: numpy
|
|
1585
|
-
version: 2.4.
|
|
1586
|
-
sha256:
|
|
1587
|
+
version: 2.4.2
|
|
1588
|
+
sha256: 25f2059807faea4b077a2b6837391b5d830864b3543627f381821c646f31a63c
|
|
1587
1589
|
requires_python: '>=3.11'
|
|
1588
1590
|
- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.0-h26f9b46_0.conda
|
|
1589
1591
|
sha256: a47271202f4518a484956968335b2521409c8173e123ab381e775c358c67fe6d
|
|
@@ -1809,10 +1811,10 @@ packages:
|
|
|
1809
1811
|
- xlsxwriter>=3.2.0 ; extra == 'all'
|
|
1810
1812
|
- zstandard>=0.23.0 ; extra == 'all'
|
|
1811
1813
|
requires_python: '>=3.11'
|
|
1812
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
1814
|
+
- pypi: https://files.pythonhosted.org/packages/47/75/689e2ebb7fca5c7c67ce2e2a91538b66b75a3e27a7496aa9ed96c349b2a6/panel-1.8.7-py3-none-any.whl
|
|
1813
1815
|
name: panel
|
|
1814
|
-
version: 1.8.
|
|
1815
|
-
sha256:
|
|
1816
|
+
version: 1.8.7
|
|
1817
|
+
sha256: 6cc60a8b5497628a896b935706701ff9b640ed001f6a48d0bd67163938b546da
|
|
1816
1818
|
requires_dist:
|
|
1817
1819
|
- bleach
|
|
1818
1820
|
- bokeh>=3.7.0,<3.9.0
|
|
@@ -1918,10 +1920,10 @@ packages:
|
|
|
1918
1920
|
- nest-asyncio ; extra == 'tests-pypy'
|
|
1919
1921
|
- numpy ; extra == 'tests-pypy'
|
|
1920
1922
|
requires_python: '>=3.10'
|
|
1921
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
1923
|
+
- pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl
|
|
1922
1924
|
name: pathspec
|
|
1923
|
-
version: 1.0.
|
|
1924
|
-
sha256:
|
|
1925
|
+
version: 1.0.4
|
|
1926
|
+
sha256: fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723
|
|
1925
1927
|
requires_dist:
|
|
1926
1928
|
- hyperscan>=0.7 ; extra == 'hyperscan'
|
|
1927
1929
|
- typing-extensions>=4 ; extra == 'optional'
|
|
@@ -2169,10 +2171,10 @@ packages:
|
|
|
2169
2171
|
name: pyqt6-qt6
|
|
2170
2172
|
version: 6.9.2
|
|
2171
2173
|
sha256: 9abfc0ee4a8293a6442128ae3f87f68e82e2a949d7b9caabd98c86ba5679ab48
|
|
2172
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
2174
|
+
- pypi: https://files.pythonhosted.org/packages/9a/eb/f04d547d8ed9f20c7b246db4ef5d93b49cab4692009a10652ed0a8b9d2aa/pyqt6_qt6-6.10.2-py3-none-macosx_10_14_x86_64.whl
|
|
2173
2175
|
name: pyqt6-qt6
|
|
2174
|
-
version: 6.10.
|
|
2175
|
-
sha256:
|
|
2176
|
+
version: 6.10.2
|
|
2177
|
+
sha256: 5761cfccc721da2311c3f1213577f0ff1df07bbbbe3fa3a209a256b82cf057e3
|
|
2176
2178
|
- pypi: https://files.pythonhosted.org/packages/0e/38/27c3aa3f153fcd83a0765fedf8e44a1136f189a322bcc9c494c5b3793cd7/pyqt6_sip-13.11.0-cp313-cp313-manylinux1_x86_64.manylinux_2_5_x86_64.whl
|
|
2177
2179
|
name: pyqt6-sip
|
|
2178
2180
|
version: 13.11.0
|
|
@@ -2369,10 +2371,10 @@ packages:
|
|
|
2369
2371
|
- pysocks>=1.5.6,!=1.5.7 ; extra == 'socks'
|
|
2370
2372
|
- chardet>=3.0.2,<6 ; extra == 'use-chardet-on-py3'
|
|
2371
2373
|
requires_python: '>=3.9'
|
|
2372
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
2374
|
+
- pypi: https://files.pythonhosted.org/packages/ef/45/615f5babd880b4bd7d405cc0dc348234c5ffb6ed1ea33e152ede08b2072d/rich-14.3.2-py3-none-any.whl
|
|
2373
2375
|
name: rich
|
|
2374
|
-
version: 14.3.
|
|
2375
|
-
sha256:
|
|
2376
|
+
version: 14.3.2
|
|
2377
|
+
sha256: 08e67c3e90884651da3239ea668222d19bea7b589149d8014a21c633420dbb69
|
|
2376
2378
|
requires_dist:
|
|
2377
2379
|
- ipywidgets>=7.5.1,<9 ; extra == 'jupyter'
|
|
2378
2380
|
- markdown-it-py>=2.2.0
|
|
@@ -2585,10 +2587,10 @@ packages:
|
|
|
2585
2587
|
version: 6.5.4
|
|
2586
2588
|
sha256: 2d50f63dda1d2cac3ae1fa23d254e16b5e38153758470e9956cbc3d813d40843
|
|
2587
2589
|
requires_python: '>=3.9'
|
|
2588
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
2590
|
+
- pypi: https://files.pythonhosted.org/packages/f5/e2/31eac96de2915cf20ccaed0225035db149dfb9165a9ed28d4b252ef3f7f7/tqdm-4.67.2-py3-none-any.whl
|
|
2589
2591
|
name: tqdm
|
|
2590
|
-
version: 4.67.
|
|
2591
|
-
sha256:
|
|
2592
|
+
version: 4.67.2
|
|
2593
|
+
sha256: 9a12abcbbff58b6036b2167d9d3853042b9d436fe7330f06ae047867f2f8e0a7
|
|
2592
2594
|
requires_dist:
|
|
2593
2595
|
- colorama ; sys_platform == 'win32'
|
|
2594
2596
|
- pytest>=6 ; extra == 'dev'
|
|
@@ -2708,15 +2710,15 @@ packages:
|
|
|
2708
2710
|
requires_dist:
|
|
2709
2711
|
- click
|
|
2710
2712
|
requires_python: '>=3.7'
|
|
2711
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
2713
|
+
- pypi: https://files.pythonhosted.org/packages/9a/fd/82561751105ed232f1781747bc336b20e8d57ee07b4d2ed3fa6cf2718d71/uv-0.9.28-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
|
|
2712
2714
|
name: uv
|
|
2713
|
-
version: 0.9.
|
|
2714
|
-
sha256:
|
|
2715
|
+
version: 0.9.28
|
|
2716
|
+
sha256: 7b8460a2b624d8ab27cb293a2c9f2393f9efc4e36e0fb886a6c2360e23fb48be
|
|
2715
2717
|
requires_python: '>=3.8'
|
|
2716
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
2718
|
+
- pypi: https://files.pythonhosted.org/packages/f0/ed/77294752bf722e1d6b666bd6592b6ac975dabcf1fde49e98a75cac23d45c/uv-0.9.28-py3-none-macosx_10_12_x86_64.whl
|
|
2717
2719
|
name: uv
|
|
2718
|
-
version: 0.9.
|
|
2719
|
-
sha256:
|
|
2720
|
+
version: 0.9.28
|
|
2721
|
+
sha256: 3fe9aa2822d24f6ecec035a06dfdd1fbed570ed40b83a864e71714bad37ddfd3
|
|
2720
2722
|
requires_python: '>=3.8'
|
|
2721
2723
|
- pypi: https://files.pythonhosted.org/packages/6a/2a/dc2228b2888f51192c7dc766106cd475f1b768c10caaf9727659726f7391/virtualenv-20.36.1-py3-none-any.whl
|
|
2722
2724
|
name: virtualenv
|
|
@@ -2749,10 +2751,10 @@ packages:
|
|
|
2749
2751
|
- setuptools>=68 ; extra == 'test'
|
|
2750
2752
|
- time-machine>=2.10 ; platform_python_implementation == 'CPython' and extra == 'test'
|
|
2751
2753
|
requires_python: '>=3.8'
|
|
2752
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
2754
|
+
- pypi: https://files.pythonhosted.org/packages/3c/c1/d73f12f8cdb1891334a2ccf7389eed244d3941e74d80dd220badb937f3fb/wcwidth-0.5.3-py3-none-any.whl
|
|
2753
2755
|
name: wcwidth
|
|
2754
|
-
version: 0.
|
|
2755
|
-
sha256:
|
|
2756
|
+
version: 0.5.3
|
|
2757
|
+
sha256: d584eff31cd4753e1e5ff6c12e1edfdb324c995713f75d26c29807bb84bf649e
|
|
2756
2758
|
requires_python: '>=3.8'
|
|
2757
2759
|
- pypi: https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl
|
|
2758
2760
|
name: webencodings
|
|
@@ -75,10 +75,15 @@ def get_nested_pydantic_field(model: BaseModel, field_path: str) -> FieldInfo:
|
|
|
75
75
|
|
|
76
76
|
for field in fields:
|
|
77
77
|
if "[" in field:
|
|
78
|
+
original_model = current_model
|
|
78
79
|
base = field.split("[")[0]
|
|
79
80
|
current_model = getattr(current_model, base)
|
|
80
81
|
for _ in range(field.count("[")):
|
|
81
82
|
current_model = current_model[0]
|
|
83
|
+
# If the nested field we've found is not a Pydantic model, then it won't have any field information. In this
|
|
84
|
+
# case, we need to revert to returning the base field as it will instead contain field info.
|
|
85
|
+
if not issubclass(type(current_model), BaseModel):
|
|
86
|
+
return original_model.__class__.model_fields[base]
|
|
82
87
|
continue
|
|
83
88
|
if issubclass(type(getattr(current_model, field)), BaseModel):
|
|
84
89
|
current_model = getattr(current_model, field)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import logging
|
|
4
4
|
import re
|
|
5
|
-
from typing import Any
|
|
5
|
+
from typing import Any, List
|
|
6
6
|
|
|
7
7
|
from pydantic import ValidationError
|
|
8
8
|
from pydantic.fields import FieldInfo
|
|
@@ -83,10 +83,24 @@ def validate_pydantic_parameter(name: str, value: Any) -> str | bool:
|
|
|
83
83
|
else:
|
|
84
84
|
current_model = getattr(current_model, field)
|
|
85
85
|
final_field = fields[-1]
|
|
86
|
+
indices = []
|
|
87
|
+
if "[" in final_field:
|
|
88
|
+
# If the final field is nested, then we need to parse the base field name and all indices in order to modify it.
|
|
89
|
+
indices = re.findall(r"\[(\d+)\]", final_field)
|
|
90
|
+
indices = [int(num) for num in indices]
|
|
91
|
+
final_field = final_field.split("[")[0]
|
|
92
|
+
|
|
86
93
|
# copy model so we do not modify the current one
|
|
87
94
|
model = current_model.copy(deep=True)
|
|
88
95
|
# force set field value
|
|
89
|
-
|
|
96
|
+
if indices:
|
|
97
|
+
# Now we use the base field name and indices to modify the nested field.
|
|
98
|
+
target_field: List = getattr(model, final_field)
|
|
99
|
+
for i in indices[:-1]:
|
|
100
|
+
target_field = target_field[i]
|
|
101
|
+
target_field[indices[-1]] = value
|
|
102
|
+
else:
|
|
103
|
+
setattr(model, final_field, value)
|
|
90
104
|
# validate changed model
|
|
91
105
|
try:
|
|
92
106
|
model.__class__(**model.model_dump(warnings=False))
|
|
@@ -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
|
|
@@ -5,6 +5,22 @@ from typing import Any, List, Optional
|
|
|
5
5
|
from pydantic import BaseModel, Field, field_validator, model_validator
|
|
6
6
|
|
|
7
7
|
|
|
8
|
+
class NestedList(BaseModel):
|
|
9
|
+
"""A Pydantic model with a validation rule for a nested list."""
|
|
10
|
+
|
|
11
|
+
values: List[List[int]] = Field(default=[[0], [0], [0]], title="Set Less Than Zero For Error")
|
|
12
|
+
|
|
13
|
+
@field_validator("values", mode="after")
|
|
14
|
+
@classmethod
|
|
15
|
+
def validate_values(cls, values: List[List[int]]) -> List[List[int]]:
|
|
16
|
+
for inner_list in values:
|
|
17
|
+
for value in inner_list:
|
|
18
|
+
if value < 0:
|
|
19
|
+
raise ValueError("Value must be >= 0")
|
|
20
|
+
|
|
21
|
+
return values
|
|
22
|
+
|
|
23
|
+
|
|
8
24
|
class Range(BaseModel):
|
|
9
25
|
"""A Pydantic model for range with a model validation rule."""
|
|
10
26
|
|
|
@@ -15,7 +15,7 @@ from nova.mvvm.pydantic_utils import ERROR_FIELD_NAME
|
|
|
15
15
|
from nova.mvvm.trame_binding import TrameBinding
|
|
16
16
|
from nova.mvvm.trame_binding.trame_worker import ProgressCallback
|
|
17
17
|
|
|
18
|
-
from .model import Range, User
|
|
18
|
+
from .model import NestedList, Range, User
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
@pytest_asyncio.fixture(scope="function", autouse=True) # Default scope
|
|
@@ -167,6 +167,21 @@ async def test_binding_same_object(server: Server) -> None:
|
|
|
167
167
|
binding.connect("test_object1")
|
|
168
168
|
|
|
169
169
|
|
|
170
|
+
@pytest.mark.asyncio
|
|
171
|
+
async def test_binding_list_value(server: Server) -> None:
|
|
172
|
+
test_nested_list = NestedList()
|
|
173
|
+
|
|
174
|
+
binding = TrameBinding(server.state).new_bind(test_nested_list)
|
|
175
|
+
binding.connect("test_nested_list")
|
|
176
|
+
|
|
177
|
+
with server.state:
|
|
178
|
+
server.state.test_nested_list["values"][1][0] = -1
|
|
179
|
+
server.state.dirty("test_nested_list")
|
|
180
|
+
server.state.flush()
|
|
181
|
+
await asyncio.sleep(1)
|
|
182
|
+
assert server.state.test_nested_list["pydantic_errors"] == ["values"]
|
|
183
|
+
|
|
184
|
+
|
|
170
185
|
@pytest.mark.asyncio
|
|
171
186
|
async def test_binding_incorrect_value(server: Server) -> None:
|
|
172
187
|
test_range = Range()
|
|
@@ -193,6 +208,10 @@ async def test_binding_incorrect_value(server: Server) -> None:
|
|
|
193
208
|
await asyncio.sleep(1)
|
|
194
209
|
assert len(server.state.test_range[ERROR_FIELD_NAME]) == 1
|
|
195
210
|
|
|
211
|
+
binding3 = TrameBinding(server.state).new_bind([])
|
|
212
|
+
binding3.connect("test_non_pydantic")
|
|
213
|
+
binding3.update_in_view(["test"])
|
|
214
|
+
|
|
196
215
|
|
|
197
216
|
res = 0
|
|
198
217
|
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
|
|
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
|
|
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
|
|
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
|