griptape-nodes 0.63.6__py3-none-any.whl → 0.63.7__py3-none-any.whl

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.
@@ -653,19 +653,3 @@ class ProgressEvent:
653
653
  value: Any = field()
654
654
  node_name: str = field()
655
655
  parameter_name: str = field()
656
-
657
-
658
- # Special internal request for flushing parameter changes
659
- @dataclass(kw_only=True)
660
- class FlushParameterChangesRequest(RequestPayload, WorkflowNotAlteredMixin):
661
- pass
662
-
663
-
664
- @dataclass
665
- class FlushParameterChangesResultSuccess(ResultPayloadSuccess):
666
- pass
667
-
668
-
669
- @dataclass
670
- class FlushParameterChangesResultFailure(ResultPayloadFailure):
671
- pass
@@ -10,13 +10,11 @@ from typing import TYPE_CHECKING, Any, cast
10
10
  from asyncio_thread_runner import ThreadRunner
11
11
  from typing_extensions import TypedDict, TypeVar
12
12
 
13
+ from griptape_nodes.exe_types.node_types import BaseNode
13
14
  from griptape_nodes.retained_mode.events.base_events import (
14
15
  AppPayload,
15
- EventRequest,
16
16
  EventResultFailure,
17
17
  EventResultSuccess,
18
- FlushParameterChangesRequest,
19
- FlushParameterChangesResultSuccess,
20
18
  RequestPayload,
21
19
  ResultPayload,
22
20
  )
@@ -31,15 +29,9 @@ AP = TypeVar("AP", bound=AppPayload, default=AppPayload)
31
29
 
32
30
  # Result types that should NOT trigger a flush request.
33
31
  #
34
- # After most requests complete, we queue a FlushParameterChangesRequest to flush any tracked
35
- # parameter changes to the UI. However, when the FlushParameterChangesRequest itself completes,
36
- # it returns a FlushParameterChangesResultSuccess. If we don't exclude this result type, it would
37
- # trigger another FlushParameterChangesRequest, which would return another FlushParameterChangesResultSuccess,
38
- # creating an infinite loop of flush requests.
39
- #
40
32
  # Add result types to this set if they should never trigger a flush (typically because they ARE
41
33
  # the flush operation itself, or other internal operations that don't modify workflow state).
42
- RESULT_TYPES_THAT_SKIP_FLUSH = {FlushParameterChangesResultSuccess}
34
+ RESULT_TYPES_THAT_SKIP_FLUSH = {}
43
35
 
44
36
 
45
37
  class ResultContext(TypedDict, total=False):
@@ -249,7 +241,7 @@ class EventManager:
249
241
  # Queue flush request for async context (unless result type should skip flush)
250
242
  with operation_depth_mgr:
251
243
  if type(result_payload) not in RESULT_TYPES_THAT_SKIP_FLUSH:
252
- await self.aput_event(EventRequest(request=FlushParameterChangesRequest()))
244
+ self._flush_tracked_parameter_changes()
253
245
 
