aient 1.2.6__py3-none-any.whl → 1.2.7__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.
@@ -632,6 +632,9 @@ class Messages:
632
632
  logging.error(f"Could not deserialize file {file_path}: {e}")
633
633
  return cls()
634
634
 
635
- def __getitem__(self, index: int) -> Message: return self._messages[index]
635
+ def __getitem__(self, index: Union[int, slice]) -> Union[Message, 'Messages']:
636
+ if isinstance(index, slice):
637
+ return Messages(*self._messages[index])
638
+ return self._messages[index]
636
639
  def __len__(self) -> int: return len(self._messages)
637
640
  def __iter__(self): return iter(self._messages)
@@ -1182,6 +1182,41 @@ Current time: {Texts(lambda: datetime.now().strftime("%Y-%m-%d %H:%M:%S"))}
1182
1182
  non_existent_provider = message.provider("non_existent")
1183
1183
  self.assertIsNone(non_existent_provider)
1184
1184
 
1185
+ async def test_zc_slicing_support(self):
1186
+ """测试 Messages 对象是否支持切片操作"""
1187
+ m1 = SystemMessage("1")
1188
+ m2 = UserMessage("2")
1189
+ m3 = AssistantMessage("3")
1190
+ m4 = UserMessage("4")
1191
+ messages = Messages(m1, m2, m3, m4)
1192
+
1193
+ # 1. Test basic slicing
1194
+ sliced_messages = messages[1:3]
1195
+ self.assertIsInstance(sliced_messages, Messages)
1196
+ self.assertEqual(len(sliced_messages), 2)
1197
+ self.assertIs(sliced_messages[0], m2)
1198
+ self.assertIs(sliced_messages[1], m3)
1199
+
1200
+ # 2. Test slicing with open end
1201
+ sliced_messages_open = messages[2:]
1202
+ self.assertIsInstance(sliced_messages_open, Messages)
1203
+ self.assertEqual(len(sliced_messages_open), 2)
1204
+ self.assertIs(sliced_messages_open[0], m3)
1205
+ self.assertIs(sliced_messages_open[1], m4)
1206
+
1207
+ # 3. Test slicing with open start
1208
+ sliced_messages_start = messages[:2]
1209
+ self.assertIsInstance(sliced_messages_start, Messages)
1210
+ self.assertEqual(len(sliced_messages_start), 2)
1211
+ self.assertIs(sliced_messages_start[0], m1)
1212
+ self.assertIs(sliced_messages_start[1], m2)
1213
+
1214
+ # 4. Test slicing a single element
1215
+ sliced_single = messages[2:3]
1216
+ self.assertIsInstance(sliced_single, Messages)
1217
+ self.assertEqual(len(sliced_single), 1)
1218
+ self.assertIs(sliced_single[0], m3)
1219
+
1185
1220
  # ==============================================================================
1186
1221
  # 6. 演示
1187
1222
  # ==============================================================================
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aient
3
- Version: 1.2.6
3
+ Version: 1.2.7
4
4
  Summary: Aient: The Awakening of Agent.
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -1,8 +1,8 @@
1
1
  aient/__init__.py,sha256=SRfF7oDVlOOAi6nGKiJIUK6B_arqYLO9iSMp-2IZZps,21
2
2
  aient/architext/architext/__init__.py,sha256=79Ih1151rfcqZdr7F8HSZSTs_iT2SKd1xCkehMsXeXs,19
3
- aient/architext/architext/core.py,sha256=A1ZeZSJwcdl-svYA12uD2qSlU-wfNTVWvpSg8AF8_Gk,26015
3
+ aient/architext/architext/core.py,sha256=xYGi5UXUuuHL3DVkvSWNo9g8OZ6gR3yuc_6uBquxRT8,26145
4
4
  aient/architext/test/openai_client.py,sha256=Dqtbmubv6vwF8uBqcayG0kbsiO65of7sgU2-DRBi-UM,4590
5
- aient/architext/test/test.py,sha256=trVHo2we0W8RN-0QNvP3sJ3yUpe08-34Ae_ZVNZJHdE,56378
5
+ aient/architext/test/test.py,sha256=ny94SceUuYU7CguxSMdO1i8L9zrV07tCoPFlPwZ105k,57772
6
6
  aient/architext/test/test_save_load.py,sha256=o8DqH6gDYZkFkQy-a7blqLtJTRj5e4a-Lil48pJ0V3g,3260
7
7
  aient/core/__init__.py,sha256=NxjebTlku35S4Dzr16rdSqSTWUvvwEeACe8KvHJnjPg,34
8
8
  aient/core/log_config.py,sha256=kz2_yJv1p-o3lUQOwA3qh-LSc3wMHv13iCQclw44W9c,274
@@ -35,8 +35,8 @@ aient/plugins/write_file.py,sha256=Jt8fOEwqhYiSWpCbwfAr1xoi_BmFnx3076GMhuL06uI,3
35
35
  aient/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
36
  aient/utils/prompt.py,sha256=UcSzKkFE4-h_1b6NofI6xgk3GoleqALRKY8VBaXLjmI,11311
37
37
  aient/utils/scripts.py,sha256=VqtK4RFEx7KxkmcqG3lFDS1DxoNlFFGErEjopVcc8IE,40974
38
- aient-1.2.6.dist-info/licenses/LICENSE,sha256=XNdbcWldt0yaNXXWB_Bakoqnxb3OVhUft4MgMA_71ds,1051
39
- aient-1.2.6.dist-info/METADATA,sha256=aKQPqRvoFl1kd5GXFxOziGdeRhNAZDL8ksFspWdljoo,4841
40
- aient-1.2.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
41
- aient-1.2.6.dist-info/top_level.txt,sha256=3oXzrP5sAVvyyqabpeq8A2_vfMtY554r4bVE-OHBrZk,6
42
- aient-1.2.6.dist-info/RECORD,,
38
+ aient-1.2.7.dist-info/licenses/LICENSE,sha256=XNdbcWldt0yaNXXWB_Bakoqnxb3OVhUft4MgMA_71ds,1051
39
+ aient-1.2.7.dist-info/METADATA,sha256=OJpx3PePcfKrK0SCPxE7BKMYnGtbs6yvllAKWEuZwzI,4841
40
+ aient-1.2.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
41
+ aient-1.2.7.dist-info/top_level.txt,sha256=3oXzrP5sAVvyyqabpeq8A2_vfMtY554r4bVE-OHBrZk,6
42
+ aient-1.2.7.dist-info/RECORD,,
File without changes