mcpywrap 0.5.3__tar.gz → 0.5.4__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 (337) hide show
  1. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/CHANGELOG.md +4 -0
  2. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/PKG-INFO +1 -1
  3. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/__init__.py +1 -1
  4. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/engines/macos.py +1 -1
  5. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/bridge_payload/Injector.exe +0 -0
  6. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/bridge_payload/Loader.dll +0 -0
  7. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/bridge_payload/McpyMcsAuth.dll +0 -0
  8. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/bridge_payload/manifest.json +3 -3
  9. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/window_capture/manifest.json +1 -1
  10. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/window_capture/mcpy-window-capture.exe +0 -0
  11. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap.egg-info/PKG-INFO +1 -1
  12. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/pyproject.toml +1 -1
  13. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_macos_network.py +16 -0
  14. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/CONTRIBUTING.md +0 -0
  15. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/LICENSE +0 -0
  16. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/MANIFEST.in +0 -0
  17. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/README.md +0 -0
  18. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/RELEASING.md +0 -0
  19. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/THIRD_PARTY_NOTICES.md +0 -0
  20. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/docs/code-libraries.md +0 -0
  21. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/docs/engine-discovery.md +0 -0
  22. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/docs/game-backends.md +0 -0
  23. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/docs/git-dependencies.md +0 -0
  24. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/docs/input-sequence.md +0 -0
  25. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/docs/launcher-client-python.md +0 -0
  26. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/docs/local-dependencies.md +0 -0
  27. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/docs/macos-resource-reload.md +0 -0
  28. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/docs/mcs-auth.md +0 -0
  29. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/docs/project-scripts.md +0 -0
  30. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/docs/qt6-development.md +0 -0
  31. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/docs/qumod.md +0 -0
  32. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/docs/runtime-debug.md +0 -0
  33. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/docs/runtime-input.md +0 -0
  34. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/docs/runtime-player.md +0 -0
  35. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/docs/runtime-ui.md +0 -0
  36. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/docs/shared-log-ui.md +0 -0
  37. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/examples/consumer_prepare/README.md +0 -0
  38. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/__main__.py +0 -0
  39. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/_script_worker.py +0 -0
  40. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/builders/AddonsPack.py +0 -0
  41. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/builders/MapPack.py +0 -0
  42. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/builders/__init__.py +0 -0
  43. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/builders/assembly.py +0 -0
  44. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/builders/dependency_manager.py +0 -0
  45. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/builders/file_merge.py +0 -0
  46. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/builders/project_builder.py +0 -0
  47. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/builders/watcher.py +0 -0
  48. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/cli.py +0 -0
  49. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/code_libraries.py +0 -0
  50. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/command_context.py +0 -0
  51. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/__init__.py +0 -0
  52. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/add_cmd.py +0 -0
  53. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/build_cmd.py +0 -0
  54. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/connect_cmd.py +0 -0
  55. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/default_cmd.py +0 -0
  56. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/dependency_prompt.py +0 -0
  57. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/desktop_cmd.py +0 -0
  58. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/dev_cmd.py +0 -0
  59. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/doctor_cmd.py +0 -0
  60. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/edit_cmd.py +0 -0
  61. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/engine_cmd.py +0 -0
  62. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/init_cmd.py +0 -0
  63. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/mod_cmd.py +0 -0
  64. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/modsdk_cmd.py +0 -0
  65. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/package_cmd.py +0 -0
  66. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/publish_cmd.py +0 -0
  67. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/record_cmd.py +0 -0
  68. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/remove_cmd.py +0 -0
  69. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/run_cmd.py +0 -0
  70. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/runtime_cmd.py +0 -0
  71. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/runtime_input_cmd.py +0 -0
  72. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/runtime_player_cmd.py +0 -0
  73. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/runtime_ui_cmd.py +0 -0
  74. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/script_cmd.py +0 -0
  75. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/serve_cmd.py +0 -0
  76. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/session_cmd.py +0 -0
  77. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/sync_cmd.py +0 -0
  78. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/commands/ui_cmd.py +0 -0
  79. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/config.py +0 -0
  80. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/consumer_prepare.py +0 -0
  81. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/custom_packaging.py +0 -0
  82. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/dependencies.py +0 -0
  83. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/engines/__init__.py +0 -0
  84. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/engines/android_icon.py +0 -0
  85. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/engines/apk_profile.py +0 -0
  86. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/engines/backend.py +0 -0
  87. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/engines/host.py +0 -0
  88. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/engines/install.py +0 -0
  89. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/engines/macos_icons.py +0 -0
  90. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/engines/macos_network.py +0 -0
  91. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/engines/official.py +0 -0
  92. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/engines/preferences.py +0 -0
  93. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/engines/tui.py +0 -0
  94. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/engines/windows.py +0 -0
  95. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/framework_presets.py +0 -0
  96. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/frameworks.py +0 -0
  97. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/git_cache.py +0 -0
  98. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/git_projects.py +0 -0
  99. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/input_executor.py +0 -0
  100. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/input_plan.py +0 -0
  101. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/SimpleMonitor.py +0 -0
  102. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/__init__.py +0 -0
  103. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/auth_interaction.py +0 -0
  104. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/bridge_assets.py +0 -0
  105. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/bridge_payload/publisher.cer +0 -0
  106. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/deployment_links.py +0 -0
  107. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/diagnostics.py +0 -0
  108. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/discovery.py +0 -0
  109. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/editor.py +0 -0
  110. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/file_logs.py +0 -0
  111. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/game.py +0 -0
  112. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/host_input.py +0 -0
  113. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/hot_reload.py +0 -0
  114. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/image.py +0 -0
  115. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/input_sequence.py +0 -0
  116. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/launcher_control.py +0 -0
  117. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/launcher_python.py +0 -0
  118. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/log_colorizer.py +0 -0
  119. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/log_protocol.py +0 -0
  120. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/mcs.py +0 -0
  121. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/mcs_auth.py +0 -0
  122. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/network.py +0 -0
  123. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/private_logs.py +0 -0
  124. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/processes.py +0 -0
  125. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/recording_worker.py +0 -0
  126. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/recordings.py +0 -0
  127. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/runtime_cppconfig.py +0 -0
  128. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/runtime_debug.py +0 -0
  129. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/runtime_input_payload.py +0 -0
  130. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/runtime_key_timeline_payload.py +0 -0
  131. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/runtime_player_payload.py +0 -0
  132. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/runtime_ui.py +0 -0
  133. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/runtime_ui_outline.py +0 -0
  134. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/runtime_ui_payload.py +0 -0
  135. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/screenshot.py +0 -0
  136. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/session_capabilities.py +0 -0
  137. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/session_worker.py +0 -0
  138. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/sessions.py +0 -0
  139. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/studio_server.py +0 -0
  140. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/studio_server_ui.py +0 -0
  141. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/symlink_helper_global.py +0 -0
  142. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/symlink_helper_map.py +0 -0
  143. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/symlinks.py +0 -0
  144. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/unified_input.py +0 -0
  145. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/mcstudio/window.py +0 -0
  146. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/minecraft/__init__.py +0 -0
  147. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/minecraft/addons.py +0 -0
  148. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/minecraft/level_dat.py +0 -0
  149. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/minecraft/map.py +0 -0
  150. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/minecraft/netease_modsdk.py +0 -0
  151. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/minecraft/template/generate_mod_files.py +0 -0
  152. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/minecraft/template/mod_template.py +0 -0
  153. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/prepare_environment.py +0 -0
  154. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/project_dependencies.py +0 -0
  155. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/project_init.py +0 -0
  156. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/project_scripts.py +0 -0
  157. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/recording_io.py +0 -0
  158. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/remote/__init__.py +0 -0
  159. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/remote/client.py +0 -0
  160. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/remote/http_server.py +0 -0
  161. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/remote/service.py +0 -0
  162. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/runtime/__init__.py +0 -0
  163. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/runtime/deployment.py +0 -0
  164. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/runtime/groups.py +0 -0
  165. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/runtime/instances.py +0 -0
  166. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/runtime/native.py +0 -0
  167. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/runtime/occupancy.py +0 -0
  168. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/runtime/preparation.py +0 -0
  169. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/runtime/profiles.py +0 -0
  170. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/runtime/storage.py +0 -0
  171. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/runtime/targets.py +0 -0
  172. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/runtime/watch.py +0 -0
  173. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/runtime/windows.py +0 -0
  174. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/source_files.py +0 -0
  175. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/timeline.py +0 -0
  176. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/ui/__init__.py +0 -0
  177. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/ui/application.py +0 -0
  178. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/ui/assets/mcpy.icns +0 -0
  179. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/ui/assets/mcpy.icon/Assets/01-cube.svg +0 -0
  180. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/ui/assets/mcpy.icon/Assets/02-prompt.svg +0 -0
  181. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/ui/assets/mcpy.icon/icon.json +0 -0
  182. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/ui/assets/mcpy.png +0 -0
  183. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/ui/engine_setup.py +0 -0
  184. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/ui/log_view.py +0 -0
  185. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/ui/log_window.py +0 -0
  186. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/ui/project_ui.py +0 -0
  187. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/ui/run_session.py +0 -0
  188. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/ui/session_controller.py +0 -0
  189. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/ui/session_tools.py +0 -0
  190. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/ui/session_views.py +0 -0
  191. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/ui/world_config.py +0 -0
  192. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/utils/__init__.py +0 -0
  193. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/utils/locks.py +0 -0
  194. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/utils/paths.py +0 -0
  195. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/utils/pip_error_parser.py +0 -0
  196. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/utils/print_guide.py +0 -0
  197. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/utils/project_setup.py +0 -0
  198. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap/utils/utils.py +0 -0
  199. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap.egg-info/SOURCES.txt +0 -0
  200. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap.egg-info/dependency_links.txt +0 -0
  201. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap.egg-info/entry_points.txt +0 -0
  202. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap.egg-info/requires.txt +0 -0
  203. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/mcpywrap.egg-info/top_level.txt +0 -0
  204. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/native/mcs_auth/Bridge.cs +0 -0
  205. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/native/mcs_auth/Injector.cs +0 -0
  206. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/native/mcs_auth/Loader.c +0 -0
  207. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/native/mcs_auth/publisher.cer +0 -0
  208. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/native/mcs_auth/publisher.json +0 -0
  209. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/native/runtime_input/README.md +0 -0
  210. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/native/runtime_input/launcher-monotonic.patch +0 -0
  211. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/native/runtime_input/manifest-monotonic.patch +0 -0
  212. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/native/runtime_input/steady_clock.h +0 -0
  213. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/native/window_capture/video_capture.h +0 -0
  214. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/native/window_capture/window_capture.cpp +0 -0
  215. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/scripts/build_all_native.py +0 -0
  216. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/scripts/build_app_icon.py +0 -0
  217. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/scripts/build_mcs_auth_bridge.py +0 -0
  218. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/scripts/build_window_capture.py +0 -0
  219. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/scripts/check_mcs_auth_bridge.py +0 -0
  220. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/scripts/check_release.py +0 -0
  221. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/scripts/check_window_capture.py +0 -0
  222. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/setup.cfg +0 -0
  223. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/SKILL.md +0 -0
  224. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/agents/openai.yaml +0 -0
  225. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/assets/consumer-prepare/framework/behavior_pack/CatalogRuntime/__init__.py +0 -0
  226. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/assets/consumer-prepare/framework/behavior_pack/manifest.json +0 -0
  227. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/assets/consumer-prepare/framework/build_tools/example.toml +0 -0
  228. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/assets/consumer-prepare/framework/build_tools/prepare.py +0 -0
  229. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/assets/consumer-prepare/framework/build_tools/schema.json +0 -0
  230. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/assets/consumer-prepare/framework/pyproject.toml +0 -0
  231. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/assets/consumer-prepare/game/.gitignore +0 -0
  232. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/assets/consumer-prepare/game/behavior_pack/manifest.json +0 -0
  233. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/assets/consumer-prepare/game/data/items.json +0 -0
  234. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/assets/consumer-prepare/game/pyproject.toml +0 -0
  235. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/assets/consumer-prepare/game/resource_pack/manifest.json +0 -0
  236. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/capture.md +0 -0
  237. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/consumer-prepare-author.md +0 -0
  238. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/consumer-prepare.md +0 -0
  239. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/dual-clients.md +0 -0
  240. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/input-sequence.md +0 -0
  241. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/input-writing.md +0 -0
  242. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/instance-world-settings.md +0 -0
  243. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/local-development.md +0 -0
  244. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/macos-local.md +0 -0
  245. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/network-sessions.md +0 -0
  246. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/project-dependencies.md +0 -0
  247. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/project-scripts.md +0 -0
  248. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/project-workflow.md +0 -0
  249. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/remote-testing.md +0 -0
  250. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/runtime-debug.md +0 -0
  251. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/runtime-input.md +0 -0
  252. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/runtime-key-timeline.md +0 -0
  253. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/runtime-player.md +0 -0
  254. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/runtime-ui.md +0 -0
  255. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/script-example.md +0 -0
  256. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/setup.md +0 -0
  257. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/references/troubleshooting.md +0 -0
  258. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/scripts/bootstrap.ps1 +0 -0
  259. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/scripts/bootstrap.py +0 -0
  260. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/scripts/game_window.py +0 -0
  261. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/skills/mcpywrap/scripts/smoke.py +0 -0
  262. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/README.md +0 -0
  263. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/manual/consumer_prepare_acceptance.py +0 -0
  264. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/manual/lifecycle_dependency_audit.py +0 -0
  265. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/manual/runtime_controls/README.md +0 -0
  266. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/manual/runtime_controls/client_probe.py +0 -0
  267. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/manual/runtime_controls/input_probe.py +0 -0
  268. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/manual/runtime_controls/key_timeline_probe.py +0 -0
  269. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/manual/runtime_controls/movement.json +0 -0
  270. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/manual/runtime_controls/run.py +0 -0
  271. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/manual/runtime_controls/server_fixture.py +0 -0
  272. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/manual/runtime_controls/support.py +0 -0
  273. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/manual_dependency_boundaries.py +0 -0
  274. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/manual_input_window.py +0 -0
  275. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/manual_integration.py +0 -0
  276. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/manual_native_recording.py +0 -0
  277. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/manual_remote_recording.py +0 -0
  278. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/manual_runtime_input.py +0 -0
  279. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/manual_runtime_input_unified.py +0 -0
  280. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/manual_runtime_key_timeline.py +0 -0
  281. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/manual_runtime_player.py +0 -0
  282. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/manual_runtime_ui.py +0 -0
  283. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/runtime_support.py +0 -0
  284. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_application_icons.py +0 -0
  285. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_auth_interaction.py +0 -0
  286. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_automation.py +0 -0
  287. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_build_replace_retry.py +0 -0
  288. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_code_libraries.py +0 -0
  289. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_consumer_prepare.py +0 -0
  290. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_dependency_boundaries.py +0 -0
  291. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_engine_backends.py +0 -0
  292. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_engine_compatibility.py +0 -0
  293. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_engine_discovery.py +0 -0
  294. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_engine_install.py +0 -0
  295. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_game_window_skill.py +0 -0
  296. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_git_projects.py +0 -0
  297. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_host_input.py +0 -0
  298. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_input_sequence.py +0 -0
  299. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_instance_cppconfig.py +0 -0
  300. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_launch_encoding.py +0 -0
  301. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_launcher_python.py +0 -0
  302. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_lifecycle_audit.py +0 -0
  303. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_lifecycle_races.py +0 -0
  304. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_local_auth_session.py +0 -0
  305. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_local_dependencies.py +0 -0
  306. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_manual_runtime_controls.py +0 -0
  307. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_mcs_auth.py +0 -0
  308. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_mouse.py +0 -0
  309. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_native_input_sequence.py +0 -0
  310. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_native_preferences.py +0 -0
  311. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_native_recording.py +0 -0
  312. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_network.py +0 -0
  313. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_network_sessions.py +0 -0
  314. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_pack_uuid_conflicts.py +0 -0
  315. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_package.py +0 -0
  316. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_project_scripts.py +0 -0
  317. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_qt_sessions.py +0 -0
  318. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_qumod_workflow.py +0 -0
  319. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_recordings.py +0 -0
  320. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_remote.py +0 -0
  321. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_remote_scripts.py +0 -0
  322. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_resource_reload.py +0 -0
  323. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_runtime_debug.py +0 -0
  324. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_runtime_deployment.py +0 -0
  325. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_runtime_groups.py +0 -0
  326. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_runtime_input.py +0 -0
  327. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_runtime_key_timeline.py +0 -0
  328. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_runtime_player.py +0 -0
  329. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_runtime_profiles.py +0 -0
  330. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_runtime_ui.py +0 -0
  331. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_runtime_ui_outline.py +0 -0
  332. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_screenshot.py +0 -0
  333. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_session_capabilities.py +0 -0
  334. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_shared_logs.py +0 -0
  335. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_skill_workflows.py +0 -0
  336. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_unified_skill_contract.py +0 -0
  337. {mcpywrap-0.5.3 → mcpywrap-0.5.4}/tests/test_window_focus.py +0 -0
