griptape-nodes 0.70.0__tar.gz → 0.70.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.
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/PKG-INFO +1 -1
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/pyproject.toml +1 -1
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_types/parameter_number.py +22 -16
- griptape_nodes-0.70.1/src/griptape_nodes/traits/clamp.py +79 -0
- griptape_nodes-0.70.0/src/griptape_nodes/traits/clamp.py +0 -36
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/README.md +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/__main__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/api_client/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/api_client/client.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/api_client/request_client.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/app/.python-version +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/app/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/app/app.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/app/watch.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/bootstrap/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/bootstrap/utils/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/bootstrap/utils/python_subprocess_executor.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/bootstrap/workflow_executors/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/bootstrap/workflow_executors/local_session_workflow_executor.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/bootstrap/workflow_executors/local_workflow_executor.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/bootstrap/workflow_executors/subprocess_workflow_executor.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/bootstrap/workflow_executors/utils/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/bootstrap/workflow_executors/utils/subprocess_script.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/bootstrap/workflow_executors/workflow_executor.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/bootstrap/workflow_publishers/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/bootstrap/workflow_publishers/local_workflow_publisher.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/bootstrap/workflow_publishers/subprocess_workflow_publisher.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/bootstrap/workflow_publishers/utils/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/bootstrap/workflow_publishers/utils/subprocess_script.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/cli/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/cli/commands/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/cli/commands/config.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/cli/commands/engine.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/cli/commands/init.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/cli/commands/libraries.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/cli/commands/models.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/cli/commands/self.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/cli/main.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/cli/shared.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/directed_graph.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/macro_parser/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/macro_parser/core.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/macro_parser/exceptions.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/macro_parser/formats.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/macro_parser/matching.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/macro_parser/parsing.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/macro_parser/resolution.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/macro_parser/segments.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/node_executor.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/project_templates/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/project_templates/default_project_template.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/project_templates/defaults/README.md +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/project_templates/directory.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/project_templates/loader.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/project_templates/project.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/project_templates/situation.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/project_templates/validation.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/drivers/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/drivers/storage/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/drivers/storage/base_storage_driver.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/drivers/storage/local_storage_driver.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/drivers/storage/storage_backend.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/drivers/thread_storage/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/drivers/thread_storage/base_thread_storage_driver.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/drivers/thread_storage/griptape_cloud_thread_storage_driver.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/drivers/thread_storage/local_thread_storage_driver.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/drivers/thread_storage/thread_storage_backend.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/base_iterative_nodes.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/connections.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/core_types.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/flow.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/node_groups/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/node_groups/base_iterative_node_group.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/node_groups/base_node_group.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/node_groups/subflow_node_group.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/node_types.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_components/README.md +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_components/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_components/api_key_provider_parameter.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_components/artifact_url/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_components/artifact_url/public_artifact_url_parameter.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_components/execution_status_component.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_components/huggingface/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_model_parameter.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_file_parameter.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_parameter.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_variant_parameter.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_utils.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_components/log_parameter.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_components/progress_bar_component.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_components/seed_parameter.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_types/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_types/parameter_audio.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_types/parameter_bool.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_types/parameter_button.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_types/parameter_dict.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_types/parameter_float.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_types/parameter_image.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_types/parameter_int.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_types/parameter_json.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_types/parameter_range.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_types/parameter_string.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_types/parameter_three_d.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_types/parameter_video.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/type_validator.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/machines/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/machines/control_flow.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/machines/dag_builder.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/machines/fsm.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/machines/parallel_resolution.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/machines/sequential_resolution.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/mcp_server/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/node_library/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/node_library/advanced_node_library.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/node_library/library_registry.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/node_library/workflow_registry.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/py.typed +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/agent_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/app_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/arbitrary_python_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/base_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/config_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/connection_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/context_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/execution_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/flow_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/generate_request_payload_schemas.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/library_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/logger_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/mcp_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/model_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/node_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/object_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/os_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/parameter_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/payload_registry.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/project_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/resource_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/secrets_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/static_file_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/sync_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/validation_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/variable_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/workflow_events.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/griptape_nodes.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/agent_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/config_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/context_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/engine_identity_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/event_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/advanced_library_load_failure_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/after_library_callback_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/before_library_callback_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/create_config_category_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/dependency_installation_failed_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/deprecated_node_warning_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/duplicate_library_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/duplicate_node_registration_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/engine_version_error_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/incompatible_requirements_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/insufficient_disk_space_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/invalid_version_string_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_json_decode_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_load_exception_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_not_found_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_schema_exception_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_schema_validation_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/modified_parameters_set_deprecation_warning_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/modified_parameters_set_removed_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/node_class_not_base_node_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/node_class_not_found_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/node_module_import_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/old_xdg_location_warning_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/sandbox_directory_missing_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/ui_options_field_modified_incompatible_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/ui_options_field_modified_warning_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/update_config_category_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/venv_creation_failed_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/deprecated_node_in_workflow_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_dependency_version_string_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_library_version_string_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_metadata_schema_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_metadata_section_count_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_toml_format_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_not_registered_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_version_below_required_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_version_large_difference_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_version_major_mismatch_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_version_minor_difference_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/missing_creation_date_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/missing_last_modified_date_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/missing_toml_section_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/node_type_not_found_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_not_found_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_schema_version_problem.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/flow_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/library_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/mcp_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/model_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/node_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/object_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/operation_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/os_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/project_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/resource_components/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/resource_components/capability_field.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/resource_components/comparator.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/resource_components/resource_instance.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/resource_components/resource_type.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/resource_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/resource_types/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/resource_types/compute_resource.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/resource_types/cpu_resource.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/resource_types/os_resource.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/secrets_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/session_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/settings.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/static_files_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/sync_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/user_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/variable_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/version_compatibility_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/managers/workflow_manager.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/retained_mode.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/utils/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/utils/name_generator.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/variable_types.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/servers/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/servers/mcp.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/servers/static.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/traits/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/traits/add_param_button.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/traits/button.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/traits/color_picker.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/traits/compare.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/traits/compare_images.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/traits/file_system_picker.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/traits/minmax.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/traits/multi_options.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/traits/numbers_selector.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/traits/options.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/traits/slider.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/traits/trait_registry.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/traits/traits.json +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/updater/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/updater/__main__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/utils/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/utils/async_utils.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/utils/dict_utils.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/utils/file_utils.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/utils/git_utils.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/utils/huggingface_utils.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/utils/image_preview.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/utils/library_utils.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/utils/metaclasses.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/utils/uv_utils.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/utils/version_utils.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/version_compatibility/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/version_compatibility/versions/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/version_compatibility/versions/v0_39_0/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_removal.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/version_compatibility/versions/v0_63_8/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/version_compatibility/versions/v0_63_8/deprecated_nodegroup_parameters.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/version_compatibility/versions/v0_65_4/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/version_compatibility/versions/v0_65_4/run_in_parallel_to_run_in_order.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/version_compatibility/versions/v0_65_5/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/version_compatibility/versions/v0_65_5/flux_2_removed_parameters.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/version_compatibility/versions/v0_7_0/__init__.py +0 -0
- {griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/version_compatibility/versions/v0_7_0/local_executor_argument_addition.py +0 -0
|
@@ -235,12 +235,6 @@ class ParameterNumber(Parameter):
|
|
|
235
235
|
validate_min_max: Whether to validate min/max with error
|
|
236
236
|
"""
|
|
237
237
|
# Validation rules
|
|
238
|
-
if min_val is not None and max_val is None:
|
|
239
|
-
msg = f"{name}: If min_val is provided, max_val must also be provided"
|
|
240
|
-
raise ValueError(msg)
|
|
241
|
-
if max_val is not None and min_val is None:
|
|
242
|
-
msg = f"{name}: If max_val is provided, min_val must also be provided"
|
|
243
|
-
raise ValueError(msg)
|
|
244
238
|
if slider and (min_val is None or max_val is None):
|
|
245
239
|
msg = f"{name}: If slider is True, both min_val and max_val must be provided"
|
|
246
240
|
raise ValueError(msg)
|
|
@@ -259,7 +253,7 @@ class ParameterNumber(Parameter):
|
|
|
259
253
|
traits.add(Slider(min_val=min_val, max_val=max_val))
|
|
260
254
|
elif validate_min_max and min_val is not None and max_val is not None:
|
|
261
255
|
traits.add(MinMax(min_val=min_val, max_val=max_val))
|
|
262
|
-
elif min_val is not None
|
|
256
|
+
elif min_val is not None or max_val is not None:
|
|
263
257
|
traits.add(Clamp(min_val=min_val, max_val=max_val))
|
|
264
258
|
|
|
265
259
|
# Store traits for later use
|
|
@@ -304,9 +298,6 @@ class ParameterNumber(Parameter):
|
|
|
304
298
|
@min_val.setter
|
|
305
299
|
def min_val(self, value: float | None) -> None:
|
|
306
300
|
"""Set minimum value and update constraint traits."""
|
|
307
|
-
if value is not None and self.max_val is None:
|
|
308
|
-
msg = f"{self.name}: Cannot set min_val without max_val"
|
|
309
|
-
raise ValueError(msg)
|
|
310
301
|
self._min_val = value
|
|
311
302
|
self._update_constraint_traits()
|
|
312
303
|
|
|
@@ -321,9 +312,6 @@ class ParameterNumber(Parameter):
|
|
|
321
312
|
@max_val.setter
|
|
322
313
|
def max_val(self, value: float | None) -> None:
|
|
323
314
|
"""Set maximum value and update constraint traits."""
|
|
324
|
-
if value is not None and self.min_val is None:
|
|
325
|
-
msg = f"{self.name}: Cannot set max_val without min_val"
|
|
326
|
-
raise ValueError(msg)
|
|
327
315
|
self._max_val = value
|
|
328
316
|
self._update_constraint_traits()
|
|
329
317
|
|
|
@@ -367,17 +355,35 @@ class ParameterNumber(Parameter):
|
|
|
367
355
|
min_val = getattr(self, "_min_val", None)
|
|
368
356
|
max_val = getattr(self, "_max_val", None)
|
|
369
357
|
|
|
370
|
-
if min_val is None
|
|
358
|
+
if min_val is None and max_val is None:
|
|
371
359
|
self._remove_constraint_traits()
|
|
372
360
|
return
|
|
373
361
|
|
|
362
|
+
if self.slider and (min_val is None or max_val is None):
|
|
363
|
+
msg = f"{self.name}: Cannot enable slider without min_val and max_val"
|
|
364
|
+
raise ValueError(msg)
|
|
365
|
+
|
|
366
|
+
if self.validate_min_max and (min_val is None or max_val is None):
|
|
367
|
+
msg = f"{self.name}: Cannot enable validate_min_max without min_val and max_val"
|
|
368
|
+
raise ValueError(msg)
|
|
369
|
+
|
|
374
370
|
# Determine which trait to use based on current state
|
|
375
371
|
if self.slider:
|
|
372
|
+
# Checked above: both min_val and max_val are available when slider is enabled.
|
|
373
|
+
# Type narrowing: assign to variables after None check so type checker understands
|
|
374
|
+
min_val_float: float = min_val # type: ignore[assignment]
|
|
375
|
+
max_val_float: float = max_val # type: ignore[assignment]
|
|
376
|
+
# Python will naturally coerce int to float if needed (no precision loss for reasonable values)
|
|
376
377
|
self._remove_constraint_traits()
|
|
377
|
-
self.add_trait(Slider(min_val=
|
|
378
|
+
self.add_trait(Slider(min_val=min_val_float, max_val=max_val_float))
|
|
378
379
|
elif self.validate_min_max:
|
|
380
|
+
# Checked above: both min_val and max_val are available when validate_min_max is enabled.
|
|
381
|
+
# Type narrowing: assign to variables after None check so type checker understands
|
|
382
|
+
min_val_float: float = min_val # type: ignore[assignment]
|
|
383
|
+
max_val_float: float = max_val # type: ignore[assignment]
|
|
384
|
+
# Python will naturally coerce int to float if needed (no precision loss for reasonable values)
|
|
379
385
|
self._remove_constraint_traits()
|
|
380
|
-
self.add_trait(MinMax(min_val=
|
|
386
|
+
self.add_trait(MinMax(min_val=min_val_float, max_val=max_val_float))
|
|
381
387
|
else:
|
|
382
388
|
self._remove_constraint_traits()
|
|
383
389
|
self.add_trait(Clamp(min_val=min_val, max_val=max_val))
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
from collections.abc import Callable
|
|
2
|
+
from dataclasses import dataclass, field
|
|
3
|
+
from typing import Any
|
|
4
|
+
|
|
5
|
+
from griptape_nodes.exe_types.core_types import Trait
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@dataclass(eq=False)
|
|
9
|
+
class Clamp(Trait):
|
|
10
|
+
min: Any = 0
|
|
11
|
+
max: Any = 10
|
|
12
|
+
element_id: str = field(default_factory=lambda: "ClampTrait")
|
|
13
|
+
|
|
14
|
+
def __init__(self, min_val: float | None = None, max_val: float | None = None) -> None:
|
|
15
|
+
super().__init__()
|
|
16
|
+
self.min = min_val
|
|
17
|
+
self.max = max_val
|
|
18
|
+
|
|
19
|
+
@classmethod
|
|
20
|
+
def get_trait_keys(cls) -> list[str]:
|
|
21
|
+
return ["clamp"]
|
|
22
|
+
|
|
23
|
+
def _clamp_number(self, value: float) -> float:
|
|
24
|
+
# Keep this as a tiny helper so the converter stays readable and so we can
|
|
25
|
+
# consistently apply one-sided bounds (min-only or max-only) everywhere.
|
|
26
|
+
if self.max is not None and value > self.max:
|
|
27
|
+
value = self.max
|
|
28
|
+
if self.min is not None and value < self.min:
|
|
29
|
+
value = self.min
|
|
30
|
+
return value
|
|
31
|
+
|
|
32
|
+
def _clamp_sequence(self, value: list[Any]) -> list[Any]:
|
|
33
|
+
# Clamp historically applied to strings/lists by max length; we keep list handling
|
|
34
|
+
# explicit here so bounds semantics remain obvious.
|
|
35
|
+
if self.max is None:
|
|
36
|
+
return value
|
|
37
|
+
if len(value) <= self.max:
|
|
38
|
+
return value
|
|
39
|
+
return value[: self.max]
|
|
40
|
+
|
|
41
|
+
def _try_parse_numeric_string(self, value: str) -> float | None:
|
|
42
|
+
# Trait converters run BEFORE parameter-level converters (e.g. ParameterInt/Float
|
|
43
|
+
# parsing). That means UI inputs often arrive as strings here; to make min/max
|
|
44
|
+
# clamping actually work with typical UI inputs, we parse numeric strings when
|
|
45
|
+
# bounds are configured.
|
|
46
|
+
if self.min is None and self.max is None:
|
|
47
|
+
return None
|
|
48
|
+
|
|
49
|
+
stripped = value.strip()
|
|
50
|
+
if not stripped:
|
|
51
|
+
return None
|
|
52
|
+
|
|
53
|
+
try:
|
|
54
|
+
return float(stripped)
|
|
55
|
+
except ValueError:
|
|
56
|
+
return None
|
|
57
|
+
|
|
58
|
+
def converters_for_trait(self) -> list[Callable]:
|
|
59
|
+
def clamp(value: Any) -> Any:
|
|
60
|
+
if isinstance(value, list):
|
|
61
|
+
return self._clamp_sequence(value)
|
|
62
|
+
|
|
63
|
+
if isinstance(value, str):
|
|
64
|
+
parsed = self._try_parse_numeric_string(value)
|
|
65
|
+
if parsed is not None:
|
|
66
|
+
return self._clamp_number(parsed)
|
|
67
|
+
|
|
68
|
+
# If it's not a numeric string (or no bounds configured), preserve the
|
|
69
|
+
# historical string behavior: max length clamping only.
|
|
70
|
+
if self.max is None or len(value) <= self.max:
|
|
71
|
+
return value
|
|
72
|
+
return value[: self.max]
|
|
73
|
+
|
|
74
|
+
if isinstance(value, (int, float)):
|
|
75
|
+
return self._clamp_number(float(value))
|
|
76
|
+
|
|
77
|
+
return value
|
|
78
|
+
|
|
79
|
+
return [clamp]
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
from collections.abc import Callable
|
|
2
|
-
from dataclasses import dataclass, field
|
|
3
|
-
from typing import Any
|
|
4
|
-
|
|
5
|
-
from griptape_nodes.exe_types.core_types import Trait
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
@dataclass(eq=False)
|
|
9
|
-
class Clamp(Trait):
|
|
10
|
-
min: Any = 0
|
|
11
|
-
max: Any = 10
|
|
12
|
-
element_id: str = field(default_factory=lambda: "ClampTrait")
|
|
13
|
-
|
|
14
|
-
def __init__(self, min_val: float, max_val: float) -> None:
|
|
15
|
-
super().__init__()
|
|
16
|
-
self.min = min_val
|
|
17
|
-
self.max = max_val
|
|
18
|
-
|
|
19
|
-
@classmethod
|
|
20
|
-
def get_trait_keys(cls) -> list[str]:
|
|
21
|
-
return ["clamp"]
|
|
22
|
-
|
|
23
|
-
def converters_for_trait(self) -> list[Callable]:
|
|
24
|
-
def clamp(value: Any) -> Any:
|
|
25
|
-
if isinstance(value, (str, list)):
|
|
26
|
-
if len(value) > self.max:
|
|
27
|
-
return value[: self.max]
|
|
28
|
-
return value
|
|
29
|
-
if isinstance(value, (int, float)):
|
|
30
|
-
if value > self.max:
|
|
31
|
-
return self.max
|
|
32
|
-
if value < self.min:
|
|
33
|
-
return self.min
|
|
34
|
-
return value
|
|
35
|
-
|
|
36
|
-
return [clamp]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/api_client/request_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/bootstrap/utils/__init__.py
RENAMED
|
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
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/cli/commands/libraries.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/macro_parser/__init__.py
RENAMED
|
File without changes
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/macro_parser/core.py
RENAMED
|
File without changes
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/macro_parser/exceptions.py
RENAMED
|
File without changes
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/macro_parser/formats.py
RENAMED
|
File without changes
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/macro_parser/matching.py
RENAMED
|
File without changes
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/macro_parser/parsing.py
RENAMED
|
File without changes
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/macro_parser/resolution.py
RENAMED
|
File without changes
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/common/macro_parser/segments.py
RENAMED
|
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
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/drivers/storage/__init__.py
RENAMED
|
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
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/base_iterative_nodes.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/node_groups/__init__.py
RENAMED
|
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
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/param_types/__init__.py
RENAMED
|
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
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/exe_types/type_validator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/machines/parallel_resolution.py
RENAMED
|
File without changes
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/machines/sequential_resolution.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/node_library/library_registry.py
RENAMED
|
File without changes
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/node_library/workflow_registry.py
RENAMED
|
File without changes
|
|
File without changes
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/__init__.py
RENAMED
|
File without changes
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/__init__.py
RENAMED
|
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
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/events/os_events.py
RENAMED
|
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
|
{griptape_nodes-0.70.0 → griptape_nodes-0.70.1}/src/griptape_nodes/retained_mode/griptape_nodes.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|