lionagi 0.0.305__py3-none-any.whl → 0.0.307__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.
Files changed (84) hide show
  1. lionagi/__init__.py +2 -5
  2. lionagi/core/__init__.py +7 -4
  3. lionagi/core/agent/__init__.py +3 -0
  4. lionagi/core/agent/base_agent.py +46 -0
  5. lionagi/core/branch/__init__.py +4 -0
  6. lionagi/core/branch/base/__init__.py +0 -0
  7. lionagi/core/branch/base_branch.py +100 -78
  8. lionagi/core/branch/branch.py +22 -34
  9. lionagi/core/branch/branch_flow_mixin.py +3 -7
  10. lionagi/core/branch/executable_branch.py +192 -0
  11. lionagi/core/branch/util.py +77 -162
  12. lionagi/core/direct/__init__.py +13 -0
  13. lionagi/core/direct/parallel_predict.py +127 -0
  14. lionagi/core/direct/parallel_react.py +0 -0
  15. lionagi/core/direct/parallel_score.py +0 -0
  16. lionagi/core/direct/parallel_select.py +0 -0
  17. lionagi/core/direct/parallel_sentiment.py +0 -0
  18. lionagi/core/direct/predict.py +174 -0
  19. lionagi/core/direct/react.py +33 -0
  20. lionagi/core/direct/score.py +163 -0
  21. lionagi/core/direct/select.py +144 -0
  22. lionagi/core/direct/sentiment.py +51 -0
  23. lionagi/core/direct/utils.py +83 -0
  24. lionagi/core/flow/__init__.py +0 -3
  25. lionagi/core/flow/monoflow/{mono_react.py → ReAct.py} +52 -9
  26. lionagi/core/flow/monoflow/__init__.py +9 -0
  27. lionagi/core/flow/monoflow/{mono_chat.py → chat.py} +11 -11
  28. lionagi/core/flow/monoflow/{mono_chat_mixin.py → chat_mixin.py} +33 -27
  29. lionagi/core/flow/monoflow/{mono_followup.py → followup.py} +7 -6
  30. lionagi/core/flow/polyflow/__init__.py +1 -0
  31. lionagi/core/flow/polyflow/{polychat.py → chat.py} +15 -3
  32. lionagi/core/mail/__init__.py +8 -0
  33. lionagi/core/mail/mail_manager.py +88 -40
  34. lionagi/core/mail/schema.py +32 -6
  35. lionagi/core/messages/__init__.py +3 -0
  36. lionagi/core/messages/schema.py +56 -25
  37. lionagi/core/prompt/__init__.py +0 -0
  38. lionagi/core/prompt/prompt_template.py +0 -0
  39. lionagi/core/schema/__init__.py +7 -5
  40. lionagi/core/schema/action_node.py +29 -0
  41. lionagi/core/schema/base_mixin.py +56 -59
  42. lionagi/core/schema/base_node.py +35 -38
  43. lionagi/core/schema/condition.py +24 -0
  44. lionagi/core/schema/data_logger.py +98 -98
  45. lionagi/core/schema/data_node.py +19 -19
  46. lionagi/core/schema/prompt_template.py +0 -0
  47. lionagi/core/schema/structure.py +293 -190
  48. lionagi/core/session/__init__.py +1 -3
  49. lionagi/core/session/session.py +196 -214
  50. lionagi/core/tool/tool_manager.py +95 -103
  51. lionagi/integrations/__init__.py +1 -3
  52. lionagi/integrations/bridge/langchain_/documents.py +17 -18
  53. lionagi/integrations/bridge/langchain_/langchain_bridge.py +14 -14
  54. lionagi/integrations/bridge/llamaindex_/llama_index_bridge.py +22 -22
  55. lionagi/integrations/bridge/llamaindex_/node_parser.py +12 -12
  56. lionagi/integrations/bridge/llamaindex_/reader.py +11 -11
  57. lionagi/integrations/bridge/llamaindex_/textnode.py +7 -7
  58. lionagi/integrations/config/openrouter_configs.py +0 -1
  59. lionagi/integrations/provider/oai.py +26 -26
  60. lionagi/integrations/provider/services.py +38 -38
  61. lionagi/libs/__init__.py +34 -1
  62. lionagi/libs/ln_api.py +211 -221
  63. lionagi/libs/ln_async.py +53 -60
  64. lionagi/libs/ln_convert.py +118 -120
  65. lionagi/libs/ln_dataframe.py +32 -33
  66. lionagi/libs/ln_func_call.py +334 -342
  67. lionagi/libs/ln_nested.py +99 -107
  68. lionagi/libs/ln_parse.py +175 -158
  69. lionagi/libs/sys_util.py +52 -52
  70. lionagi/tests/test_core/test_base_branch.py +427 -427
  71. lionagi/tests/test_core/test_branch.py +292 -292
  72. lionagi/tests/test_core/test_mail_manager.py +57 -57
  73. lionagi/tests/test_core/test_session.py +254 -266
  74. lionagi/tests/test_core/test_session_base_util.py +299 -300
  75. lionagi/tests/test_core/test_tool_manager.py +70 -74
  76. lionagi/tests/test_libs/test_nested.py +2 -7
  77. lionagi/tests/test_libs/test_parse.py +2 -2
  78. lionagi/version.py +1 -1
  79. {lionagi-0.0.305.dist-info → lionagi-0.0.307.dist-info}/METADATA +4 -2
  80. lionagi-0.0.307.dist-info/RECORD +115 -0
  81. lionagi-0.0.305.dist-info/RECORD +0 -94
  82. {lionagi-0.0.305.dist-info → lionagi-0.0.307.dist-info}/LICENSE +0 -0
  83. {lionagi-0.0.305.dist-info → lionagi-0.0.307.dist-info}/WHEEL +0 -0
  84. {lionagi-0.0.305.dist-info → lionagi-0.0.307.dist-info}/top_level.txt +0 -0
