dazpy 2.7.0__tar.gz → 2.7.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 (50) hide show
  1. {dazpy-2.7.0 → dazpy-2.7.1}/PKG-INFO +73 -3
  2. {dazpy-2.7.0 → dazpy-2.7.1}/README.md +72 -2
  3. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy.egg-info/PKG-INFO +73 -3
  4. {dazpy-2.7.0 → dazpy-2.7.1}/pyproject.toml +1 -1
  5. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/__init__.py +0 -0
  6. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_animation.py +0 -0
  7. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_batch.py +0 -0
  8. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_bone.py +0 -0
  9. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_camera.py +0 -0
  10. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_client.py +0 -0
  11. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_dforce.py +0 -0
  12. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_element.py +0 -0
  13. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_geometry.py +0 -0
  14. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_interaction.py +0 -0
  15. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_light.py +0 -0
  16. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_material.py +0 -0
  17. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_modifier.py +0 -0
  18. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_morph.py +0 -0
  19. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_node.py +0 -0
  20. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_polling.py +0 -0
  21. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_pose.py +0 -0
  22. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_property.py +0 -0
  23. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_render.py +0 -0
  24. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_render_api.py +0 -0
  25. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_result.py +0 -0
  26. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_scene.py +0 -0
  27. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_scene_events.py +0 -0
  28. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_scene_state.py +0 -0
  29. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_script_builder.py +0 -0
  30. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_skeleton.py +0 -0
  31. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_timeline.py +0 -0
  32. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_undo.py +0 -0
  33. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/_viewport.py +0 -0
  34. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/exceptions.py +0 -0
  35. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/math3.py +0 -0
  36. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy/py.typed +0 -0
  37. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy.egg-info/SOURCES.txt +0 -0
  38. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy.egg-info/dependency_links.txt +0 -0
  39. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy.egg-info/requires.txt +0 -0
  40. {dazpy-2.7.0 → dazpy-2.7.1}/dazpy.egg-info/top_level.txt +0 -0
  41. {dazpy-2.7.0 → dazpy-2.7.1}/setup.cfg +0 -0
  42. {dazpy-2.7.0 → dazpy-2.7.1}/tests/test_api.py +0 -0
  43. {dazpy-2.7.0 → dazpy-2.7.1}/tests/test_comfyui_client.py +0 -0
  44. {dazpy-2.7.0 → dazpy-2.7.1}/tests/test_comfyui_enhance_integration.py +0 -0
  45. {dazpy-2.7.0 → dazpy-2.7.1}/tests/test_dazpy.py +0 -0
  46. {dazpy-2.7.0 → dazpy-2.7.1}/tests/test_dazpy_integration.py +0 -0
  47. {dazpy-2.7.0 → dazpy-2.7.1}/tests/test_dsp_runner.py +0 -0
  48. {dazpy-2.7.0 → dazpy-2.7.1}/tests/test_file_watcher.py +0 -0
  49. {dazpy-2.7.0 → dazpy-2.7.1}/tests/test_performance.py +0 -0
  50. {dazpy-2.7.0 → dazpy-2.7.1}/tests/test_workflow_builder.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dazpy
3
- Version: 2.7.0
3
+ Version: 2.7.1
4
4
  Summary: Python SDK for the DAZ Studio Script Server
5
5
  License: MIT
6
6
  Project-URL: Homepage, https://github.com/bluemoonfoundry/daz-script-server
@@ -15,7 +15,7 @@ Requires-Dist: sphinx-rtd-theme>=2.0; extra == "docs"
15
15
 
16
16
  # DazScript Server
17
17
 
18
- **Version 2.6.0** | DAZ Studio 4.5+ | DAZ Studio 6.25+ | Windows & macOS
18
+ **Version 2.7.1** | DAZ Studio 4.5+ | DAZ Studio 6.25+ | Windows & macOS
19
19
 
