lionagi 0.0.316__py3-none-any.whl → 0.1.1__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (157) hide show
  1. lionagi/core/__init__.py +19 -8
  2. lionagi/core/agent/__init__.py +0 -3
  3. lionagi/core/agent/base_agent.py +25 -30
  4. lionagi/core/branch/__init__.py +0 -4
  5. lionagi/core/branch/{base_branch.py → base.py} +12 -13
  6. lionagi/core/branch/branch.py +22 -19
  7. lionagi/core/branch/executable_branch.py +0 -347
  8. lionagi/core/branch/{branch_flow_mixin.py → flow_mixin.py} +5 -5
  9. lionagi/core/direct/__init__.py +10 -1
  10. lionagi/core/direct/cot.py +61 -26
  11. lionagi/core/direct/plan.py +10 -8
  12. lionagi/core/direct/predict.py +5 -5
  13. lionagi/core/direct/react.py +8 -8
  14. lionagi/core/direct/score.py +4 -4
  15. lionagi/core/direct/select.py +4 -4
  16. lionagi/core/direct/utils.py +7 -4
  17. lionagi/core/direct/vote.py +2 -2
  18. lionagi/core/execute/base_executor.py +47 -0
  19. lionagi/core/execute/branch_executor.py +296 -0
  20. lionagi/core/execute/instruction_map_executor.py +179 -0
  21. lionagi/core/execute/neo4j_executor.py +381 -0
  22. lionagi/core/execute/structure_executor.py +314 -0
  23. lionagi/core/flow/monoflow/ReAct.py +20 -20
  24. lionagi/core/flow/monoflow/chat.py +6 -6
  25. lionagi/core/flow/monoflow/chat_mixin.py +23 -33
  26. lionagi/core/flow/monoflow/followup.py +14 -15
  27. lionagi/core/flow/polyflow/chat.py +15 -12
  28. lionagi/core/{prompt/action_template.py → form/action_form.py} +2 -2
  29. lionagi/core/{prompt → form}/field_validator.py +40 -31
  30. lionagi/core/form/form.py +302 -0
  31. lionagi/core/form/mixin.py +214 -0
  32. lionagi/core/{prompt/scored_template.py → form/scored_form.py} +2 -2
  33. lionagi/core/generic/__init__.py +37 -0
  34. lionagi/core/generic/action.py +26 -0
  35. lionagi/core/generic/component.py +455 -0
  36. lionagi/core/generic/condition.py +44 -0
  37. lionagi/core/generic/data_logger.py +305 -0
  38. lionagi/core/generic/edge.py +162 -0
  39. lionagi/core/generic/mail.py +90 -0
  40. lionagi/core/generic/mailbox.py +36 -0
  41. lionagi/core/generic/node.py +285 -0
  42. lionagi/core/generic/relation.py +70 -0
  43. lionagi/core/generic/signal.py +22 -0
  44. lionagi/core/generic/structure.py +362 -0
  45. lionagi/core/generic/transfer.py +20 -0
  46. lionagi/core/generic/work.py +40 -0
  47. lionagi/core/graph/graph.py +126 -0
  48. lionagi/core/graph/tree.py +190 -0
  49. lionagi/core/mail/__init__.py +0 -8
  50. lionagi/core/mail/mail_manager.py +15 -12
  51. lionagi/core/mail/schema.py +9 -2
  52. lionagi/core/messages/__init__.py +0 -3
  53. lionagi/core/messages/schema.py +17 -225
  54. lionagi/core/session/__init__.py +0 -3
  55. lionagi/core/session/session.py +24 -22
  56. lionagi/core/tool/__init__.py +3 -1
  57. lionagi/core/tool/tool.py +28 -0
  58. lionagi/core/tool/tool_manager.py +75 -75
  59. lionagi/experimental/directive/evaluator/__init__.py +0 -0
  60. lionagi/experimental/directive/evaluator/ast_evaluator.py +115 -0
  61. lionagi/experimental/directive/evaluator/base_evaluator.py +202 -0
  62. lionagi/experimental/directive/evaluator/sandbox_.py +14 -0
  63. lionagi/experimental/directive/evaluator/script_engine.py +83 -0
  64. lionagi/experimental/directive/parser/__init__.py +0 -0
  65. lionagi/experimental/directive/parser/base_parser.py +215 -0
  66. lionagi/experimental/directive/schema.py +36 -0
  67. lionagi/experimental/directive/template_/__init__.py +0 -0
  68. lionagi/experimental/directive/template_/base_template.py +63 -0
  69. lionagi/experimental/tool/__init__.py +0 -0
  70. lionagi/experimental/tool/function_calling.py +43 -0
  71. lionagi/experimental/tool/manual.py +66 -0
  72. lionagi/experimental/tool/schema.py +59 -0
  73. lionagi/experimental/tool/tool_manager.py +138 -0
  74. lionagi/experimental/tool/util.py +16 -0
  75. lionagi/experimental/work/__init__.py +0 -0
  76. lionagi/experimental/work/_logger.py +25 -0
  77. lionagi/experimental/work/exchange.py +0 -0
  78. lionagi/experimental/work/schema.py +30 -0
  79. lionagi/experimental/work/tests.py +72 -0
  80. lionagi/experimental/work/util.py +0 -0
  81. lionagi/experimental/work/work_function.py +89 -0
  82. lionagi/experimental/work/worker.py +12 -0
  83. lionagi/integrations/bridge/autogen_/__init__.py +0 -0
  84. lionagi/integrations/bridge/autogen_/autogen_.py +124 -0
  85. lionagi/integrations/bridge/llamaindex_/get_index.py +294 -0
  86. lionagi/integrations/bridge/llamaindex_/llama_pack.py +227 -0
  87. lionagi/integrations/bridge/transformers_/__init__.py +0 -0
  88. lionagi/integrations/bridge/transformers_/install_.py +36 -0
  89. lionagi/integrations/chunker/chunk.py +7 -7
  90. lionagi/integrations/config/oai_configs.py +5 -5
  91. lionagi/integrations/config/ollama_configs.py +1 -1
  92. lionagi/integrations/config/openrouter_configs.py +1 -1
  93. lionagi/integrations/loader/load.py +6 -6
  94. lionagi/integrations/loader/load_util.py +8 -8
  95. lionagi/integrations/storage/__init__.py +3 -0
  96. lionagi/integrations/storage/neo4j.py +673 -0
  97. lionagi/integrations/storage/storage_util.py +289 -0
  98. lionagi/integrations/storage/to_csv.py +63 -0
  99. lionagi/integrations/storage/to_excel.py +67 -0
  100. lionagi/libs/ln_api.py +3 -3
  101. lionagi/libs/ln_knowledge_graph.py +405 -0
  102. lionagi/libs/ln_parse.py +43 -6
  103. lionagi/libs/ln_queue.py +101 -0
  104. lionagi/libs/ln_tokenizer.py +57 -0
  105. lionagi/libs/ln_validate.py +288 -0
  106. lionagi/libs/sys_util.py +29 -7
  107. lionagi/lions/__init__.py +0 -0
  108. lionagi/lions/coder/__init__.py +0 -0
  109. lionagi/lions/coder/add_feature.py +20 -0
  110. lionagi/lions/coder/base_prompts.py +22 -0
  111. lionagi/lions/coder/coder.py +121 -0
  112. lionagi/lions/coder/util.py +91 -0
  113. lionagi/lions/researcher/__init__.py +0 -0
  114. lionagi/lions/researcher/data_source/__init__.py +0 -0
  115. lionagi/lions/researcher/data_source/finhub_.py +191 -0
  116. lionagi/lions/researcher/data_source/google_.py +199 -0
  117. lionagi/lions/researcher/data_source/wiki_.py +96 -0
  118. lionagi/lions/researcher/data_source/yfinance_.py +21 -0
  119. lionagi/tests/integrations/__init__.py +0 -0
  120. lionagi/tests/libs/__init__.py +0 -0
  121. lionagi/tests/libs/test_async.py +0 -0
  122. lionagi/tests/libs/test_field_validators.py +353 -0
  123. lionagi/tests/libs/test_queue.py +67 -0
  124. lionagi/tests/test_core/test_base_branch.py +0 -1
  125. lionagi/tests/test_core/test_branch.py +2 -0
  126. lionagi/tests/test_core/test_session_base_util.py +1 -0
  127. lionagi/version.py +1 -1
  128. {lionagi-0.0.316.dist-info → lionagi-0.1.1.dist-info}/METADATA +1 -1
  129. lionagi-0.1.1.dist-info/RECORD +190 -0
  130. lionagi/core/prompt/prompt_template.py +0 -312
  131. lionagi/core/schema/__init__.py +0 -22
  132. lionagi/core/schema/action_node.py +0 -29
  133. lionagi/core/schema/base_mixin.py +0 -296
  134. lionagi/core/schema/base_node.py +0 -199
  135. lionagi/core/schema/condition.py +0 -24
  136. lionagi/core/schema/data_logger.py +0 -354
  137. lionagi/core/schema/data_node.py +0 -93
  138. lionagi/core/schema/prompt_template.py +0 -67
  139. lionagi/core/schema/structure.py +0 -912
  140. lionagi/core/tool/manual.py +0 -1
  141. lionagi-0.0.316.dist-info/RECORD +0 -121
  142. /lionagi/core/{branch/base → execute}/__init__.py +0 -0
  143. /lionagi/core/flow/{base/baseflow.py → baseflow.py} +0 -0
  144. /lionagi/core/flow/{base/__init__.py → mono_chat_mixin.py} +0 -0
  145. /lionagi/core/{prompt → form}/__init__.py +0 -0
  146. /lionagi/{tests/test_integrations → core/graph}/__init__.py +0 -0
  147. /lionagi/{tests/test_libs → experimental}/__init__.py +0 -0
  148. /lionagi/{tests/test_libs/test_async.py → experimental/directive/__init__.py} +0 -0
  149. /lionagi/tests/{test_libs → libs}/test_api.py +0 -0
  150. /lionagi/tests/{test_libs → libs}/test_convert.py +0 -0
  151. /lionagi/tests/{test_libs → libs}/test_func_call.py +0 -0
  152. /lionagi/tests/{test_libs → libs}/test_nested.py +0 -0
  153. /lionagi/tests/{test_libs → libs}/test_parse.py +0 -0
  154. /lionagi/tests/{test_libs → libs}/test_sys_util.py +0 -0
  155. {lionagi-0.0.316.dist-info → lionagi-0.1.1.dist-info}/LICENSE +0 -0
  156. {lionagi-0.0.316.dist-info → lionagi-0.1.1.dist-info}/WHEEL +0 -0
  157. {lionagi-0.0.316.dist-info → lionagi-0.1.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,353 @@
1
+ import unittest
2
+ from unittest.mock import patch
3
+ from lionagi.libs.ln_validate import (
4
+ check_dict_field,
5
+ check_action_field,
6
+ check_number_field,
7
+ check_bool_field,
8
+ check_str_field,
9
+ check_enum_field,
10
+ _fix_action_field,
11
+ _fix_number_field,
12
+ _fix_bool_field,
13
+ _fix_str_field,
14
+ _fix_enum_field,
15
+ )
16
+
17
+
18
+ class TestValidationFunctions(unittest.TestCase):
19
+ def test_check_dict_field_valid(self):
20
+ x = {"key": "value"}
21
+ keys = ["key"]
22
+ result = check_dict_field(x, keys)
23
+ self.assertEqual(result, x)
24
+
25
+ def test_fix_action_field_invalid_string(self):
26
+ x = '[{"invalid_key": "value"}]'
27
+ try:
28
+ _fix_action_field(x)
29
+ except ValueError as e:
30
+ self.assertEqual(str(e), "Invalid action field: {'invalid_key': 'value'}")
31
+
32
+ def test_fix_action_field_invalid_discard_disabled(self):
33
+ x = '[{"function": "func1", "arguments": {}}, {"invalid_key": "value"}]'
34
+ try:
35
+ _fix_action_field(x, discard_=False)
36
+ except ValueError as e:
37
+ self.assertEqual(str(e), "Invalid action field: {'invalid_key': 'value'}")
38
+
39
+ def test_check_dict_field_invalid_fixable(self):
40
+ x = '{"key": "value"}'
41
+ keys = ["key"]
42
+ result = check_dict_field(x, keys, fix_=True)
43
+ self.assertEqual(result, {"key": "value"})
44
+
45
+ def test_check_dict_field_invalid_not_fixable(self):
46
+ x = '{"invalid_key": "value"}'
47
+ keys = ["key"]
48
+ with self.assertRaises(ValueError) as cm:
49
+ check_dict_field(x, keys, fix_=False)
50
+ self.assertEqual(
51
+ str(cm.exception), "Default value for DICT must be a dict, got str"
52
+ )
53
+
54
+ def test_check_action_field_invalid_not_fixable(self):
55
+ x = '[{"invalid_key": "value"}]'
56
+ try:
57
+ check_action_field(x, fix_=False)
58
+ except ValueError as e:
59
+ self.assertEqual(str(e), "Invalid action field type.")
60
+
61
+ def test_check_action_field_invalid_fix_disabled(self):
62
+ x = '[{"function": "func1", "arguments": {}}, {"invalid_key": "value"}]'
63
+ try:
64
+ check_action_field(x, fix_=False)
65
+ except ValueError as e:
66
+ self.assertEqual(str(e), "Invalid action field type.")
67
+
68
+ def test_check_action_field_valid(self):
69
+ x = [
70
+ {"function": "func1", "arguments": {}},
71
+ {"function": "func2", "arguments": {}},
72
+ ]
73
+ result = check_action_field(x)
74
+ self.assertEqual(result, x)
75
+
76
+ def test_check_action_field_invalid_fixable(self):
77
+ x = '[{"function": "func1", "arguments": {}}, {"function": "func2", "arguments": {}}]'
78
+ result = check_action_field(x, fix_=True)
79
+ self.assertEqual(
80
+ result,
81
+ [
82
+ {"function": "func1", "arguments": {}},
83
+ {"function": "func2", "arguments": {}},
84
+ ],
85
+ )
86
+
87
+ def test_check_action_field_invalid_fix_disabled(self):
88
+ x = '[{"function": "func1", "arguments": {}}, {"invalid_key": "value"}]'
89
+ try:
90
+ check_action_field(x, fix_=False)
91
+ except ValueError as e:
92
+ self.assertEqual(str(e), "Invalid action field type.")
93
+
94
+ def test_check_number_field_valid(self):
95
+ x = 42
96
+ result = check_number_field(x)
97
+ self.assertEqual(result, x)
98
+
99
+ def test_check_number_field_invalid_fixable(self):
100
+ x = "42"
101
+ result = check_number_field(x, fix_=True)
102
+ self.assertEqual(result, 42)
103
+
104
+ def test_check_number_field_invalid_not_fixable(self):
105
+ x = "not_a_number"
106
+ with self.assertRaises(ValueError) as cm:
107
+ check_number_field(x, fix_=True)
108
+ self.assertEqual(
109
+ str(cm.exception), "Failed to convert not_a_number into a numeric value"
110
+ )
111
+
112
+ def test_check_number_field_invalid_fix_disabled(self):
113
+ x = "42"
114
+ with self.assertRaises(ValueError) as cm:
115
+ check_number_field(x, fix_=False)
116
+ self.assertEqual(
117
+ str(cm.exception),
118
+ "Default value for NUMERIC must be an int or float, got str",
119
+ )
120
+
121
+ def test_check_bool_field_valid(self):
122
+ x = True
123
+ result = check_bool_field(x)
124
+ self.assertEqual(result, x)
125
+
126
+ def test_check_bool_field_invalid_fixable(self):
127
+ x = "true"
128
+ result = check_bool_field(x, fix_=True)
129
+ self.assertTrue(result)
130
+
131
+ def test_check_bool_field_invalid_not_fixable(self):
132
+ x = "not_a_boolean"
133
+ with self.assertRaises(ValueError) as cm:
134
+ check_bool_field(x, fix_=True)
135
+ self.assertEqual(
136
+ str(cm.exception), "Failed to convert not_a_boolean into a boolean value"
137
+ )
138
+
139
+ def test_check_bool_field_invalid_fix_disabled(self):
140
+ x = "true"
141
+ with self.assertRaises(ValueError) as cm:
142
+ check_bool_field(x, fix_=False)
143
+ self.assertEqual(
144
+ str(cm.exception), "Default value for BOOLEAN must be a bool, got str"
145
+ )
146
+
147
+ def test_check_str_field_valid(self):
148
+ x = "hello"
149
+ result = check_str_field(x)
150
+ self.assertEqual(result, x)
151
+
152
+ def test_check_str_field_invalid_fixable(self):
153
+ x = 42
154
+ result = check_str_field(x, fix_=True)
155
+ self.assertEqual(result, "42")
156
+
157
+ def test_check_str_field_invalid_not_fixable(self):
158
+ x = object()
159
+ try:
160
+ check_str_field(x, fix_=False)
161
+ except ValueError as e:
162
+ self.assertEqual(
163
+ str(e), "Default value for STRING must be a str, got object"
164
+ )
165
+
166
+ def test_check_str_field_invalid_fix_disabled(self):
167
+ x = 42
168
+ with self.assertRaises(ValueError) as cm:
169
+ check_str_field(x, fix_=False)
170
+ self.assertEqual(
171
+ str(cm.exception), "Default value for STRING must be a str, got int"
172
+ )
173
+
174
+ def test_check_enum_field_valid(self):
175
+ x = "option1"
176
+ choices = ["option1", "option2"]
177
+ result = check_enum_field(x, choices)
178
+ self.assertEqual(result, x)
179
+
180
+ def test_check_enum_field_invalid_fixable(self):
181
+ x = "option3"
182
+ choices = ["option1", "option2"]
183
+ with patch("lionagi.libs.ln_validate._fix_enum_field", return_value="option1"):
184
+ result = check_enum_field(x, choices, fix_=True)
185
+ self.assertEqual(result, "option1")
186
+
187
+ def test_check_enum_field_invalid_not_fixable(self):
188
+ x = "option3"
189
+ choices = ["option1", "option2"]
190
+ with self.assertRaises(ValueError) as cm:
191
+ check_enum_field(x, choices, fix_=False)
192
+ self.assertEqual(
193
+ str(cm.exception),
194
+ "Default value for ENUM must be one of the ['option1', 'option2'], got option3",
195
+ )
196
+
197
+ def test_check_enum_field_invalid_choices(self):
198
+ x = "option1"
199
+ choices = ["option1", 42]
200
+ with self.assertRaises(ValueError) as cm:
201
+ check_enum_field(x, choices)
202
+ self.assertEqual(
203
+ str(cm.exception),
204
+ "Field type ENUM requires all choices to be of the same type, got ['option1', 42]",
205
+ )
206
+
207
+ def test_check_enum_field_invalid_type(self):
208
+ x = 42
209
+ choices = ["option1", "option2"]
210
+ with self.assertRaises(ValueError) as cm:
211
+ check_enum_field(x, choices)
212
+ self.assertEqual(
213
+ str(cm.exception),
214
+ "Default value for ENUM must be an instance of the str, got int",
215
+ )
216
+
217
+ def test_fix_action_field_string(self):
218
+ x = '[{"function": "func1", "arguments": {}}, {"function": "func2", "arguments": {}}]'
219
+ result = _fix_action_field(x)
220
+ self.assertEqual(
221
+ result,
222
+ [
223
+ {"function": "func1", "arguments": {}},
224
+ {"function": "func2", "arguments": {}},
225
+ ],
226
+ )
227
+
228
+ def test_fix_action_field_invalid_string(self):
229
+ x = '[{"invalid_key": "value"}]'
230
+ try:
231
+ _fix_action_field(x)
232
+ except ValueError as e:
233
+ self.assertEqual(str(e), "Invalid action field: {'invalid_key': 'value'}")
234
+
235
+ def test_fix_action_field_invalid_discard_disabled(self):
236
+ x = '[{"function": "func1", "arguments": {}}, {"invalid_key": "value"}]'
237
+ try:
238
+ _fix_action_field(x, discard_=False)
239
+ except ValueError as e:
240
+ self.assertEqual(str(e), "Invalid action field: {'invalid_key': 'value'}")
241
+
242
+ def test_fix_number_field_valid(self):
243
+ x = "42"
244
+ result = _fix_number_field(x)
245
+ self.assertEqual(result, 42)
246
+
247
+ def test_fix_number_field_invalid(self):
248
+ x = "not_a_number"
249
+ with self.assertRaises(ValueError) as cm:
250
+ _fix_number_field(x)
251
+ self.assertEqual(
252
+ str(cm.exception), "Failed to convert not_a_number into a numeric value"
253
+ )
254
+
255
+ def test_fix_bool_field_true(self):
256
+ x = "true"
257
+ result = _fix_bool_field(x)
258
+ self.assertTrue(result)
259
+
260
+ def test_fix_bool_field_false(self):
261
+ x = "false"
262
+ result = _fix_bool_field(x)
263
+ self.assertFalse(result)
264
+
265
+ def test_fix_bool_field_invalid(self):
266
+ x = "not_a_boolean"
267
+ with self.assertRaises(ValueError) as cm:
268
+ _fix_bool_field(x)
269
+ self.assertEqual(
270
+ str(cm.exception), "Failed to convert not_a_boolean into a boolean value"
271
+ )
272
+
273
+ def test_fix_str_field_valid(self):
274
+ x = 42
275
+ result = _fix_str_field(x)
276
+ self.assertEqual(result, "42")
277
+
278
+ def test_fix_str_field_invalid(self):
279
+ x = object()
280
+ try:
281
+ _fix_str_field(x)
282
+ except ValueError as e:
283
+ self.assertEqual(
284
+ str(e),
285
+ "Failed to convert <object object at 0x{:x}> into a string value".format(
286
+ id(x)
287
+ ),
288
+ )
289
+
290
+ def test_fix_enum_field_valid(self):
291
+ x = "option3"
292
+ choices = ["option1", "option2"]
293
+ with patch(
294
+ "lionagi.libs.StringMatch.choose_most_similar", return_value="option1"
295
+ ):
296
+ result = _fix_enum_field(x, choices)
297
+ self.assertEqual(result, "option1")
298
+
299
+ def test_fix_enum_field_invalid(self):
300
+ x = "option3"
301
+ choices = ["option1", "option2"]
302
+ with patch(
303
+ "lionagi.libs.StringMatch.choose_most_similar",
304
+ side_effect=ValueError("No match found"),
305
+ ):
306
+ with self.assertRaises(ValueError) as cm:
307
+ _fix_enum_field(x, choices)
308
+ self.assertEqual(
309
+ str(cm.exception), "Failed to convert option3 into one of the choices"
310
+ )
311
+
312
+ def test_fix_bool_field_false(self):
313
+ x = "false"
314
+ result = _fix_bool_field(x)
315
+ self.assertFalse(result)
316
+
317
+ def test_fix_str_field_invalid(self):
318
+ x = object()
319
+ try:
320
+ _fix_str_field(x)
321
+ except ValueError as e:
322
+ self.assertEqual(
323
+ str(e),
324
+ "Failed to convert <object object at 0x{:x}> into a string value".format(
325
+ id(x)
326
+ ),
327
+ )
328
+
329
+ def test_fix_enum_field_valid(self):
330
+ x = "option3"
331
+ choices = ["option1", "option2"]
332
+ with patch(
333
+ "lionagi.libs.StringMatch.choose_most_similar", return_value="option1"
334
+ ):
335
+ result = _fix_enum_field(x, choices)
336
+ self.assertEqual(result, "option1")
337
+
338
+ def test_fix_enum_field_invalid(self):
339
+ x = "option3"
340
+ choices = ["option1", "option2"]
341
+ with patch(
342
+ "lionagi.libs.StringMatch.choose_most_similar",
343
+ side_effect=ValueError("No match found"),
344
+ ):
345
+ with self.assertRaises(ValueError) as cm:
346
+ _fix_enum_field(x, choices)
347
+ self.assertEqual(
348
+ str(cm.exception), "Failed to convert option3 into one of the choices"
349
+ )
350
+
351
+
352
+ if __name__ == "__main__":
353
+ unittest.main()
@@ -0,0 +1,67 @@
1
+ import asyncio
2
+ import unittest
3
+ from unittest.mock import patch
4
+ from lionagi.libs.ln_queue import AsyncQueue
5
+
6
+
7
+ class TestAsyncQueue(unittest.TestCase):
8
+ def setUp(self):
9
+ self.loop = asyncio.new_event_loop()
10
+ asyncio.set_event_loop(self.loop)
11
+ self.queue = AsyncQueue(max_concurrent_tasks=3)
12
+
13
+ def tearDown(self):
14
+ self.loop.close()
15
+
16
+ def test_enqueue_dequeue(self):
17
+ async def test():
18
+ await self.queue.enqueue("task1")
19
+ result = await self.queue.dequeue()
20
+ self.assertEqual(result, "task1")
21
+
22
+ self.loop.run_until_complete(test())
23
+
24
+ def test_stop(self):
25
+ async def test():
26
+ await self.queue.stop()
27
+ self.assertTrue(self.queue.stopped())
28
+
29
+ self.loop.run_until_complete(test())
30
+
31
+ @patch("lionagi.libs.ln_func_call.rcall", autospec=True)
32
+ def test_process_requests(self, mock_rcall):
33
+ future = asyncio.Future()
34
+ future.set_result("Processed successfully")
35
+ mock_rcall.return_value = future
36
+
37
+ async def processor(task):
38
+ return f"Processed {task}"
39
+
40
+ async def add_tasks():
41
+ for i in range(5):
42
+ await self.queue.enqueue(f"task{i}")
43
+ # This ensures that the queue stops after all tasks are added
44
+ await self.queue.stop()
45
+
46
+ async def process():
47
+ await self.queue.process_requests(processor, retry_kwargs={"retries": 2})
48
+
49
+ self.loop.create_task(add_tasks())
50
+ self.loop.run_until_complete(process())
51
+ # mock_rcall.assert_called()
52
+
53
+ def test_concurrency_limit(self):
54
+ async def add_tasks():
55
+ for i in range(10):
56
+ await self.queue.enqueue(f"task{i}")
57
+
58
+ async def process():
59
+ await asyncio.sleep(0.1)
60
+ await self.queue.stop()
61
+
62
+ self.loop.run_until_complete(add_tasks())
63
+ self.loop.run_until_complete(process())
64
+
65
+
66
+ if __name__ == "__main__":
67
+ unittest.main()
@@ -3,7 +3,6 @@
3
3
  # from lionagi.core.messages.schema import System
4
4
  # from lionagi.core.schema import DataLogger
5
5
 
6
-
7
6
  # import unittest
8
7
  # from unittest.mock import patch, MagicMock
9
8
  # import pandas as pd
@@ -84,6 +84,7 @@
84
84
  # self.branch.register_tools(self.tool)
85
85
  # self.assertTrue(self.branch.has_tools)
86
86
 
87
+
87
88
  # # @patch("lionagi.core.branch.BaseBranch._from_csv")
88
89
  # # def test_from_csv(self, mock_from_csv):
89
90
  # # """Test creating a Branch instance from a CSV file."""
@@ -118,6 +119,7 @@
118
119
  # # tool_manager=None,
119
120
  # # )
120
121
 
122
+
121
123
  # def test_messages_describe(self):
122
124
  # """Test the messages_describe method for accuracy."""
123
125
  # # Assuming self.branch has been set up with some messages
@@ -1,6 +1,7 @@
1
1
  # from lionagi.core.branch.util import MessageUtil
2
2
  # from lionagi.core.messages.schema import System, Instruction, Response
3
3
 
4
+
4
5
  # import unittest
5
6
  # import pandas as pd
6
7
  # import json
lionagi/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.0.316"
1
+ __version__ = "0.1.1"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lionagi
3
- Version: 0.0.316
3
+ Version: 0.1.1
4
4
  Summary: Towards automated general intelligence.
5
5
  Author: HaiyangLi
6
6
  Author-email: Haiyang Li <ocean@lionagi.ai>
@@ -0,0 +1,190 @@
1
+ lionagi/__init__.py,sha256=i6Ci7FebU2s4EVVnBFj1Dsi5RvP80JqeSqW-iripRPg,418
2
+ lionagi/version.py,sha256=rnObPjuBcEStqSO0S6gsdS_ot8ITOQjVj_-P1LUUYpg,22
3
+ lionagi/core/__init__.py,sha256=IC9rZ8-9LuOPmJL9k6K6Geqi9jdURDUTsgC_h58O_MY,484
4
+ lionagi/core/agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ lionagi/core/agent/base_agent.py,sha256=DFi7PWqfwiUiuZXzBIiy949l-LK3z0GaW_y7j-V_a7c,2881
6
+ lionagi/core/branch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ lionagi/core/branch/base.py,sha256=cwQmgnjBFVfmlk617J6ic7lhmWblk5egQYGHnVFach8,22169
8
+ lionagi/core/branch/branch.py,sha256=JeZGjpC6CfysJsWlXxtf99MsuiOtmvqSdYjo7yvqELw,18010
9
+ lionagi/core/branch/executable_branch.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
+ lionagi/core/branch/flow_mixin.py,sha256=Y-1_RrtWKXfSo6tNxjwP7B8CnkXGJQwEgF5OVxYwU74,2582
11
+ lionagi/core/branch/util.py,sha256=os7Qp7HpDfyyCvdkbBTyIQ3AYHfzUP0M684W4XMDHN4,11813
12
+ lionagi/core/direct/__init__.py,sha256=5cIJ81ipDljFymfbTfXT9bfFSxzkHix6NPL5JJGRGPQ,345
13
+ lionagi/core/direct/cot.py,sha256=Y05dVCxkSyMzxsjWxgaQJyusvZ4N4dFyE11z9Em7R40,3189
14
+ lionagi/core/direct/plan.py,sha256=zexb-DwhlzN5ECcjtHSX14HTjC20bNxP_JstX3mdKHw,4038
15
+ lionagi/core/direct/predict.py,sha256=cntycNF3p_Tss-0bRGuQa-Ak1Qnixg5tHmGQkb0O3ZE,6539
16
+ lionagi/core/direct/react.py,sha256=kc7jviimPhww0aKmlb6vYM_adGah17BHzBbrzuwmVQA,4321
17
+ lionagi/core/direct/score.py,sha256=UyyLRtJbGponyVxbIeCjVWHlpEMiQeNUL01WPTrJ88U,10332
18
+ lionagi/core/direct/select.py,sha256=ocQYdD11u8ElRTARsf5eyxeZQTYhWhlVbkMEuH1ejA0,6131
19
+ lionagi/core/direct/sentiment.py,sha256=rNwBs-I2XICOwsXxFvfM1Tlc_afsVcRCNCXCxfxm_2k,27
20
+ lionagi/core/direct/utils.py,sha256=1bYOGVClMneEN7x1BWmxxTtZiqlnLFuREizhDVcqLYg,3020
21
+ lionagi/core/direct/vote.py,sha256=rchs7H07v7rDmJknJdQKFfCru7FPbTgN-0g2_zTIhs0,2487
22
+ lionagi/core/execute/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ lionagi/core/execute/base_executor.py,sha256=yMdyCT3l3XZFnXnTFJ2fxid4m4uMGBXlQdjF9hXYMKA,1551
24
+ lionagi/core/execute/branch_executor.py,sha256=TjY6B9dCwrxHSvutt2CIhtMgCQ2f3HV3thYpNzgRqYA,11141
25
+ lionagi/core/execute/instruction_map_executor.py,sha256=5OxWiiAn7WDh9KS3Geu6I4EKAEiclx2J0kCMDPeJRqA,7694
26
+ lionagi/core/execute/neo4j_executor.py,sha256=IB7aYMUGNUuqD24pksQVdQSpezLw7xujTceLMaW8ijo,15254
27
+ lionagi/core/execute/structure_executor.py,sha256=EuF6rT4_fKJoGq8AIv9trqsdnlZR71b6asCUI1AcPcY,12151
28
+ lionagi/core/flow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
+ lionagi/core/flow/baseflow.py,sha256=rbxDYfBCUt0ctja4zN85Y6sAh7BznR3MxteP4xa9izw,396
30
+ lionagi/core/flow/mono_chat_mixin.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
+ lionagi/core/flow/monoflow/ReAct.py,sha256=ULzIJmYVvRwOgqINeCM2tzfOvbnelgyKeAIlBrcfzNg,9585
32
+ lionagi/core/flow/monoflow/__init__.py,sha256=naNpq-RWnNfVytUgn61xbRYe8Pt0qz8jYy_CRrpUojw,159
33
+ lionagi/core/flow/monoflow/chat.py,sha256=J2TgZT7FEYf_bHjJk6gNeZAN2tNg1CG8WVwoUDSFV6M,3239
34
+ lionagi/core/flow/monoflow/chat_mixin.py,sha256=cifIlJvAOYR9021EMc1aDZ5KlrtfOZuXGOs9LZ0Hf-0,8393
35
+ lionagi/core/flow/monoflow/followup.py,sha256=NMecy2b5443lIAqH4qfxnJDwVjF4ZqvmqQWjcdCgvts,8886
36
+ lionagi/core/flow/polyflow/__init__.py,sha256=Ti4HTyIagaZa-Mu7DBnid246BuvXtTuGhBdlVfDaBnM,27
37
+ lionagi/core/flow/polyflow/chat.py,sha256=RWDD_1ox1MzV65SWFrfY23Cx-kOenUX5y5vPveyjGQU,10466
38
+ lionagi/core/form/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
+ lionagi/core/form/action_form.py,sha256=GkOLArXHwjxSVbtXXr_kiPicllOdDzR7gHedvfWPgP4,1034
40
+ lionagi/core/form/field_validator.py,sha256=u_AY-kofojRqyETSZZOrtFP3PKXySXZLcdkRHmZ7Mnc,8411
41
+ lionagi/core/form/form.py,sha256=82wsOiFBtXddXAMY_A-w9RzJEYk-kReh3hbl-Ahm1gw,9926
42
+ lionagi/core/form/mixin.py,sha256=naCJDJ-u4F7RndLcHlBbOo0cecr31SiR-Qe9mFZ4l1U,6921
43
+ lionagi/core/form/scored_form.py,sha256=96EOKXrHB9MVEhvEY4DPEjC57T1_dTqQ4tZjc8xTk-c,392
44
+ lionagi/core/generic/__init__.py,sha256=ynRqaY9kId2Z7g77FLU-OjEdwieTbRhEjp9bcBfq7Zk,772
45
+ lionagi/core/generic/action.py,sha256=a9nToGSkHhOqlBxrN_xD9PSTrhCdXde3TKYL7MKAj8k,712
46
+ lionagi/core/generic/component.py,sha256=Ct-OCkOQ94l8LxPeMTezUXcoVP3gjp99DkqdwRP0AJ8,14011
47
+ lionagi/core/generic/condition.py,sha256=yDJfQ65gcblw7V7XDYAwLBVT7U7_tiwU1z2GD_rNa84,1169
48
+ lionagi/core/generic/data_logger.py,sha256=1OLTS9CLpXPtxgINEXaZwJB3MSyUmmNFhljhg93BxIQ,11236
49
+ lionagi/core/generic/edge.py,sha256=_FB8A50ckrPdDBGyOUmxbOcWU90zPIPFwthzfSO3F7A,5850
50
+ lionagi/core/generic/mail.py,sha256=KR8IA2ryYpvK0C-GY25xfMboqjKl4Bks4rumuV42SvE,2532
51
+ lionagi/core/generic/mailbox.py,sha256=wgvAEOLMQXIaYCly8HI7KcF9MdQIl3JKNgwsC-TS4-s,1034
52
+ lionagi/core/generic/node.py,sha256=8aymSTHKLzXD1veO-bKyUsav9Jv69Z6JBayTrqkeUjQ,9880
53
+ lionagi/core/generic/relation.py,sha256=2YL05250DLXvcg4hnCQS8v41RBAgdo4ZxrLkOtdjvSE,2581
54
+ lionagi/core/generic/signal.py,sha256=vTDo2zJeIBlFrsGrQHN5pa59e3bbRc2A8iYd1APC2kg,625
55
+ lionagi/core/generic/structure.py,sha256=SSUhEBHxKEKLvKxRdO2UQpdcA5F1qjqK0GwYSwhB9yo,11972
56
+ lionagi/core/generic/transfer.py,sha256=YxULB_Rh1GVTNqkgp7ovq2wF7MHh3kWU8bJGQUWVrZc,564
57
+ lionagi/core/generic/work.py,sha256=0oaokRHB0CYpxOJKf5n8OKxiF7x5rvssTXl6a2g51rY,825
58
+ lionagi/core/graph/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
+ lionagi/core/graph/graph.py,sha256=nsRcxPMIicDR8V9JYbf7Lpc8bPjopnJbx7e0hSpxTcs,3739
60
+ lionagi/core/graph/tree.py,sha256=nqOauYI_l4rjzQYrCoVqzV_tW2K6OadHwnKdhlPGC8U,5869
61
+ lionagi/core/mail/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
+ lionagi/core/mail/mail_manager.py,sha256=lcMZq3rJbGf4eTa6v3TG9pqDcomDGBdT9KA-ADhKB64,4045
63
+ lionagi/core/mail/schema.py,sha256=_69QOxwv4s-tbgb6Ao6ocEJq5YcTeV_C8JnsOXRpN8Q,1735
64
+ lionagi/core/messages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
+ lionagi/core/messages/schema.py,sha256=d-Xe2CzExl8Rf5uwrvwxntuxvCtlEniFPl5KKmV7tV8,10577
66
+ lionagi/core/session/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
+ lionagi/core/session/session.py,sha256=-E_QO3U87JPlgV09Z_TLN_vA9cnH2uTOrvLQHGCW_C0,38111
68
+ lionagi/core/tool/__init__.py,sha256=zU3nSR6BVvwhNMtijwlH0b_09o_QvKB1I_MmLlu_77c,151
69
+ lionagi/core/tool/tool.py,sha256=KoQEH8QF6YPRuF_ymwshh45xrEV86s13TyCSY9kA53E,844
70
+ lionagi/core/tool/tool_manager.py,sha256=v72VJR2a7fysq9zTMzU4Z4PTclasvrCRRPy8_WyCTCM,10667
71
+ lionagi/experimental/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
+ lionagi/experimental/directive/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
+ lionagi/experimental/directive/schema.py,sha256=vGHQqn_ZAMkIfUqqdnPCHN8p-wommVyMBkanWHPuCSI,861
74
+ lionagi/experimental/directive/evaluator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
+ lionagi/experimental/directive/evaluator/ast_evaluator.py,sha256=DbBAQsTFUI4_QDOpG7eDcMbWLvkuU9WKYTtO8zYDgJ0,4132
76
+ lionagi/experimental/directive/evaluator/base_evaluator.py,sha256=lrOPG19tmndgGUAN2TxnyXshitbCZNKOPPhUxEN7a58,8062
77
+ lionagi/experimental/directive/evaluator/sandbox_.py,sha256=yjq8aznCEBeflus68VVQavy6ChfdIoZeVvPhUx_UzrI,459
78
+ lionagi/experimental/directive/evaluator/script_engine.py,sha256=7teiwwIPqMdiV0WF2E_ls-D0hLoJmwiFKV5i16s2mFU,3074
79
+ lionagi/experimental/directive/parser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
80
+ lionagi/experimental/directive/parser/base_parser.py,sha256=IcAEJa0kO5Usheb9sa8wfwFFDUw3yGrVFYNx_Fjs9dk,8623
81
+ lionagi/experimental/directive/template_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
+ lionagi/experimental/directive/template_/base_template.py,sha256=G5OX6A2Vq4KPTIslp4qb88ySvhZ-C6l2cuGufappaVE,2613
83
+ lionagi/experimental/tool/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
+ lionagi/experimental/tool/function_calling.py,sha256=dV01uSOr1zAya7H4PE3SjnY-RH3KD4Ht_4AzSj8DqBs,1232
85
+ lionagi/experimental/tool/manual.py,sha256=vNGgQm6XA_o5jK6QLbXpdaa1Et71X6ozDJRdd-BlfKQ,2569
86
+ lionagi/experimental/tool/schema.py,sha256=2GMuoQoR1yfqlRM7rqZbR1Bj02HXLvOxl_XrzfbgaBc,1642
87
+ lionagi/experimental/tool/tool_manager.py,sha256=Kzr4hR7Tif1pLPOq7nNFWPTuCcvhNk52EAcMSOcaadg,4552
88
+ lionagi/experimental/tool/util.py,sha256=DnlFVtwyGdHyIeKqjiT_U6nUnJOzyrdtY89HIM06tL4,502
89
+ lionagi/experimental/work/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
+ lionagi/experimental/work/_logger.py,sha256=CnDNApMsBoXBg-OcBRIES9HmelVd4sQlcQzZ9wHP_1E,900
91
+ lionagi/experimental/work/exchange.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
+ lionagi/experimental/work/schema.py,sha256=xl6FKRz_-OjUZHTQHJQ16EKZvHUbkNKHqOgk1zgzjJw,962
93
+ lionagi/experimental/work/tests.py,sha256=xY6VYCFzkHcH8S-b20U8PjvVf_gkEKINZWTvAm_CVAY,2623
94
+ lionagi/experimental/work/util.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
+ lionagi/experimental/work/work_function.py,sha256=VsfD1z34Z8YCi4Zkgw3IMRujja16CleVSGbrgmQev9Q,3145
96
+ lionagi/experimental/work/worker.py,sha256=MbYXpZzctWyHYqKrek1jJgEr24JgY7pFZVQsCJqyoU8,344
97
+ lionagi/integrations/__init__.py,sha256=Il5Q9ATdX8yXqVxtP_nYqUhExzxPC_qk_WXQ_4h0exg,16
98
+ lionagi/integrations/bridge/__init__.py,sha256=ee5IeCkDOD2uhbzqxg_xDxaG-Q3BPPZCYltBjzg2gSs,169
99
+ lionagi/integrations/bridge/autogen_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
100
+ lionagi/integrations/bridge/autogen_/autogen_.py,sha256=D66BIcAI_4AafYHp67TqyNF-lgap6bbOxRHukLpAz2s,4055
101
+ lionagi/integrations/bridge/langchain_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
102
+ lionagi/integrations/bridge/langchain_/documents.py,sha256=jpKtaQFaBDdiLqkrOjXIm-ddJVHb8JOKO-Wjm0SkoqY,4804
103
+ lionagi/integrations/bridge/langchain_/langchain_bridge.py,sha256=-lnJtyf4iJEwHKQAwBRN6YZ7CTsyFLetl5e8_9UGouY,3163
104
+ lionagi/integrations/bridge/llamaindex_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
+ lionagi/integrations/bridge/llamaindex_/get_index.py,sha256=v7bJ0pa-3eUtFJsL_DWox-YOTX_7d1XcA5O6Gwq66fU,11826
106
+ lionagi/integrations/bridge/llamaindex_/index.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
107
+ lionagi/integrations/bridge/llamaindex_/llama_index_bridge.py,sha256=SSnLSIu06xVsghTios01QKGrc2xCq3oC8fVNGO4QkF8,5064
108
+ lionagi/integrations/bridge/llamaindex_/llama_pack.py,sha256=07hDT7ZlXTOkWg4arRYNqDHBR4NJE5hOmNn52GGtS4o,8397
109
+ lionagi/integrations/bridge/llamaindex_/node_parser.py,sha256=d8SPD6EMf9bZ6824jjeZOWmwm7BHBZQ0qGq1JnsKh9k,3458
110
+ lionagi/integrations/bridge/llamaindex_/reader.py,sha256=VxdTk5h3a3_5RQzN15q75XGli52umhz9gLUrKk1Sg90,8235
111
+ lionagi/integrations/bridge/llamaindex_/textnode.py,sha256=OszGitHZ36zbG4DCGWUnSV6EO7wChEH2VA5M50iBojs,2322
112
+ lionagi/integrations/bridge/pydantic_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
+ lionagi/integrations/bridge/pydantic_/pydantic_bridge.py,sha256=TVh7sQX_LKERUvv1nxsA2JICY1S6ptPr3qFqzgHfGCY,87
114
+ lionagi/integrations/bridge/transformers_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
+ lionagi/integrations/bridge/transformers_/install_.py,sha256=sRzU6-PS5bq0ntdTM8I5i1M_Tj1yKTlq8rco_6b6QM8,1215
116
+ lionagi/integrations/chunker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
+ lionagi/integrations/chunker/chunk.py,sha256=bmkJlu16WXC151h0fh35EtmyDMZ5x1oiAdsVRcn_Ias,5080
118
+ lionagi/integrations/config/__init__.py,sha256=zzQGZe3H5vofcNWSjjoqe_gqHpCO8Yl7FefmrUpLqnw,133
119
+ lionagi/integrations/config/mlx_configs.py,sha256=xbostqjnk3aAN-qKyC54YBprHPA38C8YDevXMMEHXWY,44
120
+ lionagi/integrations/config/oai_configs.py,sha256=WgtARAPM04PDPgadwYlWXGUO-HvmqzSG3mVkvWQ1tso,2774
121
+ lionagi/integrations/config/ollama_configs.py,sha256=GUn0kagrQA3gpIiaxYyfdi2LAf_Ohz1sVrsAb20OBwo,17
122
+ lionagi/integrations/config/openrouter_configs.py,sha256=Wn9K_jVI4SWE6EgwtI5UfBO7oL2wpBeZcVxseLVMdlg,1371
123
+ lionagi/integrations/loader/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
124
+ lionagi/integrations/loader/load.py,sha256=CX1F5VeoTany58WX_RD8QMoNJWkbWXoPEkvgFK6Tp6I,4559
125
+ lionagi/integrations/loader/load_util.py,sha256=-MEF3LPomGGyP53WcPHHA9KiKLJekgKRLghmbymWu9o,8338
126
+ lionagi/integrations/provider/__init__.py,sha256=MJhnq2tkBRcMH-3utc0G-Co20MmsxLBbp3fUwHrJGQ8,198
127
+ lionagi/integrations/provider/litellm.py,sha256=l3sTtIPDeM_9soTLj9gpVfFWWDzFfIZ7rbVcuzeql2w,1181
128
+ lionagi/integrations/provider/mistralai.py,sha256=G-StbfrnUcWZvl0eRby6CZYXxmJf6BRMFzDaix-brmU,7
129
+ lionagi/integrations/provider/mlx_service.py,sha256=ilbBupRs3HeOeO2iwW0prVq57krPu9db8aYLgq_cN0A,1325
130
+ lionagi/integrations/provider/oai.py,sha256=ZxfVz-ZdpeYqXQFq_1_Lqlz4sG8zmp48MosGIpV5ggU,4222
131
+ lionagi/integrations/provider/ollama.py,sha256=dOKqzqjpwYYGw9vGKDVzVh9PAem7oFG09cfKEEB__oc,1314
132
+ lionagi/integrations/provider/openrouter.py,sha256=ZEG2lLbp-qb7r95CFAuPz7EqAdsMuJxMJXfgWhaBHsk,1856
133
+ lionagi/integrations/provider/services.py,sha256=zLX_C0p1eI5cfxkxlxIVEsU0k_fknhV1-LoXPJZFE4w,5388
134
+ lionagi/integrations/provider/transformers.py,sha256=E6CTtm7pa3aa0IqYklWvhXz9YWlh3p_lgKaJXYfXeyA,3397
135
+ lionagi/integrations/storage/__init__.py,sha256=tutRSV4gxeS342sNi4CeEEIkYHVaQUeO8vilPpxMi-g,74
136
+ lionagi/integrations/storage/neo4j.py,sha256=ajXmLtqDuWhBa1WTwvvlvKgZoiIO00wFbPVdEowTCIE,25785
137
+ lionagi/integrations/storage/storage_util.py,sha256=zTV5EW2rFGC6sgQHRPrgnpfzP9XAgVr5-5AjDvhabyY,10593
138
+ lionagi/integrations/storage/to_csv.py,sha256=BS1upr2Qy0Se5JG8nYQHHxmi0OUpKJ1nACbYL5ynNCY,2881
139
+ lionagi/integrations/storage/to_excel.py,sha256=3BlRyESKca7KghH1Ib6QFnedlc_Fvf9jn2bo6D-jOtI,3095
140
+ lionagi/libs/__init__.py,sha256=OF_HuVdyTiTx5hkiMqe8oce1J2u7GOKxiVFqCbZW3_I,768
141
+ lionagi/libs/ln_api.py,sha256=M6VZz2pVySSwknY15kNrgL92u5-RkkbBvQ1msyfYYZ4,34577
142
+ lionagi/libs/ln_async.py,sha256=fOlFmg2nTYHzFKwJNIPQNJRr_hB7HXRKEhsN7j-XPLg,6074
143
+ lionagi/libs/ln_convert.py,sha256=_Qfi2hBC9VFRVtxcaIDY_zmMzqXsYGMiKk4bEgj46Gk,23535
144
+ lionagi/libs/ln_dataframe.py,sha256=d6oJQ1Xk7Mnl8FZj0lBCPf3QdFfPQpPqnnXsiG-ubUI,5539
145
+ lionagi/libs/ln_func_call.py,sha256=sNaOXuYVLYJvnKzGpDosFCYhmb9XeExRKR80rqwITTM,49096
146
+ lionagi/libs/ln_knowledge_graph.py,sha256=LZn1MjMKIRSTaaabrfovTVssQgCZuab4tdnxzzOIxpw,14930
147
+ lionagi/libs/ln_nested.py,sha256=Xu7xiOWLs0n5kwTR8uGXQ380o1-SnCS7SHJZv9chp90,29640
148
+ lionagi/libs/ln_parse.py,sha256=g5jsbI08np6QUgDRiXj0NND7fbPN8asnTx-ZsM_SYxY,25007
149
+ lionagi/libs/ln_queue.py,sha256=bX2vjvoveifN8SSI9dk-52C2KCVEFdmQEE6QqdpnxxM,3418
150
+ lionagi/libs/ln_tokenizer.py,sha256=lnOgxgHUHYqurZ6Ws_a_pS0fjwwUBlMcAYTDj4FNrEE,1784
151
+ lionagi/libs/ln_validate.py,sha256=qe9dQfsXCrXXVCkAHo789P6wyZrm05BUAcpXLExM1Ao,8404
152
+ lionagi/libs/sys_util.py,sha256=Qrq90yrxcGE_Xp8ex1umoIh5uFEWIZIKxnVm8Q1egd4,17353
153
+ lionagi/lions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
154
+ lionagi/lions/coder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
155
+ lionagi/lions/coder/add_feature.py,sha256=mLMfz9V9yYbdH6DJs39FOz9IHdhdyPZajocQtQhjgcA,703
156
+ lionagi/lions/coder/base_prompts.py,sha256=SLpC442nZm2cEkB8o9j28kpkB-WzKLjH6sOTS8CnIrY,367
157
+ lionagi/lions/coder/coder.py,sha256=196amLoZD9-GAAL7ThhsqdAa5EpQYWnm3qLjAkpvngI,4251
158
+ lionagi/lions/coder/util.py,sha256=4KQmHk82PzXrgqFQRJEZOqBTIIRjEwUhtuomccmgLew,2689
159
+ lionagi/lions/researcher/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
160
+ lionagi/lions/researcher/data_source/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
161
+ lionagi/lions/researcher/data_source/finhub_.py,sha256=X7r6PeI9nnzqI0sJ4FONVLE0VJ4din302EurFxwX5TE,8782
162
+ lionagi/lions/researcher/data_source/google_.py,sha256=V4tNn--_8k1A0FBPOD0mt5YmNeRg_7CEoWz-WHoJQmo,6675
163
+ lionagi/lions/researcher/data_source/wiki_.py,sha256=1RrrW-Ko6y0ssQguIYiWTOoZf0oVT4_JB9g9KK1N4-Y,3123
164
+ lionagi/lions/researcher/data_source/yfinance_.py,sha256=snAf897J69MyAc6fcFjF0irrMjbAh81EZ3RvaFT3hxE,977
165
+ lionagi/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
166
+ lionagi/tests/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
+ lionagi/tests/libs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
+ lionagi/tests/libs/test_api.py,sha256=wi8uEsV7vO-stJxvdajtOGBdnO76nGsZ_wjN0qXESEQ,1681
169
+ lionagi/tests/libs/test_async.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
170
+ lionagi/tests/libs/test_convert.py,sha256=o8xqmrd3RtSQ5Rrrujek8-RWdikhxwMbn4nyUmujoWI,2796
171
+ lionagi/tests/libs/test_field_validators.py,sha256=ZzIvBsNg8AXzYS-3l-sAf_TEFtaIh-v9oMhHEFqoRBU,11901
172
+ lionagi/tests/libs/test_func_call.py,sha256=xvs19YBNxqh3RbWLjQXY19L06b1_uZY611J6_JhNgcM,20782
173
+ lionagi/tests/libs/test_nested.py,sha256=eEcE4BXJEkjoPZsd9-0rUxOJHjmu8W2hgVClUTwXEFY,13106
174
+ lionagi/tests/libs/test_parse.py,sha256=aa74kfOoJwDU7L7-59EcgBGYc5-OtafPIP2oGTI3Zrk,6814
175
+ lionagi/tests/libs/test_queue.py,sha256=l71eiLhzPPMl3K8k_Eb55OtdLSWr5spFbDFnM6UaqeA,1989
176
+ lionagi/tests/libs/test_sys_util.py,sha256=Y-9jxLGxgbFNp78Z0PJyGUjRROMuRAG3Vo3i5LAH8Hs,7849
177
+ lionagi/tests/test_core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
178
+ lionagi/tests/test_core/test_base_branch.py,sha256=QtNbE1eJHkF_3xOO4TFXLa9gmELMLlBaVZ8v3xnoJy4,18628
179
+ lionagi/tests/test_core/test_branch.py,sha256=6F-ZG4M6RgmDNnjhhbX1eKnIftXWr2aeLYRZjFxer-4,11712
180
+ lionagi/tests/test_core/test_chat_flow.py,sha256=mjG7LV4yora7HG2_rIraxxpMROettQzZs6Eb85vaFS8,2596
181
+ lionagi/tests/test_core/test_mail_manager.py,sha256=yT7Hw-9BEMIlva8FvFu6843i1fQKbu98q8StLK7TTvo,2887
182
+ lionagi/tests/test_core/test_prompts.py,sha256=TusAnaw1HGzDe6z26YZDKmMbDpoHK7NDvptCkf56nq4,1757
183
+ lionagi/tests/test_core/test_session.py,sha256=ErAkQe4ZK2yy6nouc0G6srhj8-1Gw8PAEF3SJ-KY0kc,9335
184
+ lionagi/tests/test_core/test_session_base_util.py,sha256=S40di_G_XLkOWK_451o4NJ_h543bKur9sajPP_vx8q4,10619
185
+ lionagi/tests/test_core/test_tool_manager.py,sha256=WwQ2M900f3a76LQQVX7I-wgREj_rwARBnsIIZGqbeW0,3431
186
+ lionagi-0.1.1.dist-info/LICENSE,sha256=vfczrx-xFNkybZ7Ef-lGUnA1Vorky6wL4kwb1Fd5o3I,1089
187
+ lionagi-0.1.1.dist-info/METADATA,sha256=2R0U1TwSEPxxYmYUGwXAKbwO5px9F0KYfP_96Gsz7cg,7932
188
+ lionagi-0.1.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
189
+ lionagi-0.1.1.dist-info/top_level.txt,sha256=szvch_d2jE1Lu9ZIKsl26Ll6BGfYfbOgt5lm-UpFSo4,8
190
+ lionagi-0.1.1.dist-info/RECORD,,