griptape-nodes 0.45.1__py3-none-any.whl → 0.47.0__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.
- griptape_nodes/__init__.py +51 -14
- griptape_nodes/exe_types/core_types.py +65 -10
- griptape_nodes/exe_types/node_types.py +10 -0
- griptape_nodes/machines/node_resolution.py +10 -8
- griptape_nodes/node_library/workflow_registry.py +1 -1
- griptape_nodes/retained_mode/events/base_events.py +74 -1
- griptape_nodes/retained_mode/events/secrets_events.py +2 -0
- griptape_nodes/retained_mode/events/workflow_events.py +4 -2
- griptape_nodes/retained_mode/griptape_nodes.py +17 -13
- griptape_nodes/retained_mode/managers/agent_manager.py +8 -6
- griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py +1 -1
- griptape_nodes/retained_mode/managers/config_manager.py +36 -45
- griptape_nodes/retained_mode/managers/flow_manager.py +98 -98
- griptape_nodes/retained_mode/managers/library_manager.py +51 -51
- griptape_nodes/retained_mode/managers/node_manager.py +122 -129
- griptape_nodes/retained_mode/managers/object_manager.py +9 -10
- griptape_nodes/retained_mode/managers/os_manager.py +31 -31
- griptape_nodes/retained_mode/managers/secrets_manager.py +5 -5
- griptape_nodes/retained_mode/managers/static_files_manager.py +18 -17
- griptape_nodes/retained_mode/managers/sync_manager.py +3 -2
- griptape_nodes/retained_mode/managers/version_compatibility_manager.py +84 -1
- griptape_nodes/retained_mode/managers/workflow_manager.py +221 -163
- griptape_nodes/retained_mode/retained_mode.py +22 -44
- griptape_nodes/version_compatibility/workflow_versions/__init__.py +1 -0
- griptape_nodes/version_compatibility/workflow_versions/v0_7_0/__init__.py +1 -0
- griptape_nodes/version_compatibility/workflow_versions/v0_7_0/local_executor_argument_addition.py +42 -0
- {griptape_nodes-0.45.1.dist-info → griptape_nodes-0.47.0.dist-info}/METADATA +1 -1
- {griptape_nodes-0.45.1.dist-info → griptape_nodes-0.47.0.dist-info}/RECORD +30 -27
- {griptape_nodes-0.45.1.dist-info → griptape_nodes-0.47.0.dist-info}/WHEEL +1 -1
- {griptape_nodes-0.45.1.dist-info → griptape_nodes-0.47.0.dist-info}/entry_points.txt +0 -0
|
@@ -315,9 +315,8 @@ class LibraryManager:
|
|
|
315
315
|
"""Get all registered event handlers for a specific request type."""
|
|
316
316
|
request_type = PayloadRegistry.get_type(request.request_type)
|
|
317
317
|
if request_type is None:
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
)
|
|
318
|
+
details = f"Request type '{request.request_type}' is not registered in the PayloadRegistry."
|
|
319
|
+
return ListCapableLibraryEventHandlersResultFailure(exception=KeyError(details), result_details=details)
|
|
321
320
|
handler_mappings = self.get_registered_event_handlers(request_type)
|
|
322
321
|
return ListCapableLibraryEventHandlersResultSuccess(handlers=list(handler_mappings.keys()))
|
|
323
322
|
|
|
@@ -342,7 +341,7 @@ class LibraryManager:
|
|
|
342
341
|
details = f"Attempted to list node types in a Library named '{request.library}'. Failed because no Library with that name was registered."
|
|
343
342
|
logger.error(details)
|
|
344
343
|
|
|
345
|
-
result = ListNodeTypesInLibraryResultFailure()
|
|
344
|
+
result = ListNodeTypesInLibraryResultFailure(result_details=details)
|
|
346
345
|
return result
|
|
347
346
|
|
|
348
347
|
# Cool, get a copy of the list.
|
|
@@ -365,7 +364,7 @@ class LibraryManager:
|
|
|
365
364
|
details = f"Attempted to get metadata for Library '{request.library}'. Failed because no Library with that name was registered."
|
|
366
365
|
logger.error(details)
|
|
367
366
|
|
|
368
|
-
result = GetLibraryMetadataResultFailure()
|
|
367
|
+
result = GetLibraryMetadataResultFailure(result_details=details)
|
|
369
368
|
return result
|
|
370
369
|
|
|
371
370
|
# Get the metadata off of it.
|
|
@@ -398,6 +397,7 @@ class LibraryManager:
|
|
|
398
397
|
problems=[
|
|
399
398
|
"Library could not be found at the file path specified. It will be removed from the configuration."
|
|
400
399
|
],
|
|
400
|
+
result_details=details,
|
|
401
401
|
)
|
|
402
402
|
|
|
403
403
|
# Load the JSON
|
|
@@ -412,6 +412,7 @@ class LibraryManager:
|
|
|
412
412
|
library_name=None,
|
|
413
413
|
status=LibraryStatus.UNUSABLE,
|
|
414
414
|
problems=["Library file not formatted as proper JSON."],
|
|
415
|
+
result_details=details,
|
|
415
416
|
)
|
|
416
417
|
except Exception as err:
|
|
417
418
|
details = f"Attempted to load Library JSON file from location '{json_path}'. Failed because an exception occurred: {err}"
|
|
@@ -421,6 +422,7 @@ class LibraryManager:
|
|
|
421
422
|
library_name=None,
|
|
422
423
|
status=LibraryStatus.UNUSABLE,
|
|
423
424
|
problems=[f"Exception occurred when attempting to load the library: {err}."],
|
|
425
|
+
result_details=details,
|
|
424
426
|
)
|
|
425
427
|
|
|
426
428
|
# Try to extract library name from JSON for better error reporting
|
|
@@ -445,6 +447,7 @@ class LibraryManager:
|
|
|
445
447
|
library_name=library_name,
|
|
446
448
|
status=LibraryStatus.UNUSABLE,
|
|
447
449
|
problems=problems,
|
|
450
|
+
result_details=details,
|
|
448
451
|
)
|
|
449
452
|
except Exception as err:
|
|
450
453
|
details = f"Attempted to load Library JSON file. Failed because the file at path '{json_path}' failed to match the library schema due to: {err}"
|
|
@@ -454,6 +457,7 @@ class LibraryManager:
|
|
|
454
457
|
library_name=library_name,
|
|
455
458
|
status=LibraryStatus.UNUSABLE,
|
|
456
459
|
problems=[f"Library file did not match the library schema specified due to: {err}"],
|
|
460
|
+
result_details=details,
|
|
457
461
|
)
|
|
458
462
|
|
|
459
463
|
details = f"Successfully loaded library metadata from JSON file at {json_path}"
|
|
@@ -523,11 +527,13 @@ class LibraryManager:
|
|
|
523
527
|
sandbox_library_dir_as_posix = sandbox_library_dir.as_posix()
|
|
524
528
|
|
|
525
529
|
if not sandbox_library_dir.exists():
|
|
530
|
+
details = "Sandbox directory does not exist."
|
|
526
531
|
return LoadLibraryMetadataFromFileResultFailure(
|
|
527
532
|
library_path=sandbox_library_dir_as_posix,
|
|
528
533
|
library_name=LibraryManager.SANDBOX_LIBRARY_NAME,
|
|
529
534
|
status=LibraryStatus.MISSING,
|
|
530
|
-
problems=[
|
|
535
|
+
problems=[details],
|
|
536
|
+
result_details=details,
|
|
531
537
|
)
|
|
532
538
|
|
|
533
539
|
sandbox_node_candidates = self._find_files_in_dir(directory=sandbox_library_dir, extension=".py")
|
|
@@ -578,11 +584,13 @@ class LibraryManager:
|
|
|
578
584
|
|
|
579
585
|
engine_version = GriptapeNodes().handle_engine_version_request(request=GetEngineVersionRequest())
|
|
580
586
|
if not isinstance(engine_version, GetEngineVersionResultSuccess):
|
|
587
|
+
details = "Could not get engine version for sandbox library generation."
|
|
581
588
|
return LoadLibraryMetadataFromFileResultFailure(
|
|
582
589
|
library_path=sandbox_library_dir_as_posix,
|
|
583
590
|
library_name=LibraryManager.SANDBOX_LIBRARY_NAME,
|
|
584
591
|
status=LibraryStatus.UNUSABLE,
|
|
585
|
-
problems=[
|
|
592
|
+
problems=[details],
|
|
593
|
+
result_details=details,
|
|
586
594
|
)
|
|
587
595
|
|
|
588
596
|
engine_version_str = f"{engine_version.major}.{engine_version.minor}.{engine_version.patch}"
|
|
@@ -619,7 +627,7 @@ class LibraryManager:
|
|
|
619
627
|
details = f"Attempted to get node metadata for a node type '{request.node_type}' in a Library named '{request.library}'. Failed because no Library with that name was registered."
|
|
620
628
|
logger.error(details)
|
|
621
629
|
|
|
622
|
-
result = GetNodeMetadataFromLibraryResultFailure()
|
|
630
|
+
result = GetNodeMetadataFromLibraryResultFailure(result_details=details)
|
|
623
631
|
return result
|
|
624
632
|
|
|
625
633
|
# Does the node type exist within the library?
|
|
@@ -629,7 +637,7 @@ class LibraryManager:
|
|
|
629
637
|
details = f"Attempted to get node metadata for a node type '{request.node_type}' in a Library named '{request.library}'. Failed because no node type of that name could be found in the Library."
|
|
630
638
|
logger.error(details)
|
|
631
639
|
|
|
632
|
-
result = GetNodeMetadataFromLibraryResultFailure()
|
|
640
|
+
result = GetNodeMetadataFromLibraryResultFailure(result_details=details)
|
|
633
641
|
return result
|
|
634
642
|
|
|
635
643
|
details = f"Successfully retrieved node metadata for a node type '{request.node_type}' in a Library named '{request.library}'."
|
|
@@ -647,7 +655,7 @@ class LibraryManager:
|
|
|
647
655
|
except KeyError:
|
|
648
656
|
details = f"Attempted to get categories in a Library named '{request.library}'. Failed because no Library with that name was registered."
|
|
649
657
|
logger.error(details)
|
|
650
|
-
result = ListCategoriesInLibraryResultFailure()
|
|
658
|
+
result = ListCategoriesInLibraryResultFailure(result_details=details)
|
|
651
659
|
return result
|
|
652
660
|
|
|
653
661
|
categories = library.get_categories()
|
|
@@ -672,7 +680,7 @@ class LibraryManager:
|
|
|
672
680
|
)
|
|
673
681
|
details = f"Attempted to load Library JSON file. Failed because no file could be found at the specified path: {json_path}"
|
|
674
682
|
logger.error(details)
|
|
675
|
-
return RegisterLibraryFromFileResultFailure()
|
|
683
|
+
return RegisterLibraryFromFileResultFailure(result_details=details)
|
|
676
684
|
|
|
677
685
|
# Use the new metadata loading functionality
|
|
678
686
|
metadata_request = LoadLibraryMetadataFromFileRequest(file_path=file_path)
|
|
@@ -688,7 +696,7 @@ class LibraryManager:
|
|
|
688
696
|
status=failure_result.status,
|
|
689
697
|
problems=failure_result.problems,
|
|
690
698
|
)
|
|
691
|
-
return RegisterLibraryFromFileResultFailure()
|
|
699
|
+
return RegisterLibraryFromFileResultFailure(result_details=str(failure_result.result_details))
|
|
692
700
|
|
|
693
701
|
# Get the validated library data
|
|
694
702
|
library_data = metadata_result.library_schema
|
|
@@ -706,7 +714,7 @@ class LibraryManager:
|
|
|
706
714
|
)
|
|
707
715
|
details = f"Attempted to load Library '{library_data.name}' JSON file from '{json_path}'. Failed because version string '{library_data.metadata.library_version}' wasn't valid. Must be in major.minor.patch format."
|
|
708
716
|
logger.error(details)
|
|
709
|
-
return RegisterLibraryFromFileResultFailure()
|
|
717
|
+
return RegisterLibraryFromFileResultFailure(result_details=details)
|
|
710
718
|
|
|
711
719
|
# Get the directory containing the JSON file to resolve relative paths
|
|
712
720
|
base_dir = json_path.parent.absolute()
|
|
@@ -733,7 +741,7 @@ class LibraryManager:
|
|
|
733
741
|
)
|
|
734
742
|
details = f"Attempted to load Library '{library_data.name}' from '{json_path}'. Failed to load Advanced Library module: {err}"
|
|
735
743
|
logger.error(details)
|
|
736
|
-
return RegisterLibraryFromFileResultFailure()
|
|
744
|
+
return RegisterLibraryFromFileResultFailure(result_details=details)
|
|
737
745
|
|
|
738
746
|
# Create or get the library
|
|
739
747
|
try:
|
|
@@ -758,7 +766,7 @@ class LibraryManager:
|
|
|
758
766
|
|
|
759
767
|
details = f"Attempted to load Library JSON file from '{json_path}'. Failed because a Library '{library_data.name}' already exists. Error: {err}."
|
|
760
768
|
logger.error(details)
|
|
761
|
-
return RegisterLibraryFromFileResultFailure()
|
|
769
|
+
return RegisterLibraryFromFileResultFailure(result_details=details)
|
|
762
770
|
|
|
763
771
|
# Install node library dependencies
|
|
764
772
|
try:
|
|
@@ -784,19 +792,15 @@ class LibraryManager:
|
|
|
784
792
|
)
|
|
785
793
|
details = f"Attempted to load Library JSON file from '{json_path}'. Failed when creating the virtual environment: {e}."
|
|
786
794
|
logger.error(details)
|
|
787
|
-
return RegisterLibraryFromFileResultFailure()
|
|
795
|
+
return RegisterLibraryFromFileResultFailure(result_details=details)
|
|
788
796
|
if self._can_write_to_venv_location(library_venv_python_path):
|
|
789
797
|
# Check disk space before installing dependencies
|
|
790
798
|
config_manager = GriptapeNodes.ConfigManager()
|
|
791
799
|
min_space_gb = config_manager.get_config_value("minimum_disk_space_gb_libraries")
|
|
792
800
|
if not OSManager.check_available_disk_space(Path(venv_path), min_space_gb):
|
|
793
801
|
error_msg = OSManager.format_disk_space_error(Path(venv_path))
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
json_path,
|
|
797
|
-
min_space_gb,
|
|
798
|
-
error_msg,
|
|
799
|
-
)
|
|
802
|
+
details = f"Attempted to load Library JSON from '{json_path}'. Failed when installing dependencies due to insufficient disk space (requires {min_space_gb} GB): {error_msg}"
|
|
803
|
+
logger.error(details)
|
|
800
804
|
self._library_file_path_to_info[file_path] = LibraryManager.LibraryInfo(
|
|
801
805
|
library_path=file_path,
|
|
802
806
|
library_name=library_data.name,
|
|
@@ -806,7 +810,7 @@ class LibraryManager:
|
|
|
806
810
|
f"Insufficient disk space for dependencies (requires {min_space_gb} GB): {error_msg}"
|
|
807
811
|
],
|
|
808
812
|
)
|
|
809
|
-
return RegisterLibraryFromFileResultFailure()
|
|
813
|
+
return RegisterLibraryFromFileResultFailure(result_details=details)
|
|
810
814
|
|
|
811
815
|
# Grab the python executable from the virtual environment so that we can pip install there
|
|
812
816
|
logger.info(
|
|
@@ -847,7 +851,7 @@ class LibraryManager:
|
|
|
847
851
|
)
|
|
848
852
|
details = f"Attempted to load Library JSON file from '{json_path}'. Failed when installing dependencies: {error_details}"
|
|
849
853
|
logger.error(details)
|
|
850
|
-
return RegisterLibraryFromFileResultFailure()
|
|
854
|
+
return RegisterLibraryFromFileResultFailure(result_details=details)
|
|
851
855
|
|
|
852
856
|
# We are at least potentially viable.
|
|
853
857
|
# Record all problems that occurred
|
|
@@ -910,11 +914,11 @@ class LibraryManager:
|
|
|
910
914
|
case LibraryStatus.UNUSABLE:
|
|
911
915
|
details = f"Attempted to load Library JSON file from '{json_path}'. Failed because no nodes were loaded. Check the log for more details."
|
|
912
916
|
logger.error(details)
|
|
913
|
-
return RegisterLibraryFromFileResultFailure()
|
|
917
|
+
return RegisterLibraryFromFileResultFailure(result_details=details)
|
|
914
918
|
case _:
|
|
915
919
|
details = f"Attempted to load Library JSON file from '{json_path}'. Failed because an unknown/unexpected status '{library_load_results.status}' was returned."
|
|
916
920
|
logger.error(details)
|
|
917
|
-
return RegisterLibraryFromFileResultFailure()
|
|
921
|
+
return RegisterLibraryFromFileResultFailure(result_details=details)
|
|
918
922
|
|
|
919
923
|
def register_library_from_requirement_specifier_request(
|
|
920
924
|
self, request: RegisterLibraryFromRequirementSpecifierRequest
|
|
@@ -930,20 +934,16 @@ class LibraryManager:
|
|
|
930
934
|
except RuntimeError as e:
|
|
931
935
|
details = f"Attempted to install library '{request.requirement_specifier}'. Failed when creating the virtual environment: {e}"
|
|
932
936
|
logger.error(details)
|
|
933
|
-
return RegisterLibraryFromRequirementSpecifierResultFailure()
|
|
937
|
+
return RegisterLibraryFromRequirementSpecifierResultFailure(result_details=details)
|
|
934
938
|
if self._can_write_to_venv_location(library_python_venv_path):
|
|
935
939
|
# Check disk space before installing dependencies
|
|
936
940
|
config_manager = GriptapeNodes.ConfigManager()
|
|
937
941
|
min_space_gb = config_manager.get_config_value("minimum_disk_space_gb_libraries")
|
|
938
942
|
if not OSManager.check_available_disk_space(Path(venv_path), min_space_gb):
|
|
939
943
|
error_msg = OSManager.format_disk_space_error(Path(venv_path))
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
min_space_gb,
|
|
944
|
-
error_msg,
|
|
945
|
-
)
|
|
946
|
-
return RegisterLibraryFromRequirementSpecifierResultFailure()
|
|
944
|
+
details = f"Attempted to install library '{request.requirement_specifier}'. Failed when installing dependencies due to insufficient disk space (requires {min_space_gb} GB): {error_msg}"
|
|
945
|
+
logger.error(details)
|
|
946
|
+
return RegisterLibraryFromRequirementSpecifierResultFailure(result_details=details)
|
|
947
947
|
|
|
948
948
|
uv_path = find_uv_bin()
|
|
949
949
|
|
|
@@ -970,11 +970,11 @@ class LibraryManager:
|
|
|
970
970
|
except subprocess.CalledProcessError as e:
|
|
971
971
|
details = f"Attempted to install library '{request.requirement_specifier}'. Failed: return code={e.returncode}, stdout={e.stdout}, stderr={e.stderr}"
|
|
972
972
|
logger.error(details)
|
|
973
|
-
return RegisterLibraryFromRequirementSpecifierResultFailure()
|
|
973
|
+
return RegisterLibraryFromRequirementSpecifierResultFailure(result_details=details)
|
|
974
974
|
except InvalidRequirement as e:
|
|
975
975
|
details = f"Attempted to install library '{request.requirement_specifier}'. Failed due to invalid requirement specifier: {e}"
|
|
976
976
|
logger.error(details)
|
|
977
|
-
return RegisterLibraryFromRequirementSpecifierResultFailure()
|
|
977
|
+
return RegisterLibraryFromRequirementSpecifierResultFailure(result_details=details)
|
|
978
978
|
|
|
979
979
|
library_path = str(files(package_name).joinpath(request.library_config_name))
|
|
980
980
|
|
|
@@ -982,7 +982,7 @@ class LibraryManager:
|
|
|
982
982
|
if isinstance(register_result, RegisterLibraryFromFileResultFailure):
|
|
983
983
|
details = f"Attempted to install library '{request.requirement_specifier}'. Failed due to {register_result}"
|
|
984
984
|
logger.error(details)
|
|
985
|
-
return RegisterLibraryFromRequirementSpecifierResultFailure()
|
|
985
|
+
return RegisterLibraryFromRequirementSpecifierResultFailure(result_details=details)
|
|
986
986
|
|
|
987
987
|
return RegisterLibraryFromRequirementSpecifierResultSuccess(library_name=request.requirement_specifier)
|
|
988
988
|
|
|
@@ -1109,7 +1109,7 @@ class LibraryManager:
|
|
|
1109
1109
|
except Exception as e:
|
|
1110
1110
|
details = f"Attempted to unload library '{request.library_name}'. Failed due to {e}"
|
|
1111
1111
|
logger.error(details)
|
|
1112
|
-
return UnloadLibraryFromRegistryResultFailure()
|
|
1112
|
+
return UnloadLibraryFromRegistryResultFailure(result_details=details)
|
|
1113
1113
|
|
|
1114
1114
|
# Clean up all stable module aliases for this library
|
|
1115
1115
|
self._unregister_all_stable_module_aliases_for_library(request.library_name)
|
|
@@ -1131,7 +1131,7 @@ class LibraryManager:
|
|
|
1131
1131
|
if not list_libraries_result.succeeded():
|
|
1132
1132
|
details = "Attempted to get all info for all libraries, but listing the registered libraries failed."
|
|
1133
1133
|
logger.error(details)
|
|
1134
|
-
return GetAllInfoForAllLibrariesResultFailure()
|
|
1134
|
+
return GetAllInfoForAllLibrariesResultFailure(result_details=details)
|
|
1135
1135
|
|
|
1136
1136
|
try:
|
|
1137
1137
|
list_libraries_success = cast("ListRegisteredLibrariesResultSuccess", list_libraries_result)
|
|
@@ -1146,7 +1146,7 @@ class LibraryManager:
|
|
|
1146
1146
|
if not library_all_info_result.succeeded():
|
|
1147
1147
|
details = f"Attempted to get all info for all libraries, but failed when getting all info for library named '{library_name}'."
|
|
1148
1148
|
logger.error(details)
|
|
1149
|
-
return GetAllInfoForAllLibrariesResultFailure()
|
|
1149
|
+
return GetAllInfoForAllLibrariesResultFailure(result_details=details)
|
|
1150
1150
|
|
|
1151
1151
|
library_all_info_success = cast("GetAllInfoForLibraryResultSuccess", library_all_info_result)
|
|
1152
1152
|
|
|
@@ -1154,7 +1154,7 @@ class LibraryManager:
|
|
|
1154
1154
|
except Exception as err:
|
|
1155
1155
|
details = f"Attempted to get all info for all libraries. Encountered error {err}."
|
|
1156
1156
|
logger.error(details)
|
|
1157
|
-
return GetAllInfoForAllLibrariesResultFailure()
|
|
1157
|
+
return GetAllInfoForAllLibrariesResultFailure(result_details=details)
|
|
1158
1158
|
|
|
1159
1159
|
# We're home free now
|
|
1160
1160
|
details = "Successfully retrieved all info for all libraries."
|
|
@@ -1169,7 +1169,7 @@ class LibraryManager:
|
|
|
1169
1169
|
except KeyError:
|
|
1170
1170
|
details = f"Attempted to get all library info for a Library named '{request.library}'. Failed because no Library with that name was registered."
|
|
1171
1171
|
logger.error(details)
|
|
1172
|
-
result = GetAllInfoForLibraryResultFailure()
|
|
1172
|
+
result = GetAllInfoForLibraryResultFailure(result_details=details)
|
|
1173
1173
|
return result
|
|
1174
1174
|
|
|
1175
1175
|
library_metadata_request = GetLibraryMetadataRequest(library=request.library)
|
|
@@ -1178,7 +1178,7 @@ class LibraryManager:
|
|
|
1178
1178
|
if not library_metadata_result.succeeded():
|
|
1179
1179
|
details = f"Attempted to get all library info for a Library named '{request.library}'. Failed attempting to get the library's metadata."
|
|
1180
1180
|
logger.error(details)
|
|
1181
|
-
return GetAllInfoForLibraryResultFailure()
|
|
1181
|
+
return GetAllInfoForLibraryResultFailure(result_details=details)
|
|
1182
1182
|
|
|
1183
1183
|
list_categories_request = ListCategoriesInLibraryRequest(library=request.library)
|
|
1184
1184
|
list_categories_result = self.list_categories_in_library_request(list_categories_request)
|
|
@@ -1186,7 +1186,7 @@ class LibraryManager:
|
|
|
1186
1186
|
if not list_categories_result.succeeded():
|
|
1187
1187
|
details = f"Attempted to get all library info for a Library named '{request.library}'. Failed attempting to get the list of categories in the library."
|
|
1188
1188
|
logger.error(details)
|
|
1189
|
-
return GetAllInfoForLibraryResultFailure()
|
|
1189
|
+
return GetAllInfoForLibraryResultFailure(result_details=details)
|
|
1190
1190
|
|
|
1191
1191
|
node_type_list_request = ListNodeTypesInLibraryRequest(library=request.library)
|
|
1192
1192
|
node_type_list_result = self.on_list_node_types_in_library_request(node_type_list_request)
|
|
@@ -1194,7 +1194,7 @@ class LibraryManager:
|
|
|
1194
1194
|
if not node_type_list_result.succeeded():
|
|
1195
1195
|
details = f"Attempted to get all library info for a Library named '{request.library}'. Failed attempting to get the list of node types in the library."
|
|
1196
1196
|
logger.error(details)
|
|
1197
|
-
return GetAllInfoForLibraryResultFailure()
|
|
1197
|
+
return GetAllInfoForLibraryResultFailure(result_details=details)
|
|
1198
1198
|
|
|
1199
1199
|
# Cast everyone to their success counterparts.
|
|
1200
1200
|
try:
|
|
@@ -1206,7 +1206,7 @@ class LibraryManager:
|
|
|
1206
1206
|
f"Attempted to get all library info for a Library named '{request.library}'. Encountered error: {err}."
|
|
1207
1207
|
)
|
|
1208
1208
|
logger.error(details)
|
|
1209
|
-
return GetAllInfoForLibraryResultFailure()
|
|
1209
|
+
return GetAllInfoForLibraryResultFailure(result_details=details)
|
|
1210
1210
|
|
|
1211
1211
|
# Now build the map of node types to metadata.
|
|
1212
1212
|
node_type_name_to_node_metadata_details = {}
|
|
@@ -1217,14 +1217,14 @@ class LibraryManager:
|
|
|
1217
1217
|
if not node_metadata_result.succeeded():
|
|
1218
1218
|
details = f"Attempted to get all library info for a Library named '{request.library}'. Failed attempting to get the metadata for a node type called '{node_type_name}'."
|
|
1219
1219
|
logger.error(details)
|
|
1220
|
-
return GetAllInfoForLibraryResultFailure()
|
|
1220
|
+
return GetAllInfoForLibraryResultFailure(result_details=details)
|
|
1221
1221
|
|
|
1222
1222
|
try:
|
|
1223
1223
|
node_metadata_result_success = cast("GetNodeMetadataFromLibraryResultSuccess", node_metadata_result)
|
|
1224
1224
|
except Exception as err:
|
|
1225
1225
|
details = f"Attempted to get all library info for a Library named '{request.library}'. Encountered error: {err}."
|
|
1226
1226
|
logger.error(details)
|
|
1227
|
-
return GetAllInfoForLibraryResultFailure()
|
|
1227
|
+
return GetAllInfoForLibraryResultFailure(result_details=details)
|
|
1228
1228
|
|
|
1229
1229
|
# Put it into the map.
|
|
1230
1230
|
node_type_name_to_node_metadata_details[node_type_name] = node_metadata_result_success
|
|
@@ -2004,7 +2004,7 @@ class LibraryManager:
|
|
|
2004
2004
|
if not clear_all_result.succeeded():
|
|
2005
2005
|
details = "Failed to clear the existing object state when preparing to reload all libraries."
|
|
2006
2006
|
logger.error(details)
|
|
2007
|
-
return ReloadAllLibrariesResultFailure()
|
|
2007
|
+
return ReloadAllLibrariesResultFailure(result_details=details)
|
|
2008
2008
|
|
|
2009
2009
|
# Unload all libraries now.
|
|
2010
2010
|
all_libraries_request = ListRegisteredLibrariesRequest()
|
|
@@ -2012,7 +2012,7 @@ class LibraryManager:
|
|
|
2012
2012
|
if not isinstance(all_libraries_result, ListRegisteredLibrariesResultSuccess):
|
|
2013
2013
|
details = "When preparing to reload all libraries, failed to get registered libraries."
|
|
2014
2014
|
logger.error(details)
|
|
2015
|
-
return ReloadAllLibrariesResultFailure()
|
|
2015
|
+
return ReloadAllLibrariesResultFailure(result_details=details)
|
|
2016
2016
|
|
|
2017
2017
|
for library_name in all_libraries_result.libraries:
|
|
2018
2018
|
unload_library_request = UnloadLibraryFromRegistryRequest(library_name=library_name)
|
|
@@ -2020,7 +2020,7 @@ class LibraryManager:
|
|
|
2020
2020
|
if not unload_library_result.succeeded():
|
|
2021
2021
|
details = f"When preparing to reload all libraries, failed to unload library '{library_name}'."
|
|
2022
2022
|
logger.error(details)
|
|
2023
|
-
return ReloadAllLibrariesResultFailure()
|
|
2023
|
+
return ReloadAllLibrariesResultFailure(result_details=details)
|
|
2024
2024
|
|
|
2025
2025
|
# Load (or reload, which should trigger a hot reload) all libraries
|
|
2026
2026
|
self.load_all_libraries_from_config()
|