Metadata-Version: 2.5
Name: pyobs-gui
Version: 2.6.3
Summary: A remote GUI for pyobs
Project-URL: Homepage, https://www.pyobs.org
Project-URL: Documentation, https://docs.pyobs.org
Project-URL: Repository, https://github.com/pyobs/pyobs-gui
Project-URL: Issues, https://github.com/pyobs/pyobs-gui/issues
Author-email: Tim-Oliver Husser <thusser@uni-goettingen.de>
License-Expression: MIT
License-File: LICENSE
Requires-Python: >=3.11
Requires-Dist: astroplan>=0.10.1
Requires-Dist: astropy<8,>=7.0.1
Requires-Dist: astroquery<0.5,>=0.4.10
Requires-Dist: colour<0.2,>=0.1.5
Requires-Dist: desktop-notifier<7,>=6.2
Requires-Dist: keyring<26,>=25.7.0
Requires-Dist: matplotlib<4,>=3.10.1
Requires-Dist: pandas>=2.2.3
Requires-Dist: pydantic<3,>=2.12.5
Requires-Dist: pyobs-core<3,>=2.14.0
Requires-Dist: pyside6-essentials>=6.10.1
Requires-Dist: pywin32>=312; sys_platform == 'win32'
Requires-Dist: pyyaml<7,>=6.0.2
Requires-Dist: qasync<0.29,>=0.27.1
Requires-Dist: qfitswidget>=1.2.0
Requires-Dist: qtawesome<2,>=1.4.0
Requires-Dist: secretstorage<4,>=3.5.0
Requires-Dist: sunpy>=7.0.1
Description-Content-Type: text/markdown

pyobs-gui
=========

This is a [pyobs](https://www.pyobs.org) GUI for operating the whole system: one page per
connected module (camera, telescope, roof, focuser, ...), plus Shell/Events/Status tool pages.


Install *pyobs-gui*
---------------------
Clone the repository:

    git clone https://github.com/pyobs/pyobs-gui.git
    cd pyobs-gui

Install it with [uv](https://docs.astral.sh/uv/):

    uv sync


Running
-------
Two ways to start it:

- `uv run pyobs-gui` — standalone, interactive login. No YAML config needed; it prompts for XMPP
  credentials (with an optional "store password") and connects directly.
- `uv run pyobs <config.yaml>` — the standard `pyobs` CLI, driven by a config file whose top-level
  class is `pyobs_gui.GUI` (see `docs/source/index.rst` for a full example, including how to wire
  in a custom widget for a module).


Standalone binary (experimental)
--------------------------------
`pysidedeploy.spec` builds a standalone Linux binary with Nuitka (about 760 MB, 20 minutes on 16 cores,
needs gcc and ccache or clang). Build it from a clean, non-editable install, otherwise Nuitka cannot map
the `pyobs-gui` distribution to its package and aborts:

    uv sync --no-dev
    uv pip install --reinstall --no-deps .
    uv pip install pip "Nuitka==4.0" patchelf
    PATH="$PWD/.venv/bin:$PATH" pyside6-deploy -c pysidedeploy.spec --force -f

The result is `dist/pyobs-gui.dist/pyobs_gui.bin`. Known issue: astropy's cds/ogip/vounit unit parsers do not
work in the compiled binary (see `pyobs_gui/_nuitka_astropy_patch.py`), so those formats log a `UnitsWarning`.
