MaaFw 2.1.2__py3-none-manylinux2014_x86_64.whl → 2.2.0b1__py3-none-manylinux2014_x86_64.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
1
  Metadata-Version: 2.1
2
2
  Name: MaaFw
3
- Version: 2.1.2
3
+ Version: 2.2.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
@@ -0,0 +1,26 @@
1
+ maa/__init__.py,sha256=rBIC5X_VsfFXOMJRdKjgDyO428XHgeWAT3t6ZYmqO1M,207
2
+ maa/buffer.py,sha256=E0tuasXPm6A_4r22PGSwObgGXb2qCMJrT5yrAvcgk6I,17424
3
+ maa/context.py,sha256=Y71T92tIAGq6x8bJfYX8emUPEmPUA7nhnWgqOHh390E,5722
4
+ maa/controller.py,sha256=VOz4Und15toq6oehHR0BHC10LMhFVqKAcImQNXCqHxQ,22547
5
+ maa/custom_action.py,sha256=pqPjDK7nVkGL8fceJadwb7IkeGjYc2X8RaXZOnVZXQs,2527
6
+ maa/custom_recognition.py,sha256=Y3Asdgb19YZioOVZZVs_hLSW6uBg7WDZDQPR2XfZpFU,3087
7
+ maa/define.py,sha256=bb7zr-VTftpAafBU2Qn1_VlS3pHno73iyHhYPO5VjMw,12196
8
+ maa/job.py,sha256=MUI5T2X9ON9c7Dl6yo_0pp8Ulpn25XOD_uEdGm2k-TA,1231
9
+ maa/library.py,sha256=nDTBUFC6_91gmyy8SfkTTccMZET9XGU8IxvuVUEwQ6E,2099
10
+ maa/notification_handler.py,sha256=KjQlu66fNVwGGli8kuhNdSZPj2vO_oXjaNt_B1i_5wA,5251
11
+ maa/resource.py,sha256=bvS02sCCS9DRw_zJZeyCk8_DrZry6KBlUIvcfpKoUIg,8243
12
+ maa/tasker.py,sha256=0hALFCHKHuOBQMSqyG4BYi1idJLy64UZMpqL4GQVZKs,14929
13
+ maa/toolkit.py,sha256=TlF8MoaGcWLklpISIlQNvc_rpTFBFrpDbLgctfQ_zqo,11325
14
+ maa/bin/libMaaAdbControlUnit.so,sha256=mnZR5ZmqPlzi_EXfdtlBHMuuw3zOHOcAp81SdysuiFI,1617824
15
+ maa/bin/libMaaDbgControlUnit.so,sha256=NfECibnWGo2d7qrkLDKKWijfxAwqfbzSYqWOuZMBSms,582008
16
+ maa/bin/libMaaFramework.so,sha256=1tp2opTswzhXTLSoso5qinkTp-YRmObxSLPxZqbzf0Y,3767912
17
+ maa/bin/libMaaToolkit.so,sha256=1Hdzhy9k3FbXAX-IvaxWb4ctB-paIB6GYQAOxMSIt-Y,1234360
18
+ maa/bin/libMaaUtils.so,sha256=WXR-nAL4F8EhCpTLvpHsvsix2VsPsSzwS3LUlCRGu8w,1000432
19
+ maa/bin/libfastdeploy_ppocr.so,sha256=RV5yGKKcNOCW9ggy1qlL34QeYhfUImcl3jCGn8NHHmU,5732072
20
+ maa/bin/libonnxruntime.so.1.18.0,sha256=P5LxaWa3VnnQSZzjjn5nv1gwOmHFZyqZJPgLKCjXzXU,17559224
21
+ maa/bin/libopencv_world4.so.408,sha256=T1Wgj59iWP4xHoxfFxLL_qCYN_5qRIfGBi2LjA5UqVM,21016672
22
+ MaaFw-2.2.0b1.dist-info/LICENSE.md,sha256=RG51X65V_wNLuyG-RGcLXxFsKyZnlH5wNvK_5mMlOag,7560
23
+ MaaFw-2.2.0b1.dist-info/METADATA,sha256=mRGoIDqTfmh50a4eg-aLQyVWQhPCP0bhTy_h4J1IYXs,10392
24
+ MaaFw-2.2.0b1.dist-info/WHEEL,sha256=LwqtuAbvk_7e4PNI9hjvRWsE_oZinQvDqTWDZzwC49E,106
25
+ MaaFw-2.2.0b1.dist-info/top_level.txt,sha256=G8r2L__aYaMq4S3R70G6NsfEROiVp08kUcWvATzk2J8,4
26
+ MaaFw-2.2.0b1.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (75.2.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-manylinux2014_x86_64
Binary file
Binary file
Binary file
maa/bin/libMaaToolkit.so CHANGED
Binary file
maa/bin/libMaaUtils.so CHANGED
Binary file
Binary file
maa/controller.py CHANGED
@@ -152,6 +152,17 @@ class Controller:
152
152
  ctypes.sizeof(ctypes.c_int32),
153
153
  )
154
154
  )
155
+
156
+ def set_screenshot_use_raw_size(self, enable: bool) -> bool:
157
+ cbool = MaaBool(enable)
158
+ return bool(
159
+ Library.framework.MaaControllerSetOption(
160
+ self._handle,
161
+ MaaOption(MaaCtrlOptionEnum.ScreenshotUseRawSize),
162
+ ctypes.pointer(cbool),
163
+ ctypes.sizeof(MaaBool),
164
+ )
165
+ )
155
166
 
156
167
  ### private ###
157
168
 
@@ -343,7 +354,7 @@ class Win32Controller(Controller):
343
354
 
344
355
  def __init__(
345
356
  self,
346
- hWnd: ctypes.c_void_p,
357
+ hWnd: Optional[ctypes.c_void_p],
347
358
  screencap_method: int = MaaWin32ScreencapMethodEnum.DXGI_DesktopDup,
348
359
  input_method: int = MaaWin32InputMethodEnum.Seize,
349
360
  notification_handler: Optional[NotificationHandler] = None,
maa/define.py CHANGED
@@ -99,6 +99,11 @@ class MaaCtrlOptionEnum:
99
99
  # value: int, eg: 1080; val_size: sizeof(int)
100
100
  ScreenshotTargetShortSide = 2
101
101
 
102
+ # Screenshot use raw size without scaling.
103
+ # Please note that this option may cause incorrect coordinates on user devices with different resolutions if scaling is not performed.
104
+ # value: bool, eg: true; val_size: sizeof(bool)
105
+ ScreenshotUseRawSize = 3
106
+
102
107
  # Dump all screenshots and actions
103
108
  # this option will || with MaaGlobalOptionEnum.Recording
104
109
  # value: bool, eg: true; val_size: sizeof(bool)
@@ -115,6 +120,7 @@ class MaaCtrlOptionEnum:
115
120
  # };
116
121
  MaaInferenceDevice = ctypes.c_int32
117
122
 
123
+
118
124
  class MaaResOptionEnum:
119
125
  Invalid = 0
120
126
 
@@ -330,6 +336,38 @@ class MaaCustomControllerCallbacks(ctypes.Structure):
330
336
  ]
331
337
 
332
338
 
339
+ class Status:
340
+ _status: MaaStatusEnum
341
+
342
+ def __init__(self, status: Union[MaaStatus, MaaStatusEnum, int]):
343
+ if isinstance(status, MaaStatus):
344
+ self._status = MaaStatusEnum(status.value)
345
+ elif isinstance(status, MaaStatusEnum):
346
+ self._status = status
347
+ else:
348
+ self._status = MaaStatusEnum(status)
349
+
350
+ @property
351
+ def done(self) -> bool:
352
+ return self._status in [MaaStatusEnum.succeeded, MaaStatusEnum.failed]
353
+
354
+ @property
355
+ def succeeded(self) -> bool:
356
+ return self._status == MaaStatusEnum.succeeded
357
+
358
+ @property
359
+ def failed(self) -> bool:
360
+ return self._status == MaaStatusEnum.failed
361
+
362
+ @property
363
+ def pending(self) -> bool:
364
+ return self._status == MaaStatusEnum.pending
365
+
366
+ @property
367
+ def running(self) -> bool:
368
+ return self._status == MaaStatusEnum.running
369
+
370
+
333
371
  @dataclass
334
372
  class Rect:
335
373
  x: int = 0
@@ -487,6 +525,7 @@ class TaskDetail:
487
525
  task_id: int
488
526
  entry: str
489
527
  nodes: List[NodeDetail]
528
+ status: Status
490
529
 
491
530
 
492
531
  class LoggingLevelEnum(IntEnum):
maa/job.py CHANGED
@@ -1,62 +1,45 @@
1
- from typing import Union
2
-
3
1
  from .define import *
4
2
 
5
3
 
6
- class Status:
7
- _status: MaaStatusEnum
8
-
9
- def __init__(self, status: Union[MaaStatus, MaaStatusEnum]):
10
- self._status = MaaStatusEnum(status)
11
-
12
- def done(self) -> bool:
13
- return self._status in [MaaStatusEnum.succeeded, MaaStatusEnum.failed]
14
-
15
- def succeeded(self) -> bool:
16
- return self._status == MaaStatusEnum.succeeded
17
-
18
- def failed(self) -> bool:
19
- return self._status == MaaStatusEnum.failed
20
-
21
- def pending(self) -> bool:
22
- return self._status == MaaStatusEnum.pending
23
-
24
- def running(self) -> bool:
25
- return self._status == MaaStatusEnum.running
26
-
27
-
28
4
  class Job:
29
- job_id: MaaId
5
+ _job_id: MaaId
30
6
 
31
7
  def __init__(self, job_id: MaaId, status_func, wait_func):
32
- self.job_id = job_id
8
+ self._job_id = job_id
33
9
  self._status_func = status_func
34
10
  self._wait_func = wait_func
35
11
 
36
- def get_id(self) -> int:
37
- return int(self.job_id)
12
+ @property
13
+ def job_id(self) -> int:
14
+ return int(self._job_id)
38
15
 
39
16
  def wait(self) -> "Job":
40
- self._wait_func(self.job_id)
17
+ self._wait_func(self._job_id)
41
18
  return self
42
19
 
20
+ @property
43
21
  def status(self) -> Status:
44
- return Status(self._status_func(self.job_id))
22
+ return Status(self._status_func(self._job_id))
45
23
 
24
+ @property
46
25
  def done(self) -> bool:
47
- return self.status().done()
26
+ return self.status.done
48
27
 
28
+ @property
49
29
  def succeeded(self) -> bool:
50
- return self.status().succeeded()
30
+ return self.status.succeeded
51
31
 
32
+ @property
52
33
  def failed(self) -> bool:
53
- return self.status().failed()
34
+ return self.status.failed
54
35
 
36
+ @property
55
37
  def pending(self) -> bool:
56
- return self.status().pending()
38
+ return self.status.pending
57
39
 
40
+ @property
58
41
  def running(self) -> bool:
59
- return self.status().running()
42
+ return self.status.running
60
43
 
61
44
 
62
45
  class JobWithResult(Job):
@@ -69,4 +52,4 @@ class JobWithResult(Job):
69
52
  return self
70
53
 
71
54
  def get(self):
72
- return self._get_func(self.job_id)
55
+ return self._get_func(self._job_id)
maa/tasker.py CHANGED
@@ -283,6 +283,7 @@ class Tasker:
283
283
  def get_task_detail(self, task_id: int) -> Optional[TaskDetail]:
284
284
  size = MaaSize()
285
285
  entry = StringBuffer()
286
+ status = MaaStatus()
286
287
  ret = bool(
287
288
  Library.framework.MaaTaskerGetTaskDetail(
288
289
  self._handle,
@@ -290,6 +291,7 @@ class Tasker:
290
291
  entry._handle,
291
292
  None,
292
293
  ctypes.pointer(size),
294
+ ctypes.pointer(status),
293
295
  )
294
296
  )
295
297
  if not ret:
@@ -303,6 +305,7 @@ class Tasker:
303
305
  entry._handle,
304
306
  c_node_id_list,
305
307
  ctypes.pointer(size),
308
+ ctypes.pointer(status),
306
309
  )
307
310
  )
308
311
  if not ret:
@@ -313,7 +316,7 @@ class Tasker:
313
316
  detail = self.get_node_detail(int(c_node_id_list[i]))
314
317
  nodes.append(detail)
315
318
 
316
- return TaskDetail(task_id=task_id, entry=entry.get(), nodes=nodes)
319
+ return TaskDetail(task_id=task_id, entry=entry.get(), nodes=nodes, status=Status(status))
317
320
 
318
321
  _api_properties_initialized: bool = False
319
322
 
@@ -433,6 +436,7 @@ class Tasker:
433
436
  MaaStringBufferHandle,
434
437
  ctypes.POINTER(MaaRecoId),
435
438
  ctypes.POINTER(MaaSize),
439
+ ctypes.POINTER(MaaStatus),
436
440
  ]
437
441
 
438
442
  Library.framework.MaaTaskerGetLatestNode.restype = MaaBool
