griptape-nodes 0.59.2__py3-none-any.whl → 0.59.3__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.
@@ -169,8 +169,6 @@ class LibraryManager:
169
169
  self._library_event_handler_mappings: dict[type[Payload], dict[str, LibraryManager.RegisteredEventHandler]] = {}
170
170
  # LibraryDirectory owns the FSMs and manages library lifecycle
171
171
  self._library_directory = LibraryDirectory()
172
- # Lock for synchronizing sys.path modifications during parallel library installation
173
- self._sys_path_lock = asyncio.Lock()
174
172
 
175
173
  event_manager.assign_manager_to_request_type(
176
174
  ListRegisteredLibrariesRequest, self.on_list_registered_libraries_request
@@ -726,8 +724,7 @@ class LibraryManager:
726
724
  # Get the directory containing the JSON file to resolve relative paths
727
725
  base_dir = json_path.parent.absolute()
728
726
  # Add the directory to the Python path to allow for relative imports
729
- async with self._sys_path_lock:
730
- sys.path.insert(0, str(base_dir))
727
+ sys.path.insert(0, str(base_dir))
731
728
 
732
729
  # Load the advanced library module if specified
733
730
  advanced_library_instance = None
@@ -1060,8 +1057,7 @@ class LibraryManager:
1060
1057
  )
1061
1058
  )
1062
1059
  )
1063
- async with self._sys_path_lock:
1064
- sys.path.insert(0, site_packages)
1060
+ sys.path.insert(0, site_packages)
1065
1061
 
1066
1062
  return library_venv_python_path
1067
1063
 
@@ -1503,27 +1499,6 @@ class LibraryManager:
1503
1499
 
1504
1500
  return node_class
1505
1501
 
1506
- async def _register_single_library(self, library_result: LoadLibraryMetadataFromFileResultSuccess) -> None:
1507
- """Register a single library (sandbox or config-based) and handle errors.
1508
-
1509
- Args:
1510
- library_result: The metadata result for the library to register
1511
- """
1512
- try:
1513
- if library_result.library_schema.name == LibraryManager.SANDBOX_LIBRARY_NAME:
1514
- await self._attempt_generate_sandbox_library_from_schema(
1515
- library_schema=library_result.library_schema, sandbox_directory=library_result.file_path
1516
- )
1517
- else:
1518
- register_request = RegisterLibraryFromFileRequest(
1519
- file_path=library_result.file_path, load_as_default_library=False
1520
- )
1521
- register_result = await self.register_library_from_file_request(register_request)
1522
- if isinstance(register_result, RegisterLibraryFromFileResultFailure):
1523
- logger.warning("Failed to register library from %s", library_result.file_path)
1524
- except Exception as e:
1525
- logger.warning("Failed to register library from %s with exception: %s", library_result.file_path, e)
1526
-
1527
1502
  async def load_all_libraries_from_config(self) -> None:
1528
1503
  # Load metadata for all libraries to determine which ones can be safely loaded
1529
1504
  metadata_request = LoadMetadataForAllLibrariesRequest()
@@ -1543,10 +1518,23 @@ class LibraryManager:
1543
1518
  problems=failed_library.problems,
1544
1519
  )
1545
1520
 
1546
- # Use task group for parallel library loading
1547
- async with asyncio.TaskGroup() as tg:
1548
- for library_result in metadata_result.successful_libraries:
1549
- tg.create_task(self._register_single_library(library_result))
1521
+ # Use metadata results to selectively load libraries
1522
+ for library_result in metadata_result.successful_libraries:
1523
+ if library_result.library_schema.name == LibraryManager.SANDBOX_LIBRARY_NAME:
1524
+ # Handle sandbox library - use the schema we already have
1525
+ await self._attempt_generate_sandbox_library_from_schema(
1526
+ library_schema=library_result.library_schema, sandbox_directory=library_result.file_path
1527
+ )
1528
+ else:
1529
+ # Handle config-based library - register it directly using the file path
1530
+ register_request = RegisterLibraryFromFileRequest(
1531
+ file_path=library_result.file_path, load_as_default_library=False
1532
+ )
1533
+ register_result = await self.register_library_from_file_request(register_request)
1534
+ if isinstance(register_result, RegisterLibraryFromFileResultFailure):
1535
+ # Registration failed - the failure info is already recorded in _library_file_path_to_info
1536
+ # by register_library_from_file_request, so we just log it here for visibility
1537
+ logger.warning("Failed to register library from %s", library_result.file_path)
1550
1538
 