20
20
  [![Docs](https://img.shields.io/badge/docs-dazpy%20SDK-blue)](https://bluemoonfoundry.github.io/daz-script-server/)
21
21
  [![HTTP API](https://img.shields.io/badge/docs-HTTP%20API%20reference-blue)](https://bluemoonfoundry.github.io/daz-script-server/api-reference/)
@@ -83,6 +83,8 @@ print(response.json())
83
83
  ### Getting Started
84
84
  - [Quick Start](#-quick-start)
85
85
  - [Why This Exists](#why-this-exists)
86
+ - [What's New in v2.7.1](#whats-new-in-v271)
87
+ - [What's New in v2.7.0](#whats-new-in-v270)
86
88
  - [What's New in v2.6.0](#whats-new-in-v260)
87
89
  - [What's New in v2.5.0](#whats-new-in-v250)
88
90
  - [What's New in v2.4.0](#whats-new-in-v240)
@@ -166,6 +168,74 @@ DAZ Studio is powerful for 3D content creation, but automation is limited to man
166
168
 
167
169
  ---
168
170
 
171
+ ## What's New in v2.7.1
172
+
173
+ No functional changes. Republished to fix a stale PyPI package description —
174
+ the `2.7.0` wheel was uploaded to PyPI before the README fixes below (in
175
+ "What's New in v2.7.0") had landed, and PyPI has no way to update an
176
+ already-published version's metadata. `2.7.1`'s code is identical to
177
+ `2.7.0`'s.
178
+
179
+ ---
180
+
181
+ ## What's New in v2.7.0
182
+
183
+ ### 🖼️ Iray Canvas Support — `DazRenderSettings`
184
+
185
+ Enumerate, create, and remove Iray Canvases (normal/depth/material-ID/etc.
186
+ render passes) and resolve their output file paths for a given render:
187
+
188
+ ```python
189
+ from dazpy import DazClient, DazRenderSettings
190
+
191
+ client = DazClient()
192
+ rs = DazRenderSettings(client)
193
+
194
+ rs.add_canvas("Depth")
195
+ print(rs.list_canvases())
196
+ print(rs.canvas_output_paths("C:/renders/shot01.png"))
197
+ ```
198
+
199
+ ### 📸 Scene Checkpoints — `DazSceneState`
200
+
201
+ A full scene checkpoint in one call: every skeleton's complete pose
202
+ (bone-level, via `DazPose`) plus camera and light transforms/key
203
+ properties, captured and restored via raw property values so repeated
204
+ capture/apply cycles are idempotent — no more creeping drift on a
205
+ character's morph dials across repeated pose save/restore.
206
+
207
+ ```python
208
+ from dazpy import DazClient, DazSceneState
209
+
210
+ client = DazClient()
211
+ state = DazSceneState(client)
212
+
213
+ snapshot = state.capture()
214
+ # ... pose the scene for a render ...
215
+ state.apply(snapshot) # back to exactly where you started
216
+ ```
217
+
218
+ ### 🧱 Scene Editing — Node Creation, Deletion, Reparenting
219
+
220
+ `DazScene.create_camera()`/`create_light()`, `DazNode.delete()`, and
221
+ `DazNode.reparent()` round out the scene graph so a script can build and
222
+ restructure a scene, not just query and pose one.
223
+
224
+ ### Also in this release
225
+
226
+ - **Clothing/prop fit control** — `DazNode.fit_to()`/`.unfit()`/`.fitted_items()`.
227
+ - **dForce simulation control** — freeze/unfreeze and run/clear simulations via a new `DazDForce` proxy and `DazScene` helpers.
228
+ - **Iray quality control** — `max_samples`/`max_time_secs`/`quality`/`set_quality_preset()` on `DazRenderSettings`, plus `active_engine()`/`set_active_engine()` to query/switch the render engine.
229
+ - **Per-frame animation rendering** — `POST /render/animation` and `DazClient.render_animation_submit()`.
230
+ - **Scene-change event stream** — `DazClient.stream_scene_events()` for watching or blocking on node/light/camera/selection/scene/time/render events.
231
+ - **Camera lens shift** — `DazCamera.lens_shift_x`/`.lens_shift_y`.
232
+ - **FBX/OBJ export** — `DazScene.export_fbx()`/`.export_obj()`.
233
+ - **Keyframe curve introspection** — `DazProperty.get_keys()`/`.remove_key()`/`.clear_keys()`.
234
+ - **Bulk property reads** — `DazElement.numeric_properties()` and `.class_name`.
235
+ - A handful of correctness fixes to `DazPose`/`DazViewport.capture()` (ERC-driven property inflation, bone selection restore, backdrop restore) and render camera selection — see [CHANGELOG.md](CHANGELOG.md#270---2026-07-19) for details.
236
+
237
+ ---
238
+
169
239
  ## What's New in v2.6.0
170
240
 
171
241
  ### 💾 Scene Save Copy — `POST /scene/save-copy` + `DazScene.save_copy()`
@@ -584,7 +654,7 @@ automation code without authoring DazScript by hand.
584
654
  Download the `.whl` file from the [latest release](https://github.com/bluemoonfoundry/daz-script-server/releases/latest) and install it:
585
655
 
586
656
  ```bash
587
- pip install dazpy-2.6.0-py3-none-any.whl
657
+ pip install dazpy-2.7.1-py3-none-any.whl
588
658
  ```
589
659
 
590
660
  Or install directly from the repo for development:
@@ -1,6 +1,6 @@
1
1
  # DazScript Server
2
2
 
3
- **Version 2.6.0** | DAZ Studio 4.5+ | DAZ Studio 6.25+ | Windows & macOS
3
+ **Version 2.7.1** | DAZ Studio 4.5+ | DAZ Studio 6.25+ | Windows & macOS
4
4
 
5
5
  [![Docs](https://img.shields.io/badge/docs-dazpy%20SDK-blue)](https://bluemoonfoundry.github.io/daz-script-server/)
6
6
  [![HTTP API](https://img.shields.io/badge/docs-HTTP%20API%20reference-blue)](https://bluemoonfoundry.github.io/daz-script-server/api-reference/)
@@ -68,6 +68,8 @@ print(response.json())
68
68
  ### Getting Started
69
69
  - [Quick Start](#-quick-start)
70
70
  - [Why This Exists](#why-this-exists)
71
+ - [What's New in v2.7.1](#whats-new-in-v271)
72
+ - [What's New in v2.7.0](#whats-new-in-v270)
71
73
  - [What's New in v2.6.0](#whats-new-in-v260)
72
74
  - [What's New in v2.5.0](#whats-new-in-v250)
73
75
  - [What's New in v2.4.0](#whats-new-in-v240)
@@ -151,6 +153,74 @@ DAZ Studio is powerful for 3D content creation, but automation is limited to man
151
153
 
152
154
  ---
153
155
 
156
+ ## What's New in v2.7.1
157
+
158
+ No functional changes. Republished to fix a stale PyPI package description —
159
+ the `2.7.0` wheel was uploaded to PyPI before the README fixes below (in
160
+ "What's New in v2.7.0") had landed, and PyPI has no way to update an
161
+ already-published version's metadata. `2.7.1`'s code is identical to
162
+ `2.7.0`'s.
163
+
164
+ ---
165
+
166
+ ## What's New in v2.7.0
167
+
168
+ ### 🖼️ Iray Canvas Support — `DazRenderSettings`
169
+
170
+ Enumerate, create, and remove Iray Canvases (normal/depth/material-ID/etc.
171
+ render passes) and resolve their output file paths for a given render:
172
+
173
+ ```python
174
+ from dazpy import DazClient, DazRenderSettings
175
+
176
+ client = DazClient()
177
+ rs = DazRenderSettings(client)
178
+
179
+ rs.add_canvas("Depth")
180
+ print(rs.list_canvases())
181
+ print(rs.canvas_output_paths("C:/renders/shot01.png"))
182
+ ```
183
+
184
+ ### 📸 Scene Checkpoints — `DazSceneState`
185
+
186
+ A full scene checkpoint in one call: every skeleton's complete pose
187
+ (bone-level, via `DazPose`) plus camera and light transforms/key
188
+ properties, captured and restored via raw property values so repeated
189
+ capture/apply cycles are idempotent — no more creeping drift on a
190
+ character's morph dials across repeated pose save/restore.
191
+
192
+ ```python
193
+ from dazpy import DazClient, DazSceneState
194
+
195
+ client = DazClient()
196
+ state = DazSceneState(client)
197
+
198
+ snapshot = state.capture()
199
+ # ... pose the scene for a render ...
200
+ state.apply(snapshot) # back to exactly where you started
201
+ ```
202
+
203
+ ### 🧱 Scene Editing — Node Creation, Deletion, Reparenting
204
+
205
+ `DazScene.create_camera()`/`create_light()`, `DazNode.delete()`, and
206
+ `DazNode.reparent()` round out the scene graph so a script can build and
207
+ restructure a scene, not just query and pose one.
208
+
209
+ ### Also in this release
210
+
211
+ - **Clothing/prop fit control** — `DazNode.fit_to()`/`.unfit()`/`.fitted_items()`.
212
+ - **dForce simulation control** — freeze/unfreeze and run/clear simulations via a new `DazDForce` proxy and `DazScene` helpers.
213
+ - **Iray quality control** — `max_samples`/`max_time_secs`/`quality`/`set_quality_preset()` on `DazRenderSettings`, plus `active_engine()`/`set_active_engine()` to query/switch the render engine.
214
+ - **Per-frame animation rendering** — `POST /render/animation` and `DazClient.render_animation_submit()`.
215
+ - **Scene-change event stream** — `DazClient.stream_scene_events()` for watching or blocking on node/light/camera/selection/scene/time/render events.
216
+ - **Camera lens shift** — `DazCamera.lens_shift_x`/`.lens_shift_y`.
217
+ - **FBX/OBJ export** — `DazScene.export_fbx()`/`.export_obj()`.
218
+ - **Keyframe curve introspection** — `DazProperty.get_keys()`/`.remove_key()`/`.clear_keys()`.
219
+ - **Bulk property reads** — `DazElement.numeric_properties()` and `.class_name`.
220
+ - A handful of correctness fixes to `DazPose`/`DazViewport.capture()` (ERC-driven property inflation, bone selection restore, backdrop restore) and render camera selection — see [CHANGELOG.md](CHANGELOG.md#270---2026-07-19) for details.
221
+
222
+ ---
223
+
154
224
  ## What's New in v2.6.0
155
225
 
156
226
  ### 💾 Scene Save Copy — `POST /scene/save-copy` + `DazScene.save_copy()`
@@ -569,7 +639,7 @@ automation code without authoring DazScript by hand.
569
639
  Download the `.whl` file from the [latest release](https://github.com/bluemoonfoundry/daz-script-server/releases/latest) and install it:
570
640
 
571
641
  ```bash
572
- pip install dazpy-2.6.0-py3-none-any.whl
642
+ pip install dazpy-2.7.1-py3-none-any.whl
573
643
  ```
574
644
 
575
645
  Or install directly from the repo for development:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dazpy
3
- Version: 2.7.0
3
+ Version: 2.7.1
4
4
  Summary: Python SDK for the DAZ Studio Script Server
5
5
  License: MIT
6
6
  Project-URL: Homepage, https://github.com/bluemoonfoundry/daz-script-server
@@ -15,7 +15,7 @@ Requires-Dist: sphinx-rtd-theme>=2.0; extra == "docs"
15
15
 
16
16
  # DazScript Server
17
17
 
18
- **Version 2.6.0** | DAZ Studio 4.5+ | DAZ Studio 6.25+ | Windows & macOS
18
+ **Version 2.7.1** | DAZ Studio 4.5+ | DAZ Studio 6.25+ | Windows & macOS
19
19
 
20
20
  [![Docs](https://img.shields.io/badge/docs-dazpy%20SDK-blue)](https://bluemoonfoundry.github.io/daz-script-server/)
21
21
  [![HTTP API](https://img.shields.io/badge/docs-HTTP%20API%20reference-blue)](https://bluemoonfoundry.github.io/daz-script-server/api-reference/)
@@ -83,6 +83,8 @@ print(response.json())
83
83
  ### Getting Started
84
84
  - [Quick Start](#-quick-start)
85
85
  - [Why This Exists](#why-this-exists)
86
+ - [What's New in v2.7.1](#whats-new-in-v271)
87
+ - [What's New in v2.7.0](#whats-new-in-v270)
86
88
  - [What's New in v2.6.0](#whats-new-in-v260)
87
89
  - [What's New in v2.5.0](#whats-new-in-v250)
88
90
  - [What's New in v2.4.0](#whats-new-in-v240)
@@ -166,6 +168,74 @@ DAZ Studio is powerful for 3D content creation, but automation is limited to man
166
168
 
167
169
  ---
168
170
 
171
+ ## What's New in v2.7.1
172
+
173
+ No functional changes. Republished to fix a stale PyPI package description —
174
+ the `2.7.0` wheel was uploaded to PyPI before the README fixes below (in
175
+ "What's New in v2.7.0") had landed, and PyPI has no way to update an
176
+ already-published version's metadata. `2.7.1`'s code is identical to
177
+ `2.7.0`'s.
178
+
179
+ ---
180
+
181
+ ## What's New in v2.7.0
182
+
183
+ ### 🖼️ Iray Canvas Support — `DazRenderSettings`
184
+
185
+ Enumerate, create, and remove Iray Canvases (normal/depth/material-ID/etc.
186
+ render passes) and resolve their output file paths for a given render:
187
+
188
+ ```python
189
+ from dazpy import DazClient, DazRenderSettings
190
+
191
+ client = DazClient()
192
+ rs = DazRenderSettings(client)
193
+
194
+ rs.add_canvas("Depth")
195
+ print(rs.list_canvases())
196
+ print(rs.canvas_output_paths("C:/renders/shot01.png"))
197
+ ```
198
+
199
+ ### 📸 Scene Checkpoints — `DazSceneState`
200
+
201
+ A full scene checkpoint in one call: every skeleton's complete pose
202
+ (bone-level, via `DazPose`) plus camera and light transforms/key
203
+ properties, captured and restored via raw property values so repeated
204
+ capture/apply cycles are idempotent — no more creeping drift on a
205
+ character's morph dials across repeated pose save/restore.
206
+
207
+ ```python
208
+ from dazpy import DazClient, DazSceneState
209
+
210
+ client = DazClient()
211
+ state = DazSceneState(client)
212
+
213
+ snapshot = state.capture()
214
+ # ... pose the scene for a render ...
215
+ state.apply(snapshot) # back to exactly where you started
216
+ ```
217
+
218
+ ### 🧱 Scene Editing — Node Creation, Deletion, Reparenting
219
+
220
+ `DazScene.create_camera()`/`create_light()`, `DazNode.delete()`, and
221
+ `DazNode.reparent()` round out the scene graph so a script can build and
222
+ restructure a scene, not just query and pose one.
223
+
224
+ ### Also in this release
225
+
226
+ - **Clothing/prop fit control** — `DazNode.fit_to()`/`.unfit()`/`.fitted_items()`.
227
+ - **dForce simulation control** — freeze/unfreeze and run/clear simulations via a new `DazDForce` proxy and `DazScene` helpers.
228
+ - **Iray quality control** — `max_samples`/`max_time_secs`/`quality`/`set_quality_preset()` on `DazRenderSettings`, plus `active_engine()`/`set_active_engine()` to query/switch the render engine.
229
+ - **Per-frame animation rendering** — `POST /render/animation` and `DazClient.render_animation_submit()`.
230
+ - **Scene-change event stream** — `DazClient.stream_scene_events()` for watching or blocking on node/light/camera/selection/scene/time/render events.
231
+ - **Camera lens shift** — `DazCamera.lens_shift_x`/`.lens_shift_y`.
232
+ - **FBX/OBJ export** — `DazScene.export_fbx()`/`.export_obj()`.
233
+ - **Keyframe curve introspection** — `DazProperty.get_keys()`/`.remove_key()`/`.clear_keys()`.
234
+ - **Bulk property reads** — `DazElement.numeric_properties()` and `.class_name`.
235
+ - A handful of correctness fixes to `DazPose`/`DazViewport.capture()` (ERC-driven property inflation, bone selection restore, backdrop restore) and render camera selection — see [CHANGELOG.md](CHANGELOG.md#270---2026-07-19) for details.
236
+
237
+ ---
238
+
169
239
  ## What's New in v2.6.0
170
240
 
171
241
  ### 💾 Scene Save Copy — `POST /scene/save-copy` + `DazScene.save_copy()`
@@ -584,7 +654,7 @@ automation code without authoring DazScript by hand.
584
654
  Download the `.whl` file from the [latest release](https://github.com/bluemoonfoundry/daz-script-server/releases/latest) and install it:
585
655
 
586
656
  ```bash
587
- pip install dazpy-2.6.0-py3-none-any.whl
657
+ pip install dazpy-2.7.1-py3-none-any.whl
588
658
  ```
589
659
 
590
660
  Or install directly from the repo for development:
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "dazpy"
7
- version = "2.7.0"
7
+ version = "2.7.1"
8
8
  description = "Python SDK for the DAZ Studio Script Server"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
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