pyobs-gui 2.6.2__tar.gz → 2.6.3__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 (202) hide show
  1. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/LICENSE +1 -2
  2. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/PKG-INFO +16 -1
  3. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/README.md +15 -0
  4. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyproject.toml +1 -1
  5. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pysidedeploy.spec +1 -1
  6. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/uv.lock +56 -56
  7. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/.claude/skills/verify/SKILL.md +0 -0
  8. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/.github/dependabot.yml +0 -0
  9. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/.github/workflows/dependabot-automerge.yml +0 -0
  10. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/.github/workflows/pypi.yml +0 -0
  11. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/.github/workflows/pyrefly.yml +0 -0
  12. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/.github/workflows/ruff.yml +0 -0
  13. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/.gitignore +0 -0
  14. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/.pre-commit-config.yaml +0 -0
  15. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/.readthedocs.yml +0 -0
  16. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/CHANGELOG.md +0 -0
  17. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/CLAUDE.md +0 -0
  18. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/CONTRIBUTING.md +0 -0
  19. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/bin/mypyuic5 +0 -0
  20. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/docs/Makefile +0 -0
  21. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/docs/make.bat +0 -0
  22. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/docs/requirements.txt +0 -0
  23. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/docs/source/_static/pyobs.gif +0 -0
  24. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/docs/source/conf.py +0 -0
  25. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/docs/source/index.rst +0 -0
  26. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/mypy.ini +0 -0
  27. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/__init__.py +0 -0
  28. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/__main__.py +0 -0
  29. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/_nuitka_astropy_patch.py +0 -0
  30. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/accounts.py +0 -0
  31. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/acquisitionwidget.py +0 -0
  32. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/autofocuswidget.py +0 -0
  33. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/autoguidingwidget.py +0 -0
  34. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/base.py +0 -0
  35. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/camerawidget.py +0 -0
  36. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/commandinputwidget.py +0 -0
  37. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/compassmovewidget.py +0 -0
  38. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/coolingwidget.py +0 -0
  39. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/datadisplaywidget.py +0 -0
  40. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/eventswidget.py +0 -0
  41. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/filterwidget.py +0 -0
  42. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/fitsheaderswidget.py +0 -0
  43. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/focuswidget.py +0 -0
  44. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/gui.py +0 -0
  45. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/guisignals.py +0 -0
  46. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/livestream.py +0 -0
  47. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/login.py +0 -0
  48. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/loginwindow.py +0 -0
  49. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/logmodel.py +0 -0
  50. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/mainwindow.py +0 -0
  51. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/modewidget.py +0 -0
  52. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/modifiedmixin.py +0 -0
  53. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/modulegui.py +0 -0
  54. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/movestack.py +0 -0
  55. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/notificationmanager.py +0 -0
  56. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/notifications.py +0 -0
  57. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/notifier.py +0 -0
  58. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/notifier_backend.py +0 -0
  59. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/nowheelfilter.py +0 -0
  60. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/__init__.py +0 -0
  61. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/acquisitionwidget.ui +0 -0
  62. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/acquisitionwidget_ui.py +0 -0
  63. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/autofocuswidget.ui +0 -0
  64. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/autofocuswidget_ui.py +0 -0
  65. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/autoguidingwidget.ui +0 -0
  66. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/autoguidingwidget_ui.py +0 -0
  67. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/camerawidget.ui +0 -0
  68. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/camerawidget_ui.py +0 -0
  69. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/compassmoveplugin.py +0 -0
  70. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/compassmovewidget.py +0 -0
  71. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/compassmovewidget.ui +0 -0
  72. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/compassmovewidget_ui.py +0 -0
  73. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/compile.sh +0 -0
  74. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/coolingwidget.ui +0 -0
  75. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/coolingwidget_ui.py +0 -0
  76. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/datadisplayplugin.py +0 -0
  77. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/datadisplaywidget.ui +0 -0
  78. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/datadisplaywidget_ui.py +0 -0
  79. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/designer.sh +0 -0
  80. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/eventswidget.ui +0 -0
  81. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/eventswidget_ui.py +0 -0
  82. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/filterwidget.ui +0 -0
  83. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/filterwidget_ui.py +0 -0
  84. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/fitsheaderswidget.ui +0 -0
  85. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/fitsheaderswidget_ui.py +0 -0
  86. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/focuswidget.ui +0 -0
  87. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/focuswidget_ui.py +0 -0
  88. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/mainwindow.ui +0 -0
  89. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/mainwindow_ui.py +0 -0
  90. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/modewidget.ui +0 -0
  91. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/modewidget_ui.py +0 -0
  92. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/resources/arrow-alt-circle-down-solid.svg +0 -0
  93. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/resources/arrow-alt-circle-left-solid.svg +0 -0
  94. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/resources/arrow-alt-circle-right-solid.svg +0 -0
  95. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/resources/arrow-alt-circle-up-solid.svg +0 -0
  96. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/resources/arrow-up-right-from-square-solid.svg +0 -0
  97. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/resources/arrows-to-eye-solid.svg +0 -0
  98. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/resources/chart-line-solid.svg +0 -0
  99. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/resources/circle-question-solid.svg +0 -0
  100. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/resources/cloud-sun-solid.svg +0 -0
  101. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/resources/edit-solid.svg +0 -0
  102. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/resources/search-solid.svg +0 -0
  103. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/resources/undo-solid.svg +0 -0
  104. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/resources.qrc +0 -0
  105. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/resources_rc.py +0 -0
  106. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/roboticwidget.ui +0 -0
  107. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/roboticwidget_ui.py +0 -0
  108. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/roofwidget.ui +0 -0
  109. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/roofwidget_ui.py +0 -0
  110. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/schedulewidget.ui +0 -0
  111. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/schedulewidget_ui.py +0 -0
  112. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/shellwidget.ui +0 -0
  113. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/shellwidget_ui.py +0 -0
  114. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/spectrographwidget.ui +0 -0
  115. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/spectrographwidget_ui.py +0 -0
  116. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/telescopewidget.ui +0 -0
  117. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/telescopewidget_ui.py +0 -0
  118. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/temperaturesplotwidget.ui +0 -0
  119. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/temperaturesplotwidget_ui.py +0 -0
  120. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/temperatureswidget.ui +0 -0
  121. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/temperatureswidget_ui.py +0 -0
  122. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/videograbwidget.ui +0 -0
  123. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/videograbwidget_ui.py +0 -0
  124. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/videowidget.ui +0 -0
  125. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/videowidget_ui.py +0 -0
  126. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/weatherwidget.ui +0 -0
  127. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/qt/weatherwidget_ui.py +0 -0
  128. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/roboticwidget.py +0 -0
  129. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/roofwidget.py +0 -0
  130. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/schedulewidget.py +0 -0
  131. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/settings.py +0 -0
  132. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/settingsdialog.py +0 -0
  133. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/shellwidget.py +0 -0
  134. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/spectrographwidget.py +0 -0
  135. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/statuswidget.py +0 -0
  136. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/structuredconfigwidget.py +0 -0
  137. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/telescopewidget.py +0 -0
  138. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/temperaturesplotwidget.py +0 -0
  139. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/temperatureswidget.py +0 -0
  140. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/utils.py +0 -0
  141. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/videograbwidget.py +0 -0
  142. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/videowidget.py +0 -0
  143. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/watchedlabel.py +0 -0
  144. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/weatherwidget.py +0 -0
  145. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/pyobs_gui/windows_identity.py +0 -0
  146. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/specs/2026-08-20-gui-remote-call-error-handling.md +0 -0
  147. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/specs/2026-08-21-gui-widget-startup-responsiveness.md +0 -0
  148. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/specs/2026-08-28-gui-main-vs-sidebar-widgets.md +0 -0
  149. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/specs/2026-08-28-structuredconfig-widget.md +0 -0
  150. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/specs/2026-08-31-irobotic-widgets.md +0 -0
  151. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/specs/2026-09-01-gui-video-widget-split.md +0 -0
  152. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/specs/2026-09-14-fitswidget-toolbar-overflow.md +0 -0
  153. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/specs/2026-09-14-stacked-widget-scroll-fallback.md +0 -0
  154. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/specs/2026-09-29-live-view-mjpeg-raw.md +0 -0
  155. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/specs/2026-10-04-desktop-notifications.md +0 -0
  156. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/specs/2026-10-04-settings-dialog.md +0 -0
  157. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/specs/index.md +0 -0
  158. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/specs/plans/2026-10-04-desktop-notifications.md +0 -0
  159. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/specs/plans/2026-10-04-settings-dialog.md +0 -0
  160. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/specs/plans/index.md +0 -0
  161. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/spike_standalone/main.py +0 -0
  162. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/spike_standalone/pysidedeploy.spec +0 -0
  163. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/test/acquisition.yaml +0 -0
  164. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/test/autofocus.yaml +0 -0
  165. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/test/camera.yaml +0 -0
  166. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/test/full.yaml +0 -0
  167. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/test/guiding.yaml +0 -0
  168. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/test/mode.yaml +0 -0
  169. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/test/robotic.yaml +0 -0
  170. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/test/roof.yaml +0 -0
  171. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/test/spectrograph.yaml +0 -0
  172. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/test/structuredconfig.yaml +0 -0
  173. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/test/telescope.yaml +0 -0
  174. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/test/telescope_acl.yaml +0 -0
  175. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/test/telescope_acl_denied.yaml +0 -0
  176. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/test/video.yaml +0 -0
  177. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/__init__.py +0 -0
  178. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/conftest.py +0 -0
  179. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_accounts.py +0 -0
  180. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_basewidget_discard.py +0 -0
  181. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_camerawidget.py +0 -0
  182. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_gui_notifications.py +0 -0
  183. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_import_order.py +0 -0
  184. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_livestream.py +0 -0
  185. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_loginwindow.py +0 -0
  186. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_mainwindow_startup.py +0 -0
  187. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_missing_vfs_root.py +0 -0
  188. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_modewidget.py +0 -0
  189. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_multiwidget_pages.py +0 -0
  190. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_notificationmanager.py +0 -0
  191. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_notifications.py +0 -0
  192. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_notifier_backend.py +0 -0
  193. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_roboticwidget.py +0 -0
  194. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_schedulewidget.py +0 -0
  195. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_settings.py +0 -0
  196. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_settingsdialog.py +0 -0
  197. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_spectrographwidget.py +0 -0
  198. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_structuredconfigwidget.py +0 -0
  199. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_video_refresh.py +0 -0
  200. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_videograbwidget.py +0 -0
  201. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_videowidget.py +0 -0
  202. {pyobs_gui-2.6.2 → pyobs_gui-2.6.3}/tests/test_windows_identity.py +0 -0