1551
1539
  # Print 'em all pretty
1552
1540
  self.print_library_load_status()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: griptape-nodes
3
- Version: 0.59.2
3
+ Version: 0.59.3
4
4
  Summary: Add your description here
5
5
  Requires-Dist: griptape>=1.8.8
6
6
  Requires-Dist: pydantic>=2.10.6
@@ -110,7 +110,7 @@ griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/packa
110
110
  griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/sandbox.py,sha256=XgG7whE74zWDxX1pOvhASW0pwjOei1EDLvIH19xdzT0,6117
111
111
  griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance.py,sha256=cCGr-MQ1RlVBiUTZepYEKdVhPgC4ebcYrmpv8rI3VeM,894
112
112
  griptape_nodes/retained_mode/managers/library_lifecycle/library_status.py,sha256=K3UEBzAdCY9wphyBbLxDYP0Q43aYvhLZ_Pz7_SzcPec,443
113
- griptape_nodes/retained_mode/managers/library_manager.py,sha256=SmAQWPBllzl4sb0YGs8wkIM6OpezKbDRKR8eAgiKyZo,100540
113
+ griptape_nodes/retained_mode/managers/library_manager.py,sha256=CO4mZEPgYQPGRbqJz8R5NYYp1RgLCb38q14bssdyb14,100111
114
114
  griptape_nodes/retained_mode/managers/mcp_manager.py,sha256=BxNVDYUAn5-iylGzURqVZq1DRintrIK5T6q2X_rxm_U,15596
115
115
  griptape_nodes/retained_mode/managers/model_manager.py,sha256=Qc_FiqIJQ_ZuL5Yb7WiHCgUngKlbbJ_dUo7E5Ten5_g,45036
116
116
  griptape_nodes/retained_mode/managers/node_manager.py,sha256=PO6m-ny3exswCqHx2LV4y56qpbBUnh6U01wT1AX24CQ,183596
@@ -172,7 +172,7 @@ griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_re
172
172
  griptape_nodes/version_compatibility/workflow_versions/__init__.py,sha256=z5XDgkizoNByCXpyo34hfsJKFsWlOHbD6hgzfYH9ubc,52
173
173
  griptape_nodes/version_compatibility/workflow_versions/v0_7_0/__init__.py,sha256=IzPPmGK86h2swfGGTOHyVcBIlOng6SjgWQzlbf3ngmo,51
174
174
  griptape_nodes/version_compatibility/workflow_versions/v0_7_0/local_executor_argument_addition.py,sha256=Y8n1wzI5a-ZCHK5eiwtnnD3zF5lN-52R67rxYn0hxyI,2069
175
- griptape_nodes-0.59.2.dist-info/WHEEL,sha256=ELhySV62sOro8I5wRaLaF3TWxhBpkcDkdZUdAYLy_Hk,78
176
- griptape_nodes-0.59.2.dist-info/entry_points.txt,sha256=qvevqd3BVbAV5TcantnAm0ouqaqYKhsRO3pkFymWLWM,82
177
- griptape_nodes-0.59.2.dist-info/METADATA,sha256=itwWwFOo728n1FQwc5aFzTWihGGx3w5lT3uzYCXBckI,5108
178
- griptape_nodes-0.59.2.dist-info/RECORD,,
175
+ griptape_nodes-0.59.3.dist-info/WHEEL,sha256=ELhySV62sOro8I5wRaLaF3TWxhBpkcDkdZUdAYLy_Hk,78
176
+ griptape_nodes-0.59.3.dist-info/entry_points.txt,sha256=qvevqd3BVbAV5TcantnAm0ouqaqYKhsRO3pkFymWLWM,82
177
+ griptape_nodes-0.59.3.dist-info/METADATA,sha256=264LN9kJJRslObEYiVjsdTysFJtVHTwKwxoFDb_bdf0,5108
178
+ griptape_nodes-0.59.3.dist-info/RECORD,,