aient 1.2.7__tar.gz → 1.2.9__tar.gz

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 (56) hide show
  1. {aient-1.2.7 → aient-1.2.9}/PKG-INFO +1 -1
  2. {aient-1.2.7 → aient-1.2.9}/aient/architext/architext/core.py +32 -1
  3. {aient-1.2.7 → aient-1.2.9}/aient/architext/test/test.py +42 -0
  4. {aient-1.2.7 → aient-1.2.9}/aient.egg-info/PKG-INFO +1 -1
  5. {aient-1.2.7 → aient-1.2.9}/pyproject.toml +1 -1
  6. {aient-1.2.7 → aient-1.2.9}/LICENSE +0 -0
  7. {aient-1.2.7 → aient-1.2.9}/README.md +0 -0
  8. {aient-1.2.7 → aient-1.2.9}/aient/__init__.py +0 -0
  9. {aient-1.2.7 → aient-1.2.9}/aient/architext/architext/__init__.py +0 -0
  10. {aient-1.2.7 → aient-1.2.9}/aient/architext/test/openai_client.py +0 -0
  11. {aient-1.2.7 → aient-1.2.9}/aient/architext/test/test_save_load.py +0 -0
  12. {aient-1.2.7 → aient-1.2.9}/aient/core/__init__.py +0 -0
  13. {aient-1.2.7 → aient-1.2.9}/aient/core/log_config.py +0 -0
  14. {aient-1.2.7 → aient-1.2.9}/aient/core/models.py +0 -0
  15. {aient-1.2.7 → aient-1.2.9}/aient/core/request.py +0 -0
  16. {aient-1.2.7 → aient-1.2.9}/aient/core/response.py +0 -0
  17. {aient-1.2.7 → aient-1.2.9}/aient/core/test/test_base_api.py +0 -0
  18. {aient-1.2.7 → aient-1.2.9}/aient/core/test/test_geminimask.py +0 -0
  19. {aient-1.2.7 → aient-1.2.9}/aient/core/test/test_image.py +0 -0
  20. {aient-1.2.7 → aient-1.2.9}/aient/core/test/test_payload.py +0 -0
  21. {aient-1.2.7 → aient-1.2.9}/aient/core/utils.py +0 -0
  22. {aient-1.2.7 → aient-1.2.9}/aient/models/__init__.py +0 -0
  23. {aient-1.2.7 → aient-1.2.9}/aient/models/audio.py +0 -0
  24. {aient-1.2.7 → aient-1.2.9}/aient/models/base.py +0 -0
  25. {aient-1.2.7 → aient-1.2.9}/aient/models/chatgpt.py +0 -0
  26. {aient-1.2.7 → aient-1.2.9}/aient/plugins/__init__.py +0 -0
  27. {aient-1.2.7 → aient-1.2.9}/aient/plugins/arXiv.py +0 -0
  28. {aient-1.2.7 → aient-1.2.9}/aient/plugins/config.py +0 -0
  29. {aient-1.2.7 → aient-1.2.9}/aient/plugins/excute_command.py +0 -0
  30. {aient-1.2.7 → aient-1.2.9}/aient/plugins/get_time.py +0 -0
  31. {aient-1.2.7 → aient-1.2.9}/aient/plugins/image.py +0 -0
  32. {aient-1.2.7 → aient-1.2.9}/aient/plugins/list_directory.py +0 -0
  33. {aient-1.2.7 → aient-1.2.9}/aient/plugins/read_file.py +0 -0
  34. {aient-1.2.7 → aient-1.2.9}/aient/plugins/read_image.py +0 -0
  35. {aient-1.2.7 → aient-1.2.9}/aient/plugins/readonly.py +0 -0
  36. {aient-1.2.7 → aient-1.2.9}/aient/plugins/registry.py +0 -0
  37. {aient-1.2.7 → aient-1.2.9}/aient/plugins/run_python.py +0 -0
  38. {aient-1.2.7 → aient-1.2.9}/aient/plugins/websearch.py +0 -0
  39. {aient-1.2.7 → aient-1.2.9}/aient/plugins/write_file.py +0 -0
  40. {aient-1.2.7 → aient-1.2.9}/aient/utils/__init__.py +0 -0
  41. {aient-1.2.7 → aient-1.2.9}/aient/utils/prompt.py +0 -0
  42. {aient-1.2.7 → aient-1.2.9}/aient/utils/scripts.py +0 -0
  43. {aient-1.2.7 → aient-1.2.9}/aient.egg-info/SOURCES.txt +0 -0
  44. {aient-1.2.7 → aient-1.2.9}/aient.egg-info/dependency_links.txt +0 -0
  45. {aient-1.2.7 → aient-1.2.9}/aient.egg-info/requires.txt +0 -0
  46. {aient-1.2.7 → aient-1.2.9}/aient.egg-info/top_level.txt +0 -0
  47. {aient-1.2.7 → aient-1.2.9}/setup.cfg +0 -0
  48. {aient-1.2.7 → aient-1.2.9}/test/test_Web_crawler.py +0 -0
  49. {aient-1.2.7 → aient-1.2.9}/test/test_ddg_search.py +0 -0
  50. {aient-1.2.7 → aient-1.2.9}/test/test_google_search.py +0 -0
  51. {aient-1.2.7 → aient-1.2.9}/test/test_ollama.py +0 -0
  52. {aient-1.2.7 → aient-1.2.9}/test/test_plugin.py +0 -0
  53. {aient-1.2.7 → aient-1.2.9}/test/test_search.py +0 -0
  54. {aient-1.2.7 → aient-1.2.9}/test/test_url.py +0 -0
  55. {aient-1.2.7 → aient-1.2.9}/test/test_whisper.py +0 -0
  56. {aient-1.2.7 → aient-1.2.9}/test/test_yjh.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aient
