ok-script 2.0.0b5__tar.gz → 2.0.0b6__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 (353) hide show
  1. {ok_script-2.0.0b5/ok_script.egg-info → ok_script-2.0.0b6}/PKG-INFO +2 -2
  2. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/MainWindow.py +9 -5
  3. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/about/AboutTab.py +4 -2
  4. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/about/UpdateCard.py +4 -3
  5. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/web/app.py +4 -2
  6. {ok_script-2.0.0b5 → ok_script-2.0.0b6/ok_script.egg-info}/PKG-INFO +2 -2
  7. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok_script.egg-info/requires.txt +1 -1
  8. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/pyproject.toml +1 -1
  9. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_pyappify_startup_update.py +34 -1
  10. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_web_ui_pages.py +3 -2
  11. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/LICENSE.txt +0 -0
  12. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/MANIFEST.in +0 -0
  13. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/README.md +0 -0
  14. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/diagnostics/qq_trace.py +0 -0
  15. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/__init__.py +0 -0
  16. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/__main__.py +0 -0
  17. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/alas/__init__.py +0 -0
  18. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/alas/emulator_base.py +0 -0
  19. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/alas/emulator_windows.py +0 -0
  20. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/alas/platform_windows.py +0 -0
  21. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/alas/utils.py +0 -0
  22. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/capture/__init__.py +0 -0
  23. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/capture/adb/__init__.py +0 -0
  24. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/capture/adb/deep.py +0 -0
  25. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/capture/adb/minitouch.py +0 -0
  26. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/capture/adb/nemu_ipc.py +0 -0
  27. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/capture/adb/nemu_utils.py +0 -0
  28. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/capture/adb/pool.py +0 -0
  29. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/capture/adb/timer.py +0 -0
  30. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/capture/adb/util.py +0 -0
  31. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/capture/windows/__init__.py +0 -0
  32. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/capture/windows/d3d11.py +0 -0
  33. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/capture/windows/dump.py +0 -0
  34. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/cli.py +0 -0
  35. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/core/__init__.py +0 -0
  36. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/core/config_schema.py +0 -0
  37. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/core/downloads.py +0 -0
  38. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/core/events.py +0 -0
  39. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/core/icons.py +0 -0
  40. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/core/notifications.py +0 -0
  41. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/core/screenshot.py +0 -0
  42. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/core/script_editing.py +0 -0
  43. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/core/script_packager.py +0 -0
  44. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/core/script_templates.py +0 -0
  45. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/core/start_controller.py +0 -0
  46. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/core/task_manager.py +0 -0
  47. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/core/template_store.py +0 -0
  48. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/core/translation.py +0 -0
  49. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/core/ui_config.py +0 -0
  50. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/DeviceManager.py +0 -0
  51. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/__init__.py +0 -0
  52. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/capture.py +0 -0
  53. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/capture_methods/__init__.py +0 -0
  54. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/capture_methods/adb.py +0 -0
  55. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/capture_methods/base.py +0 -0
  56. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/capture_methods/bitblt.py +0 -0
  57. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/capture_methods/bitblt_utils.py +0 -0
  58. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/capture_methods/browser.py +0 -0
  59. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/capture_methods/desktop_duplication.py +0 -0
  60. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/capture_methods/hwnd_window.py +0 -0
  61. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/capture_methods/image.py +0 -0
  62. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/capture_methods/nemu_ipc.py +0 -0
  63. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/capture_methods/types.py +0 -0
  64. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/capture_methods/update.py +0 -0
  65. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/capture_methods/windows_graphics.py +0 -0
  66. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/interaction.py +0 -0
  67. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/interaction_methods/__init__.py +0 -0
  68. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/interaction_methods/adb.py +0 -0
  69. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/interaction_methods/base.py +0 -0
  70. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/interaction_methods/browser.py +0 -0
  71. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/interaction_methods/do_nothing.py +0 -0
  72. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/interaction_methods/foreground_post_message.py +0 -0
  73. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/interaction_methods/genshin.py +0 -0
  74. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/interaction_methods/keys.py +0 -0
  75. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/interaction_methods/post_message.py +0 -0
  76. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/interaction_methods/pydirect.py +0 -0
  77. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/interaction_methods/pynput.py +0 -0
  78. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/interaction_methods/swipe.py +0 -0
  79. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/device/intercation.py +0 -0
  80. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/feature/Box.py +0 -0
  81. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/feature/Feature.py +0 -0
  82. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/feature/FeatureSet.py +0 -0
  83. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/feature/__init__.py +0 -0
  84. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/gui/__init__.py +0 -0
  85. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/gui/util/pyappify_startup.py +0 -0
  86. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/notification/__init__.py +0 -0
  87. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/notification/manager.py +0 -0
  88. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/notification/messenger_images.py +0 -0
  89. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/notification/pipeline.py +0 -0
  90. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/notification/ppocr.py +0 -0
  91. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/notification/providers.py +0 -0
  92. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/notification/system.py +0 -0
  93. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/notification/windows_messenger.py +0 -0
  94. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ocr/__init__.py +0 -0
  95. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ocr/download_paddle_model.py +0 -0
  96. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/Windows/Foundation/Collections.py +0 -0
  97. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/Windows/Foundation/__init__.py +0 -0
  98. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/Windows/Globalization/__init__.py +0 -0
  99. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/Windows/Graphics/Capture/__init__.py +0 -0
  100. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/Windows/Graphics/DirectX/Direct3D11/__init__.py +0 -0
  101. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/Windows/Graphics/DirectX/__init__.py +0 -0
  102. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/Windows/Graphics/Imaging/__init__.py +0 -0
  103. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/Windows/Graphics/__init__.py +0 -0
  104. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/Windows/Media/Ocr/__init__.py +0 -0
  105. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/Windows/Media/__init__.py +0 -0
  106. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/Windows/Security/Cryptography/__init__.py +0 -0
  107. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/Windows/Security/__init__.py +0 -0
  108. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/Windows/Storage/Streams/__init__.py +0 -0
  109. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/Windows/Storage/__init__.py +0 -0
  110. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/Windows/UI/ViewManagement/__init__.py +0 -0
  111. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/Windows/UI/__init__.py +0 -0
  112. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/Windows/__init__.py +0 -0
  113. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/__init__.py +0 -0
  114. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/delegate.py +0 -0
  115. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/export.py +0 -0
  116. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/idldsl.py +0 -0
  117. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/inspectable.py +0 -0
  118. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/roapi.py +0 -0
  119. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/types.py +0 -0
  120. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/rotypes/winstring.py +0 -0
  121. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/task/DiagnosisTask.py +0 -0
  122. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/task/TaskExecutor.py +0 -0
  123. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/task/__init__.py +0 -0
  124. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/task/exceptions.py +0 -0
  125. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/task/task.py +0 -0
  126. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/task/web.py +0 -0
  127. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/test/OKTestRunner.py +0 -0
  128. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/test/RunTests.py +0 -0
  129. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/test/TaskTestCase.py +0 -0
  130. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/test/__init__.py +0 -0
  131. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/third_party/__init__.py +0 -0
  132. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/third_party/paperclip.py +0 -0
  133. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/__init__.py +0 -0
  134. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/overlay/__init__.py +0 -0
  135. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/overlay/win32_gdi.py +0 -0
  136. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/Communicate.py +0 -0
  137. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/MessageWindow.py +0 -0
  138. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/StartController.py +0 -0
  139. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/TabTitles.py +0 -0
  140. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/__init__.py +0 -0
  141. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/about/HttpTextEdit.py +0 -0
  142. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/about/LinksBar.py +0 -0
  143. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/about/ProjectCard.py +0 -0
  144. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/about/VersionCard.py +0 -0
  145. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/about/__init__.py +0 -0
  146. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/common/OKIcon.py +0 -0
  147. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/common/__init__.py +0 -0
  148. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/common/accent_color.py +0 -0
  149. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/common/config.py +0 -0
  150. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/common/design_system.py +0 -0
  151. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/common/icons.py +0 -0
  152. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/common/style_sheet.py +0 -0
  153. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/debug/DebugTab.py +0 -0
  154. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/debug/OverlayWidget.py +0 -0
  155. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/debug/RunCodeTab.py +0 -0
  156. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/debug/Screenshot.py +0 -0
  157. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/debug/__init__.py +0 -0
  158. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/events.py +0 -0
  159. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/i18n/GettextTranslator.py +0 -0
  160. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/i18n/__init__.py +0 -0
  161. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/i18n/en_US.qm +0 -0
  162. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/i18n/en_US.ts +0 -0
  163. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/i18n/es_ES.qm +0 -0
  164. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/i18n/es_ES.ts +0 -0
  165. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/i18n/ja_JP.qm +0 -0
  166. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/i18n/ja_JP.ts +0 -0
  167. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/i18n/ko_KR.qm +0 -0
  168. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/i18n/ko_KR.ts +0 -0
  169. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/i18n/path.py +0 -0
  170. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/i18n/update.py +0 -0
  171. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/i18n/zh_CN.qm +0 -0
  172. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/i18n/zh_CN.ts +0 -0
  173. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/i18n/zh_TW.qm +0 -0
  174. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/i18n/zh_TW.ts +0 -0
  175. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/overlay/OverlayWindow.py +0 -0
  176. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/overlay/__init__.py +0 -0
  177. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/qss/__init__.py +0 -0
  178. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/qss/dark/card.qss +0 -0
  179. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/qss/dark/discord.svg +0 -0
  180. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/qss/dark/heart.svg +0 -0
  181. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/qss/dark/message_window.qss +0 -0
  182. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/qss/dark/setting_interface.qss +0 -0
  183. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/qss/dark/status_bar.qss +0 -0
  184. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/qss/dark/stop.svg +0 -0
  185. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/qss/dark/tab.qss +0 -0
  186. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/qss/light/card.qss +0 -0
  187. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/qss/light/discord.svg +0 -0
  188. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/qss/light/heart.svg +0 -0
  189. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/qss/light/message_window.qss +0 -0
  190. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/qss/light/setting_interface.qss +0 -0
  191. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/qss/light/status_bar.qss +0 -0
  192. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/qss/light/stop.svg +0 -0
  193. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/qss/light/tab.qss +0 -0
  194. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/qt.qrc +0 -0
  195. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/resources.py +0 -0
  196. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/settings/GlobalConfigCard.py +0 -0
  197. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/settings/GlobalConfigTab.py +0 -0
  198. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/settings/SettingTab.py +0 -0
  199. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/settings/__init__.py +0 -0
  200. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/start/LogWindow.py +0 -0
  201. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/start/SelectCaptureListView.py +0 -0
  202. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/start/SelectInteractionListView.py +0 -0
  203. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/start/StartCard.py +0 -0
  204. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/start/StartTab.py +0 -0
  205. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/start/__init__.py +0 -0
  206. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/ConfigCard.py +0 -0
  207. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/ConfigItemFactory.py +0 -0
  208. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/ConfigLabelAndWidget.py +0 -0
  209. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/EditTaskTab.py +0 -0
  210. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/LabelAndButtons.py +0 -0
  211. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/LabelAndDoubleSpinBox.py +0 -0
  212. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/LabelAndDropDown.py +0 -0
  213. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/LabelAndFileSelector.py +0 -0
  214. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/LabelAndGlobal.py +0 -0
  215. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/LabelAndLineEdit.py +0 -0
  216. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/LabelAndList.py +0 -0
  217. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/LabelAndMultiSelection.py +0 -0
  218. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/LabelAndSpinBox.py +0 -0
  219. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/LabelAndSwitchButton.py +0 -0
  220. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/LabelAndTextEdit.py +0 -0
  221. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/LabelAndWidget.py +0 -0
  222. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/MarkUpWindow.py +0 -0
  223. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/ModifyListDialog.py +0 -0
  224. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/ModifyListItem.py +0 -0
  225. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/OneTimeTaskTab.py +0 -0
  226. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/PythonHighlighter.py +0 -0
  227. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/RecordScript.py +0 -0
  228. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/ScheduleTaskTab.py +0 -0
  229. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/ScriptPackager.py +0 -0
  230. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/StartButton.py +0 -0
  231. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/TaskCard.py +0 -0
  232. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/TaskManger.py +0 -0
  233. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/TaskOpButton.py +0 -0
  234. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/TaskTab.py +0 -0
  235. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/TemplateFactory.py +0 -0
  236. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/TemplateTab.py +0 -0
  237. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/TooltipTableWidget.py +0 -0
  238. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/TriggerTaskTab.py +0 -0
  239. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/tasks/__init__.py +0 -0
  240. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/util/Alert.py +0 -0
  241. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/util/InitWorker.py +0 -0
  242. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/util/__init__.py +0 -0
  243. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/util/app.py +0 -0
  244. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/util/download.py +0 -0
  245. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/util/pip_util.py +0 -0
  246. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/util/pyappify_startup.py +0 -0
  247. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/util/touch_scroll.py +0 -0
  248. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/util/windows_thumbnail.py +0 -0
  249. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/widget/BaseLoading.py +0 -0
  250. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/widget/BaseWindow.py +0 -0
  251. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/widget/Card.py +0 -0
  252. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/widget/CustomTab.py +0 -0
  253. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/widget/EmptyCard.py +0 -0
  254. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/widget/ExpandCardLayout.py +0 -0
  255. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/widget/FlowLayout.py +0 -0
  256. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/widget/FramelessDialog.py +0 -0
  257. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/widget/ImageWidget.py +0 -0
  258. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/widget/ListTableWidgetItem.py +0 -0
  259. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/widget/NumericTableWidgetItem.py +0 -0
  260. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/widget/OkCompactSpinBox.py +0 -0
  261. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/widget/SortingTableWidgetItem.py +0 -0
  262. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/widget/StartLoadingDialog.py +0 -0
  263. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/widget/StatusBar.py +0 -0
  264. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/widget/Tab.py +0 -0
  265. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/widget/TabWidget.py +0 -0
  266. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/widget/UpdateConfigWidgetItem.py +0 -0
  267. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/widget/WidgetWithVLabel.py +0 -0
  268. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/widget/YesNonWidgetItem.py +0 -0
  269. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/qt/widget/__init__.py +0 -0
  270. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/web/__init__.py +0 -0
  271. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/web/requirements.py +0 -0
  272. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/web/server.py +0 -0
  273. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/web/static/app.js +0 -0
  274. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/web/static/chunk-fluent.js +0 -0
  275. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/web/static/chunk-react.js +0 -0
  276. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/web/static/index.css +0 -0
  277. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/ui/web/static/index.html +0 -0
  278. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/update/__init__.py +0 -0
  279. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/update/copy_ok_folder.py +0 -0
  280. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/update/inline_ok_requirements.py +0 -0
  281. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/util/Analytics.py +0 -0
  282. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/util/GlobalConfig.py +0 -0
  283. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/util/__init__.py +0 -0
  284. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/util/blur.py +0 -0
  285. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/util/clazz.py +0 -0
  286. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/util/collection.py +0 -0
  287. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/util/color.py +0 -0
  288. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/util/config.py +0 -0
  289. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/util/explorer.py +0 -0
  290. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/util/file.py +0 -0
  291. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/util/gpu_driver_settings.py +0 -0
  292. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/util/handler.py +0 -0
  293. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/util/i18n.py +0 -0
  294. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/util/logger.py +0 -0
  295. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/util/partial_sync_repo.py +0 -0
  296. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/util/print_hwnd.py +0 -0
  297. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/util/process.py +0 -0
  298. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/util/window.py +0 -0
  299. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok/util/windows_schedule.py +0 -0
  300. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok_script.egg-info/SOURCES.txt +0 -0
  301. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok_script.egg-info/dependency_links.txt +0 -0
  302. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok_script.egg-info/entry_points.txt +0 -0
  303. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok_script.egg-info/not-zip-safe +0 -0
  304. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/ok_script.egg-info/top_level.txt +0 -0
  305. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/scripts/generate_web_i18n.py +0 -0
  306. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/setup.cfg +0 -0
  307. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/setup.py +0 -0
  308. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_accent_color.py +0 -0
  309. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_app.py +0 -0
  310. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_base_interaction.py +0 -0
  311. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_blur.py +0 -0
  312. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_box.py +0 -0
  313. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_capture_update.py +0 -0
  314. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_cli.py +0 -0
  315. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_config_card.py +0 -0
  316. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_core_events.py +0 -0
  317. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_core_ui_services.py +0 -0
  318. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_device_manager.py +0 -0
  319. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_expand_card_layout.py +0 -0
  320. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_explorer.py +0 -0
  321. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_global_config.py +0 -0
  322. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_gpu_driver_settings.py +0 -0
  323. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_headless_imports.py +0 -0
  324. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_inline_ok_requirements.py +0 -0
  325. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_logger.py +0 -0
  326. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_main_window_notifications.py +0 -0
  327. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_main_window_startup_tab.py +0 -0
  328. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_main_window_system_theme.py +0 -0
  329. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_missing_frame.py +0 -0
  330. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_navigation_state.py +0 -0
  331. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_nemu_ipc_capture.py +0 -0
  332. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_notifications.py +0 -0
  333. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_ok_mutex.py +0 -0
  334. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_overlay_custom_draw.py +0 -0
  335. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_package_metadata.py +0 -0
  336. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_process.py +0 -0
  337. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_qt_events.py +0 -0
  338. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_qt_legacy_imports.py +0 -0
  339. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_qt_page_layout.py +0 -0
  340. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_runtime_startup.py +0 -0
  341. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_start_controller.py +0 -0
  342. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_task_executor_queue.py +0 -0
  343. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_task_ui.py +0 -0
  344. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_template_tab.py +0 -0
  345. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_touch_scroll.py +0 -0
  346. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_translation_fallback.py +0 -0
  347. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_ui_config.py +0 -0
  348. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_web_app.py +0 -0
  349. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_web_i18n.py +0 -0
  350. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_web_server.py +0 -0
  351. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_web_task_tabs.py +0 -0
  352. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_web_ui_tasks.py +0 -0
  353. {ok_script-2.0.0b5 → ok_script-2.0.0b6}/tests/test_windows_graphics_capture.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ok-script
