aient 1.2.23__tar.gz → 1.2.24__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.23 → aient-1.2.24}/PKG-INFO +1 -1
  2. {aient-1.2.23 → aient-1.2.24}/aient/architext/architext/core.py +19 -0
  3. {aient-1.2.23 → aient-1.2.24}/aient/architext/test/test.py +25 -0
  4. {aient-1.2.23 → aient-1.2.24}/aient.egg-info/PKG-INFO +1 -1
  5. {aient-1.2.23 → aient-1.2.24}/pyproject.toml +1 -1
  6. {aient-1.2.23 → aient-1.2.24}/LICENSE +0 -0
  7. {aient-1.2.23 → aient-1.2.24}/README.md +0 -0
  8. {aient-1.2.23 → aient-1.2.24}/aient/__init__.py +0 -0
  9. {aient-1.2.23 → aient-1.2.24}/aient/architext/architext/__init__.py +0 -0
  10. {aient-1.2.23 → aient-1.2.24}/aient/architext/test/openai_client.py +0 -0
  11. {aient-1.2.23 → aient-1.2.24}/aient/architext/test/test_save_load.py +0 -0
  12. {aient-1.2.23 → aient-1.2.24}/aient/core/__init__.py +0 -0
  13. {aient-1.2.23 → aient-1.2.24}/aient/core/log_config.py +0 -0
  14. {aient-1.2.23 → aient-1.2.24}/aient/core/models.py +0 -0
  15. {aient-1.2.23 → aient-1.2.24}/aient/core/request.py +0 -0
  16. {aient-1.2.23 → aient-1.2.24}/aient/core/response.py +0 -0
  17. {aient-1.2.23 → aient-1.2.24}/aient/core/test/test_base_api.py +0 -0
  18. {aient-1.2.23 → aient-1.2.24}/aient/core/test/test_geminimask.py +0 -0
  19. {aient-1.2.23 → aient-1.2.24}/aient/core/test/test_image.py +0 -0
  20. {aient-1.2.23 → aient-1.2.24}/aient/core/test/test_payload.py +0 -0
  21. {aient-1.2.23 → aient-1.2.24}/aient/core/utils.py +0 -0
  22. {aient-1.2.23 → aient-1.2.24}/aient/models/__init__.py +0 -0
  23. {aient-1.2.23 → aient-1.2.24}/aient/models/audio.py +0 -0
  24. {aient-1.2.23 → aient-1.2.24}/aient/models/base.py +0 -0
  25. {aient-1.2.23 → aient-1.2.24}/aient/models/chatgpt.py +0 -0
  26. {aient-1.2.23 → aient-1.2.24}/aient/plugins/__init__.py +0 -0
  27. {aient-1.2.23 → aient-1.2.24}/aient/plugins/arXiv.py +0 -0
  28. {aient-1.2.23 → aient-1.2.24}/aient/plugins/config.py +0 -0
  29. {aient-1.2.23 → aient-1.2.24}/aient/plugins/excute_command.py +0 -0
  30. {aient-1.2.23 → aient-1.2.24}/aient/plugins/get_time.py +0 -0
  31. {aient-1.2.23 → aient-1.2.24}/aient/plugins/image.py +0 -0
  32. {aient-1.2.23 → aient-1.2.24}/aient/plugins/list_directory.py +0 -0
  33. {aient-1.2.23 → aient-1.2.24}/aient/plugins/read_file.py +0 -0
  34. {aient-1.2.23 → aient-1.2.24}/aient/plugins/read_image.py +0 -0
  35. {aient-1.2.23 → aient-1.2.24}/aient/plugins/readonly.py +0 -0
  36. {aient-1.2.23 → aient-1.2.24}/aient/plugins/registry.py +0 -0
  37. {aient-1.2.23 → aient-1.2.24}/aient/plugins/run_python.py +0 -0
  38. {aient-1.2.23 → aient-1.2.24}/aient/plugins/websearch.py +0 -0
  39. {aient-1.2.23 → aient-1.2.24}/aient/plugins/write_file.py +0 -0
  40. {aient-1.2.23 → aient-1.2.24}/aient/utils/__init__.py +0 -0
  41. {aient-1.2.23 → aient-1.2.24}/aient/utils/prompt.py +0 -0
  42. {aient-1.2.23 → aient-1.2.24}/aient/utils/scripts.py +0 -0
  43. {aient-1.2.23 → aient-1.2.24}/aient.egg-info/SOURCES.txt +0 -0
  44. {aient-1.2.23 → aient-1.2.24}/aient.egg-info/dependency_links.txt +0 -0
  45. {aient-1.2.23 → aient-1.2.24}/aient.egg-info/requires.txt +0 -0
  46. {aient-1.2.23 → aient-1.2.24}/aient.egg-info/top_level.txt +0 -0
  47. {aient-1.2.23 → aient-1.2.24}/setup.cfg +0 -0
  48. {aient-1.2.23 → aient-1.2.24}/test/test_Web_crawler.py +0 -0
  49. {aient-1.2.23 → aient-1.2.24}/test/test_ddg_search.py +0 -0
  50. {aient-1.2.23 → aient-1.2.24}/test/test_google_search.py +0 -0
  51. {aient-1.2.23 → aient-1.2.24}/test/test_ollama.py +0 -0
  52. {aient-1.2.23 → aient-1.2.24}/test/test_plugin.py +0 -0
  53. {aient-1.2.23 → aient-1.2.24}/test/test_search.py +0 -0
  54. {aient-1.2.23 → aient-1.2.24}/test/test_url.py +0 -0
  55. {aient-1.2.23 → aient-1.2.24}/test/test_whisper.py +0 -0
  56. {aient-1.2.23 → aient-1.2.24}/test/test_yjh.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aient
3
- Version: 1.2.23
3
+ Version: 1.2.24
4
4
  Summary: Aient: The Awakening of Agent.
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -457,6 +457,15 @@ class Message(ABC):
457
457
  return len(self._items)
458
458
 
459
459
  def __repr__(self): return f"Message(role='{self.role}', items={[i.name for i in self._items]})"
460
+
461
+ def __contains__(self, item: Any) -> bool:
462
+ """Checks if a ContextProvider is in the message."""
463
+ if not isinstance(item, ContextProvider):
464
+ return False
465
+ # The `in` operator on a list checks for equality,
466
+ # and our custom __eq__ on ContextProvider handles the comparison logic.
467
+ return item in self._items
468
+
460
469
  def __bool__(self) -> bool:
461
470
  return bool(self._items)
462
471
  def get(self, key: str, default: Any = None) -> Any:
@@ -717,3 +726,13 @@ class Messages:
717
726
 
718
727
  def __len__(self) -> int: return len(self._messages)
719
728
  def __iter__(self): return iter(self._messages)
729
+
730
+ def __contains__(self, item: Any) -> bool:
731
+ """Checks if a Message or ContextProvider is in the collection."""
732
+ if isinstance(item, Message):
733
+ # Check for object identity
734
+ return any(item is msg for msg in self._messages)
735
+ if isinstance(item, ContextProvider):
736
+ # Check if any message contains the provider
737
+ return any(item in msg for msg in self._messages)
738
+ return False
@@ -1409,6 +1409,31 @@ Files: {Files(visible=True, name="files")}
1409
1409
  # 5. 验证 provider 索引
1410
1410
  self.assertIsNotNone(messages.provider(text_provider.name))
1411
1411
 
1412
+ async def test_zi_provider_in_message_and_messages(self):
1413
+ """测试 `in` 操作符是否能检查 provider 是否存在于 Message 或 Messages 中"""
1414
+ # 1. 准备 providers 和 messages
1415
+ text_hi = Texts("hi")
1416
+ text_hello = Texts("hello")
1417
+ text_world = Texts("world")
1418
+
1419
+ message = UserMessage(text_hello, text_hi)
1420
+ messages_collection = Messages(SystemMessage("System"), message)
1421
+
1422
+ # 2. 测试 `in` Message
1423
+ self.assertTrue(Texts("hi") in UserMessage(Texts("hello"), Texts("hi")))
1424
+ self.assertTrue(text_hi in message)
1425
+ self.assertTrue(text_hello in message)
1426
+ self.assertFalse(text_world in message)
1427
+
1428
+ # 3. 测试 `in` Messages
1429
+ self.assertTrue(text_hi in messages_collection)
1430
+ self.assertTrue(text_hello in messages_collection)
1431
+ self.assertFalse(text_world in messages_collection)
1432
+
1433
+ # 4. 测试一个 Message 对象是否在 Messages 中
1434
+ self.assertTrue(message in messages_collection)
1435
+ self.assertFalse(UserMessage("not in collection") in messages_collection)
1436
+
1412
1437
 
1413
1438
  # ==============================================================================
1414
1439
  # 6. 演示
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aient
3
- Version: 1.2.23
3
+ Version: 1.2.24
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.23"
3
+ version = "1.2.24"
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