@@ -1,5 +1,9 @@
1
1
  # 更新记录
2
2
 
3
+ ## 0.5.4
4
+
5
+ - 修复 macOS 网络会话启动时的状态保存路径:在启动游戏前,将 `prepared` 状态写入所属会话目录,避免会话记录未正确更新。
6
+
3
7
  ## 0.5.3
4
8
 
5
9
  - 修复 Windows 双客户端收到 Addon 后入口导入失败:为每个角色使用独立浅层游戏资料目录,兼容网易 3.9 下载包加载器。旧资料复制迁移并保留备份;保留归属、占用锁及缓存版本检查,迁移中断或资料缺失时拒绝静默回退。
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcpywrap
3
- Version: 0.5.3
3
+ Version: 0.5.4
4
4
  Summary: A wrapper for Minecraft China Edition Addons management
5
5
  Author-email: boybook <boybook@easecation.net>
6
6
  License-Expression: MIT
@@ -1,4 +1,4 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  """mcpywrap - 我的世界中国版 Addon 开发依赖、构建与游戏测试工具。"""
3
3
 
4
- __version__ = '0.5.3'
4
+ __version__ = '0.5.4'
@@ -380,7 +380,7 @@ else:
380
380
  install.home()/'preferences/macos').prepare()
381
381
  sessions.require_launch_requested(data['project'], data['session'])