@@ -1,7 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2022 Tim-Oliver Husser
4
- thusser@uni-goettingen.de
3
+ Copyright (c) 2022 Tim-Oliver Husser <thusser@uni-goettingen.de>
5
4
 
6
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
7
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: pyobs-gui
3
- Version: 2.6.2
3
+ Version: 2.6.3
4
4
  Summary: A remote GUI for pyobs
5
5
  Project-URL: Homepage, https://www.pyobs.org
6
6
  Project-URL: Documentation, https://docs.pyobs.org
@@ -58,3 +58,18 @@ Two ways to start it:
58
58
  - `uv run pyobs <config.yaml>` — the standard `pyobs` CLI, driven by a config file whose top-level
59
59
  class is `pyobs_gui.GUI` (see `docs/source/index.rst` for a full example, including how to wire
60
60
  in a custom widget for a module).
61
+
62
+
63
+ Standalone binary (experimental)
64
+ --------------------------------
65
+ `pysidedeploy.spec` builds a standalone Linux binary with Nuitka (about 760 MB, 20 minutes on 16 cores,
66
+ needs gcc and ccache or clang). Build it from a clean, non-editable install, otherwise Nuitka cannot map
67
+ the `pyobs-gui` distribution to its package and aborts:
68
+
69
+ uv sync --no-dev
70
+ uv pip install --reinstall --no-deps .
71
+ uv pip install pip "Nuitka==4.0" patchelf
72
+ PATH="$PWD/.venv/bin:$PATH" pyside6-deploy -c pysidedeploy.spec --force -f
73
+
74
+ The result is `dist/pyobs-gui.dist/pyobs_gui.bin`. Known issue: astropy's cds/ogip/vounit unit parsers do not
75
+ work in the compiled binary (see `pyobs_gui/_nuitka_astropy_patch.py`), so those formats log a `UnitsWarning`.
@@ -26,3 +26,18 @@ Two ways to start it:
26
26
  - `uv run pyobs <config.yaml>` — the standard `pyobs` CLI, driven by a config file whose top-level
