Metadata-Version: 2.5
Name: pyobs-core
Version: 2.18.1
Summary: robotic telescope software
Project-URL: Homepage, https://www.pyobs.org
Project-URL: Documentation, https://docs.pyobs.org
Project-URL: Repository, https://github.com/pyobs/pyobs-core
Project-URL: Issues, https://github.com/pyobs/pyobs-core/issues
Author-email: Tim-Oliver Husser <thusser@uni-goettingen.de>
License-Expression: MIT
License-File: LICENSE
Requires-Python: >=3.11
Requires-Dist: aiohttp<4,>=3.11.18
Requires-Dist: astroplan<0.11,>=0.10.1
Requires-Dist: astropy-iers-data>=0.2026.6.22.1.23.34
Requires-Dist: astropy<9,>=7.0.1
Requires-Dist: colour<0.2,>=0.1.5
Requires-Dist: numpy<3,>=2.2.5
Requires-Dist: pillow>=12.3.0
Requires-Dist: py-expression-eval<0.4,>=0.3.14
Requires-Dist: pydantic>=2.12.5
Requires-Dist: pytz<2027.0,>=2025.2
Requires-Dist: pyyaml<7,>=6.0.2
Requires-Dist: requests<3,>=2.32.3
Requires-Dist: single-source<0.5,>=0.4.0
Requires-Dist: slixmpp>=1.14.1
Requires-Dist: typing-extensions<5,>=4.13.2
Provides-Extra: full
Requires-Dist: astropydantic>=0.0.5; extra == 'full'
Requires-Dist: astroquery<0.5,>=0.4.10; extra == 'full'
Requires-Dist: asyncinotify<5,>=4.2.1; extra == 'full'
Requires-Dist: ccdproc<3,>=2.4.3; extra == 'full'
Requires-Dist: dacite>=1.9.2; extra == 'full'
Requires-Dist: dbus-next<0.3,>=0.2.3; extra == 'full'
Requires-Dist: filelock>=3.28.0; extra == 'full'
Requires-Dist: firebase-admin>=7.1.0; extra == 'full'
Requires-Dist: influxdb-client>=1.49.0; extra == 'full'
Requires-Dist: lmfit<2,>=1.3.3; extra == 'full'
Requires-Dist: logging-journald>=0.6.11; extra == 'full'
Requires-Dist: matrix-nio>=0.25.2; extra == 'full'
Requires-Dist: opencv-python-headless>=4.10.0.84; extra == 'full'
Requires-Dist: pandas>=2.2.3; extra == 'full'
Requires-Dist: paramiko>=3.5.1; extra == 'full'
Requires-Dist: photutils<4,>=3.0.0; extra == 'full'
Requires-Dist: psutil>=7.2.2; extra == 'full'
Requires-Dist: python-daemon<4,>=3.1.2; extra == 'full'
Requires-Dist: python-telegram-bot~=22.0; extra == 'full'
Requires-Dist: scipy<2,>=1.15.2; extra == 'full'
Requires-Dist: sep<2,>=1.4.1; (sys_platform == 'linux') and extra == 'full'
Requires-Dist: sunpy>=7.0.1; extra == 'full'
Requires-Dist: tenacity>=9.1.4; extra == 'full'
Requires-Dist: tornado<7,>=6.4.2; extra == 'full'
Provides-Extra: gui
Requires-Dist: pyside6>=6.11.0; extra == 'gui'
Requires-Dist: qfitswidget>=0.13.1; extra == 'gui'
Requires-Dist: qtpy>=2.4.3; extra == 'gui'
Description-Content-Type: text/markdown

pyobs
=====

http://www.pyobs.org/


Quick start
-----------

Create a directory and a virtual environment:

    mkdir test
    cd test
    python3 -m venv venv

Activate environment and install pyobs-core:

    source venv/bin/activate
    pip3 install pyobs-core

Create a test configuration test.yaml:

    class: pyobs.modules.test.StandAlone
    message: Hello world
    interval: 10

And run it:

    pyobs test.yaml


Optional extras
----------------
A few features require additional dependencies that aren't installed by default:

    pip3 install "pyobs-core[full]"

adds support for things like INDI/telegram/matrix notifications, image processing (photutils, ccdproc, sep) and
a few other optional integrations.

    pip3 install "pyobs-core[gui]"

adds the PySide6/qfitswidget-based Qt widgets used by the camera GUIs shipped with the various `pyobs-*` camera
modules (e.g. `pyobs-asi`, `pyobs-qhyccd`).


CLI tools
---------
Installing *pyobs-core* provides three console scripts:

* `pyobs` runs a single module configuration in the foreground.
* `pyobsd` runs and manages one or more module configurations as background daemons.
* `pyobsw` is the Windows equivalent of `pyobs`.


Development
-----------
Clone the repository and install it with [uv](https://docs.astral.sh/uv/), including the dev dependency group:

    git clone https://github.com/pyobs/pyobs-core.git
    cd pyobs-core
    uv sync --all-extras --dev