382
382
  data['phase'] = 'prepared'
383
- sessions.save(directory/'session.json', data)
383
+ sessions.save(sessions.session_path(data['project'], data['session'])/'session.json', data)
384
384
  return LaunchedGame(launch_session(data), capture_output=False, guard=guard)
385
385
  except BaseException:
386
386
  guard.close()
@@ -11,9 +11,9 @@
11
11
  "Loader.c": "f2f1f781ce82fc30c62a6ce22bb048d3b023f6ff500e6ec8228da28b4dbf1b4a"
12
12
  },
13
13
  "files": {
14
- "Injector.exe": "b37cb49ffba35890adeef2c5dff74767c440f716cc4547999f734c1d912c2e10",
15
- "Loader.dll": "d75a5a06686a347cb31643d275ccf6196c08d19c0fa7376fa0066addca4233ea",
16
- "McpyMcsAuth.dll": "8709b5d34568cd79792a630675addee4bb34de9f6700ea63b0e0a484712df371",
14
+ "Injector.exe": "386c7bb1972dcba1e5d4eb86709bc7d0576d789266805057cbc9d498e62dac10",
15
+ "Loader.dll": "aac19d20010d3ecc2af156688a795be7337a21e5264b4308d66deba2a16b1725",
16
+ "McpyMcsAuth.dll": "caed744e904c86727de5b2176e9aef0bb28002334188877f6746cc882a83bdbd",
17
17
  "publisher.cer": "e5aa2ac39df40804ed8b08fe8e43c4a2b8923f0d02a360708486b2db5b6303d7"
18
18
  }