27
27
  class is `pyobs_gui.GUI` (see `docs/source/index.rst` for a full example, including how to wire
28
28
  in a custom widget for a module).
29
+
30
+
31
+ Standalone binary (experimental)
32
+ --------------------------------
33
+ `pysidedeploy.spec` builds a standalone Linux binary with Nuitka (about 760 MB, 20 minutes on 16 cores,
34
+ needs gcc and ccache or clang). Build it from a clean, non-editable install, otherwise Nuitka cannot map
35
+ the `pyobs-gui` distribution to its package and aborts:
36
+
37
+ uv sync --no-dev
38
+ uv pip install --reinstall --no-deps .
39
+ uv pip install pip "Nuitka==4.0" patchelf
40
+ PATH="$PWD/.venv/bin:$PATH" pyside6-deploy -c pysidedeploy.spec --force -f
41
+
42
+ The result is `dist/pyobs-gui.dist/pyobs_gui.bin`. Known issue: astropy's cds/ogip/vounit unit parsers do not
43
+ work in the compiled binary (see `pyobs_gui/_nuitka_astropy_patch.py`), so those formats log a `UnitsWarning`.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "pyobs-gui"
3
- version = "2.6.2"
3
+ version = "2.6.3"
4
4
  description = "A remote GUI for pyobs"
5
5
  authors = [{ name = "Tim-Oliver Husser", email = "thusser@uni-goettingen.de" }]
6
6
  requires-python = ">=3.11"
@@ -68,7 +68,7 @@ macos.permissions =
68
68
  mode = standalone
69
69
 
70
70
  # specify any extra nuitka arguments
71
- extra_args = --quiet --noinclude-qt-translations --clang --python-flag=-m --include-package=astropy.units.format --include-package=astropy.units.format.generic_parsetab --include-package=astropy.units.format.generic_lextab --include-package=astropy.units.format.cds_parsetab --include-package=astropy.units.format.cds_lextab --include-package=astropy.units.format.ogip_parsetab --include-package=astropy.units.format.ogip_lextab --include-package=astropy.coordinates.angles --include-package=astropy.coordinates.angles.angle_parsetab --include-package=astropy.coordinates.angles.angle_lextab --include-package=astropy.extern.ply --include-package-data=asdf --include-package-data=astropy --include-package-data=sunpy --include-package-data=matplotlib --include-package-data=qfitswidget --include-package-data=astropy_iers_data --include-package=pyobs.vfs --include-package-data=astroquery --include-package=slixmpp --noinclude-dlls=*webengine* --noinclude-dlls=*WebEngine* --include-distribution-metadata=astropy --include-distribution-metadata=numpy --include-distribution-metadata=scipy --include-distribution-metadata=PyYAML --include-distribution-metadata=sunpy --include-distribution-metadata=matplotlib --include-distribution-metadata=qfitswidget --include-distribution-metadata=astroquery --include-distribution-metadata=asdf --include-distribution-metadata=pyobs-core --include-distribution-metadata=pyobs-gui
71
+ extra_args = --quiet --noinclude-qt-translations --python-flag=-m --include-package=astropy.units.format --include-package=astropy.units.format.generic_parsetab --include-package=astropy.units.format.generic_lextab --include-package=astropy.units.format.cds_parsetab --include-package=astropy.units.format.cds_lextab --include-package=astropy.units.format.ogip_parsetab --include-package=astropy.units.format.ogip_lextab --include-package=astropy.coordinates.angles --include-package=astropy.coordinates.angles.angle_parsetab --include-package=astropy.coordinates.angles.angle_lextab --include-package=astropy.extern.ply --include-package-data=astropy --include-package-data=sunpy --include-package-data=matplotlib --include-package-data=qfitswidget --include-package-data=astropy_iers_data --include-package=pyobs.vfs --include-package-data=astroquery --include-package=slixmpp --include-package=pyobs_gui --noinclude-dlls=*webengine* --noinclude-dlls=*WebEngine* --include-distribution-metadata=astropy --include-distribution-metadata=numpy --include-distribution-metadata=PyYAML --include-distribution-metadata=sunpy --include-distribution-metadata=matplotlib --include-distribution-metadata=qfitswidget --include-distribution-metadata=astroquery --include-distribution-metadata=pyobs-core --include-distribution-metadata=pyobs-gui
72
72
 