@@ -1,75 +1,75 @@
1
- from lionagi.core.mail.mail_manager import MailManager
2
- from lionagi.core.mail.schema import BaseMail
1
+ # from lionagi.core.mail.mail_manager import MailManager
2
+ # from lionagi.core.mail.schema import BaseMail
3
3
 
4
- import unittest
5
- from unittest.mock import patch
6
- from collections import deque
4
+ # import unittest
5
+ # from unittest.mock import patch
6
+ # from collections import deque
7
7
 
8
8
 
9
- class MockSource:
10
- def __init__(self):
11
- self.pending_outs = deque()
12
- self.pending_ins = {}
9
+ # class MockSource:
10
+ # def __init__(self):
11
+ # self.pending_outs = deque()
12
+ # self.pending_ins = {}
13
13
 
14
14
 
15
- class TestMailManager(unittest.TestCase):
15
+ # class TestMailManager(unittest.TestCase):
16
16
 
17
- def setUp(self):
18
- self.sources = {"source1": MockSource(), "source2": MockSource()}
19
- self.manager = MailManager(sources=self.sources)
17
+ # def setUp(self):
18
+ # self.sources = {"source1": MockSource(), "source2": MockSource()}
19
+ # self.manager = MailManager(sources=self.sources)
20
20
 
21
- def test_add_source(self):
22
- """Test adding a new source."""
23
- self.manager.add_source({"new_source": MockSource()})
24
- self.assertIn("new_source", self.manager.sources)
21
+ # def test_add_source(self):
22
+ # """Test adding a new source."""
23
+ # self.manager.add_source({"new_source": MockSource()})
24
+ # self.assertIn("new_source", self.manager.sources)
25
25
 
26
- def test_add_source_existing_name(self):
27
- """Test adding a source with an existing name raises ValueError."""
28
- with self.assertRaises(ValueError):
29
- self.manager.add_source({"source1": MockSource()})
26
+ # def test_add_source_existing_name(self):
27
+ # """Test adding a source with an existing name raises ValueError."""
28
+ # with self.assertRaises(ValueError):
29
+ # self.manager.add_source({"source1": MockSource()})
30
30
 
31
- def test_delete_source(self):
32
- """Test deleting an existing source."""
33
- self.manager.delete_source("source1")
34
- self.assertNotIn("source1", self.manager.sources)
31
+ # def test_delete_source(self):
32
+ # """Test deleting an existing source."""
33
+ # self.manager.delete_source("source1")
34
+ # self.assertNotIn("source1", self.manager.sources)
35
35
 
36
- def test_delete_nonexistent_source(self):
37
- """Test deleting a non-existent source raises ValueError."""
38
- with self.assertRaises(ValueError):
39
- self.manager.delete_source("nonexistent_source")
36
+ # def test_delete_nonexistent_source(self):
37
+ # """Test deleting a non-existent source raises ValueError."""
38
+ # with self.assertRaises(ValueError):
39
+ # self.manager.delete_source("nonexistent_source")
40
40
 
41
- def test_collect_from_nonexistent_sender(self):
42
- """Test collecting mail from a non-existent sender raises ValueError."""
43
- with self.assertRaises(ValueError):
44
- self.manager.collect("nonexistent_sender")
41
+ # def test_collect_from_nonexistent_sender(self):
42
+ # """Test collecting mail from a non-existent sender raises ValueError."""
43
+ # with self.assertRaises(ValueError):
44
+ # self.manager.collect("nonexistent_sender")
45
45
 
46
- def test_send_to_nonexistent_recipient(self):
47
- """Test sending mail to a non-existent recipient raises ValueError."""
48
- with self.assertRaises(ValueError):
49
- self.manager.send("nonexistent_recipient")
46
+ # def test_send_to_nonexistent_recipient(self):
47
+ # """Test sending mail to a non-existent recipient raises ValueError."""
48
+ # with self.assertRaises(ValueError):
49
+ # self.manager.send("nonexistent_recipient")
50
50
 
51
- @patch("lionagi.core.mail.mail_manager.BaseMail")
52
- def test_create_mail(self, mock_base_mail):
53
- """Test creating mail using the static method."""
54
- mail = MailManager.create_mail("sender", "recipient", "messages", "package")
55
- mock_base_mail.assert_called_once_with(
56
- "sender", "recipient", "messages", "package"
57
- )
51
+ # @patch("lionagi.core.mail.mail_manager.BaseMail")
52
+ # def test_create_mail(self, mock_base_mail):
53
+ # """Test creating mail using the static method."""
54
+ # mail = MailManager.create_mail("sender", "recipient", "messages", "package")
55
+ # mock_base_mail.assert_called_once_with(
56
+ # "sender", "recipient", "messages", "package"
57
+ # )
58
58
 
59
- def test_collect_and_send_mail(self):
60
- """Test collecting and sending mail between existing sources."""
61
- # Setup: Simulate pending outs in source1
62
- mock_mail = BaseMail("source1", "source2", "messages", "package")
63
- self.sources["source1"].pending_outs.append(mock_mail)
59
+ # # def test_collect_and_send_mail(self):
60
+ # # """Test collecting and sending mail between existing sources."""
61
+ # # # Setup: Simulate pending outs in source1
62
+ # # mock_mail = BaseMail("source1", "source2", "messages", "package")
63
+ # # self.sources["source1"].pending_outs.append(mock_mail)
64
64
 
65
- # Collect mail from source1
66
- self.manager.collect("source1")
67
- # Send mail to source2
68
- self.manager.send("source2")
65
+ # # # Collect mail from source1
66
+ # # self.manager.collect("source1")
67
+ # # # Send mail to source2
68
+ # # self.manager.send("source2")
69
69
 
70
- # Verify that source2 received the mail
71
- self.assertTrue(any(self.sources["source2"].pending_ins))
70
+ # # # Verify that source2 received the mail
71
+ # # self.assertTrue(any(self.sources["source2"].pending_ins))
72
72
 
73
73
 
74
- if __name__ == "__main__":
75
- unittest.main()
74
+ # if __name__ == "__main__":
75
+ # unittest.main()