griptape-nodes 0.65.6__py3-none-any.whl → 0.66.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/common/node_executor.py +352 -27
- griptape_nodes/drivers/storage/base_storage_driver.py +12 -3
- griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py +18 -2
- griptape_nodes/drivers/storage/local_storage_driver.py +42 -5
- griptape_nodes/exe_types/base_iterative_nodes.py +0 -1
- griptape_nodes/exe_types/connections.py +42 -0
- griptape_nodes/exe_types/core_types.py +2 -2
- griptape_nodes/exe_types/node_groups/__init__.py +2 -1
- griptape_nodes/exe_types/node_groups/base_iterative_node_group.py +177 -0
- griptape_nodes/exe_types/node_groups/base_node_group.py +1 -0
- griptape_nodes/exe_types/node_groups/subflow_node_group.py +35 -2
- griptape_nodes/exe_types/param_types/parameter_audio.py +1 -1
- griptape_nodes/exe_types/param_types/parameter_bool.py +1 -1
- griptape_nodes/exe_types/param_types/parameter_button.py +1 -1
- griptape_nodes/exe_types/param_types/parameter_float.py +1 -1
- griptape_nodes/exe_types/param_types/parameter_image.py +1 -1
- griptape_nodes/exe_types/param_types/parameter_int.py +1 -1
- griptape_nodes/exe_types/param_types/parameter_number.py +1 -1
- griptape_nodes/exe_types/param_types/parameter_string.py +1 -1
- griptape_nodes/exe_types/param_types/parameter_three_d.py +1 -1
- griptape_nodes/exe_types/param_types/parameter_video.py +1 -1
- griptape_nodes/machines/control_flow.py +5 -4
- griptape_nodes/machines/dag_builder.py +121 -55
- griptape_nodes/machines/fsm.py +10 -0
- griptape_nodes/machines/parallel_resolution.py +39 -38
- griptape_nodes/machines/sequential_resolution.py +29 -3
- griptape_nodes/node_library/library_registry.py +41 -2
- griptape_nodes/retained_mode/events/library_events.py +147 -8
- griptape_nodes/retained_mode/events/os_events.py +12 -4
- griptape_nodes/retained_mode/managers/fitness_problems/libraries/__init__.py +2 -0
- griptape_nodes/retained_mode/managers/fitness_problems/libraries/incompatible_requirements_problem.py +34 -0
- griptape_nodes/retained_mode/managers/flow_manager.py +133 -20
- griptape_nodes/retained_mode/managers/library_manager.py +1324 -564
- griptape_nodes/retained_mode/managers/node_manager.py +9 -3
- griptape_nodes/retained_mode/managers/os_manager.py +429 -65
- griptape_nodes/retained_mode/managers/resource_types/compute_resource.py +82 -0
- griptape_nodes/retained_mode/managers/resource_types/os_resource.py +17 -0
- griptape_nodes/retained_mode/managers/static_files_manager.py +21 -8
- griptape_nodes/retained_mode/managers/version_compatibility_manager.py +3 -3
- griptape_nodes/utils/git_utils.py +2 -17
- griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_removal.py +5 -5
- griptape_nodes/version_compatibility/versions/v0_65_4/__init__.py +5 -0
- griptape_nodes/version_compatibility/versions/v0_65_4/run_in_parallel_to_run_in_order.py +79 -0
- griptape_nodes/version_compatibility/versions/v0_65_5/__init__.py +5 -0
- griptape_nodes/version_compatibility/versions/v0_65_5/flux_2_removed_parameters.py +85 -0
- {griptape_nodes-0.65.6.dist-info → griptape_nodes-0.66.0.dist-info}/METADATA +1 -1
- {griptape_nodes-0.65.6.dist-info → griptape_nodes-0.66.0.dist-info}/RECORD +49 -54
- griptape_nodes/retained_mode/managers/library_lifecycle/__init__.py +0 -45
- griptape_nodes/retained_mode/managers/library_lifecycle/data_models.py +0 -191
- griptape_nodes/retained_mode/managers/library_lifecycle/library_directory.py +0 -346
- griptape_nodes/retained_mode/managers/library_lifecycle/library_fsm.py +0 -439
- griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/__init__.py +0 -17
- griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/base.py +0 -82
- griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/github.py +0 -116
- griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/local_file.py +0 -367
- griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/package.py +0 -104
- griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/sandbox.py +0 -155
- griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance.py +0 -18
- griptape_nodes/retained_mode/managers/library_lifecycle/library_status.py +0 -12
- {griptape_nodes-0.65.6.dist-info → griptape_nodes-0.66.0.dist-info}/WHEEL +0 -0
- {griptape_nodes-0.65.6.dist-info → griptape_nodes-0.66.0.dist-info}/entry_points.txt +0 -0
|
@@ -42,7 +42,7 @@ griptape_nodes/common/macro_parser/matching.py,sha256=hnlPIihz8W1TGnfq4anbBGciwg
|
|
|
42
42
|
griptape_nodes/common/macro_parser/parsing.py,sha256=_37L3lCQFeetamWIiHT0C7eW1E3Wyx5V8y8OWzIUw_g,7428
|
|
43
43
|
griptape_nodes/common/macro_parser/resolution.py,sha256=30_bAIRMKWw-kM3E1ne-my16xT1Wd734JMmZSOZtNPA,6937
|
|
44
44
|
griptape_nodes/common/macro_parser/segments.py,sha256=r-WbZas1nSc-PlEdAZ7DycNoD6IUf3R_nhGo3T9vIa8,1010
|
|
45
|
-
griptape_nodes/common/node_executor.py,sha256=
|
|
45
|
+
griptape_nodes/common/node_executor.py,sha256=NOHt1U7ASCLBqAlGoxAG4U57kwLdhuSsLmv0ujCvmcc,134316
|
|
46
46
|
griptape_nodes/common/project_templates/__init__.py,sha256=5DP6Sa6ClsdDcjD30pkK0iTTysTgGdRKEkeY7ztHZyc,1541
|
|
47
47
|
griptape_nodes/common/project_templates/default_project_template.py,sha256=PJFPfziH0EOGVxU5L0wZnc21bVVweW4S7wcnGPF45Co,3120
|
|
48
48
|
griptape_nodes/common/project_templates/defaults/README.md,sha256=1ou6_OFi7-t86nj-7tulW1vxNMtsvkJmNxr6SseG8hA,1080
|
|
@@ -53,9 +53,9 @@ griptape_nodes/common/project_templates/situation.py,sha256=MlpBYrtPvkzIa_j_1NFe
|
|
|
53
53
|
griptape_nodes/common/project_templates/validation.py,sha256=LPm0gri05ZIbSfCqOM4duuaXPIeAk3YWMstM5w5O8ho,4399
|
|
54
54
|
griptape_nodes/drivers/__init__.py,sha256=tHmiFQn6uJyFVhC2PrqHgRUH3d3yDsqMQpWqRasmaqA,42
|
|
55
55
|
griptape_nodes/drivers/storage/__init__.py,sha256=_7p8vJt3YnnF6sD3Uxxw38c-gazuMIHSS-m3G6sa2Qk,208
|
|
56
|
-
griptape_nodes/drivers/storage/base_storage_driver.py,sha256=
|
|
57
|
-
griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py,sha256=
|
|
58
|
-
griptape_nodes/drivers/storage/local_storage_driver.py,sha256=
|
|
56
|
+
griptape_nodes/drivers/storage/base_storage_driver.py,sha256=rMOe9sdUR3QwTgbLd--nSqaXjIs5lm-fXAJvLaNhiRc,4466
|
|
57
|
+
griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py,sha256=GG1pAZT65EvrSAl38trGJqZMzTfh85Iad6Usvxa2F_4,7435
|
|
58
|
+
griptape_nodes/drivers/storage/local_storage_driver.py,sha256=lTjtm22iQgm6Df_QK-qwZlDTdmcSXbrM7Yi7gr2q8WA,5601
|
|
59
59
|
griptape_nodes/drivers/storage/storage_backend.py,sha256=3QBIwrgPc1krBIiPYLoK2swhIPDiKJnnucOEdyx7y3c,184
|
|
60
60
|
griptape_nodes/drivers/thread_storage/__init__.py,sha256=JkCafJ978K63ad8PWtTIC7af70nxMjbp13ZJz2_55Bs,604
|
|
61
61
|
griptape_nodes/drivers/thread_storage/base_thread_storage_driver.py,sha256=yckq3ckw5ZQgBz-wwUVdYzTht9r0dBB1DdJNgrt63ZM,2944
|
|
@@ -63,13 +63,14 @@ griptape_nodes/drivers/thread_storage/griptape_cloud_thread_storage_driver.py,sh
|
|
|
63
63
|
griptape_nodes/drivers/thread_storage/local_thread_storage_driver.py,sha256=I1p2XudP89sUMsRa0DBxGXzsOFEpURLbtF01C_Wpkts,5406
|
|
64
64
|
griptape_nodes/drivers/thread_storage/thread_storage_backend.py,sha256=QXLvFOZrFx7aPBmwVGaN-IHxwRAf_sXN7YWKY6tcwgE,204
|
|
65
65
|
griptape_nodes/exe_types/__init__.py,sha256=wGGwKGX9-TSarUFbXpDvdU_J7eXIbWTBl_NCLOZa-G8,32
|
|
66
|
-
griptape_nodes/exe_types/base_iterative_nodes.py,sha256=
|
|
67
|
-
griptape_nodes/exe_types/connections.py,sha256=
|
|
68
|
-
griptape_nodes/exe_types/core_types.py,sha256=
|
|
66
|
+
griptape_nodes/exe_types/base_iterative_nodes.py,sha256=z2u4Pb9iqy2Zl3gz_LB7k6hmxYyet1Z6sLjF8afPN_0,43810
|
|
67
|
+
griptape_nodes/exe_types/connections.py,sha256=HcM_fwWivMsXk5q6K7ZBSJpmK9THQwX_xLS_daF0PDQ,21737
|
|
68
|
+
griptape_nodes/exe_types/core_types.py,sha256=TrSd_Z-99epMILmqcnr2kIPeUTuQuC7ghyWAOh0B73E,100822
|
|
69
69
|
griptape_nodes/exe_types/flow.py,sha256=2iAh3vN5wnMVxTc5jcPBg9TSiASq1DGIm5jgpO9Bdq4,5732
|
|
70
|
-
griptape_nodes/exe_types/node_groups/__init__.py,sha256=
|
|
71
|
-
griptape_nodes/exe_types/node_groups/
|
|
72
|
-
griptape_nodes/exe_types/node_groups/
|
|
70
|
+
griptape_nodes/exe_types/node_groups/__init__.py,sha256=N-x5jU8XthYShF9TYnP90pd9DfUE5toiXb5lEoGFL-A,298
|
|
71
|
+
griptape_nodes/exe_types/node_groups/base_iterative_node_group.py,sha256=xy05VkgLQORVE_jr5eCkAprCSlTiduCYkZkNHQGH-Cc,6343
|
|
72
|
+
griptape_nodes/exe_types/node_groups/base_node_group.py,sha256=jXgmI2lLdCPK6Wh19LxSzsit6wIpRw6AcPqmMF9bjc8,885
|
|
73
|
+
griptape_nodes/exe_types/node_groups/subflow_node_group.py,sha256=oIyX0VZcJvJ32KFqAsFbdMvrT-r_z8L8uclrwzCQceU,49972
|
|
73
74
|
griptape_nodes/exe_types/node_types.py,sha256=pPljG84zJ6Wd6yzcRjnK0n1805b-Jyzxx7-NFox66QE,84227
|
|
74
75
|
griptape_nodes/exe_types/param_components/README.md,sha256=mcNFxJIan9CGTnecsrJ8mkHC55dlA3fb7k4HFznou-k,14850
|
|
75
76
|
griptape_nodes/exe_types/param_components/__init__.py,sha256=ocm75WnsgiD6ozKVGFhoH9cQe_FEzeF2osxrRujOes0,60
|
|
@@ -86,27 +87,27 @@ griptape_nodes/exe_types/param_components/log_parameter.py,sha256=K6XRWVIpL9MtQ6
|
|
|
86
87
|
griptape_nodes/exe_types/param_components/progress_bar_component.py,sha256=GrAFTOrLNAx6q9zfOqiioPTG_NLHKhTe9NiZOo6zGSc,1949
|
|
87
88
|
griptape_nodes/exe_types/param_components/seed_parameter.py,sha256=nXyi9bPCK9LuRB6s4Q2ezwdboIaivEObglNrSFn0y-0,2045
|
|
88
89
|
griptape_nodes/exe_types/param_types/__init__.py,sha256=xEEmKvIFF6M7zVjQZCupbbv6SZKt-itD-rPtfRhxJVg,53
|
|
89
|
-
griptape_nodes/exe_types/param_types/parameter_audio.py,sha256=
|
|
90
|
-
griptape_nodes/exe_types/param_types/parameter_bool.py,sha256=
|
|
91
|
-
griptape_nodes/exe_types/param_types/parameter_button.py,sha256=
|
|
92
|
-
griptape_nodes/exe_types/param_types/parameter_float.py,sha256=
|
|
93
|
-
griptape_nodes/exe_types/param_types/parameter_image.py,sha256=
|
|
94
|
-
griptape_nodes/exe_types/param_types/parameter_int.py,sha256=
|
|
95
|
-
griptape_nodes/exe_types/param_types/parameter_number.py,sha256=
|
|
96
|
-
griptape_nodes/exe_types/param_types/parameter_string.py,sha256=
|
|
97
|
-
griptape_nodes/exe_types/param_types/parameter_three_d.py,sha256=
|
|
98
|
-
griptape_nodes/exe_types/param_types/parameter_video.py,sha256=
|
|
90
|
+
griptape_nodes/exe_types/param_types/parameter_audio.py,sha256=m9C5bASK6lJFhYkhwly7q6pRWq1q0pc1wGh38nn3kGs,9419
|
|
91
|
+
griptape_nodes/exe_types/param_types/parameter_bool.py,sha256=mDbs4JW8dlEPvaR-u_tTKa6rzycF6KF5EPnezoQFufA,8100
|
|
92
|
+
griptape_nodes/exe_types/param_types/parameter_button.py,sha256=sFkl7jcQbFOMJk17UEZu0zj6wgAmZ9kfnCZCn_R7L9I,17177
|
|
93
|
+
griptape_nodes/exe_types/param_types/parameter_float.py,sha256=qjMTcMNzKkCLBBzlr2vdSweChXr-M-erSqqUVIU95tc,6678
|
|
94
|
+
griptape_nodes/exe_types/param_types/parameter_image.py,sha256=YldCdmmpL2jeJNRgwSrWavaMVtC0jXiIuO8Np49PTXs,9318
|
|
95
|
+
griptape_nodes/exe_types/param_types/parameter_int.py,sha256=fozMjPfBXL6AIQJ3E5rljloeYdw4ramqh6CU7jsrw24,6827
|
|
96
|
+
griptape_nodes/exe_types/param_types/parameter_number.py,sha256=NY3c1iKCNnIZ4BKXGykxmggzr4D9-9GZoZCwQxasp0s,15257
|
|
97
|
+
griptape_nodes/exe_types/param_types/parameter_string.py,sha256=8Mrx3Ktw12D78HNzfL19aoMtgUacxyYE9ZyNun8htcI,9468
|
|
98
|
+
griptape_nodes/exe_types/param_types/parameter_three_d.py,sha256=G8gf5v_hplzprC-jBPufgtwnpZiqsKlbYnsuwc3D_VI,8278
|
|
99
|
+
griptape_nodes/exe_types/param_types/parameter_video.py,sha256=MDjadF3WQIi8EiYAnT0ILOimKU0xIJTKu5HlqWKRE-I,9339
|
|
99
100
|
griptape_nodes/exe_types/type_validator.py,sha256=RTz1vX09jzQpHhozITMJ0siOZUXvsERDhrApjdaM1WM,1120
|
|
100
101
|
griptape_nodes/machines/__init__.py,sha256=v0jkwr-CFOLmfEYUQvX8BKQLOdvhSsA6toXkdHcPGUE,30
|
|
101
|
-
griptape_nodes/machines/control_flow.py,sha256=
|
|
102
|
-
griptape_nodes/machines/dag_builder.py,sha256=
|
|
103
|
-
griptape_nodes/machines/fsm.py,sha256=
|
|
104
|
-
griptape_nodes/machines/parallel_resolution.py,sha256=
|
|
105
|
-
griptape_nodes/machines/sequential_resolution.py,sha256=
|
|
102
|
+
griptape_nodes/machines/control_flow.py,sha256=mmiA7OHXG3Nq36uFPKSGVgqm-ws-T21vzHgvF-um0hg,23007
|
|
103
|
+
griptape_nodes/machines/dag_builder.py,sha256=lWeonzrN-mk50B7laLGzX9a4QK8Yr2F1Ei_37d_D2NU,17978
|
|
104
|
+
griptape_nodes/machines/fsm.py,sha256=P1CZQl5smZy95UIKHVAEqaNQfqJzf7cheWiLT70tQOg,2768
|
|
105
|
+
griptape_nodes/machines/parallel_resolution.py,sha256=oYWx5XnzD4w4kJZhT9TqCXPH0C-jd3DniHyVccHtSQ8,32119
|
|
106
|
+
griptape_nodes/machines/sequential_resolution.py,sha256=Mk_EBmCRrGcl9k_lSTXrYIaXcjuRyMKslG5VPTh1mNc,21039
|
|
106
107
|
griptape_nodes/mcp_server/__init__.py,sha256=GSpJWqE4lICaryhsQR1okeMH2x6j1bBL0HVxtr52WLg,42
|
|
107
108
|
griptape_nodes/node_library/__init__.py,sha256=U3FcSdmq6UW7qt6E3Up3NWKvUEn5_5lqL-u5qbzfxMQ,28
|
|
108
109
|
griptape_nodes/node_library/advanced_node_library.py,sha256=B1ZaxuFIzQ6tx_3MLIxlsHuahthEC1Hw_t6K_ByIdzs,2104
|
|
109
|
-
griptape_nodes/node_library/library_registry.py,sha256
|
|
110
|
+
griptape_nodes/node_library/library_registry.py,sha256=siLAkVN3f56C2Ks7RwXnKGgKIYT_j8nZOOFUd3s6Zyo,15941
|
|
110
111
|
griptape_nodes/node_library/workflow_registry.py,sha256=vRnZ6RSFRAf_XOOTrirLhrcmq8BK434XUdynNQ1gGMU,10523
|
|
111
112
|
griptape_nodes/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
112
113
|
griptape_nodes/retained_mode/__init__.py,sha256=X12DKL6KhLsiRTPIlrPj2h76_sJ0q0eH4r0kMQkodm0,29
|
|
@@ -121,13 +122,13 @@ griptape_nodes/retained_mode/events/context_events.py,sha256=-FIwjI0hJodDhfM4BF-
|
|
|
121
122
|
griptape_nodes/retained_mode/events/execution_events.py,sha256=AQHD04wxQXJDHGnw_ij4QvdUoiMckpMTZqZJX3ehGgA,13512
|
|
122
123
|
griptape_nodes/retained_mode/events/flow_events.py,sha256=UcRHfaubb1GpDFSPg-5HRWrPnA7ifH1zBMYtWnYNy_E,19434
|
|
123
124
|
griptape_nodes/retained_mode/events/generate_request_payload_schemas.py,sha256=PQ0QRZAUBljSIGjB8QhYUeRmSrfmLsJ6XVcygJKi13I,1102
|
|
124
|
-
griptape_nodes/retained_mode/events/library_events.py,sha256=
|
|
125
|
+
griptape_nodes/retained_mode/events/library_events.py,sha256=Ke9B7pzhiJk_ctmZPJqilzHhZXByG4B2rArG6ec9KF4,36085
|
|
125
126
|
griptape_nodes/retained_mode/events/logger_events.py,sha256=jYlxzPomgCsJuPtJ0znWBhD8QJfC8qC4xfChDiuVuyg,705
|
|
126
127
|
griptape_nodes/retained_mode/events/mcp_events.py,sha256=51OlMZVcabdcIxBb_ojvrHtq2jAzZA31pooPBKaApyg,10734
|
|
127
128
|
griptape_nodes/retained_mode/events/model_events.py,sha256=jXm-v-_Uxysn4MJ7a80_uIphrxTHgua3BGgHGyy3T_Y,9232
|
|
128
129
|
griptape_nodes/retained_mode/events/node_events.py,sha256=vpILjBkgrPzF_KSow2EJCwcU-tDD78WEWM2DAAzhhiE,37720
|
|
129
130
|
griptape_nodes/retained_mode/events/object_events.py,sha256=cJaqEU73Lzf1RRxJrFqEpl8eTr-gDhKpXKywJ-vVCJQ,2631
|
|
130
|
-
griptape_nodes/retained_mode/events/os_events.py,sha256=
|
|
131
|
+
griptape_nodes/retained_mode/events/os_events.py,sha256=fVraPXCz48kDpCTttJFtsyfTfkaLSfTX57hexYSD7I8,23429
|
|
131
132
|
griptape_nodes/retained_mode/events/parameter_events.py,sha256=2s3U_cc45LjSmq2pZyTEnjD6yAlc207wAYY633z4zO4,23938
|
|
132
133
|
griptape_nodes/retained_mode/events/payload_registry.py,sha256=q-wxUqp63vhNj-Pl1JGJHnBkhUefcCArPoMN3KBREEI,1691
|
|
133
134
|
griptape_nodes/retained_mode/events/project_events.py,sha256=C_jHk_7dRJLtbRgCi8IGe-mH46tueuTxLxGL7xxZVBI,17096
|
|
@@ -147,7 +148,7 @@ griptape_nodes/retained_mode/managers/context_manager.py,sha256=eb44_CAZhCg2iYIo
|
|
|
147
148
|
griptape_nodes/retained_mode/managers/engine_identity_manager.py,sha256=-31364A03kU0YmAx3nM7nHdWfKnkej5Cawt_Plbwa68,10526
|
|
148
149
|
griptape_nodes/retained_mode/managers/event_manager.py,sha256=v66GUmh5Knyxls-lB3TicsOxK535A7aZkmjDOIehbog,20537
|
|
149
150
|
griptape_nodes/retained_mode/managers/fitness_problems/__init__.py,sha256=H_Wwfn1k_IaxwRxgbw3-seb1HWbcxl2Cvhw7wB7bCo8,75
|
|
150
|
-
griptape_nodes/retained_mode/managers/fitness_problems/libraries/__init__.py,sha256=
|
|
151
|
+
griptape_nodes/retained_mode/managers/fitness_problems/libraries/__init__.py,sha256=vjyI8VUKNieAhlLlaxoUZZK9AxacdbajHVVFTPo_82A,3340
|
|
151
152
|
griptape_nodes/retained_mode/managers/fitness_problems/libraries/advanced_library_load_failure_problem.py,sha256=Z7bIE_Ll4qqsG-D_PLe48r3ZuUCChgk04mopDvZ5MD0,1215
|
|
152
153
|
griptape_nodes/retained_mode/managers/fitness_problems/libraries/after_library_callback_problem.py,sha256=sU5OAMp6hh4FLHAiSSAgSljnDFz30HXF0f62HMzSXRo,1147
|
|
153
154
|
griptape_nodes/retained_mode/managers/fitness_problems/libraries/before_library_callback_problem.py,sha256=CygA0CmIC68X4n6pG_xDogTS2wKu7myYW50zTJZaC64,1155
|
|
@@ -157,6 +158,7 @@ griptape_nodes/retained_mode/managers/fitness_problems/libraries/deprecated_node
|
|
|
157
158
|
griptape_nodes/retained_mode/managers/fitness_problems/libraries/duplicate_library_problem.py,sha256=VklWc4mk3cY6QFEki0BhnQiPWUeYrSSJlUDCrk0Uyfg,1071
|
|
158
159
|
griptape_nodes/retained_mode/managers/fitness_problems/libraries/duplicate_node_registration_problem.py,sha256=Q8AoaEcdWriIuPvHdib5jYrHjRQrZExFcnwK3x5rllQ,1679
|
|
159
160
|
griptape_nodes/retained_mode/managers/fitness_problems/libraries/engine_version_error_problem.py,sha256=4muaR33dhNs980mBln3N-O2DXeSwH4DuNPbvEnfaQ1k,1033
|
|
161
|
+
griptape_nodes/retained_mode/managers/fitness_problems/libraries/incompatible_requirements_problem.py,sha256=N3Tvn1UIC5udyAbPSJuqveJZLfSjzJnswnoZSzEiI8g,1257
|
|
160
162
|
griptape_nodes/retained_mode/managers/fitness_problems/libraries/insufficient_disk_space_problem.py,sha256=wPdfxKHy0LDaqF-sgfXZPqVpr0R_RU5IvY1x9UEw2wk,1181
|
|
161
163
|
griptape_nodes/retained_mode/managers/fitness_problems/libraries/invalid_version_string_problem.py,sha256=Lv9cZHOtct7ypjvrNKanAHUrrAbgy0HWGNLBhADyOmk,1194
|
|
162
164
|
griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_json_decode_problem.py,sha256=yIC5Y6YcZ65ExvU1Ehkfhq_tU3yN96R0Igmd-C_HonI,983
|
|
@@ -195,26 +197,14 @@ griptape_nodes/retained_mode/managers/fitness_problems/workflows/node_type_not_f
|
|
|
195
197
|
griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_not_found_problem.py,sha256=kPhaIeDxp0duxJBJLKFiYp269kEDsCx3uVLnkKbF2gk,895
|
|
196
198
|
griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_problem.py,sha256=NLAoF_x7g5tL70qZtPVFI8xeM1jPZNsm7FKt9nkuGBc,542
|
|
197
199
|
griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_schema_version_problem.py,sha256=rUnbBBnGwgq5WTVPt2G4pGP3gVPoX5xvCdTkRPBmP04,1328
|
|
198
|
-
griptape_nodes/retained_mode/managers/flow_manager.py,sha256=
|
|
199
|
-
griptape_nodes/retained_mode/managers/
|
|
200
|
-
griptape_nodes/retained_mode/managers/library_lifecycle/data_models.py,sha256=fvAP0VaYGPHYl_Kg3RL4gdJlpqya8UTvpP-C49r950k,6723
|
|
201
|
-
griptape_nodes/retained_mode/managers/library_lifecycle/library_directory.py,sha256=Ywno93eVJH4sAtQ1dgHG2Pw9B3vw8fN8oAL0gn_l6OI,14836
|
|
202
|
-
griptape_nodes/retained_mode/managers/library_lifecycle/library_fsm.py,sha256=ZlX-FMhGxqafpLjHGftN3iV1r5LVxV9Qa6mWshBla8w,18669
|
|
203
|
-
griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/__init__.py,sha256=X0SnqNuEtBVPvccfrUr_wBQQ9i5xJzcaWJLwFJTRRco,814
|
|
204
|
-
griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/base.py,sha256=eVV6p9B-aQeaoDbA-c4s1MPpkKtESV7KS1Fxr2E9z4Q,2615
|
|
205
|
-
griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/github.py,sha256=byMkJSJjboPJ2zvYamrBhYXL0292YPa3UBW7FsMpkfI,4308
|
|
206
|
-
griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/local_file.py,sha256=Ck5-H3rw12ZvmMy8EXJKflx7N-4yR61pVcQ_YUxs6wg,16075
|
|
207
|
-
griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/package.py,sha256=93frztMPWSprvn4vFZ9rEGLLQbkvw3oEmfyZxgCaxrQ,3752
|
|
208
|
-
griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/sandbox.py,sha256=XgG7whE74zWDxX1pOvhASW0pwjOei1EDLvIH19xdzT0,6117
|
|
209
|
-
griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance.py,sha256=cCGr-MQ1RlVBiUTZepYEKdVhPgC4ebcYrmpv8rI3VeM,894
|
|
210
|
-
griptape_nodes/retained_mode/managers/library_lifecycle/library_status.py,sha256=K3UEBzAdCY9wphyBbLxDYP0Q43aYvhLZ_Pz7_SzcPec,443
|
|
211
|
-
griptape_nodes/retained_mode/managers/library_manager.py,sha256=oU_K_rWR_77qJOTtOeKH_fZlsNLyymeSQchoe9QMbxQ,154471
|
|
200
|
+
griptape_nodes/retained_mode/managers/flow_manager.py,sha256=0Z8hNjfwlnJgQGOsQf3MEvQnkPLeQBXe2ZuixUov2QY,220137
|
|
201
|
+
griptape_nodes/retained_mode/managers/library_manager.py,sha256=vNIwBweMIO84gJp05M_vBFYW2JjTyCpQa4G62ACsBP4,191730
|
|
212
202
|
griptape_nodes/retained_mode/managers/mcp_manager.py,sha256=Ezmn5_48r4JWYe-tFGqmw9dXLvvTiO1rw9b4MNCkw0U,15955
|
|
213
203
|
griptape_nodes/retained_mode/managers/model_manager.py,sha256=3lj2X8vIvDSERPtR2VEXNFEWy_D8H6muxRvD-PEx8U8,44845
|
|
214
|
-
griptape_nodes/retained_mode/managers/node_manager.py,sha256=
|
|
204
|
+
griptape_nodes/retained_mode/managers/node_manager.py,sha256=LVF7_KCb01mJ_fAaCfg_9D0Rw40KKxRSr3n3nsRg8Ss,215328
|
|
215
205
|
griptape_nodes/retained_mode/managers/object_manager.py,sha256=xABsjpE1_HLEIFwYj60zDOLi18EqrYUBuNaj37lUcH4,12921
|
|
216
206
|
griptape_nodes/retained_mode/managers/operation_manager.py,sha256=4Vn_79vHrawy3wJVUx52tfblO4mURww58nb5RtCTpKU,20190
|
|
217
|
-
griptape_nodes/retained_mode/managers/os_manager.py,sha256=
|
|
207
|
+
griptape_nodes/retained_mode/managers/os_manager.py,sha256=Ttgj6R063p2Yf1lcdeSTB2xOTg94MIDCMPxO8FDczEQ,142397
|
|
218
208
|
griptape_nodes/retained_mode/managers/project_manager.py,sha256=-K-anrxEVKInFMPLY-cV3ipqEh8hMELGHKbecJJJVa8,49035
|
|
219
209
|
griptape_nodes/retained_mode/managers/resource_components/__init__.py,sha256=2FHpZFw2N1-oHfMCfrnB_XpF8_-2aSNtAZWh5zQTGL0,35
|
|
220
210
|
griptape_nodes/retained_mode/managers/resource_components/capability_field.py,sha256=jZ5ONfdYVd5_MKlSKvUch1X2n1oHzMSeZW8UZ1a_RsU,1504
|
|
@@ -223,16 +213,17 @@ griptape_nodes/retained_mode/managers/resource_components/resource_instance.py,s
|
|
|
223
213
|
griptape_nodes/retained_mode/managers/resource_components/resource_type.py,sha256=yWwI3K1oIzVqpSRpkoUDsBsY6Zhgj2THKLXzdqy7u0c,3355
|
|
224
214
|
griptape_nodes/retained_mode/managers/resource_manager.py,sha256=c1JETPMseisT1zu98W7F7KWoTPgAQvlu19RFxmv_IiI,15066
|
|
225
215
|
griptape_nodes/retained_mode/managers/resource_types/__init__.py,sha256=ganDZJriNgrxvLPs45X48XpLK8ifzljVpD95xeCPzO8,80
|
|
216
|
+
griptape_nodes/retained_mode/managers/resource_types/compute_resource.py,sha256=Oot0jevd6XGIxmP_SKmjGKJ5SyXZO_GLdsuc2jBcYV8,2951
|
|
226
217
|
griptape_nodes/retained_mode/managers/resource_types/cpu_resource.py,sha256=YHjU6_Pm41wGvdMlRzNkQS9yJY8wD2NN2-WwOFpVpUo,3830
|
|
227
|
-
griptape_nodes/retained_mode/managers/resource_types/os_resource.py,sha256=
|
|
218
|
+
griptape_nodes/retained_mode/managers/resource_types/os_resource.py,sha256=HHJ-kgZB2BsnvU0rp-CQlM1xTJm3OZ3Dh-NpB01gGG8,3439
|
|
228
219
|
griptape_nodes/retained_mode/managers/secrets_manager.py,sha256=knoHlbR-VrkeNULYjq72cHnhbCeupkKjtUT0EfBH8LQ,7743
|
|
229
220
|
griptape_nodes/retained_mode/managers/session_manager.py,sha256=u3OEir9rjwG7GFM4MA5crKwcwq6F-lCUKlFzxlFU4co,14085
|
|
230
221
|
griptape_nodes/retained_mode/managers/settings.py,sha256=BnIOYxsaE834_oIg6C_oRqFz0MDv8qSqLtwEGpiJZvA,12054
|
|
231
|
-
griptape_nodes/retained_mode/managers/static_files_manager.py,sha256=
|
|
222
|
+
griptape_nodes/retained_mode/managers/static_files_manager.py,sha256=rWeI5mO8CCdEHx1odo4z4pxfTy33ggzCcUwkRj67aNM,12408
|
|
232
223
|
griptape_nodes/retained_mode/managers/sync_manager.py,sha256=dF6nAAy1DLDQydefx7v3EtPCBiCrk4vURMum57WfmK8,21448
|
|
233
224
|
griptape_nodes/retained_mode/managers/user_manager.py,sha256=JAOOKDhUfIbj0CJ5EHRBcplmxheQTzeogbvGO23VqXQ,4508
|
|
234
225
|
griptape_nodes/retained_mode/managers/variable_manager.py,sha256=TnuqHSRK9Yiu_EtKxQksF9SyyQb72lbFQuTQZdpBxeE,24116
|
|
235
|
-
griptape_nodes/retained_mode/managers/version_compatibility_manager.py,sha256=
|
|
226
|
+
griptape_nodes/retained_mode/managers/version_compatibility_manager.py,sha256=kaCtmNMqJW-mvLCFHf77wbBZbc3CgW2h8fYYkLkNrPs,17041
|
|
236
227
|
griptape_nodes/retained_mode/managers/workflow_manager.py,sha256=VCOV0BfkW9ynLhmH7jRvcEJnFr6YiAF0f76sc9wCjBg,215471
|
|
237
228
|
griptape_nodes/retained_mode/retained_mode.py,sha256=dG8FFpLXSxT49naOcphEq2aSRCEVoQyklWgaDljjuDA,71728
|
|
238
229
|
griptape_nodes/retained_mode/utils/__init__.py,sha256=W5dvv8YwvVVq_8eVTgMd3Z_VB_Dtq1sIIVq8745QH_I,52
|
|
@@ -262,7 +253,7 @@ griptape_nodes/utils/__init__.py,sha256=kzDZW_VPyxWJFonM3kYTl7A91_JmtHPK0Io4KPLT
|
|
|
262
253
|
griptape_nodes/utils/async_utils.py,sha256=4IrW8Ub8iJ2QB9yguZtfN1EB9B5nXHS7jbDaLOHWso0,4844
|
|
263
254
|
griptape_nodes/utils/dict_utils.py,sha256=1VP2EoyOP0nswoAgjPehpA0izpkygWRX7L--ArN6LV8,7314
|
|
264
255
|
griptape_nodes/utils/file_utils.py,sha256=Lj1SQH8XyuJx3WoHmWhyZf2gHPirZ0ZpQtPPcuP-ONQ,3288
|
|
265
|
-
griptape_nodes/utils/git_utils.py,sha256=
|
|
256
|
+
griptape_nodes/utils/git_utils.py,sha256=hcrancOlWO1qtq93NA1O7sPc_joaHff41z-7JKH6IdQ,44539
|
|
266
257
|
griptape_nodes/utils/huggingface_utils.py,sha256=txR5XS_01W3TvsH4SQ3AJrFy8oS8Ah9M-ePRSs3jHYA,4737
|
|
267
258
|
griptape_nodes/utils/image_preview.py,sha256=NhYIqohRF9vbFpWIEvZHdPLLPK_JdUBvC4RvNAsSa1w,4480
|
|
268
259
|
griptape_nodes/utils/library_utils.py,sha256=UwTdOJcPwJljWYD-DbctjExicaw-6isXZ-Js02jrGCw,4224
|
|
@@ -272,12 +263,16 @@ griptape_nodes/utils/version_utils.py,sha256=Y-HJfJW6Jxuz_jOnHxMiy-pmMauHRnY-7BO
|
|
|
272
263
|
griptape_nodes/version_compatibility/__init__.py,sha256=JMz1sB7Zsj6pS1S5sdsPR0kn89s1A0sB0kFIvygJYfo,74
|
|
273
264
|
griptape_nodes/version_compatibility/versions/__init__.py,sha256=PWSxM28LPUdBdRPA98j4RUWvuZ4NqfX1day2VU6SqPw,74
|
|
274
265
|
griptape_nodes/version_compatibility/versions/v0_39_0/__init__.py,sha256=21iKlFpsmBW4WsAexSD0WMAJnsYmMq2sIbDeYC831fc,62
|
|
275
|
-
griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_removal.py,sha256=
|
|
266
|
+
griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_removal.py,sha256=KPTNQ2kl0WzEN-p83o4xGYMTvexwHDPp2wgympUVh00,4008
|
|
276
267
|
griptape_nodes/version_compatibility/versions/v0_63_8/__init__.py,sha256=1VJswR2DcJko5y1TztzPuZRfXALG4S1MxmgAQnkKGHE,53
|
|
277
268
|
griptape_nodes/version_compatibility/versions/v0_63_8/deprecated_nodegroup_parameters.py,sha256=MqrmFszysezVEqsrGXrAK7VKjkVaxUtkpHysg15MDeM,4401
|
|
269
|
+
griptape_nodes/version_compatibility/versions/v0_65_4/__init__.py,sha256=s0JltT_C0Odg9WH9WVPwPwhBaNFCa6r_hrbY3sgr6XE,212
|
|
270
|
+
griptape_nodes/version_compatibility/versions/v0_65_4/run_in_parallel_to_run_in_order.py,sha256=CLuPiN82dbxlYKVkIAIYJElo0_5PUbCQwK3AbflWuGQ,3051
|
|
271
|
+
griptape_nodes/version_compatibility/versions/v0_65_5/__init__.py,sha256=4UyspOVIbFcxXPbvR3Ejc5ojyKDjRSHc5lzRjXq-t5M,187
|
|
272
|
+
griptape_nodes/version_compatibility/versions/v0_65_5/flux_2_removed_parameters.py,sha256=jOlmY5kKHXh8HPzAUtvwMJqzD4bP7pkE--yHUb7jTRA,3305
|
|
278
273
|
griptape_nodes/version_compatibility/versions/v0_7_0/__init__.py,sha256=IzPPmGK86h2swfGGTOHyVcBIlOng6SjgWQzlbf3ngmo,51
|
|
279
274
|
griptape_nodes/version_compatibility/versions/v0_7_0/local_executor_argument_addition.py,sha256=Thx8acnbw5OychhwEEj9aFxvbPe7Wgn4V9ZmZ7KRZqc,2082
|
|
280
|
-
griptape_nodes-0.
|
|
281
|
-
griptape_nodes-0.
|
|
282
|
-
griptape_nodes-0.
|
|
283
|
-
griptape_nodes-0.
|
|
275
|
+
griptape_nodes-0.66.0.dist-info/WHEEL,sha256=ZyFSCYkV2BrxH6-HRVRg3R9Fo7MALzer9KiPYqNxSbo,79
|
|
276
|
+
griptape_nodes-0.66.0.dist-info/entry_points.txt,sha256=qvevqd3BVbAV5TcantnAm0ouqaqYKhsRO3pkFymWLWM,82
|
|
277
|
+
griptape_nodes-0.66.0.dist-info/METADATA,sha256=CV4bNiOA9DIMnFYmEp3FVBOPdpmmkwarQcH68JaO2qQ,5374
|
|
278
|
+
griptape_nodes-0.66.0.dist-info/RECORD,,
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"""Library lifecycle management subsystem."""
|
|
2
|
-
|
|
3
|
-
from griptape_nodes.retained_mode.managers.library_lifecycle.data_models import (
|
|
4
|
-
EvaluationResult,
|
|
5
|
-
InspectionResult,
|
|
6
|
-
InstallationResult,
|
|
7
|
-
LibraryByType,
|
|
8
|
-
LibraryEntry,
|
|
9
|
-
LibraryLoadedResult,
|
|
10
|
-
LibraryPreferences,
|
|
11
|
-
LifecycleIssue,
|
|
12
|
-
)
|
|
13
|
-
from griptape_nodes.retained_mode.managers.library_lifecycle.library_directory import LibraryDirectory
|
|
14
|
-
from griptape_nodes.retained_mode.managers.library_lifecycle.library_fsm import (
|
|
15
|
-
LibraryLifecycleContext,
|
|
16
|
-
LibraryLifecycleFSM,
|
|
17
|
-
)
|
|
18
|
-
from griptape_nodes.retained_mode.managers.library_lifecycle.library_provenance import (
|
|
19
|
-
LibraryProvenance,
|
|
20
|
-
LibraryProvenanceGitHub,
|
|
21
|
-
LibraryProvenanceLocalFile,
|
|
22
|
-
LibraryProvenancePackage,
|
|
23
|
-
LibraryProvenanceSandbox,
|
|
24
|
-
)
|
|
25
|
-
from griptape_nodes.retained_mode.managers.library_lifecycle.library_status import LibraryStatus
|
|
26
|
-
|
|
27
|
-
__all__ = [
|
|
28
|
-
"EvaluationResult",
|
|
29
|
-
"InspectionResult",
|
|
30
|
-
"InstallationResult",
|
|
31
|
-
"LibraryByType",
|
|
32
|
-
"LibraryDirectory",
|
|
33
|
-
"LibraryEntry",
|
|
34
|
-
"LibraryLifecycleContext",
|
|
35
|
-
"LibraryLifecycleFSM",
|
|
36
|
-
"LibraryLoadedResult",
|
|
37
|
-
"LibraryPreferences",
|
|
38
|
-
"LibraryProvenance",
|
|
39
|
-
"LibraryProvenanceGitHub",
|
|
40
|
-
"LibraryProvenanceLocalFile",
|
|
41
|
-
"LibraryProvenancePackage",
|
|
42
|
-
"LibraryProvenanceSandbox",
|
|
43
|
-
"LibraryStatus",
|
|
44
|
-
"LifecycleIssue",
|
|
45
|
-
]
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
"""Data models for library lifecycle management."""
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
from dataclasses import dataclass, field
|
|
6
|
-
from typing import TYPE_CHECKING, NamedTuple
|
|
7
|
-
|
|
8
|
-
from griptape_nodes.retained_mode.managers.library_lifecycle.library_status import LibraryStatus
|
|
9
|
-
|
|
10
|
-
if TYPE_CHECKING:
|
|
11
|
-
from griptape_nodes.node_library.library_registry import LibrarySchema
|
|
12
|
-
from griptape_nodes.retained_mode.managers.library_lifecycle.library_provenance import LibraryProvenance
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class LibraryByType(NamedTuple):
|
|
16
|
-
"""A library entry with its name, organized by provenance type."""
|
|
17
|
-
|
|
18
|
-
name: str
|
|
19
|
-
entry: LibraryEntry
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
class LibraryCandidate(NamedTuple):
|
|
23
|
-
"""A library candidate with its provenance and entry."""
|
|
24
|
-
|
|
25
|
-
provenance: LibraryProvenance
|
|
26
|
-
entry: LibraryEntry
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
@dataclass
|
|
30
|
-
class LifecycleIssue:
|
|
31
|
-
"""Represents an issue found during library lifecycle with severity level."""
|
|
32
|
-
|
|
33
|
-
message: str
|
|
34
|
-
severity: LibraryStatus
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
@dataclass
|
|
38
|
-
class Result:
|
|
39
|
-
"""Base class for all library lifecycle result objects."""
|
|
40
|
-
|
|
41
|
-
issues: list[LifecycleIssue] = field(default_factory=list)
|
|
42
|
-
|
|
43
|
-
def get_status(self) -> LibraryStatus:
|
|
44
|
-
"""Determine overall status based on issues."""
|
|
45
|
-
if any(issue.severity == LibraryStatus.UNUSABLE for issue in self.issues):
|
|
46
|
-
return LibraryStatus.UNUSABLE
|
|
47
|
-
if any(issue.severity == LibraryStatus.FLAWED for issue in self.issues):
|
|
48
|
-
return LibraryStatus.FLAWED
|
|
49
|
-
return LibraryStatus.GOOD
|
|
50
|
-
|
|
51
|
-
def is_usable(self) -> bool:
|
|
52
|
-
"""Check if result is usable despite issues."""
|
|
53
|
-
return self.get_status() in [LibraryStatus.GOOD, LibraryStatus.FLAWED]
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
@dataclass
|
|
57
|
-
class InspectionResult(Result):
|
|
58
|
-
"""Result of library inspection with structured issues and severity levels."""
|
|
59
|
-
|
|
60
|
-
schema: LibrarySchema | None = None
|
|
61
|
-
|
|
62
|
-
def __init__(self, schema: LibrarySchema | None = None, issues: list[LifecycleIssue] | None = None):
|
|
63
|
-
super().__init__(issues=issues or [])
|
|
64
|
-
self.schema = schema
|
|
65
|
-
|
|
66
|
-
def get_status(self) -> LibraryStatus:
|
|
67
|
-
"""Determine overall status based on issues and schema availability."""
|
|
68
|
-
if not self.schema:
|
|
69
|
-
return LibraryStatus.UNUSABLE
|
|
70
|
-
return super().get_status()
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
@dataclass
|
|
74
|
-
class EvaluationResult(Result):
|
|
75
|
-
"""Result of library evaluation with structured issues and severity levels."""
|
|
76
|
-
|
|
77
|
-
def __init__(self, issues: list[LifecycleIssue] | None = None):
|
|
78
|
-
super().__init__(issues=issues or [])
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
@dataclass
|
|
82
|
-
class InstallationResult(Result):
|
|
83
|
-
"""Result of library installation with structured issues and severity levels."""
|
|
84
|
-
|
|
85
|
-
installation_path: str = "" # Where the library files are
|
|
86
|
-
venv_path: str = "" # Where the virtual environment is
|
|
87
|
-
|
|
88
|
-
def __init__(self, installation_path: str = "", venv_path: str = "", issues: list[LifecycleIssue] | None = None):
|
|
89
|
-
super().__init__(issues=issues or [])
|
|
90
|
-
self.installation_path = installation_path
|
|
91
|
-
self.venv_path = venv_path
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
@dataclass
|
|
95
|
-
class LibraryLoadedResult(Result):
|
|
96
|
-
"""Result of library loading with structured issues and severity levels."""
|
|
97
|
-
|
|
98
|
-
def __init__(self, issues: list[LifecycleIssue] | None = None):
|
|
99
|
-
super().__init__(issues=issues or [])
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
@dataclass
|
|
103
|
-
class LibraryEntry:
|
|
104
|
-
"""A library entry combining provenance and user configuration."""
|
|
105
|
-
|
|
106
|
-
# Abstract base - concrete implementations in library_provenance.py
|
|
107
|
-
active: bool = True
|
|
108
|
-
library_name: str | None = None # Set after inspection from metadata
|
|
109
|
-
|
|
110
|
-
def get_provenance(self) -> LibraryProvenance:
|
|
111
|
-
"""Get the provenance for this library entry."""
|
|
112
|
-
msg = "Subclasses must implement get_provenance()"
|
|
113
|
-
raise NotImplementedError(msg)
|
|
114
|
-
|
|
115
|
-
def set_library_name(self, name: str) -> None:
|
|
116
|
-
"""Set the library name after inspection."""
|
|
117
|
-
self.library_name = name
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
@dataclass
|
|
121
|
-
class LibraryPreferences:
|
|
122
|
-
"""User preferences and configuration for libraries."""
|
|
123
|
-
|
|
124
|
-
libraries: dict[str, LibraryEntry] = field(default_factory=dict)
|
|
125
|
-
|
|
126
|
-
def add_library(self, name: str, library_entry: LibraryEntry) -> None:
|
|
127
|
-
"""Add or update a library entry."""
|
|
128
|
-
library_entry.set_library_name(name)
|
|
129
|
-
self.libraries[name] = library_entry
|
|
130
|
-
|
|
131
|
-
def add_inspected_library(self, library_entry: LibraryEntry) -> str | None:
|
|
132
|
-
"""Add a library entry that has been inspected and has a library name.
|
|
133
|
-
|
|
134
|
-
Returns the final library name used, or None if there was a conflict.
|
|
135
|
-
"""
|
|
136
|
-
if not library_entry.library_name:
|
|
137
|
-
msg = "Library entry must have a library_name set after inspection"
|
|
138
|
-
raise ValueError(msg)
|
|
139
|
-
|
|
140
|
-
library_name = library_entry.library_name
|
|
141
|
-
|
|
142
|
-
# Check for conflicts
|
|
143
|
-
if library_name in self.libraries:
|
|
144
|
-
# Library name already exists - this is a conflict
|
|
145
|
-
existing_entry = self.libraries[library_name]
|
|
146
|
-
if existing_entry.get_provenance() != library_entry.get_provenance():
|
|
147
|
-
# Different provenance with same name - this is a real conflict
|
|
148
|
-
return None
|
|
149
|
-
|
|
150
|
-
# No conflict, add the library
|
|
151
|
-
self.libraries[library_name] = library_entry
|
|
152
|
-
return library_name
|
|
153
|
-
|
|
154
|
-
def has_library_entry(self, name: str) -> bool:
|
|
155
|
-
"""Check if a library entry exists."""
|
|
156
|
-
return name in self.libraries
|
|
157
|
-
|
|
158
|
-
def get_library_entry(self, name: str) -> LibraryEntry:
|
|
159
|
-
"""Get the library entry for a library."""
|
|
160
|
-
if name not in self.libraries:
|
|
161
|
-
msg = f"Library {name} not found in preferences"
|
|
162
|
-
raise KeyError(msg)
|
|
163
|
-
return self.libraries[name]
|
|
164
|
-
|
|
165
|
-
def get_all_library_names(self) -> list[str]:
|
|
166
|
-
"""Get all library names in preferences."""
|
|
167
|
-
return list(self.libraries.keys())
|
|
168
|
-
|
|
169
|
-
def remove_library(self, name: str) -> None:
|
|
170
|
-
"""Remove a library from preferences."""
|
|
171
|
-
self.libraries.pop(name, None)
|
|
172
|
-
|
|
173
|
-
def get_libraries_by_type(self, provenance_type: type) -> list[LibraryByType]:
|
|
174
|
-
"""Get all libraries that have a specific provenance type."""
|
|
175
|
-
matching_libraries = []
|
|
176
|
-
|
|
177
|
-
for name, entry in self.libraries.items():
|
|
178
|
-
if isinstance(entry.get_provenance(), provenance_type):
|
|
179
|
-
matching_libraries.append(LibraryByType(name=name, entry=entry))
|
|
180
|
-
|
|
181
|
-
return matching_libraries
|
|
182
|
-
|
|
183
|
-
def get_libraries_by_provenance(self, provenance: LibraryProvenance) -> list[LibraryByType]:
|
|
184
|
-
"""Get all libraries that have a specific provenance."""
|
|
185
|
-
matching_libraries = []
|
|
186
|
-
|
|
187
|
-
for name, entry in self.libraries.items():
|
|
188
|
-
if entry.get_provenance() == provenance:
|
|
189
|
-
matching_libraries.append(LibraryByType(name=name, entry=entry))
|
|
190
|
-
|
|
191
|
-
return matching_libraries
|