73
73
  [buildozer]
74
74
 
@@ -1088,7 +1088,7 @@ name = "importlib-metadata"
1088
1088
  version = "9.0.0"
1089
1089
  source = { registry = "https://pypi.org/simple" }
1090
1090
  dependencies = [
1091
- { name = "zipp" },
1091
+ { name = "zipp", marker = "python_full_version < '3.12'" },
1092
1092
  ]
1093
1093
  sdist = { url = "https://files.pythonhosted.org/packages/a9/01/15bb152d77b21318514a96f43af312635eb2500c96b55398d020c93d86ea/importlib_metadata-9.0.0.tar.gz", hash = "sha256:a4f57ab599e6a2e3016d7595cfd72eb4661a5106e787a95bcc90c7105b831efc", size = 56405, upload-time = "2026-03-20T06:42:56.999Z" }
1094
1094
  wheels = [
@@ -2564,7 +2564,7 @@ wheels = [
2564
2564
 
2565
2565
  [[package]]
2566
2566
  name = "pyobs-gui"
2567
- version = "2.6.2"
2567
+ version = "2.6.3"
2568
2568
  source = { editable = "." }
2569
2569
  dependencies = [
2570
2570
  { name = "astroplan" },
@@ -3152,23 +3152,23 @@ resolution-markers = [
3152
3152
  "python_full_version < '3.12' and sys_platform != 'emscripten' and sys_platform != 'win32'",
3153
3153
  ]
3154
3154
  dependencies = [
3155
- { name = "alabaster" },
3156
- { name = "babel" },
3157
- { name = "colorama", marker = "sys_platform == 'win32'" },
3158
- { name = "docutils" },
3159
- { name = "imagesize" },
3160
- { name = "jinja2" },
3161
- { name = "packaging" },
3162
- { name = "pygments" },
3163
- { name = "requests" },
3164
- { name = "roman-numerals" },
3165
- { name = "snowballstemmer" },
3166
- { name = "sphinxcontrib-applehelp" },
3167
- { name = "sphinxcontrib-devhelp" },
3168
- { name = "sphinxcontrib-htmlhelp" },
3169
- { name = "sphinxcontrib-jsmath" },
3170
- { name = "sphinxcontrib-qthelp" },
3171
- { name = "sphinxcontrib-serializinghtml" },
3155
+ { name = "alabaster", marker = "python_full_version < '3.12'" },
3156
+ { name = "babel", marker = "python_full_version < '3.12'" },
3157
+ { name = "colorama", marker = "python_full_version < '3.12' and sys_platform == 'win32'" },
3158
+ { name = "docutils", marker = "python_full_version < '3.12'" },
3159
+ { name = "imagesize", marker = "python_full_version < '3.12'" },
3160
+ { name = "jinja2", marker = "python_full_version < '3.12'" },
3161
+ { name = "packaging", marker = "python_full_version < '3.12'" },
3162
+ { name = "pygments", marker = "python_full_version < '3.12'" },
3163
+ { name = "requests", marker = "python_full_version < '3.12'" },
3164
+ { name = "roman-numerals", marker = "python_full_version < '3.12'" },
3165
+ { name = "snowballstemmer", marker = "python_full_version < '3.12'" },
3166
+ { name = "sphinxcontrib-applehelp", marker = "python_full_version < '3.12'" },
3167
+ { name = "sphinxcontrib-devhelp", marker = "python_full_version < '3.12'" },
3168
+ { name = "sphinxcontrib-htmlhelp", marker = "python_full_version < '3.12'" },
3169
+ { name = "sphinxcontrib-jsmath", marker = "python_full_version < '3.12'" },
3170
+ { name = "sphinxcontrib-qthelp", marker = "python_full_version < '3.12'" },
3171
+ { name = "sphinxcontrib-serializinghtml", marker = "python_full_version < '3.12'" },
3172
3172
  ]
3173
3173
  sdist = { url = "https://files.pythonhosted.org/packages/42/50/a8c6ccc36d5eacdfd7913ddccd15a9cee03ecafc5ee2bc40e1f168d85022/sphinx-9.0.4.tar.gz", hash = "sha256:594ef59d042972abbc581d8baa577404abe4e6c3b04ef61bd7fc2acbd51f3fa3", size = 8710502, upload-time = "2025-12-04T07:45:27.343Z" }
3174
3174
  wheels = [
@@ -3191,23 +3191,23 @@ resolution-markers = [
3191
3191
  "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'",
3192
3192
  ]
3193
3193
  dependencies = [
3194
- { name = "alabaster" },
3195
- { name = "babel" },
3196
- { name = "colorama", marker = "sys_platform == 'win32'" },
3197
- { name = "docutils" },
3198
- { name = "imagesize" },
3199
- { name = "jinja2" },
3200
- { name = "packaging" },
3201
- { name = "pygments" },
3202
- { name = "requests" },
3203
- { name = "roman-numerals" },
3204
- { name = "snowballstemmer" },
3205
- { name = "sphinxcontrib-applehelp" },
3206
- { name = "sphinxcontrib-devhelp" },
3207
- { name = "sphinxcontrib-htmlhelp" },
3208
- { name = "sphinxcontrib-jsmath" },
3209
- { name = "sphinxcontrib-qthelp" },
3210
- { name = "sphinxcontrib-serializinghtml" },
3194
+ { name = "alabaster", marker = "python_full_version >= '3.12'" },
3195
+ { name = "babel", marker = "python_full_version >= '3.12'" },
3196
+ { name = "colorama", marker = "python_full_version >= '3.12' and sys_platform == 'win32'" },
3197
+ { name = "docutils", marker = "python_full_version >= '3.12'" },
3198
+ { name = "imagesize", marker = "python_full_version >= '3.12'" },
3199
+ { name = "jinja2", marker = "python_full_version >= '3.12'" },
3200
+ { name = "packaging", marker = "python_full_version >= '3.12'" },
3201
+ { name = "pygments", marker = "python_full_version >= '3.12'" },
3202
+ { name = "requests", marker = "python_full_version >= '3.12'" },
3203
+ { name = "roman-numerals", marker = "python_full_version >= '3.12'" },
3204
+ { name = "snowballstemmer", marker = "python_full_version >= '3.12'" },
3205
+ { name = "sphinxcontrib-applehelp", marker = "python_full_version >= '3.12'" },
3206
+ { name = "sphinxcontrib-devhelp", marker = "python_full_version >= '3.12'" },
3207
+ { name = "sphinxcontrib-htmlhelp", marker = "python_full_version >= '3.12'" },
3208
+ { name = "sphinxcontrib-jsmath", marker = "python_full_version >= '3.12'" },
3209
+ { name = "sphinxcontrib-qthelp", marker = "python_full_version >= '3.12'" },
3210
+ { name = "sphinxcontrib-serializinghtml", marker = "python_full_version >= '3.12'" },
3211
3211
  ]
3212
3212
  sdist = { url = "https://files.pythonhosted.org/packages/cd/bd/f08eb0f4eed5c83f1ba2a3bd18f7745a2b1525fad70660a1c00224ec468a/sphinx-9.1.0.tar.gz", hash = "sha256:7741722357dd75f8190766926071fed3bdc211c74dd2d7d4df5404da95930ddb", size = 8718324, upload-time = "2025-12-31T15:09:27.646Z" }
3213
3213
  wheels = [
@@ -3306,13 +3306,13 @@ resolution-markers = [
3306
3306
  "python_full_version < '3.12' and sys_platform != 'emscripten' and sys_platform != 'win32'",
3307
3307
  ]
3308
3308
  dependencies = [
3309
- { name = "astropy" },
3310
- { name = "fsspec" },
3311
- { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" } },
3312
- { name = "packaging" },
3313
- { name = "parfive", extra = ["ftp"] },
3314
- { name = "pyerfa" },
3315
- { name = "requests" },
3309
+ { name = "astropy", marker = "python_full_version < '3.12'" },
3310
+ { name = "fsspec", marker = "python_full_version < '3.12'" },
3311
+ { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" },
3312
+ { name = "packaging", marker = "python_full_version < '3.12'" },
3313
+ { name = "parfive", extra = ["ftp"], marker = "python_full_version < '3.12'" },
3314
+ { name = "pyerfa", marker = "python_full_version < '3.12'" },
3315
+ { name = "requests", marker = "python_full_version < '3.12'" },
3316
3316
  ]
3317
3317
  sdist = { url = "https://files.pythonhosted.org/packages/01/56/a6e6392761060a33f583fa60dc9d1d8e6505fc54d76d951755b5ffc45eb6/sunpy-7.0.5.tar.gz", hash = "sha256:164074dacfdf72db2de6db80cea6897b5e9285db38c50a0e841c6b0548ec4020", size = 4428203, upload-time = "2026-03-26T11:02:04.306Z" }
3318
3318
  wheels = [
@@ -3339,13 +3339,13 @@ resolution-markers = [
3339
3339
  "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'",
3340
3340
  ]
3341
3341
  dependencies = [
3342
- { name = "astropy" },
3343
- { name = "fsspec" },
3344
- { name = "numpy", version = "2.5.2", source = { registry = "https://pypi.org/simple" } },
3345
- { name = "packaging" },
3346
- { name = "parfive", extra = ["ftp"] },
3347
- { name = "pyerfa" },
3348
- { name = "requests" },
3342
+ { name = "astropy", marker = "python_full_version >= '3.12'" },
3343
+ { name = "fsspec", marker = "python_full_version >= '3.12'" },
3344
+ { name = "numpy", version = "2.5.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" },
3345
+ { name = "packaging", marker = "python_full_version >= '3.12'" },
3346
+ { name = "parfive", extra = ["ftp"], marker = "python_full_version >= '3.12'" },
3347
+ { name = "pyerfa", marker = "python_full_version >= '3.12'" },
3348
+ { name = "requests", marker = "python_full_version >= '3.12'" },
3349
3349
  ]
3350
3350
  sdist = { url = "https://files.pythonhosted.org/packages/5d/31/3b52f449b352bd78dda65635ca5127e1dbf90c516abb8109d62b30a27149/sunpy-8.0.0.tar.gz", hash = "sha256:a675c184d5dbe455495242e446e7c10db0bbe78bbed8920e327d293ae1fb689d", size = 4962896, upload-time = "2026-06-30T12:08:18.355Z" }
3351
3351
  wheels = [
@@ -3455,7 +3455,7 @@ name = "winrt-runtime"
3455
3455
  version = "3.2.1"
3456
3456
  source = { registry = "https://pypi.org/simple" }
3457
3457
  dependencies = [
3458
- { name = "typing-extensions" },
3458
+ { name = "typing-extensions", marker = "sys_platform == 'win32'" },
3459
3459
  ]
3460
3460
  sdist = { url = "https://files.pythonhosted.org/packages/16/dd/acdd527c1d890c8f852cc2af644aa6c160974e66631289420aa871b05e65/winrt_runtime-3.2.1.tar.gz", hash = "sha256:c8dca19e12b234ae6c3dadf1a4d0761b51e708457492c13beb666556958801ea", size = 21721, upload-time = "2025-06-06T14:40:27.593Z" }
3461
3461
  wheels = [
@@ -3478,7 +3478,7 @@ name = "winrt-windows-applicationmodel-core"
3478
3478
  version = "3.2.1"
3479
3479
  source = { registry = "https://pypi.org/simple" }
3480
3480
  dependencies = [
3481
- { name = "winrt-runtime" },
3481
+ { name = "winrt-runtime", marker = "sys_platform == 'win32'" },
3482
3482
  ]
3483
3483
  sdist = { url = "https://files.pythonhosted.org/packages/24/0d/3ae880680ba3da0fe062f7a4785b955bab331ae45fd8941c7be55e12e005/winrt_windows_applicationmodel_core-3.2.1.tar.gz", hash = "sha256:7cd21a4a7e25b099703a607f17ce804b5166cdf6444437440590fafea990fb46", size = 13656, upload-time = "2025-06-06T14:40:46.98Z" }
3484
3484
  wheels = [
@@ -3501,7 +3501,7 @@ name = "winrt-windows-data-xml-dom"
3501
3501
  version = "3.2.1"
3502
3502
  source = { registry = "https://pypi.org/simple" }
3503
3503
  dependencies = [
3504
- { name = "winrt-runtime" },
3504
+ { name = "winrt-runtime", marker = "sys_platform == 'win32'" },
3505
3505
  ]
3506
3506
  sdist = { url = "https://files.pythonhosted.org/packages/cc/11/6b1e59abf5f8f0cba1fee13447c9d077d144332b9b664bb236fdfa878558/winrt_windows_data_xml_dom-3.2.1.tar.gz", hash = "sha256:db81f5956bf63ce8c9d8bfb6d0794ab2849f26e62a6256b833af8de3d6451399", size = 50032, upload-time = "2025-06-06T14:41:15.877Z" }
3507
3507
  wheels = [
@@ -3524,7 +3524,7 @@ name = "winrt-windows-foundation"
3524
3524
  version = "3.2.1"
3525
3525
  source = { registry = "https://pypi.org/simple" }
3526
3526
  dependencies = [
3527
- { name = "winrt-runtime" },
3527
+ { name = "winrt-runtime", marker = "sys_platform == 'win32'" },
3528
3528
  ]
3529
3529
  sdist = { url = "https://files.pythonhosted.org/packages/0c/55/098ce7ea0679efcc1298b269c48768f010b6c68f90c588f654ec874c8a74/winrt_windows_foundation-3.2.1.tar.gz", hash = "sha256:ad2f1fcaa6c34672df45527d7c533731fdf65b67c4638c2b4aca949f6eec0656", size = 30485, upload-time = "2025-06-06T14:41:53.344Z" }
3530
3530
  wheels = [
@@ -3547,7 +3547,7 @@ name = "winrt-windows-foundation-collections"
3547
3547
  version = "3.2.1"
3548
3548
  source = { registry = "https://pypi.org/simple" }
3549
3549
  dependencies = [
3550
- { name = "winrt-runtime" },
3550
+ { name = "winrt-runtime", marker = "sys_platform == 'win32'" },
3551
3551
  ]
3552
3552
  sdist = { url = "https://files.pythonhosted.org/packages/ef/62/d21e3f1eeb8d47077887bbf0c3882c49277a84d8f98f7c12bda64d498a07/winrt_windows_foundation_collections-3.2.1.tar.gz", hash = "sha256:0eff1ad0d8d763ad17e9e7bbd0c26a62b27215016393c05b09b046d6503ae6d5", size = 16043, upload-time = "2025-06-06T14:41:53.983Z" }
3553
3553
  wheels = [
@@ -3570,7 +3570,7 @@ name = "winrt-windows-ui-notifications"
3570
3570
  version = "3.2.1"
3571
3571
  source = { registry = "https://pypi.org/simple" }
3572
3572
  dependencies = [
3573
- { name = "winrt-runtime" },
3573
+ { name = "winrt-runtime", marker = "sys_platform == 'win32'" },
3574
3574
  ]
3575
3575
  sdist = { url = "https://files.pythonhosted.org/packages/fc/f9/4798657fd6999e6dae2c84876b40e91873ccd5f056b27c40ebd7f4ff11d8/winrt_windows_ui_notifications-3.2.1.tar.gz", hash = "sha256:eb29bf1c3306f3ceabd71d092b5505d5fe73fbc0660347dcc63ebc4204d34d21", size = 28942, upload-time = "2025-06-06T14:43:54.629Z" }
3576
3576
  wheels = [
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
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