MaaFw 2.4.2__py3-none-win_amd64.whl → 3.0.0b1__py3-none-win_amd64.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.

Potentially problematic release.


This version of MaaFw might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: MaaFw
3
- Version: 2.4.2
3
+ Version: 3.0.0b1
4
4
  Summary: An automation black-box testing framework based on image recognition
5
5
  Author: MaaXYZ
6
6
  Project-URL: Homepage, https://github.com/MaaXYZ/MaaFramework
@@ -81,7 +81,7 @@ _✨ 基于图像识别的自动化黑盒测试框架 ✨_
81
81
  - [maa-whmx](https://github.com/MAWHA/maa-whmx) 物华弥新 小助手 ![cpp](https://img.shields.io/badge/C%2B%2B-00599C?logo=c%2B%2B&logoColor=white) ![qt](https://img.shields.io/badge/Qt6-41CD52?logo=Qt&logoColor=white)
82
82
  基于全新架构的 物华弥新 小助手。图像技术 + 模拟控制,解放双手!由 MaaFramework 强力驱动!
83
83
 
84
- - [MAA-for-Millennium-Tour](https://github.com/Ostwind23/MAA-for-Millennium-Tour) 千年之旅 小助手 ![Pipeline](https://img.shields.io/badge/Pipeline-%23454545?logo=codecademy&logoColor=%23FFFFFF&color=%23454545) ![python](https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white)
84
+ - [MAA-for-Millennium-Tour](https://github.com/Ostwind23/MAA-for-Millennium-Tour) 千年之旅 小助手 ![Pipeline](https://img.shields.io/badge/Pipeline-%23454545?logo=paddypower&logoColor=%23FFFFFF) ![python](https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white)
85
85
  基于全新架构的 千年之旅 小助手。图像技术 + 模拟控制,解放侍主的大手!由 MaaFramework 强力驱动!
86
86
 
87
87
  - [MFAWPF](https://github.com/SweetSmellFox/MFAWPF) MFA 任务管理器 ![csharp](https://img.shields.io/badge/C%23-239120?logo=csharp&logoColor=white)
@@ -113,6 +113,9 @@ _✨ 基于图像识别的自动化黑盒测试框架 ✨_
113
113
 
114
114
  - [MaaGF2Exilium](https://github.com/DarkLingYun/MaaGF2Exilium) 少女前线2: 追放自动化助手 ![Pipeline](https://img.shields.io/badge/Pipeline-%23454545?logo=paddypower&logoColor=%23FFFFFF)
115
115
  基于全新架构的 少女前线2: 追放自动化助手。图像技术 + 模拟控制,解放双手!由 MaaFramework 强力驱动!
116
+
117
+ - [MaaAshEchoes](https://github.com/moulai/MaaAshEchoes) 白荆回廊 小助手 ![Pipeline](https://img.shields.io/badge/Pipeline-%23454545?logo=paddypower&logoColor=%23FFFFFF)
118
+ 基于全新架构的 白荆回廊 小助手。图像技术 + 模拟控制,解放双手!由 MaaFramework 强力驱动!
116
119
 
117
120
  ## 生态共建
118
121
 
@@ -0,0 +1,28 @@
1
+ maa/__init__.py,sha256=JkhLdjqr1X69SYY2O3qoPhdYImQC_91XS5_eY1vbtEo,230
2
+ maa/buffer.py,sha256=JLxAF8esnAN4SlkZf2OMMlpv0SV3WK7OyMF8w7sTaC8,16617
3
+ maa/context.py,sha256=oKlPInvBKOPKT16qwWcIZKf4hEfFBL6cc_RYfqY5o90,5706
4
+ maa/controller.py,sha256=61R4asxDLChiZBSD1hEdGdbpoyOxHttOeflNuJ7DmqM,22381
5
+ maa/custom_action.py,sha256=V-kJ-5ahcImnzrZBbAH_RJqoiQ7RjBT39ffdSOi9_c4,2495
6
+ maa/custom_recognition.py,sha256=o2k2tM-NstcDpivXPdoritI3laUN1NQl3Yq1M6RkNcE,3055
7
+ maa/define.py,sha256=d86Bu4_M4EAW-O19WLvjN6AC4Y-xpP1Kv-xf45g99Zc,13168
8
+ maa/job.py,sha256=MUI5T2X9ON9c7Dl6yo_0pp8Ulpn25XOD_uEdGm2k-TA,1231
9
+ maa/library.py,sha256=AwdFx_zWHEah81NwOmD-SDzysSuVbsreDLIaxpWsXvY,1267
10
+ maa/notification_handler.py,sha256=1sFukH3R5l9Fp73CP7DV8fv6gTYge_kb6foSDNcNERY,5251
11
+ maa/resource.py,sha256=AdlQHc58bU2AjSx-9k9V_657pIMgaVMXqtURsJEN6Mw,9379
12
+ maa/tasker.py,sha256=whGIavf89NoiPffEoRJk3xtzeW8NUyzMoi6ZIo2d5b8,14409
13
+ maa/toolkit.py,sha256=BE_o8XgznuW1d_7YairYHOrqOp5Ha9GYMcinsYYBgVM,11163
14
+ maa/bin/DirectML.dll,sha256=nJ5tgiVhxsQbkOaZSz6IV88dZtv7HgxMeZx8ibTpLaE,18527776
15
+ maa/bin/MaaAdbControlUnit.dll,sha256=p-z7exZCkk2sGAshQO9zavxc9xEgTsFPtx8bJS48tos,1285632
16
+ maa/bin/MaaDbgControlUnit.dll,sha256=mk2cdlK-7Qb16DIEvGV_DjM3yB7VTt2fZjq-_P1TDWQ,726528
17
+ maa/bin/MaaFramework.dll,sha256=cQEInzD6OW89dob9c_T2tQTiDXLSqhB-whCfTYmjJb0,2511872
18
+ maa/bin/MaaToolkit.dll,sha256=SLVMERke-tSF7tLrn7k76TMnHoNLkWVrvDK-hemZ1Oo,1181184
19
+ maa/bin/MaaUtils.dll,sha256=GwgUIjl39xp13jTgWV2God4Woy7VDBuISrxX1kdgdkY,961024
20
+ maa/bin/MaaWin32ControlUnit.dll,sha256=kypHmGp_K8xaUiIt2wBHuHcuOwsLU3wTSrao504kGWI,1507840
21
+ maa/bin/fastdeploy_ppocr_maa.dll,sha256=CUlHQM5FswM5sA8w0cznIn9FeWUqJrcz5amhFjc4FII,1222656
22
+ maa/bin/onnxruntime_maa.dll,sha256=M8x3OILDxCqf4eA4vGsqCogYiHbTSdznrmaIclO9ekQ,19207680
23
+ maa/bin/opencv_world4_maa.dll,sha256=hOYbTOL__zUlQXasinPjt1cgtMR1OfCGe8vWVSp3LFs,18272768
24
+ MaaFw-3.0.0b1.dist-info/LICENSE.md,sha256=RG51X65V_wNLuyG-RGcLXxFsKyZnlH5wNvK_5mMlOag,7560
25
+ MaaFw-3.0.0b1.dist-info/METADATA,sha256=nVkZZ-coblqh9bvW0PwagSDqH01EY6MoiHW_cJpiA2g,11560
26
+ MaaFw-3.0.0b1.dist-info/WHEEL,sha256=dcBJPHW8irYxudHk63nht8liN9Fc1vE-fGOV_TZdeAU,96
27
+ MaaFw-3.0.0b1.dist-info/top_level.txt,sha256=G8r2L__aYaMq4S3R70G6NsfEROiVp08kUcWvATzk2J8,4
28
+ MaaFw-3.0.0b1.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-win_amd64
Binary file
Binary file
maa/bin/MaaFramework.dll CHANGED
Binary file
maa/bin/MaaToolkit.dll CHANGED
Binary file
maa/bin/MaaUtils.dll CHANGED
Binary file
Binary file
maa/context.py CHANGED
@@ -29,11 +29,11 @@ class Context:
29
29
  def __del__(self):
30
30
  pass
31
31
 
32
- def run_pipeline(
32
+ def run_task(
33
33
  self, entry: str, pipeline_override: Dict = {}
34
34
  ) -> Optional[TaskDetail]:
35
35
  task_id = int(
36
- Library.framework.MaaContextRunPipeline(
36
+ Library.framework.MaaContextRunTask(
37
37
  self._handle, *Context._gen_post_param(entry, pipeline_override)
38
38
  )
39
39
  )
@@ -143,8 +143,8 @@ class Context:
143
143
 
144
144
  Context._api_properties_initialized = True
145
145
 
146
- Library.framework.MaaContextRunPipeline.restype = MaaTaskId
147
- Library.framework.MaaContextRunPipeline.argtypes = [
146
+ Library.framework.MaaContextRunTask.restype = MaaTaskId
147
+ Library.framework.MaaContextRunTask.argtypes = [
148
148
  MaaContextHandle,
149
149
  ctypes.c_char_p,
150
150
  ctypes.c_char_p,
maa/custom_action.py CHANGED
@@ -16,7 +16,7 @@ class CustomAction(ABC):
16
16
  @dataclass
17
17
  class RunArg:
18
18
  task_detail: TaskDetail
19
- current_task_name: str
19
+ node_name: str
20
20
  custom_action_name: str
21
21
  custom_action_param: str
22
22
  reco_detail: RecognitionDetail
@@ -47,7 +47,7 @@ class CustomAction(ABC):
47
47
  def _c_run_agent(
48
48
  c_context: MaaContextHandle,
49
49
  c_task_id: MaaTaskId,
50
- c_current_task_name: ctypes.c_char_p,
50
+ c_node_name: ctypes.c_char_p,
51
51
  c_custom_action_name: ctypes.c_char_p,
52
52
  c_custom_action_param: ctypes.c_char_p,
53
53
  c_reco_id: MaaRecoId,
@@ -74,7 +74,7 @@ class CustomAction(ABC):
74
74
  context,
75
75
  CustomAction.RunArg(
76
76
  task_detail=task_detail,
77
- current_task_name=c_current_task_name.decode(),
77
+ node_name=c_node_name.decode(),
78
78
  custom_action_name=c_custom_action_name.decode(),
79
79
  custom_action_param=c_custom_action_param.decode(),
80
80
  reco_detail=reco_detail,
maa/custom_recognition.py CHANGED
@@ -19,7 +19,7 @@ class CustomRecognition(ABC):
19
19
  @dataclass
20
20
  class AnalyzeArg:
21
21
  task_detail: TaskDetail
22
- current_task_name: str
22
+ node_name: str
23
23
  custom_recognition_name: str
24
24
  custom_recognition_param: str
25
25
  image: numpy.ndarray
@@ -51,7 +51,7 @@ class CustomRecognition(ABC):
51
51
  def _c_analyze_agent(
52
52
  c_context: MaaContextHandle,
53
53
  c_task_id: MaaTaskId,
54
- c_current_task_name: ctypes.c_char_p,
54
+ c_node_name: ctypes.c_char_p,
55
55
  c_custom_reco_name: ctypes.c_char_p,
56
56
  c_custom_reco_param: ctypes.c_char_p,
57
57
  c_image: MaaImageBufferHandle,
@@ -77,7 +77,7 @@ class CustomRecognition(ABC):
77
77
  context,
78
78
  CustomRecognition.AnalyzeArg(
79
79
  task_detail=task_detail,
80
- current_task_name=c_current_task_name.decode(),
80
+ node_name=c_node_name.decode(),
81
81
  custom_recognition_name=c_custom_reco_name.decode(),
82
82
  custom_recognition_param=c_custom_reco_param.decode(),
83
83
  image=image,
maa/define.py CHANGED
@@ -245,7 +245,7 @@ MaaCustomRecognitionCallback = FUNCTYPE(
245
245
  MaaBool, # return value
246
246
  MaaContextHandle, # context
247
247
  MaaTaskId, # task_id
248
- ctypes.c_char_p, # current_task_name
248
+ ctypes.c_char_p, # node_name
249
249
  ctypes.c_char_p, # custom_recognition_name
250
250
  ctypes.c_char_p, # custom_recognition_param
251
251
  MaaImageBufferHandle, # image
@@ -259,7 +259,7 @@ MaaCustomActionCallback = FUNCTYPE(
259
259
  MaaBool, # return value
260
260
  MaaContextHandle, # context
261
261
  MaaTaskId, # task_id
262
- ctypes.c_char_p, # current_task_name
262
+ ctypes.c_char_p, # node_name
263
263
  ctypes.c_char_p, # custom_action_name
264
264
  ctypes.c_char_p, #
265
265
  MaaRecoId, # reco_id
@@ -372,18 +372,23 @@ class Status:
372
372
  else:
373
373
  self._status = MaaStatusEnum(status)
374
374
 
375
+ @property
375
376
  def done(self) -> bool:
376
377
  return self._status in [MaaStatusEnum.succeeded, MaaStatusEnum.failed]
377
378
 
379
+ @property
378
380
  def succeeded(self) -> bool:
379
381
  return self._status == MaaStatusEnum.succeeded
380
382
 
383
+ @property
381
384
  def failed(self) -> bool:
382
385
  return self._status == MaaStatusEnum.failed
383
386
 
387
+ @property
384
388
  def pending(self) -> bool:
385
389
  return self._status == MaaStatusEnum.pending
386
390
 
391
+ @property
387
392
  def running(self) -> bool:
388
393
  return self._status == MaaStatusEnum.running
389
394
 
maa/job.py CHANGED
@@ -9,6 +9,7 @@ class Job:
9
9
  self._status_func = status_func
10
10
  self._wait_func = wait_func
11
11
 
12
+ @property
12
13
  def job_id(self) -> int:
13
14
  return int(self._job_id)
14
15
 
@@ -16,23 +17,29 @@ class Job:
16
17
  self._wait_func(self._job_id)
17
18
  return self
18
19
 
20
+ @property
19
21
  def status(self) -> Status:
20
22
  return Status(self._status_func(self._job_id))
21
23
 
24
+ @property
22
25
  def done(self) -> bool:
23
- return self.status().done()
26
+ return self.status.done
24
27
 
28
+ @property
25
29
  def succeeded(self) -> bool:
26
- return self.status().succeeded()
30
+ return self.status.succeeded
27
31
 
32
+ @property
28
33
  def failed(self) -> bool:
29
- return self.status().failed()
34
+ return self.status.failed
30
35
 
36
+ @property
31
37
  def pending(self) -> bool:
32
- return self.status().pending()
38
+ return self.status.pending
33
39
 
40
+ @property
34
41
  def running(self) -> bool:
35
- return self.status().running()
42
+ return self.status.running
36
43
 
37
44
 
38
45
  class JobWithResult(Job):
@@ -59,34 +59,34 @@ class NotificationHandler(ABC):
59
59
  pass
60
60
 
61
61
  @dataclass
62
- class TaskNextListDetail:
62
+ class NodeNextListDetail:
63
63
  task_id: int
64
64
  name: str
65
65
  next_list: list[str]
66
66
 
67
- def on_task_next_list(
68
- self, noti_type: NotificationType, detail: TaskNextListDetail
67
+ def on_node_next_list(
68
+ self, noti_type: NotificationType, detail: NodeNextListDetail
69
69
  ):
70
70
  pass
71
71
 
72
72
  @dataclass
73
- class TaskRecognitionDetail:
73
+ class NodeRecognitionDetail:
74
74
  task_id: int
75
75
  reco_id: int
76
76
  name: str
77
77
 
78
- def on_task_recognition(
79
- self, noti_type: NotificationType, detail: TaskRecognitionDetail
78
+ def on_node_recognition(
79
+ self, noti_type: NotificationType, detail: NodeRecognitionDetail
80
80
  ):
81
81
  pass
82
82
 
83
83
  @dataclass
84
- class TaskActionDetail:
84
+ class NodeActionDetail:
85
85
  task_id: int
86
86
  node_id: int
87
87
  name: str
88
88
 
89
- def on_task_action(self, noti_type: NotificationType, detail: TaskActionDetail):
89
+ def on_node_action(self, noti_type: NotificationType, detail: NodeActionDetail):
90
90
  pass
91
91
 
92
92
  def on_unknown_notification(self, msg: str, details: dict):
@@ -121,29 +121,29 @@ class NotificationHandler(ABC):
121
121
  )
122
122
  self.on_tasker_task(noti_type, detail)
123
123
 
124
- elif msg.startswith("Task.NextList"):
125
- detail = self.TaskNextListDetail(
124
+ elif msg.startswith("Node.NextList"):
125
+ detail = self.NodeNextListDetail(
126
126
  task_id=details["task_id"],
127
127
  name=details["name"],
128
128
  next_list=details["list"],
129
129
  )
130
- self.on_task_next_list(noti_type, detail)
130
+ self.on_node_next_list(noti_type, detail)
131
131
 
132
- elif msg.startswith("Task.Recognition"):
133
- detail = self.TaskRecognitionDetail(
132
+ elif msg.startswith("Node.Recognition"):
133
+ detail = self.NodeRecognitionDetail(
134
134
  task_id=details["task_id"],
135
135
  reco_id=details["reco_id"],
136
136
  name=details["name"],
137
137
  )
138
- self.on_task_recognition(noti_type, detail)
138
+ self.on_node_recognition(noti_type, detail)
139
139
 
140
- elif msg.startswith("Task.Action"):
141
- detail = self.TaskActionDetail(
140
+ elif msg.startswith("Node.Action"):
141
+ detail = self.NodeActionDetail(
142
142
  task_id=details["task_id"],
143
143
  node_id=details["node_id"],
144
144
  name=details["name"],
145
145
  )
146
- self.on_task_action(noti_type, detail)
146
+ self.on_node_action(noti_type, detail)
147
147
 
148
148
  else:
149
149
  self.on_unknown_notification(msg, details)
maa/resource.py CHANGED
@@ -43,8 +43,10 @@ class Resource:
43
43
  if self._handle and self._own:
44
44
  Library.framework.MaaResourceDestroy(self._handle)
45
45
 
46
- def post_path(self, path: Union[pathlib.Path, str]) -> Job:
47
- resid = Library.framework.MaaResourcePostPath(self._handle, str(path).encode())
46
+ def post_bundle(self, path: Union[pathlib.Path, str]) -> Job:
47
+ resid = Library.framework.MaaResourcePostBundle(
48
+ self._handle, str(path).encode()
49
+ )
48
50
  return Job(resid, self._status, self._wait)
49
51
 
50
52
  @property
@@ -212,8 +214,8 @@ class Resource:
212
214
  Library.framework.MaaResourceDestroy.restype = None
213
215
  Library.framework.MaaResourceDestroy.argtypes = [MaaResourceHandle]
214
216
 
215
- Library.framework.MaaResourcePostPath.restype = MaaResId
216
- Library.framework.MaaResourcePostPath.argtypes = [
217
+ Library.framework.MaaResourcePostBundle.restype = MaaResId
218
+ Library.framework.MaaResourcePostBundle.argtypes = [
217
219
  MaaResourceHandle,
218
220
  ctypes.c_char_p,
219
221
  ]
maa/tasker.py CHANGED
@@ -74,8 +74,8 @@ class Tasker:
74
74
  def inited(self) -> bool:
75
75
  return bool(Library.framework.MaaTaskerInited(self._handle))
76
76
 
77
- def post_pipeline(self, entry: str, pipeline_override: Dict = {}) -> JobWithResult:
78
- taskid = Library.framework.MaaTaskerPostPipeline(
77
+ def post_task(self, entry: str, pipeline_override: Dict = {}) -> JobWithResult:
78
+ taskid = Library.framework.MaaTaskerPostTask(
79
79
  self._handle,
80
80
  *Tasker._gen_post_param(entry, pipeline_override),
81
81
  )
@@ -363,8 +363,8 @@ class Tasker:
363
363
  Library.framework.MaaTaskerInited.restype = MaaBool
364
364
  Library.framework.MaaTaskerInited.argtypes = [MaaTaskerHandle]
365
365
 
366
- Library.framework.MaaTaskerPostPipeline.restype = MaaId
367
- Library.framework.MaaTaskerPostPipeline.argtypes = [
366
+ Library.framework.MaaTaskerPostTask.restype = MaaId
367
+ Library.framework.MaaTaskerPostTask.argtypes = [
368
368
  MaaTaskerHandle,
369
369
  ctypes.c_char_p,
370
370
  ctypes.c_char_p,
@@ -1,28 +0,0 @@
1
- maa/__init__.py,sha256=JkhLdjqr1X69SYY2O3qoPhdYImQC_91XS5_eY1vbtEo,230
2
- maa/buffer.py,sha256=JLxAF8esnAN4SlkZf2OMMlpv0SV3WK7OyMF8w7sTaC8,16617
3
- maa/context.py,sha256=Y71T92tIAGq6x8bJfYX8emUPEmPUA7nhnWgqOHh390E,5722
4
- maa/controller.py,sha256=61R4asxDLChiZBSD1hEdGdbpoyOxHttOeflNuJ7DmqM,22381
5
- maa/custom_action.py,sha256=pqPjDK7nVkGL8fceJadwb7IkeGjYc2X8RaXZOnVZXQs,2527
6
- maa/custom_recognition.py,sha256=Y3Asdgb19YZioOVZZVs_hLSW6uBg7WDZDQPR2XfZpFU,3087
7
- maa/define.py,sha256=uvqM04p6NLfju1Zz-EMR-8Af8MZGpEImMAt3QdcYvIA,13114
8
- maa/job.py,sha256=jXGQ4YV_G8sAi-B7OmUrbPCEIf4xZjWqCSr36LT6Qt0,1153
9
- maa/library.py,sha256=AwdFx_zWHEah81NwOmD-SDzysSuVbsreDLIaxpWsXvY,1267
10
- maa/notification_handler.py,sha256=KjQlu66fNVwGGli8kuhNdSZPj2vO_oXjaNt_B1i_5wA,5251
11
- maa/resource.py,sha256=TAULVwajpPThbLreB0JbhMWTv82r8Y3fFLM2b2VC91Y,9349
12
- maa/tasker.py,sha256=tYD-YvqRPwMzt-h8UToJ01CsN4mO2mJHEnjsj5tTkSU,14425
13
- maa/toolkit.py,sha256=BE_o8XgznuW1d_7YairYHOrqOp5Ha9GYMcinsYYBgVM,11163
14
- maa/bin/DirectML.dll,sha256=nJ5tgiVhxsQbkOaZSz6IV88dZtv7HgxMeZx8ibTpLaE,18527776
15
- maa/bin/MaaAdbControlUnit.dll,sha256=IvkBu7Ibh0Py1H8I8LVUFNIU3NC3EYc9cIG_0RcgRYE,739840
16
- maa/bin/MaaDbgControlUnit.dll,sha256=-h0NvpQMkPet-k_1sylPadEKmRZdTkvzYcJVRLlxbFY,390144
17
- maa/bin/MaaFramework.dll,sha256=Sb1Fo0Y2-cKKq8c-hv6pcaAghlua7MJ1GzrV_4nz2wU,1527808
18
- maa/bin/MaaToolkit.dll,sha256=afO4V-Agzbp4awEIf36ymCnnulukkLFS6_2m36qQjmo,668160
19
- maa/bin/MaaUtils.dll,sha256=1zHBiiz3P9xAg0Pw5l-nhev6I42qvzMwNtVReyB91bE,538624
20
- maa/bin/MaaWin32ControlUnit.dll,sha256=hsrm9t2q5jOY9JEWUsgbzlyzICVNq0HF20v0abdgz-M,325632
21
- maa/bin/fastdeploy_ppocr_maa.dll,sha256=CUlHQM5FswM5sA8w0cznIn9FeWUqJrcz5amhFjc4FII,1222656
22
- maa/bin/onnxruntime_maa.dll,sha256=M8x3OILDxCqf4eA4vGsqCogYiHbTSdznrmaIclO9ekQ,19207680
23
- maa/bin/opencv_world4_maa.dll,sha256=hOYbTOL__zUlQXasinPjt1cgtMR1OfCGe8vWVSp3LFs,18272768
24
- MaaFw-2.4.2.dist-info/LICENSE.md,sha256=RG51X65V_wNLuyG-RGcLXxFsKyZnlH5wNvK_5mMlOag,7560
25
- MaaFw-2.4.2.dist-info/METADATA,sha256=_aM1beYh6fwWD0ZYfAiCaoVa81mo6GWPSbUYaTeiKFg,11267
26
- MaaFw-2.4.2.dist-info/WHEEL,sha256=7fwWHnUhFh8w_0TvE3v3Cyq6xlqIbZ7a_Y5-lVCtqvs,96
27
- MaaFw-2.4.2.dist-info/top_level.txt,sha256=G8r2L__aYaMq4S3R70G6NsfEROiVp08kUcWvATzk2J8,4
28
- MaaFw-2.4.2.dist-info/RECORD,,