254
246
  return self._handle_request_core(
255
247
  request,
@@ -297,7 +289,7 @@ class EventManager:
297
289
  # Queue flush request for sync context (unless result type should skip flush)
298
290
  with operation_depth_mgr:
299
291
  if type(result_payload) not in RESULT_TYPES_THAT_SKIP_FLUSH:
300
- self.put_event(EventRequest(request=FlushParameterChangesRequest()))
292
+ self._flush_tracked_parameter_changes()
301
293
 
302
294
  return self._handle_request_core(
303
295
  request,
@@ -329,3 +321,14 @@ class EventManager:
329
321
  async with asyncio.TaskGroup() as tg:
330
322
  for listener_callback in listener_set:
331
323
  tg.create_task(call_function(listener_callback, app_event))
324
+
325
+ def _flush_tracked_parameter_changes(self) -> None:
326
+ from griptape_nodes.retained_mode.griptape_nodes import GriptapeNodes
327
+
328
+ obj_manager = GriptapeNodes.ObjectManager()
329
+ # Get all flows and their nodes
330
+ nodes = obj_manager.get_filtered_subset(type=BaseNode)
331
+ for node in nodes.values():
332
+ # Only flush if there are actually tracked parameters
333
+ if node._tracked_parameters:
334
+ node.emit_parameter_changes()
@@ -35,8 +35,6 @@ from griptape_nodes.node_library.workflow_registry import LibraryNameAndNodeType
35
35
  from griptape_nodes.retained_mode.events.base_events import (
36
36
  ExecutionEvent,
37
37
  ExecutionGriptapeNodeEvent,
38
- FlushParameterChangesRequest,
39
- FlushParameterChangesResultSuccess,
40
38
  ResultDetails,
41
39
  )
42
40
  from griptape_nodes.retained_mode.events.connection_events import (
@@ -267,7 +265,6 @@ class FlowManager:
267
265
  event_manager.assign_manager_to_request_type(
268
266
  PackageNodesAsSerializedFlowRequest, self.on_package_nodes_as_serialized_flow_request
269
267
  )
270
- event_manager.assign_manager_to_request_type(FlushParameterChangesRequest, self.on_flush_request)
271
268
 
272
269
  self._name_to_parent_name = {}
273
270
  self._flow_to_referenced_workflow_name = {}
@@ -3065,16 +3062,6 @@ class FlowManager:
3065
3062
  details = f"Successfully deserialized Flow '{flow_name}'."
3066
3063
  return DeserializeFlowFromCommandsResultSuccess(flow_name=flow_name, result_details=details)
3067
3064
 
3068
- def on_flush_request(self, request: FlushParameterChangesRequest) -> ResultPayload: # noqa: ARG002
3069
- obj_manager = GriptapeNodes.ObjectManager()
3070
- # Get all flows and their nodes
3071
- nodes = obj_manager.get_filtered_subset(type=BaseNode)
3072
- for node in nodes.values():
3073
- # Only flush if there are actually tracked parameters
3074
- if node._tracked_parameters:
3075
- node.emit_parameter_changes()
3076
- return FlushParameterChangesResultSuccess(result_details="Parameter changes flushed successfully.")
3077
-
3078
3065
  async def start_flow(
3079
3066
  self,
3080
3067
  flow: ControlFlow,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: griptape-nodes
3
- Version: 0.63.6
3
+ Version: 0.63.7
4
4
  Summary: Add your description here
5
5
  Requires-Dist: griptape>=1.8.12
6
6
  Requires-Dist: pydantic>=2.10.6
@@ -105,7 +105,7 @@ griptape_nodes/retained_mode/events/__init__.py,sha256=7B1C-c0jVvnShtHJ2lfX6BZPE
105
105
  griptape_nodes/retained_mode/events/agent_events.py,sha256=pHqw9XsMqKg8SG6VCU_xuQLSn40nmyOPFTrEZAiB9uo,10590
106
106
  griptape_nodes/retained_mode/events/app_events.py,sha256=WFv6zb6K8H7KcJdvQD6fi164EN82dW7CeBTsb7Fkprs,10195
107
107
  griptape_nodes/retained_mode/events/arbitrary_python_events.py,sha256=uhep1c1xjUc-YQO5nIStAE48PS6rFZLTDQIr_Qb3we8,1460
108
- griptape_nodes/retained_mode/events/base_events.py,sha256=UPEMkoU7lUtm8L_wdeTp8YRLSAFFgxJIVRasdqtuQfQ,23223
108
+ griptape_nodes/retained_mode/events/base_events.py,sha256=72JJe7dbJMo72NMAGw4KFjpalkJMd5S3i7qo2I4sdXI,22880
109
109
  griptape_nodes/retained_mode/events/config_events.py,sha256=Y03YMLoJTXy0Sz6tq-6lOIs37CmXn1Br3GYAinl02nY,7070
110
110
  griptape_nodes/retained_mode/events/connection_events.py,sha256=QjHAp0SeCbRSG-dF_nU_CPaOcSKItq2DWJ_FHWgF1b4,4744
111
111
  griptape_nodes/retained_mode/events/context_events.py,sha256=-FIwjI0hJodDhfM4BF-3GTRycu80v1TlSSOX34oA9nA,2122
@@ -136,7 +136,7 @@ griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py,sha256=LyWz
136
136
  griptape_nodes/retained_mode/managers/config_manager.py,sha256=WfzvFDPyboHgsCMpVGER6Ar1OHyPD_827LQx9xaUsMM,25573
137
137
  griptape_nodes/retained_mode/managers/context_manager.py,sha256=eb44_CAZhCg2iYIoodlAPpYc67tG3sHyq9dPNoiq_1s,23031
138
138
  griptape_nodes/retained_mode/managers/engine_identity_manager.py,sha256=-31364A03kU0YmAx3nM7nHdWfKnkej5Cawt_Plbwa68,10526
139
- griptape_nodes/retained_mode/managers/event_manager.py,sha256=ai57NPxo0uNcSS_kzLOvgoZx8FtlVQx-L9pJUxhJ2vM,14003
139
+ griptape_nodes/retained_mode/managers/event_manager.py,sha256=kNEDR6DEARWC6NcYxa8Y54u2-soFFKU55CXqTTnJk3w,13902
140
140
  griptape_nodes/retained_mode/managers/fitness_problems/__init__.py,sha256=H_Wwfn1k_IaxwRxgbw3-seb1HWbcxl2Cvhw7wB7bCo8,75
141
141
  griptape_nodes/retained_mode/managers/fitness_problems/libraries/__init__.py,sha256=nCG1TKdQzk6OSHz5RBQrUgMSJ-C4Pvn7rQrEWJvB724,3111
142
142
  griptape_nodes/retained_mode/managers/fitness_problems/libraries/advanced_library_load_failure_problem.py,sha256=Z7bIE_Ll4qqsG-D_PLe48r3ZuUCChgk04mopDvZ5MD0,1215
@@ -185,7 +185,7 @@ griptape_nodes/retained_mode/managers/fitness_problems/workflows/node_type_not_f
185
185
  griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_not_found_problem.py,sha256=kPhaIeDxp0duxJBJLKFiYp269kEDsCx3uVLnkKbF2gk,895
186
186
  griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_problem.py,sha256=NLAoF_x7g5tL70qZtPVFI8xeM1jPZNsm7FKt9nkuGBc,542
187
187
  griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_schema_version_problem.py,sha256=rUnbBBnGwgq5WTVPt2G4pGP3gVPoX5xvCdTkRPBmP04,1328
188
- griptape_nodes/retained_mode/managers/flow_manager.py,sha256=-BHSTSAfolkJ-tpe4zzhGkrd1RFWamdCgEGlAaEQ5Oc,192042
188
+ griptape_nodes/retained_mode/managers/flow_manager.py,sha256=zWRqekEmx0TaweyyZyKqNr09VlEtWuPtLf45P3B-q6A,191305
189
189
  griptape_nodes/retained_mode/managers/library_lifecycle/__init__.py,sha256=Iq79VxTdETiExBfFWXceJggDZqS6X3OkzXE9XwFclVw,1340
190
190
  griptape_nodes/retained_mode/managers/library_lifecycle/data_models.py,sha256=fvAP0VaYGPHYl_Kg3RL4gdJlpqya8UTvpP-C49r950k,6723
191
191
  griptape_nodes/retained_mode/managers/library_lifecycle/library_directory.py,sha256=Ywno93eVJH4sAtQ1dgHG2Pw9B3vw8fN8oAL0gn_l6OI,14836
@@ -263,7 +263,7 @@ griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_re
263
263
  griptape_nodes/version_compatibility/workflow_versions/__init__.py,sha256=z5XDgkizoNByCXpyo34hfsJKFsWlOHbD6hgzfYH9ubc,52
264
264
  griptape_nodes/version_compatibility/workflow_versions/v0_7_0/__init__.py,sha256=IzPPmGK86h2swfGGTOHyVcBIlOng6SjgWQzlbf3ngmo,51
265
265
  griptape_nodes/version_compatibility/workflow_versions/v0_7_0/local_executor_argument_addition.py,sha256=Thx8acnbw5OychhwEEj9aFxvbPe7Wgn4V9ZmZ7KRZqc,2082
266
- griptape_nodes-0.63.6.dist-info/WHEEL,sha256=w4ZtLaDgMAZW2MMZZwtH8zENekoQYBCeullI-zsXJQk,78
267
- griptape_nodes-0.63.6.dist-info/entry_points.txt,sha256=qvevqd3BVbAV5TcantnAm0ouqaqYKhsRO3pkFymWLWM,82
268
- griptape_nodes-0.63.6.dist-info/METADATA,sha256=GuCfOTUV3j3RYn7ZxEZO8DFqBM4j_pB_QNUYX_NbgTk,5208
269
- griptape_nodes-0.63.6.dist-info/RECORD,,
266
+ griptape_nodes-0.63.7.dist-info/WHEEL,sha256=w4ZtLaDgMAZW2MMZZwtH8zENekoQYBCeullI-zsXJQk,78
267
+ griptape_nodes-0.63.7.dist-info/entry_points.txt,sha256=qvevqd3BVbAV5TcantnAm0ouqaqYKhsRO3pkFymWLWM,82
268
+ griptape_nodes-0.63.7.dist-info/METADATA,sha256=jr_k4fx4JesRyzAPbyYRiMTXHf1Wuc5YzNW9LOvnYL8,5208
269
+ griptape_nodes-0.63.7.dist-info/RECORD,,