3
- Version: 1.2.7
3
+ Version: 1.2.9
4
4
  Summary: Aient: The Awakening of Agent.
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -101,7 +101,12 @@ class Texts(ContextProvider):
101
101
  if text is None and name is None:
102
102
  raise ValueError("Either 'text' or 'name' must be provided.")
103
103
 
104
- self._text = text
104
+ # Ensure that non-callable inputs are treated as strings
105
+ if not callable(text):
106
+ self._text = str(text) if text is not None else None
107
+ else:
108
+ self._text = text
109
+
105
110
  self._is_dynamic = callable(self._text)
106
111
 
107
112
  if name is None:
@@ -636,5 +641,31 @@ class Messages:
636
641
  if isinstance(index, slice):
637
642
  return Messages(*self._messages[index])
638
643
  return self._messages[index]
644
+
645
+ def __setitem__(self, index: slice, value: 'Messages'):
646
+ if not isinstance(index, slice) or not isinstance(value, Messages):
647
+ raise TypeError("Unsupported operand type(s) for slice assignment")
648
+
649
+ # Basic slice assignment logic.
650
+ # A more robust implementation would handle step and negative indices.
651
+ start, stop, step = index.indices(len(self._messages))
652
+
653
+ if step != 1:
654
+ raise ValueError("Slice assignment with step is not supported.")
655
+
656
+ # Remove old providers from the index
657
+ for i in range(start, stop):
658
+ for provider in self._messages[i].provider():
659
+ self._notify_provider_removed(provider)
660
+
661
+ # Replace the slice in the list
662
+ self._messages[start:stop] = value._messages
663
+
664
+ # Add new providers to the index and set parent
665
+ for msg in value:
666
+ msg._parent_messages = self
667
+ for provider in msg.provider():
668
+ self._notify_provider_added(provider, msg)
669
+
639
670
  def __len__(self) -> int: return len(self._messages)
640
671
  def __iter__(self): return iter(self._messages)
@@ -1217,6 +1217,48 @@ Current time: {Texts(lambda: datetime.now().strftime("%Y-%m-%d %H:%M:%S"))}
1217
1217
  self.assertEqual(len(sliced_single), 1)
1218
1218
  self.assertIs(sliced_single[0], m3)
1219
1219
 
1220
+ async def test_zd_slice_assignment(self):
1221
+ """测试 Messages 对象的切片赋值功能"""
1222
+ # 1. Setup initial Messages objects
1223
+ m1 = SystemMessage("1")
1224
+ m2 = UserMessage("2")
1225
+ m3 = AssistantMessage("3")
1226
+ m4 = UserMessage("4")
1227
+ messages1 = Messages(m1, m2, m3, m4)
1228
+
1229
+ m5 = SystemMessage("5")
1230
+ m6 = UserMessage("6")
1231
+ messages2 = Messages(m5, m6)
1232
+
1233
+ # 2. Perform slice assignment
1234
+ # This should replace elements from index 1 onwards in messages1
1235
+ # with all elements from messages2
1236
+ messages1[1:] = messages2
1237
+
1238
+ # 3. Verify the result
1239
+ self.assertEqual(len(messages1), 3) # Should be m1, m5, m6
1240
+ self.assertIs(messages1[0], m1)
1241
+ self.assertIs(messages1[1], m5)
1242
+ self.assertIs(messages1[2], m6)
1243
+
1244
+ # 4. Test assigning from a slice, with different roles to prevent merging
1245
+ messages3 = Messages(UserMessage("A"), AssistantMessage("B"), UserMessage("C"))
1246
+ messages4 = Messages(SystemMessage("X"), AssistantMessage("Y"))
1247
+
1248
+ self.assertEqual(len(messages3), 3) # Verify length before assignment
1249
+
1250
+ messages3[1:2] = messages4[1:] # Replace AssistantMessage("B") with AssistantMessage("Y")
1251
+
1252
+ # We need to refresh to access .content property correctly
1253
+ await messages3.refresh()
1254
+
1255
+ self.assertEqual(len(messages3), 3)
1256
+ self.assertEqual(messages3[0].content, "A")
1257
+ self.assertEqual(messages3[1].content, "Y")
1258
+ self.assertEqual(messages3[2].content, "C")
1259
+ self.assertIsInstance(messages3[1], AssistantMessage)
1260
+
1261
+
1220
1262
  # ==============================================================================
1221
1263
  # 6. 演示
1222
1264
  # ==============================================================================
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aient
3
- Version: 1.2.7
3
+ Version: 1.2.9
4
4
  Summary: Aient: The Awakening of Agent.
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "aient"
3
- version = "1.2.7"
3
+ version = "1.2.9"
4
4
  description = "Aient: The Awakening of Agent."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes