Skip to main content

Remotely control a telescope while it polls for tasks, collects and edge processes data, and delivers results and data for further processing.

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

CitraScope

Pytest Publish Python Package PyPI version PyPI - Downloads License

GitHub Repository | Documentation | Citra.space

Remotely control a telescope while it polls for tasks, collects observations, and delivers data for further processing.

Features

  • Offers a web UI to configure hardware and connect to Citra.space's api
  • Connects to Citra.space's API and identifies itself as an online telescope
  • Connects to configured telescope and camera hardware
  • Acts as a task daemon carrying out and remitting photography tasks

Documentation

Full documentation is available at docs.citra.space.

Documentation source is maintained in the citra-space/docs repository.

Installation

Important: CitraScope requires Python 3.10, 3.11, or 3.12.

Check Your Python Version

python3 --version

If you don't have a compatible version, install one with pyenv:

pyenv install 3.12.0
pyenv local 3.12.0  # Sets Python 3.12.0 for the current directory

Install CitraScope

Recommended: Using pip in a virtual environment

python3 -m venv citrascope-env
source citrascope-env/bin/activate  # On Windows: citrascope-env\Scripts\activate
pip install citrascope

Optional Dependencies

For Linux-based telescope control (INDI):

pip install citrascope[indi]

This provides the citrascope command-line tool. To see available commands:

citrascope --help

Usage

Starting the Daemon

Run the daemon with:

citrascope

By default, this starts the web interface on http://localhost:24872. You can customize the port:

citrascope --web-port 8080

Developer Setup

If you are developing on macOS or Windows, use the provided VS Code Dev Container setup. The devcontainer provides a full Linux environment, which is required for the pyindi-client dependency to work. This is necessary because pyindi-client only works on Linux, and will not function natively on Mac or Windows.

By opening this project in VS Code and choosing "Reopen in Container" (or using the Dev Containers extension), you can develop and run the project seamlessly, regardless of your host OS.

The devcontainer also ensures all required system dependencies (like cmake) are installed automatically.

Python Version

This project requires Python 3.10 or higher, up to Python 3.12. A .python-version file is included specifying Python 3.12 as the recommended version. If you use pyenv, it will automatically use this version when you enter the project directory.

If not using the dev container:

python -m venv .venv
source .venv/bin/activate

Installing Development Dependencies

To install development dependencies (for code style, linting, and pre-commit hooks):

pip install '.[dev]'

Setting up Pre-commit Hooks

This project uses pre-commit to run code quality checks (like Flake8, Black, isort, etc.) automatically before each commit.

After installing the dev dependencies, enable the hooks with:

pre-commit install

You can manually run all pre-commit checks on all files with:

pre-commit run --all-files

This ensures code style and quality checks are enforced for all contributors.

Releasing a New Version

To bump the version and create a release from in the venv:

bump-my-version bump patch  # 0.1.3 → 0.1.4
bump-my-version bump minor  # 0.1.3 → 0.2.0
bump-my-version bump major  # 0.1.3 → 1.0.0
git push && git push --tags

create-release.yml will automatically create a release on GitHub, which in turn triggers PyPI publishing with pypi-publish.yml.

Running and Debugging with VS Code

If you are using Visual Studio Code, you can run or debug the project directly using the pre-configured launch options in .vscode/launch.json:

  • Python: citrascope — Runs the daemon with default settings
  • Python: citrascope (custom port) — Runs with web interface on port 8080

To use these, open the Run and Debug panel in VS Code, select the desired configuration, and click the Run or Debug button.

Running Tests

This project uses pytest for unit testing. All tests are located in the tests/ directory.

To run unit tests within your devcontainer:

pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

citrascope-0.9.9.tar.gz (159.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

citrascope-0.9.9-py3-none-any.whl (179.2 kB view details)

Uploaded Python 3

File details

Details for the file citrascope-0.9.9.tar.gz.

File metadata

  • Download URL: citrascope-0.9.9.tar.gz
  • Upload date:
  • Size: 159.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for citrascope-0.9.9.tar.gz
Algorithm Hash digest
SHA256 06173e2fc5f6429553fdb7bfd9fe5f5b4eefe0996a3c20f8dd8ef7604fce1c43
MD5 d2c49aa58314296612afd85e81045c4f
BLAKE2b-256 e92196b50a700a0a685fed80bc0b60435a9983d2b793c508aad24fd177940ea5

See more details on using hashes here.

File details

Details for the file citrascope-0.9.9-py3-none-any.whl.

File metadata

  • Download URL: citrascope-0.9.9-py3-none-any.whl
  • Upload date:
  • Size: 179.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for citrascope-0.9.9-py3-none-any.whl
Algorithm Hash digest
SHA256 d8d9264c1fd24a9bb353a907a2051c4a016a0cf50bef206dbcee66ee483cac81
MD5 9683ddd8c836ef6f3547de50e3465a69
BLAKE2b-256 2a366487a7ece30dc8db230d196e3ba897888dcd29daf819efd5c398ff33485b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page