19
19
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "executable_sha256": "3d83f1678c18af8cae150f7c62e055ad605465d5d4787c8e9ef93e13969725a7",
2
+ "executable_sha256": "b9caca51171c908f4dca623ebe498ec06ed345427e80e89cc8917d19f117adc8",
3
3
  "source_sha256": "0c0b2a02bfecea68b824a486ac1d88cde6bd9fc8ee8e4c9a6939870bd8e710d1",
4
4
  "sources": {
5
5
  "video_capture.h": "8daee1b8c1c8273bc8d19d39f0559f82c30d7ff900894bcc2cc197d3881532d7",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcpywrap
3
- Version: 0.5.3
3
+ Version: 0.5.4
4
4
  Summary: A wrapper for Minecraft China Edition Addons management
5
5
  Author-email: boybook <boybook@easecation.net>
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "mcpywrap"
7
- version = "0.5.3"
7
+ version = "0.5.4"
8
8
  description = "A wrapper for Minecraft China Edition Addons management"
9
9
  readme = "README.md"
10
10
  authors = [{name = "boybook", email = "boybook@easecation.net"}]
@@ -40,6 +40,22 @@ class MacOSNetworkTests(unittest.TestCase):
40
40
  def call(self, *args):
41
41
  return CliRunner().invoke(cli, ['--local', '--project', str(self.root), '--non-interactive', *args, '--json'])
42
42
 
43
+ def test_network_launch_persists_prepared_phase_before_starting_game(self):
44
+ data = {'session': 'a' * 32, 'project': str(self.root), 'mode': 'network',
45
+ 'launch': {'data': str(self.root/'data')}}
46
+ path = sessions.session_path(self.root, data['session'])/'session.json'
47
+
48
+ def launched(record):
49
+ self.assertEqual(json.loads(path.read_text())['phase'], 'prepared')
50
+ self.assertEqual(record['session'], data['session'])
51
+ return Mock()
52
+
53
+ with patch('mcpywrap.engines.preferences.NativePreferences'), \
54
+ patch.object(sessions, 'require_launch_requested') as requested, \
55
+ patch('mcpywrap.engines.macos.launch_session', side_effect=launched):
56
+ self.backend.launch(data, None)
57
+ requested.assert_called_once_with(data['project'], data['session'])
58
+
43
59
  def test_connect_does_not_read_project_or_create_world(self):
44
60
  (self.root/'pyproject.toml').write_text('broken = [')
45
61
  result = self.call('connect', 'localhost', '--port', '29132', '--detach')
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