pyobs-gui 2.6.0__tar.gz → 2.6.2__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.
- pyobs_gui-2.6.2/CHANGELOG.md +910 -0
- pyobs_gui-2.6.2/CONTRIBUTING.md +35 -0
- pyobs_gui-2.6.2/PKG-INFO +60 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyproject.toml +9 -2
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/uv.lock +69 -452
- pyobs_gui-2.6.0/CHANGELOG.rst +0 -2
- pyobs_gui-2.6.0/PKG-INFO +0 -26
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/.claude/skills/verify/SKILL.md +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/.github/dependabot.yml +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/.github/workflows/dependabot-automerge.yml +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/.github/workflows/pypi.yml +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/.github/workflows/pyrefly.yml +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/.github/workflows/ruff.yml +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/.gitignore +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/.pre-commit-config.yaml +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/.readthedocs.yml +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/CLAUDE.md +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/LICENSE +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/README.md +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/bin/mypyuic5 +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/docs/Makefile +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/docs/make.bat +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/docs/requirements.txt +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/docs/source/_static/pyobs.gif +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/docs/source/conf.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/docs/source/index.rst +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/mypy.ini +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/__init__.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/__main__.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/_nuitka_astropy_patch.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/accounts.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/acquisitionwidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/autofocuswidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/autoguidingwidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/base.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/camerawidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/commandinputwidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/compassmovewidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/coolingwidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/datadisplaywidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/eventswidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/filterwidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/fitsheaderswidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/focuswidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/gui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/guisignals.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/livestream.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/login.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/loginwindow.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/logmodel.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/mainwindow.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/modewidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/modifiedmixin.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/modulegui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/movestack.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/notificationmanager.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/notifications.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/notifier.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/notifier_backend.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/nowheelfilter.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/__init__.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/acquisitionwidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/acquisitionwidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/autofocuswidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/autofocuswidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/autoguidingwidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/autoguidingwidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/camerawidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/camerawidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/compassmoveplugin.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/compassmovewidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/compassmovewidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/compassmovewidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/compile.sh +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/coolingwidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/coolingwidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/datadisplayplugin.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/datadisplaywidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/datadisplaywidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/designer.sh +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/eventswidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/eventswidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/filterwidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/filterwidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/fitsheaderswidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/fitsheaderswidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/focuswidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/focuswidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/mainwindow.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/mainwindow_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/modewidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/modewidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/resources/arrow-alt-circle-down-solid.svg +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/resources/arrow-alt-circle-left-solid.svg +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/resources/arrow-alt-circle-right-solid.svg +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/resources/arrow-alt-circle-up-solid.svg +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/resources/arrow-up-right-from-square-solid.svg +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/resources/arrows-to-eye-solid.svg +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/resources/chart-line-solid.svg +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/resources/circle-question-solid.svg +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/resources/cloud-sun-solid.svg +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/resources/edit-solid.svg +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/resources/search-solid.svg +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/resources/undo-solid.svg +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/resources.qrc +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/resources_rc.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/roboticwidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/roboticwidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/roofwidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/roofwidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/schedulewidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/schedulewidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/shellwidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/shellwidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/spectrographwidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/spectrographwidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/telescopewidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/telescopewidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/temperaturesplotwidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/temperaturesplotwidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/temperatureswidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/temperatureswidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/videograbwidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/videograbwidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/videowidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/videowidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/weatherwidget.ui +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/qt/weatherwidget_ui.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/roboticwidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/roofwidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/schedulewidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/settings.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/settingsdialog.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/shellwidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/spectrographwidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/statuswidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/structuredconfigwidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/telescopewidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/temperaturesplotwidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/temperatureswidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/utils.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/videograbwidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/videowidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/watchedlabel.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/weatherwidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pyobs_gui/windows_identity.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/pysidedeploy.spec +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/specs/2026-08-20-gui-remote-call-error-handling.md +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/specs/2026-08-21-gui-widget-startup-responsiveness.md +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/specs/2026-08-28-gui-main-vs-sidebar-widgets.md +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/specs/2026-08-28-structuredconfig-widget.md +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/specs/2026-08-31-irobotic-widgets.md +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/specs/2026-09-01-gui-video-widget-split.md +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/specs/2026-09-14-fitswidget-toolbar-overflow.md +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/specs/2026-09-14-stacked-widget-scroll-fallback.md +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/specs/2026-09-29-live-view-mjpeg-raw.md +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/specs/2026-10-04-desktop-notifications.md +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/specs/2026-10-04-settings-dialog.md +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/specs/index.md +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/specs/plans/2026-10-04-desktop-notifications.md +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/specs/plans/2026-10-04-settings-dialog.md +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/specs/plans/index.md +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/spike_standalone/main.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/spike_standalone/pysidedeploy.spec +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/test/acquisition.yaml +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/test/autofocus.yaml +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/test/camera.yaml +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/test/full.yaml +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/test/guiding.yaml +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/test/mode.yaml +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/test/robotic.yaml +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/test/roof.yaml +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/test/spectrograph.yaml +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/test/structuredconfig.yaml +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/test/telescope.yaml +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/test/telescope_acl.yaml +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/test/telescope_acl_denied.yaml +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/test/video.yaml +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/__init__.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/conftest.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_accounts.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_basewidget_discard.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_camerawidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_gui_notifications.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_import_order.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_livestream.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_loginwindow.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_mainwindow_startup.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_missing_vfs_root.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_modewidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_multiwidget_pages.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_notificationmanager.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_notifications.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_notifier_backend.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_roboticwidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_schedulewidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_settings.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_settingsdialog.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_spectrographwidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_structuredconfigwidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_video_refresh.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_videograbwidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_videowidget.py +0 -0
- {pyobs_gui-2.6.0 → pyobs_gui-2.6.2}/tests/test_windows_identity.py +0 -0
|
@@ -0,0 +1,910 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project are documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
Entries for releases before this file existed were generated from commit subjects.
|
|
9
|
+
|
|
10
|
+
## [2.6.1] - 2026-10-04
|
|
11
|
+
|
|
12
|
+
- Require pyobs-core 2.14.0, which has the slimmed base dependencies
|
|
13
|
+
|
|
14
|
+
## [2.6.0] - 2026-10-04
|
|
15
|
+
|
|
16
|
+
- Declare astroquery, imported directly by telescopewidget
|
|
17
|
+
- Fix live view test: write the JPEG stand-in via a file
|
|
18
|
+
- Fix pyrefly errors in the live view
|
|
19
|
+
- Require qfitswidget>=1.2.0 (QImageWidget)
|
|
20
|
+
- Live view: use qfitswidget's QImageWidget for the stretch/cuts controls
|
|
21
|
+
- Skip hideEvent task when no event loop is running
|
|
22
|
+
- Slim dependencies: sunpy without extras, pyside6-essentials, declare pandas
|
|
23
|
+
- docs: settings and desktop notifications user docs, plan and status updates (#168)
|
|
24
|
+
- Add test notification button to the settings dialog (#168)
|
|
25
|
+
- docs: desktop notifications plan, KDE live check done
|
|
26
|
+
- Import pydantic before PySide6 so pyobs <config> can load pyobs_gui
|
|
27
|
+
- docs: desktop notifications plan, step 4 done
|
|
28
|
+
- Add NotificationManager and wire desktop notifications into the GUI (#168)
|
|
29
|
+
- docs: desktop notifications plan, step 3 done except Windows COM check
|
|
30
|
+
- Add desktop-notifier backend, failure guard and Windows app identity (#168)
|
|
31
|
+
- docs: desktop notifications plan, step 2 done
|
|
32
|
+
- Add Notifier protocol and NotificationPolicy for desktop notifications (#168)
|
|
33
|
+
- docs: drop packaging from the notification spike (standalone binary was rejected)
|
|
34
|
+
- docs: record Windows notification spike result and app identity (#168)
|
|
35
|
+
- docs: record KDE and GNOME notification spike results (#168)
|
|
36
|
+
- docs: plan for desktop notifications (#168)
|
|
37
|
+
- docs: design for desktop notifications (#168)
|
|
38
|
+
- Require pyobs-core 2.13.5 for VirtualFileSystem.set_roots()
|
|
39
|
+
- docs: settings dialog plan, step 5 and settings path
|
|
40
|
+
- Add standalone settings dialog (notifications, VFS roots) and wire settings into GUI
|
|
41
|
+
- docs: settings dialog plan, step 4 progress
|
|
42
|
+
- VideoWidget: re-resolve stream URLs when the settings change
|
|
43
|
+
- docs: tick settings dialog plan step 3
|
|
44
|
+
- Add GUI settings schema, per-account SettingsStore and notifications config
|
|
45
|
+
- docs: settings dialog audit findings and #185 plan status
|
|
46
|
+
- Show a clear error when a VFS root is not configured (#185)
|
|
47
|
+
- docs: design and plan for settings schema, YAML config and standalone settings dialog
|
|
48
|
+
- Live view: choose MJPEG (server stretch) or raw stream (client stretch)
|
|
49
|
+
- Fix pyrefly bad-override in test_basewidget_discard
|
|
50
|
+
|
|
51
|
+
## [2.5.3] - 2026-09-29
|
|
52
|
+
|
|
53
|
+
- Require pyobs-core>=2.13.0
|
|
54
|
+
|
|
55
|
+
## [2.5.2] - 2026-09-29
|
|
56
|
+
|
|
57
|
+
- Discard embedded child widgets, e.g. DataDisplayWidget
|
|
58
|
+
- specs: reference pyobs-core BaseVideo live-view design
|
|
59
|
+
|
|
60
|
+
## [2.5.1] - 2026-09-23
|
|
61
|
+
|
|
62
|
+
- Maintenance release (dependency and metadata updates only).
|
|
63
|
+
|
|
64
|
+
## [2.5.0] - 2026-09-17
|
|
65
|
+
|
|
66
|
+
- feat: prefer server-side IDataSequence sequences in SpectrographWidget
|
|
67
|
+
- docs: fitswidget-toolbar-overflow released -- qfitswidget v1.1.3, pyobs-gui v2.4.2
|
|
68
|
+
|
|
69
|
+
## [2.4.2] - 2026-09-15
|
|
70
|
+
|
|
71
|
+
- Fix sidebar min/max width bug that clipped real (non-sparse) content
|
|
72
|
+
- Fix sidebar-toggle icon direction: point where the click will move it, not current state
|
|
73
|
+
- Wrap stackedWidget in a QScrollArea as a general width/height-floor fallback
|
|
74
|
+
- Add plan: QScrollArea fallback around stackedWidget
|
|
75
|
+
- ModulePage: give the sidebar a real minimum width, plus a collapse toggle
|
|
76
|
+
- TelescopeWidget: size the move-type stack to the current page, wrap long form rows
|
|
77
|
+
- docs: gui-standalone-binary rejected -- real build came out several GB
|
|
78
|
+
- Suppress spurious astropy do_format RuntimeWarning in telescope widget
|
|
79
|
+
- Add CLAUDE.md entry point pointing to specs/ conventions and tooling
|
|
80
|
+
|
|
81
|
+
## [2.4.1] - 2026-09-04
|
|
82
|
+
|
|
83
|
+
- Fix pyobs-core floor: ConfigFieldSchema.description needs >=2.7.2, not 2.7.1
|
|
84
|
+
|
|
85
|
+
## [2.4.0] - 2026-09-04
|
|
86
|
+
|
|
87
|
+
- feat: show field description below the input widget
|
|
88
|
+
- feat: hide EXPERT fields instead of disabling them
|
|
89
|
+
|
|
90
|
+
## [2.3.1] - 2026-09-04
|
|
91
|
+
|
|
92
|
+
- bumped core pin
|
|
93
|
+
- feat: basic/expert field visibility in StructuredConfigWidget
|
|
94
|
+
- Close out main-vs-sidebar-widgets plan: issue #150 closed, released v2.3.0
|
|
95
|
+
- Close out video-widget-split doc with release refs
|
|
96
|
+
|
|
97
|
+
## [2.3.0] - 2026-09-03
|
|
98
|
+
|
|
99
|
+
- Fix ModeWidget's edit button staying permanently disabled without IMotion
|
|
100
|
+
- Fix CameraWidget control panel clipping its right edge
|
|
101
|
+
- Split VideoWidget into two independent main widgets, no sidebar pairing needed
|
|
102
|
+
|
|
103
|
+
## [2.2.0] - 2026-09-03
|
|
104
|
+
|
|
105
|
+
- fix: build matplotlib figures via the OO API, not pyplot
|
|
106
|
+
- fix: gate camera/roof widget state subscriptions on interface support
|
|
107
|
+
- fix: drop stale top-level name: field from test/*.yaml fixtures
|
|
108
|
+
- test: add structuredconfig.yaml fixture for manual StructuredConfigWidget verification
|
|
109
|
+
- feat: generic IStructuredConfig widget, schema-driven config form (#154)
|
|
110
|
+
- docs: mark main-vs-sidebar-widgets plan implemented (#150, PR #157)
|
|
111
|
+
- feat: make ModulePage sidebar vertically scrollable
|
|
112
|
+
- fix: align FitsHeadersWidget sidebar box with Temperatures/Cooling
|
|
113
|
+
- fix: address PR #157 review findings 1-5 plus nits
|
|
114
|
+
- fix: gate FitsHeadersWidget to ICamera/IVideo, not every module
|
|
115
|
+
- docs: document main/sidebar widgets and widgets:/sidebar: config contract
|
|
116
|
+
- Add tests for multi-widget pages and the new MAIN_WIDGETS registry
|
|
117
|
+
- Implement main-vs-sidebar widget registry and tab pages (#150)
|
|
118
|
+
- docs(specs): fix double-tab and invisible-sidebar bugs in #150 plan, add VideoWidget split follow-up
|
|
119
|
+
- docs: mark irobotic-widgets plan implemented/closed (#825, PR #155)
|
|
120
|
+
- Re-enable whole-row selection in ScheduleWidget table
|
|
121
|
+
- Hide row headers and disable focus/selection rect in ScheduleWidget table
|
|
122
|
+
- Cap autonomous-warning label height; use equal-width stretched columns
|
|
123
|
+
- Auto-size ScheduleWidget columns; raise test config's blocked_probability
|
|
124
|
+
- Add RoboticWidget/ScheduleWidget for IRobotic/IRoboticScheduler (#825)
|
|
125
|
+
- docs: plan RoboticWidget/ScheduleWidget for IRobotic/IRoboticScheduler (#825)
|
|
126
|
+
- docs: fix stale irobotic.md status in specs index
|
|
127
|
+
- docs(specs): add main vs. sidebar widget tab-pages plan (issue #150)
|
|
128
|
+
- docs(specs): add generic IStructuredConfig widget plan (issue #154)
|
|
129
|
+
- fix: make _nuitka_astropy_patch a no-op outside Nuitka builds (fixes #151) (#152)
|
|
130
|
+
- Require stable pyobs-core>=2.0.0
|
|
131
|
+
- Add Dependabot auto-merge workflow
|
|
132
|
+
- Drop Sphinx <9/sphinx-rtd-theme <4 caps to match the rest of the fleet
|
|
133
|
+
- Add widget catalog and keyboard shortcuts to docs, rewrite README
|
|
134
|
+
- feat(videowidget): send Authorization header on raw-socket MJPEG stream (#142)
|
|
135
|
+
- docs: mark widget startup responsiveness plan implemented, closed
|
|
136
|
+
- feat: make module widgets appear and respond immediately at startup (#141)
|
|
137
|
+
- Index the BaseVideo HTTP token-auth plan from pyobs-core
|
|
138
|
+
- docs: address review findings in widget startup plan
|
|
139
|
+
- docs: fix widget startup plan's placeholder-swap bug, harden teardown
|
|
140
|
+
|
|
141
|
+
## [2.1.0] - 2026-09-01
|
|
142
|
+
|
|
143
|
+
- fix: drop stale top-level name: field from test/*.yaml fixtures
|
|
144
|
+
- test: add structuredconfig.yaml fixture for manual StructuredConfigWidget verification
|
|
145
|
+
- feat: generic IStructuredConfig widget, schema-driven config form (#154)
|
|
146
|
+
- docs: mark main-vs-sidebar-widgets plan implemented (#150, PR #157)
|
|
147
|
+
- feat: make ModulePage sidebar vertically scrollable
|
|
148
|
+
- fix: align FitsHeadersWidget sidebar box with Temperatures/Cooling
|
|
149
|
+
- fix: address PR #157 review findings 1-5 plus nits
|
|
150
|
+
- fix: gate FitsHeadersWidget to ICamera/IVideo, not every module
|
|
151
|
+
- docs: document main/sidebar widgets and widgets:/sidebar: config contract
|
|
152
|
+
- Add tests for multi-widget pages and the new MAIN_WIDGETS registry
|
|
153
|
+
- Implement main-vs-sidebar widget registry and tab pages (#150)
|
|
154
|
+
- docs(specs): fix double-tab and invisible-sidebar bugs in #150 plan, add VideoWidget split follow-up
|
|
155
|
+
- docs: mark irobotic-widgets plan implemented/closed (#825, PR #155)
|
|
156
|
+
- Re-enable whole-row selection in ScheduleWidget table
|
|
157
|
+
- Hide row headers and disable focus/selection rect in ScheduleWidget table
|
|
158
|
+
- Cap autonomous-warning label height; use equal-width stretched columns
|
|
159
|
+
- Auto-size ScheduleWidget columns; raise test config's blocked_probability
|
|
160
|
+
- Add RoboticWidget/ScheduleWidget for IRobotic/IRoboticScheduler (#825)
|
|
161
|
+
- docs: plan RoboticWidget/ScheduleWidget for IRobotic/IRoboticScheduler (#825)
|
|
162
|
+
- docs: fix stale irobotic.md status in specs index
|
|
163
|
+
- docs(specs): add main vs. sidebar widget tab-pages plan (issue #150)
|
|
164
|
+
- docs(specs): add generic IStructuredConfig widget plan (issue #154)
|
|
165
|
+
|
|
166
|
+
## [2.0.1] - 2026-08-28
|
|
167
|
+
|
|
168
|
+
- fix: make _nuitka_astropy_patch a no-op outside Nuitka builds (fixes #151) (#152)
|
|
169
|
+
|
|
170
|
+
## [2.0.0] - 2026-08-26
|
|
171
|
+
|
|
172
|
+
- Require stable pyobs-core>=2.0.0
|
|
173
|
+
- Add Dependabot auto-merge workflow
|
|
174
|
+
- Drop Sphinx <9/sphinx-rtd-theme <4 caps to match the rest of the fleet
|
|
175
|
+
- Add widget catalog and keyboard shortcuts to docs, rewrite README
|
|
176
|
+
- feat(videowidget): send Authorization header on raw-socket MJPEG stream (#142)
|
|
177
|
+
- docs: mark widget startup responsiveness plan implemented, closed
|
|
178
|
+
- feat: make module widgets appear and respond immediately at startup (#141)
|
|
179
|
+
- Index the BaseVideo HTTP token-auth plan from pyobs-core
|
|
180
|
+
- docs: address review findings in widget startup plan
|
|
181
|
+
- docs: fix widget startup plan's placeholder-swap bug, harden teardown
|
|
182
|
+
- docs: add widget startup responsiveness plan
|
|
183
|
+
- Fix MJPEG live view through TLS reverse proxy
|
|
184
|
+
- docs: mark remote-call error-handling plan implemented, fix stale specs index
|
|
185
|
+
- Catch exceptions on remote method calls and show them in a messagebox (fixes #134) (#138)
|
|
186
|
+
- Fix VideoWidget to use VideoCapabilities.mjpeg instead of removed .video field
|
|
187
|
+
- Remove upper bound on Python version
|
|
188
|
+
- Fix sender name in DataDisplayWidget.grab_data
|
|
189
|
+
- Rename specs/README.md to index.md
|
|
190
|
+
- Add exposure count to SpectrographWidget
|
|
191
|
+
- Fix pre-existing pyrefly errors in weatherwidget and camerawidget test
|
|
192
|
+
- Fix image display in DataDisplayWidget
|
|
193
|
+
- Upgrade uv.lock to clear open Dependabot alerts
|
|
194
|
+
- Fix asyncio task reentrancy in focus widget dialogs
|
|
195
|
+
- Show 4 decimal digits for Heliprojective Radial Mu/Psi spin boxes
|
|
196
|
+
- Only use server-side IDataSequence sequences when broadcasting
|
|
197
|
+
- Stop forcing the Alt/Az offset plot to include the origin
|
|
198
|
+
- Type the PLY grammar namespace as Any to fix pyrefly CI failure
|
|
199
|
+
- Plot sensor history in WeatherWidget's reserved plot frame
|
|
200
|
+
- Move DEV_*.md design docs and DEVELOPMENT.md into pyobs-core/specs/
|
|
201
|
+
- Bundle package distribution metadata for importlib.metadata lookups
|
|
202
|
+
- Bundle slixmpp plugins, drop QtWebEngine from the standalone binary
|
|
203
|
+
- Build recipe for the standalone pyobs-gui binary
|
|
204
|
+
- Add pyobs-gui console script entry point
|
|
205
|
+
- Revert "v2.0.0.dev5"
|
|
206
|
+
- Enlarge nav sidebar and log panel defaults, swap clear-log icon to a trash bin
|
|
207
|
+
- Replace the client-select list with icon toolbuttons next to the log
|
|
208
|
+
- Fix shiboken crash from stale StatusWidget callbacks after logout
|
|
209
|
+
- Fetch telescope location from the module itself when no local observer exists
|
|
210
|
+
- Add a "logged in as" sidebar and standalone logout flow to MainWindow
|
|
211
|
+
- Standalone binary groundwork: pyside6-deploy spike and the login window (#116)
|
|
212
|
+
- Require pyobs-core>=2.0.0.dev48
|
|
213
|
+
- Point to the new pyobs-gui standalone-binary docs
|
|
214
|
+
- Read IRunning state instead of calling the removed is_running() RPC
|
|
215
|
+
- Fix ruff/pyrefly CI failures in weatherwidget and compassmovewidget
|
|
216
|
+
- Add pointer to pyobs-core for design/planning docs
|
|
217
|
+
- Replace custom widgets in CameraWidget UI with standard Qt widgets
|
|
218
|
+
- Revert camera widget to plain spin boxes, set all values in expose()
|
|
219
|
+
- Remove mypy dev dependency
|
|
220
|
+
- Fix live-view socket and grab_data call in VideoWidget
|
|
221
|
+
- Adopt PyobsError rename and bump pyobs-core to dev28
|
|
222
|
+
- Update test configs to use DummyAltAzTelescope instead of DummyTelescope
|
|
223
|
+
- Add TODO for PyObsError rename coming in pyobs-core
|
|
224
|
+
- Use IDataSequence for counted exposures, when available
|
|
225
|
+
- Discard widgets' event registrations on client disconnect
|
|
226
|
+
- Adapt WeatherWidget to new IWeather state-based interface, bump pyobs-core lock
|
|
227
|
+
- Wire up IPointingBody and IPointingHeliocentricPolar
|
|
228
|
+
- Wire up Orbit Elements tracking, gated on IPointingOrbitalElements
|
|
229
|
+
- Adapt TelescopeWidget to renamed IPointingHeliographicStonyhurst interface
|
|
230
|
+
- Add dependabot config to target develop branch
|
|
231
|
+
- Adapt ModeWidget to name-based IMode.set_mode group parameter
|
|
232
|
+
- Implement navbar keyboard shortcuts
|
|
233
|
+
- added dev file
|
|
234
|
+
- Add design doc for navbar keyboard shortcuts
|
|
235
|
+
- new dev document
|
|
236
|
+
- Redesign module sidebar: compact single-row items, section headers, resizable width
|
|
237
|
+
- Add offset-magnitude and lon/lat plots to AutoGuidingWidget, fix exposure-time pre-fill
|
|
238
|
+
- Follow AcquisitionResult/AcquisitionAttempt offset field consolidation, integer attempt ticks
|
|
239
|
+
- Add 2D offset trajectory plot to AcquisitionWidget
|
|
240
|
+
- Add AcquisitionWidget and AutoGuidingWidget
|
|
241
|
+
- Add AutoFocusWidget for IAutoFocus, wire up dummy test config
|
|
242
|
+
- Introduce design proposals for IAutoGuiding, IAutoFocus, and IAcquisition widgets
|
|
243
|
+
- Grey out actions denied by pyobs-core ACLs, hide fully-denied modules
|
|
244
|
+
- Document ACL follow-up options: reactive-only vs proactive greying-out
|
|
245
|
+
- Unsubscribe status widget presence callback when a module closes
|
|
246
|
+
- Note pyobs-core 2.0 ACL follow-up work in DEVELOPMENT.md
|
|
247
|
+
- Fix phantom state subscription for composite interfaces in status view
|
|
248
|
+
- Let clicking anywhere in a status row toggle expand/collapse
|
|
249
|
+
- Disable focus on status tree so clicks leave no focus rectangle
|
|
250
|
+
- Show module interfaces, capabilities and live state in status view
|
|
251
|
+
- Replace stale RPC calls with wait_for_state in CompassMoveWidget
|
|
252
|
+
- Update to pyobs-core 2.0.0.dev10, apply FitsHeaderEntry to fits header methods
|
|
253
|
+
- docs: add DEVELOPMENT.md with backlog and implementation details for pyobs-gui
|
|
254
|
+
- chore: update dependencies for astropy-iers-data and pyobs-core to latest versions
|
|
255
|
+
- refactor: reformat long conditionals in TelescopeWidget and EventsWidget for readability
|
|
256
|
+
- refactor: simplify module name check in FitsHeadersWidget
|
|
257
|
+
- refactor: remove unused Proxy import and use context managers for proxy handling in VideoWidget
|
|
258
|
+
- refactor: add type ignore comments for attribute definitions in TelescopeWidget
|
|
259
|
+
- refactor: remove unused Proxy import and update type hints in StatusWidget
|
|
260
|
+
- refactor: remove unused Proxy import and update type hints in SpectrographWidget
|
|
261
|
+
- refactor: remove unused Proxy import and update type hints in ShellWidget
|
|
262
|
+
- refactor: remove unused Proxy import and simplify module passing in ModuleWindow
|
|
263
|
+
- refactor: update type hints in ModeWidget and remove unused Proxy import
|
|
264
|
+
- refactor: use context managers for proxy handling in MainWindow to ensure proper cleanup and improve stability
|
|
265
|
+
- refactor: remove unused proxy imports and update type hints in EventsWidget
|
|
266
|
+
- refactor: use proxy-based capability checks and async operations for offset handling in CompassMoveWidget
|
|
267
|
+
- refactor: simplify state management by replacing interface-based checks with client state retrieval in BaseWidget
|
|
268
|
+
- refactor: remove deprecated property-based bindings in ModeWidget for cleaner state management
|
|
269
|
+
- refactor: remove unused imports in ModifiedMixin and DataDisplayWidget for cleanup
|
|
270
|
+
- refactor: replace interface-based state usage with explicit state classes across all widgets for improved clarity and maintainability
|
|
271
|
+
- docs: remove DEVELOPMENT.md as Phase 4 migration is complete and the document is no longer needed
|
|
272
|
+
- refactor: migrate ModeWidget to use capability-based mode handling and state subscriptions, improve UI logic and maintain backward compatibility
|
|
273
|
+
- refactor: update DEVELOPMENT.md to document DummyVideo addition, widget testing updates, and final Phase 4 status
|
|
274
|
+
- refactor: optimize VideoWidget with state subscriptions, interface caching, and improved VFS error handling; add widget testing configurations
|
|
275
|
+
- test: remove unused `shared.world` configuration from test YAML files
|
|
276
|
+
- fix: handle initialization of temperature data correctly, avoid issues with empty or uninitialized DataFrames
|
|
277
|
+
- fix: correct sender comparison in DataDisplayWidget to avoid false negatives
|
|
278
|
+
- refactor: update DEVELOPMENT.md to document required pyobs-core changes for MultiModule and GUI integration
|
|
279
|
+
- test: add configuration files for widget testing with dummy modules
|
|
280
|
+
- refactor: update DEVELOPMENT.md to reflect widget migration progress, clarify state subscription usage, and add testing details
|
|
281
|
+
- refactor: update DEVELOPMENT.md to mark widget migrations as complete and document final changes to state subscriptions and RPC interactions
|
|
282
|
+
- refactor: migrate video widget to state subscriptions, streamline UI updates, and remove event-based logic
|
|
283
|
+
- refactor: migrate temperatures widget to state subscriptions, streamline UI updates, and remove event-based logic
|
|
284
|
+
- refactor: migrate spectrograph widget to state subscriptions, streamline UI updates, and remove event-based logic
|
|
285
|
+
- refactor: migrate roof widget to state subscriptions, streamline UI updates, and remove event-based logic
|
|
286
|
+
- refactor: migrate mode widget to state subscriptions, streamline UI updates, and remove event-based logic
|
|
287
|
+
- refactor: migrate camera widget to state subscriptions, remove event-based logic, and streamline UI updates
|
|
288
|
+
- refactor: migrate telescope widget to state subscriptions, streamline UI updates, and remove legacy event-based logic
|
|
289
|
+
- refactor: use state subscriptions for focus widget, replace event-based logic, and streamline UI interactions
|
|
290
|
+
- docs: update DEVELOPMENT.md to reflect filter and motion state changes
|
|
291
|
+
- refactor: simplify filter widget by using state subscriptions and removing event-based logic
|
|
292
|
+
- docs: add development notes for pyobs-gui Phase 4 updates and API changes
|
|
293
|
+
- refactor: re-enable status widget and clean up commented-out code
|
|
294
|
+
- refactor: streamline status handling and UI updates, remove redundant state logic
|
|
295
|
+
- refactor: adjust full frame handling with updated capability structure
|
|
296
|
+
- use capabilities for full frame
|
|
297
|
+
- gain and window state integration, adjust UI alignment, refine exposure and data handling
|
|
298
|
+
- working on state implementation
|
|
299
|
+
- show current values and add dirty inputs
|
|
300
|
+
- use IWindow.State
|
|
301
|
+
- states
|
|
302
|
+
- gain state
|
|
303
|
+
- use intenral State
|
|
304
|
+
- CoolingWidget working
|
|
305
|
+
- ICooling to v2.0
|
|
306
|
+
- add pyrefly pre-commit hook
|
|
307
|
+
- add pyrefly GitHub Actions workflow
|
|
308
|
+
- fix more pyrefly type errors
|
|
309
|
+
- fixed path
|
|
310
|
+
- switch to ruff, add pyrefly, fix type errors
|
|
311
|
+
- to PySide6
|
|
312
|
+
- tidying up for ruff
|
|
313
|
+
- tidying up
|
|
314
|
+
- moved from flake8 to ruff
|
|
315
|
+
|
|
316
|
+
## [1.8.8] - 2026-07-09
|
|
317
|
+
|
|
318
|
+
- fix `textStatus` assignment to use `_motion_status` directly
|
|
319
|
+
|
|
320
|
+
## [1.8.7] - 2026-06-29
|
|
321
|
+
|
|
322
|
+
- postpone `butAbort` visibility setup until `open()` is called
|
|
323
|
+
|
|
324
|
+
## [1.8.6] - 2026-06-26
|
|
325
|
+
|
|
326
|
+
- fixed pyobs-core dependency version
|
|
327
|
+
|
|
328
|
+
## [1.8.5] - 2026-06-16
|
|
329
|
+
|
|
330
|
+
- Maintenance release (dependency and metadata updates only).
|
|
331
|
+
|
|
332
|
+
## [1.8.4] - 2026-06-16
|
|
333
|
+
|
|
334
|
+
- Maintenance release (dependency and metadata updates only).
|
|
335
|
+
|
|
336
|
+
## [1.8.3] - 2026-06-16
|
|
337
|
+
|
|
338
|
+
- Maintenance release (dependency and metadata updates only).
|
|
339
|
+
|
|
340
|
+
## [1.8.2] - 2026-06-16
|
|
341
|
+
|
|
342
|
+
- fix RA/Dec display: avoid Angle.to_string() incompatible with numpy 2.x
|
|
343
|
+
- guard against NaN RA/Dec from uninitialized telescope
|
|
344
|
+
|
|
345
|
+
## [1.8.1] - 2026-06-08
|
|
346
|
+
|
|
347
|
+
- don't use .value or .name on StrEnum
|
|
348
|
+
- MotionStatus is a StrEnum now, so no .value needed
|
|
349
|
+
- changed all Time imports from astropy.time to pyobs.utils.time.
|
|
350
|
+
|
|
351
|
+
## [1.8.0] - 2026-06-08
|
|
352
|
+
|
|
353
|
+
- new min pyobs version
|
|
354
|
+
- entry.time can no be in isot format
|
|
355
|
+
- formatting
|
|
356
|
+
- re-added future import
|
|
357
|
+
- changing old-style type hints to new style
|
|
358
|
+
- removed from __future__ import annotations everywhere
|
|
359
|
+
|
|
360
|
+
## [1.7.4] - 2026-05-29
|
|
361
|
+
|
|
362
|
+
- fixed attribs
|
|
363
|
+
|
|
364
|
+
## [1.7.3] - 2026-05-28
|
|
365
|
+
|
|
366
|
+
- upped min pyobs-core version
|
|
367
|
+
- changed underscore parameters for vfs, comm, etc
|
|
368
|
+
- renamed Object parameters (comm, observer, ...) to start with an underscore
|
|
369
|
+
|
|
370
|
+
## [1.7.0] - 2025-12-17
|
|
371
|
+
|
|
372
|
+
- faster startup by not waiting for all other clients first
|
|
373
|
+
- .
|
|
374
|
+
|
|
375
|
+
## [1.6.0] - 2025-12-04
|
|
376
|
+
|
|
377
|
+
- refactored shell command and its response into own classes
|
|
378
|
+
|
|
379
|
+
## [1.5.1] - 2025-12-01
|
|
380
|
+
|
|
381
|
+
- new qfitswidget and Qt6
|
|
382
|
+
- new qfitswidget
|
|
383
|
+
- reverted back to old method
|
|
384
|
+
- fixed bugs
|
|
385
|
+
- fixed sorting of clients
|
|
386
|
+
- clean up
|
|
387
|
+
- pyside6
|
|
388
|
+
- fixed uic errors
|
|
389
|
+
- pyside6 changes
|
|
390
|
+
- working on pyside6 change
|
|
391
|
+
- mypy
|
|
392
|
+
- cleaning up
|
|
393
|
+
- added some # type: ignore
|
|
394
|
+
- cleaning up for pyside6
|
|
395
|
+
- matplotlib
|
|
396
|
+
- resources
|
|
397
|
+
- initial conversion
|
|
398
|
+
- setting gain and offset separately
|
|
399
|
+
- log brightness and contrast
|
|
400
|
+
- return QVariant instead of empty string
|
|
401
|
+
- reconnect slots
|
|
402
|
+
- fixed simbad query
|
|
403
|
+
- fixed bug
|
|
404
|
+
- type hints
|
|
405
|
+
- BaseWidget.module() never returns None
|
|
406
|
+
- ignore types for self.setupUi(self)
|
|
407
|
+
- removed ignore
|
|
408
|
+
- ignore qt auto-generated files
|
|
409
|
+
- ignore astropy
|
|
410
|
+
- BaseWidget now inherits from QWidget
|
|
411
|
+
- removed file
|
|
412
|
+
|
|
413
|
+
## [1.5.0] - 2025-07-24
|
|
414
|
+
|
|
415
|
+
- Maintenance release (dependency and metadata updates only).
|
|
416
|
+
|
|
417
|
+
## [1.4.1] - 2025-07-24
|
|
418
|
+
|
|
419
|
+
- new lock file
|
|
420
|
+
|
|
421
|
+
## [1.4.0] - 2025-07-02
|
|
422
|
+
|
|
423
|
+
- pypi
|
|
424
|
+
- pypi actions
|
|
425
|
+
- removed slixmpp from deps, since it's already in pyobs-core
|
|
426
|
+
- dev deps
|
|
427
|
+
- pre-commit
|
|
428
|
+
- ran black
|
|
429
|
+
- ran flake
|
|
430
|
+
- added flake8
|
|
431
|
+
- working on poetry->uv migration
|
|
432
|
+
|
|
433
|
+
## [1.3.0] - 2025-05-08
|
|
434
|
+
|
|
435
|
+
- python version
|
|
436
|
+
|
|
437
|
+
## [1.2.0] - 2025-01-07
|
|
438
|
+
|
|
439
|
+
- since qfitswidget requires Python 3.10, this will also
|
|
440
|
+
- updated devs to latest version
|
|
441
|
+
|
|
442
|
+
## [1.1.0] - 2024-09-02
|
|
443
|
+
|
|
444
|
+
- ModeWidget working
|
|
445
|
+
- adding widgets
|
|
446
|
+
- working on ModeWidget
|
|
447
|
+
- datetime.utcnow() to datetime.utc(timezone.utc)
|
|
448
|
+
|
|
449
|
+
## [1.0.12] - 2024-07-08
|
|
450
|
+
|
|
451
|
+
- python 3.12
|
|
452
|
+
|
|
453
|
+
## [1.0.11] - 2024-03-21
|
|
454
|
+
|
|
455
|
+
- fixed docs
|
|
456
|
+
|
|
457
|
+
## [1.0.10] - 2023-10-09
|
|
458
|
+
|
|
459
|
+
- updated deps
|
|
460
|
+
- updating deps
|
|
461
|
+
- allow python 3.11
|
|
462
|
+
|
|
463
|
+
## [1.0.9] - 2023-09-12
|
|
464
|
+
|
|
465
|
+
- updating deps
|
|
466
|
+
- fixed roof buttons
|
|
467
|
+
|
|
468
|
+
## [1.0.8] - 2023-07-18
|
|
469
|
+
|
|
470
|
+
- fixed bug with Tx/Ty.degrees instead of .degree
|
|
471
|
+
|
|
472
|
+
## [1.0.7] - 2023-07-14
|
|
473
|
+
|
|
474
|
+
- fixed mupsi movement
|
|
475
|
+
|
|
476
|
+
## [1.0.6] - 2023-07-12
|
|
477
|
+
|
|
478
|
+
- removed debug output
|
|
479
|
+
- added icons to default config
|
|
480
|
+
- working on new default config for GUI
|
|
481
|
+
- added helper functions for getting required module from list
|
|
482
|
+
- all widgets now take a list of modules instead of a single one in their open method
|
|
483
|
+
- fixed bug
|
|
484
|
+
- changed default unit in GUI to arcsec, and in logic to degree
|
|
485
|
+
- renaming helioprojective to helioprojective mu/psi and added helioprojective radial
|
|
486
|
+
- getting pyobs fit for Python 3.11 that will ship with Debian 12
|
|
487
|
+
|
|
488
|
+
## [1.0.5] - 2023-03-22
|
|
489
|
+
|
|
490
|
+
- fixed bug
|
|
491
|
+
|
|
492
|
+
## [1.0.4] - 2023-03-07
|
|
493
|
+
|
|
494
|
+
- removed debug output
|
|
495
|
+
|
|
496
|
+
## [1.0.3] - 2023-03-07
|
|
497
|
+
|
|
498
|
+
- custom icons
|
|
499
|
+
- temperature plot
|
|
500
|
+
- changed cooling GUI
|
|
501
|
+
|
|
502
|
+
## [1.0.2] - 2022-11-29
|
|
503
|
+
|
|
504
|
+
- closing GUI
|
|
505
|
+
- set own_comm to False for module
|
|
506
|
+
- removed debug output
|
|
507
|
+
- added closeEvent
|
|
508
|
+
- made Module.name a property
|
|
509
|
+
- fixed bug
|
|
510
|
+
- GUI is shown
|
|
511
|
+
- widget for filter wheel
|
|
512
|
+
- working on local GUI for single module
|
|
513
|
+
|
|
514
|
+
## [1.0.0] - 2022-09-13
|
|
515
|
+
|
|
516
|
+
- updated dependencies
|
|
517
|
+
- added license
|
|
518
|
+
|
|
519
|
+
## [0.21.0] - 2022-08-25
|
|
520
|
+
|
|
521
|
+
- handle optional event parameters, closes #124
|
|
522
|
+
- store signature
|
|
523
|
+
- working on handling optional parameters better
|
|
524
|
+
- fixed focus buttons, closes #173
|
|
525
|
+
- updated dependencies
|
|
526
|
+
|
|
527
|
+
## [0.20.1] - 2022-07-28
|
|
528
|
+
|
|
529
|
+
- fixed layout
|
|
530
|
+
- always show vertical scrollbars in module list
|
|
531
|
+
- Instead of checking whether there are any autonomous modules, we are now checking whether those modules are actually running before displaying the warning message.
|
|
532
|
+
- default values for mu/psi
|
|
533
|
+
|
|
534
|
+
## [0.20.0] - 2022-06-27
|
|
535
|
+
|
|
536
|
+
- adaptions for new IData
|
|
537
|
+
- renamed get_cooling_status to get_cooling
|
|
538
|
+
- refactored ICamera/IVideo/ISpectrograph to use IData (formerly IImageGrabber) and IExposure (formerly part of ICamera and ISpectrograph)
|
|
539
|
+
|
|
540
|
+
## [0.19.4] - 2022-06-23
|
|
541
|
+
|
|
542
|
+
- cleaning up
|
|
543
|
+
- Create event loop from static method in module before instanciating the module
|
|
544
|
+
- test
|
|
545
|
+
- testing quit
|
|
546
|
+
|
|
547
|
+
## [0.19.3] - 2022-06-22
|
|
548
|
+
|
|
549
|
+
- fixed coordinate conversion for HELIOPROJECTIVE_RADIAL
|
|
550
|
+
- removed except blocks
|
|
551
|
+
- set update_task to None on hide
|
|
552
|
+
- replaced qtimer with asyncio task
|
|
553
|
+
|
|
554
|
+
## [0.19.2] - 2022-06-21
|
|
555
|
+
|
|
556
|
+
- make it work again
|
|
557
|
+
|
|
558
|
+
## [0.19.1] - 2022-06-21
|
|
559
|
+
|
|
560
|
+
- removed old icons
|
|
561
|
+
- use qtawesome for icons
|
|
562
|
+
- new icons
|
|
563
|
+
- icon alignment
|
|
564
|
+
|
|
565
|
+
## [0.19.0] - 2022-06-20
|
|
566
|
+
|
|
567
|
+
- changed filename
|
|
568
|
+
- open datadisplay widget
|
|
569
|
+
- moved code into _init
|
|
570
|
+
- added method to extract widgets into new windows
|
|
571
|
+
- extracted CompassMoveWidget
|
|
572
|
+
- video and spectrograph
|
|
573
|
+
- fixed script
|
|
574
|
+
- removed debug output
|
|
575
|
+
- removed unnecessary plugins
|
|
576
|
+
- seems to work with both pyobs and designer
|
|
577
|
+
- started working on designer compatible file layout
|
|
578
|
+
- moved code from __init__ into open
|
|
579
|
+
- at least it starts again...
|
|
580
|
+
- base
|
|
581
|
+
- offset fixes
|
|
582
|
+
|
|
583
|
+
## [0.18.4] - 2022-05-07
|
|
584
|
+
|
|
585
|
+
- fixed: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working
|
|
586
|
+
|
|
587
|
+
## [0.18.3] - 2022-05-03
|
|
588
|
+
|
|
589
|
+
- Fixed the name of a function. This caused neither gain nor exposuretime to be changed through the gui.
|
|
590
|
+
|
|
591
|
+
## [0.18.2] - 2022-04-12
|
|
592
|
+
|
|
593
|
+
- text formatting
|
|
594
|
+
- Fixed the conversion of helioprojective radial coordinates to heliographic stonyhurst coordinates.
|
|
595
|
+
- added sunpy dependency
|
|
596
|
+
|
|
597
|
+
## [0.18.1] - 2022-03-14
|
|
598
|
+
|
|
599
|
+
- added gain to video widget
|
|
600
|
+
|
|
601
|
+
## [0.18.0] - 2022-03-13
|
|
602
|
+
|
|
603
|
+
- added gain
|
|
604
|
+
- fixed update of status
|
|
605
|
+
- example config
|
|
606
|
+
- fixed rtd
|
|
607
|
+
|
|
608
|
+
## [0.16.0] - 2022-01-18
|
|
609
|
+
|
|
610
|
+
- basic docs
|
|
611
|
+
- log more errors to shell (invalid module or method)
|
|
612
|
+
- changed color scheme
|
|
613
|
+
- print OK instead of None on method calls that return nothing
|
|
614
|
+
- show exceptions in shell, fixes #82
|
|
615
|
+
- added column with version
|
|
616
|
+
- added status page
|
|
617
|
+
- added await
|
|
618
|
+
- update client list when modules (dis)connect
|
|
619
|
+
- fixed auto-complete list to select from, see #83
|
|
620
|
+
- use create_future
|
|
621
|
+
- check module state on update
|
|
622
|
+
- added CRITICAL log level
|
|
623
|
+
- raising new InvocationError on remote errors
|
|
624
|
+
- testing new exceptions
|
|
625
|
+
- added more digits to exposure time
|
|
626
|
+
- fixed bug
|
|
627
|
+
- type hints
|
|
628
|
+
- unified PyQt5 imports
|
|
629
|
+
- use black with a line length of 120
|
|
630
|
+
- added PyQt5-stubs
|
|
631
|
+
- added type hints
|
|
632
|
+
- black formatted
|
|
633
|
+
- added black and run it in pre-commit
|
|
634
|
+
|
|
635
|
+
## [0.15.0] - 2021-12-29
|
|
636
|
+
|
|
637
|
+
- changed used Python version to 3.9
|
|
638
|
+
- Handle case when value is none
|
|
639
|
+
- Pushed requirements to Python>=3.9 and astropy>=5.0, closes #55
|
|
640
|
+
- replaced all occurrences of "thread" with "task"
|
|
641
|
+
- sending event async
|
|
642
|
+
- fixed bug
|
|
643
|
+
- made all events async
|
|
644
|
+
- catch CancelledError for background task
|
|
645
|
+
- fixed bug when not broadcasting
|
|
646
|
+
- async data download
|
|
647
|
+
- asyncio
|
|
648
|
+
- proxy() is async now
|
|
649
|
+
- using async vfs.read_fits
|
|
650
|
+
- removed lock
|
|
651
|
+
- removed all use of threading module
|
|
652
|
+
- async event handler
|
|
653
|
+
- open widgets
|
|
654
|
+
- use asyncio.Event instead of threading.Event
|
|
655
|
+
- started working on asyncio implementation
|
|
656
|
+
- only scroll logs to bottom, if slider is at max position fixes #18
|
|
657
|
+
- added JPL Horizons query for RA/Dec coordinates
|
|
658
|
+
|
|
659
|
+
## [0.14.2] - 2021-11-23
|
|
660
|
+
|
|
661
|
+
- added planet/moon/sun ephemerides
|
|
662
|
+
- removed the whole poetry build process
|
|
663
|
+
|
|
664
|
+
## [0.14.1] - 2021-11-18
|
|
665
|
+
|
|
666
|
+
- new pypi action
|
|
667
|
+
- added ignore_dev_requirements: "yes"
|
|
668
|
+
- replaced setup.py and requirements.txt with Poetry
|
|
669
|
+
- added custom sidebar widgets
|
|
670
|
+
- changed WidgetImageGrabber to WidgetDataDisplay and adopted it for use with ISpectrograph
|
|
671
|
+
- handle NewSpectrumEvent
|
|
672
|
+
- don't use get_exposure_time_left
|
|
673
|
+
- added widget for ISpectrograph
|
|
674
|
+
- remove client from dict on disconnect and put lock around (dis)connected code
|
|
675
|
+
- hopefully fixed problem with not all modules showing up
|
|
676
|
+
- warning when weather module is running but not active
|
|
677
|
+
- fixed bug
|
|
678
|
+
- v0.14
|
|
679
|
+
- renamed IFitsHeaderProvider to IFitsHeaderBefore and get_fits_headers() to get_fits_header_before()
|
|
680
|
+
- added support for helioprojective radial coordinates
|
|
681
|
+
- don't show kwargs on event page
|
|
682
|
+
- removed call to label()
|
|
683
|
+
- Added type hints
|
|
684
|
+
- use Proxy interfaces
|
|
685
|
+
- renamed set/get_*_offsets to set/get_offsets-*
|
|
686
|
+
- renamed some interfaces (IPointing* and IOffsets*)
|
|
687
|
+
- changed IMuPsi to ICoordsHGS
|
|
688
|
+
- cosmetic change
|
|
689
|
+
- going back to one module per widget
|
|
690
|
+
- New parameter widgets for custom widgets
|
|
691
|
+
- default widgets
|
|
692
|
+
- basing all widgets on a more common BaseWidget
|
|
693
|
+
- new range for offsets
|
|
694
|
+
- moving to helioprojective coordinates
|
|
695
|
+
- unified resetting offsets
|
|
696
|
+
- new way for showing coordinate systems, added helioprojective
|
|
697
|
+
- Flat fielding
|
|
698
|
+
- renamed ICameraWindow to IWindow
|
|
699
|
+
- renamed ICameraExposureTime to IExposureTime
|
|
700
|
+
- renamed ICameraBinning to IBinning
|
|
701
|
+
- image types and multiple images
|
|
702
|
+
- removed imports
|
|
703
|
+
- exposure time
|
|
704
|
+
- .
|
|
705
|
+
- gui
|
|
706
|
+
- WidgetImageGrabber in WidgetVideo
|
|
707
|
+
- WidgetCamera seems to work with WidgetImageGrabber
|
|
708
|
+
- started working on extracting WidgetImageGrabber from WidgetCamera
|
|
709
|
+
- use a WidgetCamera inside WidgetVideo
|
|
710
|
+
- some changes to work with IImageGrabbers and not just ICameras
|
|
711
|
+
- use grab_image() instead of expose()
|
|
712
|
+
- explicitly cast float to int
|
|
713
|
+
- renamed WidgetWebcam to WidgetVideo
|
|
714
|
+
- renamed IWebcam->IVideo and BaseWebcam->BaseVideo
|
|
715
|
+
- taking video URL from vfs
|
|
716
|
+
- added widget for IWebcam
|
|
717
|
+
- added show_modules parameter to restrict access to given modules
|
|
718
|
+
- added parameters show_shell and show_events
|
|
719
|
+
- moved requirements into requirements.txt
|
|
720
|
+
- v0.13
|
|
721
|
+
- documentation
|
|
722
|
+
- added __module__
|
|
723
|
+
- updated docstrings
|
|
724
|
+
- moved IMotion.Status to utils.enums.MotionStatus
|
|
725
|
+
- moved ExposureStatus to utils.enums
|
|
726
|
+
- fixed bug (_update_thread is never None)
|
|
727
|
+
- fixed types to make mypy happy
|
|
728
|
+
- fixed type hints
|
|
729
|
+
- added combo box for exposure time unit
|
|
730
|
+
- add warning to logger when GUIs update_func fails
|
|
731
|
+
- fixed bug when auto-saving
|
|
732
|
+
- allow for negative offsets in dialog
|
|
733
|
+
- Moved "images" module to top-level
|
|
734
|
+
- download images in thread
|
|
735
|
+
- sorting page icons
|
|
736
|
+
- catch exception
|
|
737
|
+
- size of page selector
|
|
738
|
+
- instead of manually connection signals/slot, use pyqtSlot()
|
|
739
|
+
- show security question when disabling broadcast
|
|
740
|
+
- changed order of setting max and current values
|
|
741
|
+
- added new checkbox to avoid broadcasting new images
|
|
742
|
+
- hide controls if not required
|
|
743
|
+
- changed signature of ICameraBinning's list_binnings() to return list of X,Y tuples
|
|
744
|
+
- fetching available binnings from module
|
|
745
|
+
- added combo box for setting image format
|
|
746
|
+
- set maximum values for window
|
|
747
|
+
- made binning a check box and added option for image format
|
|
748
|
+
|
|
749
|
+
## [0.12.2] - 2021-02-06
|
|
750
|
+
|
|
751
|
+
- adopted for name change from qfitsview to qfitswidget
|
|
752
|
+
|
|
753
|
+
## [0.12.1] - 2021-01-05
|
|
754
|
+
|
|
755
|
+
- fixed bug
|
|
756
|
+
- fixed broken merge
|
|
757
|
+
- v0.12
|
|
758
|
+
- using new IImageType and ImageType enum
|
|
759
|
+
- moved exposure time specific stuff from ICamera into new ICameraExposureTime and removed exposure_time parameter from ICamera.expose()
|
|
760
|
+
- Revert "Removed count parameter from ICamera.expose()"
|
|
761
|
+
- GUI handles exposing multiple images on its own without count in ICamera.expose()
|
|
762
|
+
- generic types don't seem to have a __name__
|
|
763
|
+
- moved some imports into methods
|
|
764
|
+
- renamed download_fits_image() and download_image() to read_*()
|
|
765
|
+
- validate telescope coordinates
|
|
766
|
+
- changed tab order of widgets in camera widget
|
|
767
|
+
- fixed crash when trying to navigate to old commands, but none were given before
|
|
768
|
+
- added focal_length, pixel_size and fits headers
|
|
769
|
+
- moved more code from DummyTelescope into SimTelescope
|
|
770
|
+
- changed handling of name/label for module
|
|
771
|
+
- removed possibility for network configs
|
|
772
|
+
- v0.11
|
|
773
|
+
- made changes in _off_ra/dec/alt/az members threadsafer
|
|
774
|
+
- new warning
|
|
775
|
+
- show warning if there is an active mastermind
|
|
776
|
+
- checkboxes for sending events
|
|
777
|
+
|
|
778
|
+
## [0.10.1] - 2020-05-14
|
|
779
|
+
|
|
780
|
+
- removed aplpy from dependencies
|
|
781
|
+
- added POSITIONED to valid states
|
|
782
|
+
- v0.10
|
|
783
|
+
- removed parent for Layout
|
|
784
|
+
- PyQt 5.14 seems to fail installing, so fix to 5.13 for now
|
|
785
|
+
- handling Nones
|
|
786
|
+
- showing dome Az in GUI
|
|
787
|
+
- ITelescope inherits IRaDec and therefore track_radec is renamed to move_radev
|
|
788
|
+
- renamed IEquatorialMount to IRaDecOffsets and IAltAzMount to IAltAzOffsets
|
|
789
|
+
- swap sign for RA offsets
|
|
790
|
+
- error checking
|
|
791
|
+
- added weather widget
|
|
792
|
+
- added POSITIONED to initialized states
|
|
793
|
+
- v0.9
|
|
794
|
+
- only add fits headers for camera that belongs to this widget
|
|
795
|
+
- added additional custom headers
|
|
796
|
+
- colorize buttons
|
|
797
|
+
- fixed layout
|
|
798
|
+
- fixed bug
|
|
799
|
+
- more colours and different layout for filters
|
|
800
|
+
- removed debug output
|
|
801
|
+
- added missing resources
|
|
802
|
+
- moving offsets
|
|
803
|
+
- finishing new GUI
|
|
804
|
+
- working on new telescope page layout
|
|
805
|
+
- added error handling for MPC queries
|
|
806
|
+
- added MPC query
|
|
807
|
+
- removed pyobs-core from requirements
|
|
808
|
+
- added button for resetting focus offset
|
|
809
|
+
- new way of setting focus via input dialog
|
|
810
|
+
- message when no simbad results were found
|
|
811
|
+
- renamed run() on PyobsModule to main()
|
|
812
|
+
- update filter and focus on regular basis
|
|
813
|
+
- enumerate commands and results in shell and fix crash bug
|
|
814
|
+
- converting np.float to float
|
|
815
|
+
- show current filename
|
|
816
|
+
- replaced colon by whitespace in filename pattern
|
|
817
|
+
- added checkbox for adding fits headers, which is unchecked by default
|
|
818
|
+
- fixed bugs
|
|
819
|
+
- - changed MotionStatusChangedEvent to give status of all interfaces - added MotionStatusMixin - fixed DummyTelescope to use it - fixed GUI to use it
|
|
820
|
+
- fixed method signatures and implemented namespaces for FITS headers
|
|
821
|
+
- get_fits_headers from IFitsHeaderProvider now accepts a list of namespaces
|
|
822
|
+
- moved multiple exposures from GUI into camera module
|
|
823
|
+
- added qfitsview to required packages
|
|
824
|
+
- catching ModuleNotFoundError for pwd on Windows
|
|
825
|
+
- added pyobs-core to required packages
|
|
826
|
+
- distutils -> setuptools
|
|
827
|
+
- v0.8
|
|
828
|
+
- error handling
|
|
829
|
+
- fixed bug with redrawing image every second
|
|
830
|
+
- added pyobs_gui.qt
|
|
831
|
+
- measuring exptime in seconds
|
|
832
|
+
- more init in _init
|
|
833
|
+
- trying to speed up things a little bit
|
|
834
|
+
- replaced SendToArchive with generic ImageWatcher
|
|
835
|
+
- added fits header gui
|
|
836
|
+
- returning dict
|
|
837
|
+
- doing multiple exposures in GUI, not in camera module
|
|
838
|
+
- showing events
|
|
839
|
+
- limiting image types to object, bias, and dark
|
|
840
|
+
- saving and auto-saving of images
|
|
841
|
+
- disable auto-update of image/headers
|
|
842
|
+
- using init/park
|
|
843
|
+
- renamed get_alt_az->get_altaz and get_ra_dec->get_radec
|
|
844
|
+
- renamed track->track_radec, move->move_altaz, offset->offset_altaz
|
|
845
|
+
- sending events from gui
|
|
846
|
+
- removed percent open for now
|
|
847
|
+
- more output
|
|
848
|
+
- working on simple task
|
|
849
|
+
- using run() method for running gui
|
|
850
|
+
- accept negative numbers
|
|
851
|
+
- changed NEWLINE with ENDMARKER
|
|
852
|
+
- changed enter/leave to Qt show/hide events
|
|
853
|
+
- environment -> observer
|
|
854
|
+
- using QFitsView instead of AplPy for displaying image
|
|
855
|
+
- added widget for script runner
|
|
856
|
+
- using tokenize for parsing input
|
|
857
|
+
- changed version number to 0.2
|
|
858
|
+
- checking sender in event handlers
|
|
859
|
+
- for XMPP, senders for events and proxy names are now usernames only and not full JIT anymore
|
|
860
|
+
- plots
|
|
861
|
+
- show degree sign for alt/az
|
|
862
|
+
- show alt/az for input ra/dec
|
|
863
|
+
- added simbad query and missing files
|
|
864
|
+
- reacting to connecting/disconnecting clients
|
|
865
|
+
- set full frame to binned size
|
|
866
|
+
- new icons
|
|
867
|
+
- show FocusWidget for IFocuser
|
|
868
|
+
- disabled WidgetTemperatures because of missing files
|
|
869
|
+
- fixed base class
|
|
870
|
+
- sorted temperatures
|
|
871
|
+
- new ITemperatures interface
|
|
872
|
+
- cooling display works
|
|
873
|
+
- lock for roof movement
|
|
874
|
+
- moved update thread into BaseWidget
|
|
875
|
+
- basic dummy roof and widget
|
|
876
|
+
- filter for camera
|
|
877
|
+
- moved sidebar stuff into BaseWidget
|
|
878
|
+
- showing fits headers
|
|
879
|
+
- async init of widgets
|
|
880
|
+
- working on layout
|
|
881
|
+
- removed sidebar, moved client list next to log
|
|
882
|
+
- showing image based on NewImageEvent
|
|
883
|
+
- only show coordinates when available
|
|
884
|
+
- camera expose() always returns a list now
|
|
885
|
+
- disabled plot for now
|
|
886
|
+
- cleaned up
|
|
887
|
+
- changed to use events and stuff
|
|
888
|
+
- working on type-casting request and response for remote calls
|
|
889
|
+
- using events instead of constant polling
|
|
890
|
+
- added new ExposureStatusChanged event
|
|
891
|
+
- got ascom working again
|
|
892
|
+
- checking type
|
|
893
|
+
- first attempts on track plot
|
|
894
|
+
- setting filter and focus
|
|
895
|
+
- moving alt/az
|
|
896
|
+
- disable gui until first update finished
|
|
897
|
+
- working on telescope GUI
|
|
898
|
+
- started working on telescope GUI
|
|
899
|
+
- GUI is a normal pyobs module now
|
|
900
|
+
- renamed pytel to pyobs
|
|
901
|
+
- working with cameras that don't support windowing or binning
|
|
902
|
+
- gracefully exit threads
|
|
903
|
+
- added camera panel
|
|
904
|
+
- show whole exception
|
|
905
|
+
- styling
|
|
906
|
+
- changed layout with logs and help always visible
|
|
907
|
+
- working on new GUI
|
|
908
|
+
- allow single as well as double quotes for strings
|
|
909
|
+
- working
|
|
910
|
+
- initial commit
|