@@ -1,26 +0,0 @@
1
- maa/__init__.py,sha256=rBIC5X_VsfFXOMJRdKjgDyO428XHgeWAT3t6ZYmqO1M,207
2
- maa/buffer.py,sha256=E0tuasXPm6A_4r22PGSwObgGXb2qCMJrT5yrAvcgk6I,17424
3
- maa/context.py,sha256=Y71T92tIAGq6x8bJfYX8emUPEmPUA7nhnWgqOHh390E,5722
4
- maa/controller.py,sha256=BpAotY8qlxLSKU0ZO249YDhJWU35B5avnwCTE5PxItQ,22160
5
- maa/custom_action.py,sha256=pqPjDK7nVkGL8fceJadwb7IkeGjYc2X8RaXZOnVZXQs,2527
6
- maa/custom_recognition.py,sha256=Y3Asdgb19YZioOVZZVs_hLSW6uBg7WDZDQPR2XfZpFU,3087
7
- maa/define.py,sha256=X0srxfg6eUohfxC3s0pkICTv8B_dB3tbrPAJMmWTX20,11032
8
- maa/job.py,sha256=Vj6q3sFPlmo260mxJWBnPuO2oT2LdZ-92vdDvrqBZYU,1777
9
- maa/library.py,sha256=nDTBUFC6_91gmyy8SfkTTccMZET9XGU8IxvuVUEwQ6E,2099
10
- maa/notification_handler.py,sha256=KjQlu66fNVwGGli8kuhNdSZPj2vO_oXjaNt_B1i_5wA,5251
11
- maa/resource.py,sha256=bvS02sCCS9DRw_zJZeyCk8_DrZry6KBlUIvcfpKoUIg,8243
12
- maa/tasker.py,sha256=6FOzU-PxWSA0dK8vEmiPVaJThvUMwNDi6EC6V-TcQmM,14758
13
- maa/toolkit.py,sha256=TlF8MoaGcWLklpISIlQNvc_rpTFBFrpDbLgctfQ_zqo,11325
14
- maa/bin/libMaaAdbControlUnit.so,sha256=UjEcF_s2R0fuIq7rv_Mt4PK4C0nxI9mwhTp7d8Bcli0,1617824
15
- maa/bin/libMaaDbgControlUnit.so,sha256=oKbBgS-t6CaRK-7gdigA_q7vlZKsNo5hQGMTb2hPas0,582008
16
- maa/bin/libMaaFramework.so,sha256=LjNnPvti5saFLFed9cxz84c7e1EEocffb7-2kUAersE,3763288
17
- maa/bin/libMaaToolkit.so,sha256=v0DugigIHDsrygj9Jou8oRHYVgJg63ujODYvUNQjHyk,1234360
18
- maa/bin/libMaaUtils.so,sha256=GhcmOWfHfQnuxgWTfb6TEBJ0S4qggJPDr8NGhGq2o3w,1000432
19
- maa/bin/libfastdeploy_ppocr.so,sha256=RV5yGKKcNOCW9ggy1qlL34QeYhfUImcl3jCGn8NHHmU,5732072
20
- maa/bin/libonnxruntime.so.1.18.0,sha256=P5LxaWa3VnnQSZzjjn5nv1gwOmHFZyqZJPgLKCjXzXU,17559224
21
- maa/bin/libopencv_world4.so.408,sha256=yNCgbowAYnIi7oQB09_RXiaPJpJSc6XLccykicIkj-E,21016672
22
- MaaFw-2.1.2.dist-info/LICENSE.md,sha256=RG51X65V_wNLuyG-RGcLXxFsKyZnlH5wNvK_5mMlOag,7560
23
- MaaFw-2.1.2.dist-info/METADATA,sha256=qql_PehhQW-B8iTJ6PCykMUQ2duKbvDmpAdF1jVZfBQ,10390
24
- MaaFw-2.1.2.dist-info/WHEEL,sha256=vOgoHePNSz8rCFNEKPV4sbrMTsXICg_WEi6Z4yFb_fw,106
25
- MaaFw-2.1.2.dist-info/top_level.txt,sha256=G8r2L__aYaMq4S3R70G6NsfEROiVp08kUcWvATzk2J8,4
26
- MaaFw-2.1.2.dist-info/RECORD,,
@@ -1,4 +0,0 @@
1
- Wheel-Version: 1.0
2
- Generator: setuptools (75.1.0)
3
- Root-Is-Purelib: true
4
- Tag: py3-none-manylinux2014_x86_64