3
- Version: 2.0.0b5
3
+ Version: 2.0.0b6
4
4
  Summary: Automation with Computer Vision for Python
5
5
  Author-email: ok-oldking <firedcto@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/ok-oldking/ok-script
@@ -16,7 +16,7 @@ Requires-Python: >=3.11
16
16
  Description-Content-Type: text/markdown
17
17
  License-File: LICENSE.txt
18
18
  Requires-Dist: pywin32>=306
19
- Requires-Dist: pyappify>=1.0.6
19
+ Requires-Dist: pyappify>=1.0.9
20
20
  Requires-Dist: typing-extensions>=4.11.0
21
21
  Requires-Dist: requests>=2.32.3
22
22
  Requires-Dist: psutil>=6.0.0
@@ -212,7 +212,7 @@ class MainWindow(FluentWindow):
212
212
  position=NavigationItemPosition.BOTTOM)
213
213
 
214
214
  from ok.ui.qt.about.AboutTab import AboutTab
215
- self.about_tab = AboutTab(config)
215
+ self.about_tab = AboutTab(config, exit_event=exit_event)
216
216
  self.addSubInterface(self.about_tab, FluentIcon.QUESTION, self.tr('About'),
217
217
  position=NavigationItemPosition.BOTTOM)
218
218
  self.about_update_badge = None
@@ -526,14 +526,18 @@ class MainWindow(FluentWindow):
526
526
  self.shown = True
527
527
  pyappify.hide_pyappify()
528
528
  if update_pyappify := self.config.get("update_pyappify"):
529
- pyappify.upgrade(update_pyappify.get('to_version'), update_pyappify.get('sha256'),
530
- [update_pyappify.get('zip_url')], self.exit_event)
529
+ pyappify.upgrade(
530
+ update_pyappify.get('to_version'),
531
+ update_pyappify.get('sha256'),
532
+ [update_pyappify.get('zip_url')],
533
+ exit_event=self.exit_event,
534
+ )
531
535
  logger.info("Window has fully displayed")
532
536
  from ok import og
533
537
  og.ok.start_runtime()
534
538
  if self.basic_global_config.get(KILL_LAUNCHER_AFTER_START):
535
539
  logger.info(f'MainWindow showEvent Kill Launcher After Start')
536
- pyappify.kill_pyappify()
540
+ pyappify.kill_pyappify(exit_event=self.exit_event)
537
541
  startup_version_change = get_startup_version_change()
538
542
  if self.version != self.main_window_config.get('last_version'):
539
543
  self.main_window_config['last_version'] = self.version
@@ -739,5 +743,5 @@ class MainWindow(FluentWindow):
739
743
  self.executor.destroy()
740
744
  event.accept()
741
745
  if not self.do_not_quit:
742
- pyappify.kill_pyappify()
746
+ pyappify.kill_pyappify(exit_event=self.exit_event)
743
747
  QApplication.instance().exit()
@@ -16,7 +16,7 @@ logger = Logger.get_logger(__name__)
16
16
 
17
17
 
18
18
  class AboutTab(Tab):
19
- def __init__(self, config, pyappify_module=None):
19
+ def __init__(self, config, pyappify_module=None, exit_event=None):
20
20
  super().__init__()
21
21
  if pyappify_module is None:
22
22
  import pyappify as pyappify_module
@@ -28,7 +28,9 @@ class AboutTab(Tab):
28
28
 
29
29
  self.update_card = None
30
30
  if callable(getattr(pyappify_module, 'get_version_list', None)):
31
- self.update_card = UpdateCard(config.get('version'), pyappify_module, self)
31
+ self.update_card = UpdateCard(
32
+ config.get('version'), pyappify_module, self, exit_event=exit_event
33
+ )
32
34
  self.add_card(self.tr("App update"), self.update_card)
33
35
  else:
34
36
  logger.warning(
@@ -51,13 +51,14 @@ class UpdateCard(QWidget):
51
51
  VERSION_COMBO_MIN_WIDTH = 100
52
52
  VERSION_COMBO_MAX_WIDTH = 240
53
53
 
54
- def __init__(self, current_version, pyappify_module, parent=None):
54
+ def __init__(self, current_version, pyappify_module, parent=None, exit_event=None):
55
55
  super().__init__(parent)
56
56
  self.current_version = current_version or getattr(pyappify_module, "app_version", None) or ""
57
57
  if "PYAPPIFY_PYTHON_TEST" in os.environ and not _is_numeric_version(self.current_version):
58
58
  logger.info(f"using v0.0.0 for nonnumeric test version {self.current_version!r}")
59
59
  self.current_version = "v0.0.0"
60
60
  self.pyappify_module = pyappify_module
61
+ self.exit_event = exit_event
61
62
  self.versions = []
62
63
  self._busy = False
63
64
  logger.info(
@@ -125,7 +126,7 @@ class UpdateCard(QWidget):
125
126
  self._set_status(self.tr("Checking for updates…"))
126
127
  release_only = not self.test_version_checkbox.isChecked()
127
128
  self._run_in_background(
128
- lambda: get_versions(release_only=release_only),
129
+ lambda: get_versions(release_only=release_only, exit_event=self.exit_event),
129
130
  self._versions_loaded,
130
131
  f"pyappify.get_version_list(release_only={release_only})",
131
132
  )
@@ -141,7 +142,7 @@ class UpdateCard(QWidget):
141
142
  self._set_busy(True)
142
143
  self._set_status(self.tr("Starting change to {version}…").format(version=version))
143
144
  self._run_in_background(
144
- lambda: update_to_version(version),
145
+ lambda: update_to_version(version, exit_event=self.exit_event),
145
146
  self._update_finished,
146
147
  f"pyappify.update_to_version({version!r})",
147
148
  )
@@ -705,7 +705,9 @@ class WebRuntime:
705
705
  try:
706
706
  module = self.pyappify_module
707
707
  logger.info("calling pyappify.get_version_list(release_only=%s)", release_only)
708
- versions = module.get_version_list(release_only=release_only)
708
+ versions = module.get_version_list(
709
+ release_only=release_only, exit_event=self.ok.exit_event
710
+ )
709
711
  logger.info("pyappify.get_version_list result=%r", versions)
710
712
  if not isinstance(versions, list):
711
713
  raise RuntimeError("PyAppify returned an invalid version list")
@@ -748,7 +750,7 @@ class WebRuntime:
748
750
  if not callable(operation):
749
751
  raise RuntimeError("Updating is not supported by this PyAppify version")
750
752
  logger.info("calling pyappify.update_to_version(%r)", version)
751
- result = operation(version)
753
+ result = operation(version, exit_event=self.ok.exit_event)
752
754
  logger.info("pyappify.update_to_version(%r) result=%r", version, result)
753
755
  return {"accepted": True, "version": version, "result": _json_value(result)}
754
756
  finally:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ok-script
3
- Version: 2.0.0b5
3
+ Version: 2.0.0b6
4
4
  Summary: Automation with Computer Vision for Python
5
5
  Author-email: ok-oldking <firedcto@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/ok-oldking/ok-script
@@ -16,7 +16,7 @@ Requires-Python: >=3.11
16
16
  Description-Content-Type: text/markdown
17
17
  License-File: LICENSE.txt
18
18
  Requires-Dist: pywin32>=306
19
- Requires-Dist: pyappify>=1.0.6
19
+ Requires-Dist: pyappify>=1.0.9
20
20
  Requires-Dist: typing-extensions>=4.11.0
21
21
  Requires-Dist: requests>=2.32.3
22
22
  Requires-Dist: psutil>=6.0.0
@@ -1,5 +1,5 @@
1
1
  pywin32>=306
2
- pyappify>=1.0.6
2
+ pyappify>=1.0.9
3
3
  typing-extensions>=4.11.0
4
4
  requests>=2.32.3
5
5
  psutil>=6.0.0
@@ -27,7 +27,7 @@ classifiers = [
27
27
  ]
28
28
  dependencies = [
29
29
  "pywin32>=306",
30
- "pyappify>=1.0.6",
30
+ "pyappify>=1.0.9",
31
31
  "typing-extensions>=4.11.0",
32
32
  "requests>=2.32.3",
33
33
  "psutil>=6.0.0",
@@ -299,6 +299,7 @@ class TestPyappifyStartupUpdate(unittest.TestCase):
299
299
 
300
300
  def test_check_test_version_controls_release_filter(self):
301
301
  os.environ.setdefault("QT_QPA_PLATFORM", "offscreen")
302
+ import threading
302
303
  import time
303
304
  from PySide6.QtWidgets import QApplication
304
305
  from ok.ui.qt.about.UpdateCard import UpdateCard
@@ -308,7 +309,8 @@ class TestPyappifyStartupUpdate(unittest.TestCase):
308
309
  get_version_list=Mock(return_value=[]),
309
310
  is_greater_version=lambda left, right: self._version_tuple(left) > self._version_tuple(right),
310
311
  )
311
- card = UpdateCard("v1.0.0", module)
312
+ exit_event = threading.Event()
313
+ card = UpdateCard("v1.0.0", module, exit_event=exit_event)
312
314
 
313
315
  for checked, expected_release_only in ((False, True), (True, False)):
314
316
  card.test_version_checkbox.setChecked(checked)
@@ -320,6 +322,7 @@ class TestPyappifyStartupUpdate(unittest.TestCase):
320
322
  time.sleep(0.01)
321
323
  self.assertFalse(card._busy)
322
324
  self.assertEqual(expected_release_only, module.get_version_list.call_args.kwargs["release_only"])
325
+ self.assertIs(exit_event, module.get_version_list.call_args.kwargs["exit_event"])
323
326
 
324
327
  card.deleteLater()
325
328
  app.processEvents()
@@ -369,6 +372,36 @@ class TestPyappifyStartupUpdate(unittest.TestCase):
369
372
  card.deleteLater()
370
373
  app.processEvents()
371
374
 
375
+ def test_update_to_version_receives_exit_event(self):
376
+ os.environ.setdefault("QT_QPA_PLATFORM", "offscreen")
377
+ import threading
378
+ import time
379
+ from PySide6.QtWidgets import QApplication
380
+ from ok.ui.qt.about.UpdateCard import UpdateCard
381
+
382
+ app = QApplication.instance() or QApplication([])
383
+ exit_event = threading.Event()
384
+ update_to_version = Mock(return_value={"updated": True, "version": "v1.1.0"})
385
+ module = SimpleNamespace(
386
+ update_to_version=update_to_version,
387
+ is_greater_version=lambda left, right: self._version_tuple(left) > self._version_tuple(right),
388
+ calculate_update_notes=self._calculate_update_notes,
389
+ )
390
+ card = UpdateCard("v1.0.0", module, exit_event=exit_event)
391
+ card._apply_versions((True, [{"version": "v1.1.0", "update_note": ["one"]}]))
392
+
393
+ card.update_to_selected_version()
394
+ for _ in range(100):
395
+ app.processEvents()
396
+ if not card._busy:
397
+ break
398
+ time.sleep(0.01)
399
+
400
+ self.assertFalse(card._busy)
401
+ update_to_version.assert_called_once_with("v1.1.0", exit_event=exit_event)
402
+ card.deleteLater()
403
+ app.processEvents()
404
+
372
405
  def test_failed_request_shows_visible_error(self):
373
406
  os.environ.setdefault("QT_QPA_PLATFORM", "offscreen")
374
407
  import time
@@ -31,6 +31,7 @@ def make_runtime(tmp_path):
31
31
  config={"gui_title": "Test App", "version": "1.2.3", "debug": False, "links": {"github": "https://example.test"}},
32
32
  task_manager=manager,
33
33
  task_executor=SimpleNamespace(get_all_tasks=lambda: [], onetime_tasks=[], trigger_tasks=[]),
34
+ exit_event=Mock(),
34
35
  )
35
36
  runtime.icon_url = "/static/app-icon.png"
36
37
  runtime._schedule_manager = None
@@ -107,7 +108,7 @@ def test_web_update_check_returns_calculated_notes_in_one_result(tmp_path):
107
108
 
108
109
  result = runtime.check_for_updates(release_only=False)
109
110
 
110
- get_versions.assert_called_once_with(release_only=False)
111
+ get_versions.assert_called_once_with(release_only=False, exit_event=runtime.ok.exit_event)
111
112
  assert result["current_version"] == "1.2.3"
112
113
  assert result["update_available"] is True
113
114
  assert result["versions"][0] == {"version": "v1.2.5", "notes": ["five", "four", "three"]}
@@ -120,7 +121,7 @@ def test_web_update_request_calls_pyappify(tmp_path):
120
121
 
121
122
  result = runtime.update_to_version("v1.2.4")
122
123
 
123
- update.assert_called_once_with("v1.2.4")
124
+ update.assert_called_once_with("v1.2.4", exit_event=runtime.ok.exit_event)
124
125
  assert result["accepted"] is True
125
126
  assert result["version"] == "v1.2.4"
126
127
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes