Utility functions for use within the Project PANOPTES ecosystem and for general astronomical processing.
This library defines a number of modules that contain useful functions as well as a few services.
To install type:
pip install panoptes-utils
Full options for install:
pip install "panoptes-utils[config,docs,images,testing,social]"
See the full documentation at: https://panoptes-utils.readthedocs.io
There are a few system dependencies depending on what functionality you will be using.
In particular, the plate solving requires astrometry.net
and the appropriate index files.
Use the following on a debian-based system (e.g. Ubuntu) to easily install all dependencies:
apt-get update && apt-get install --no-install-recommends --yes \
libffi-dev libssl-dev \
astrometry.net astrometry-data-tycho2 \
dcraw exiftool libcfitsio-dev libcfitsio-bin \
libfreetype6-dev libpng-dev libjpeg-dev libffi-dev
The panoptes-utils
command line tool is available for use with subcommands
corresponding to the modules in this library. Currently, the only implemented
subcommand is image
, which includes commands for converting cr2
files into
jpg
and/or fits
files as well as for plate-solving fits
images.
The panoptes-utils image watch <path>
command will watch the given path for
new files and convert them to jpg
and/or fits
files as they are added.
See panoptes-utils --help
and panoptes-utils image --help
for details.
There is a simple key-value configuration server available as part of the module.
After installing with the config
option as above, type:
panoptes-config-server run --config-file <path-to-file.yaml>
This project uses the Hatch build system and environment management.
Prerequisites:
- Python 3.12+
- Hatch: https://hatch.pypa.io (install via
pipx install hatch
orpip install --user hatch
).
Basic workflow:
-
Create and enter a dev environment with all testing tools:
hatch env create hatch shell # or run commands without activating the shell using `hatch run ...`
-
Install optional extras as needed (choose any):
# Examples: google, focuser, sensors, weather hatch run pip install -e ".[config,images,testing]"
-
Run tests:
# All tests with coverage, using pytest options from pyproject.toml hatch run pytest # Single test file hatch run pytest tests/test_utils.py
-
Lint / style checks:
# Lint (Ruff) hatch run lint # Format (Ruff) hatch run fmt # Check formatting without changes hatch run fmt-check
-
Build the package (wheel and sdist):
hatch build
-
Run the CLI locally (Typer app):
hatch run pocs --help
-
Versioning: Version is derived from git tags via hatch-vcs. To produce a new version, create and push a tag (e.g.,
v0.1.0
).
To test the software, prefer running via Hatch so the right environment and options are used:
hatch run pytest
By default all tests will be run. If you want to run one specific test, give the specific filename as an argument to pytest
:
hatch run pytest tests/test_mount.py