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 Build and Push Docker Image

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

Features

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

Installation

Install CitraScope from PyPI:

pip install citrascope

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

citrascope --help

Usage

Run the CLI tool:

citrascope start

To connect to the Citra Dev server:

citrascope start --dev

Configuration

Settings are managed via environment variables with the prefix CITRASCOPE_. You must configure your personal access token and telescope ID, as well as INDI server details. You can set these variables in your shell or in a .env file at the project root.

Example .env file:

CITRASCOPE_PERSONAL_ACCESS_TOKEN=citra_pat_xxx
CITRASCOPE_TELESCOPE_ID=xxx
# CITRASCOPE_INDI_SERVER_URL=127.0.0.1
CITRASCOPE_INDI_SERVER_URL=host.docker.internal  # use with devcontainer for accessing a localhost indi server
CITRASCOPE_INDI_SERVER_PORT=7624
CITRASCOPE_INDI_TELESCOPE_NAME=Telescope Simulator

Variable descriptions:

  • CITRASCOPE_PERSONAL_ACCESS_TOKEN: Your CitraScope personal access token (required)
  • CITRASCOPE_TELESCOPE_ID: Your telescope ID (required)
  • CITRASCOPE_INDI_SERVER_URL: Hostname or IP address of the INDI server (default: host.docker.internal for devcontainers, or 127.0.0.1 for local)
  • CITRASCOPE_INDI_SERVER_PORT: Port for the INDI server (default: 7624)
  • CITRASCOPE_INDI_TELESCOPE_NAME: Name of the INDI telescope device (default: Telescope Simulator)

You can copy .env.example to .env and tweak your values.

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.

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.

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 dev start — Runs the main entry point with development options.
  • Python: citrascope dev start DEBUG logging — Runs with development options and sets log level to DEBUG for more detailed output.

To use these, open the Run and Debug panel in VS Code, select the desired configuration, and click the Run or Debug button. This is a convenient way to start or debug the app without manually entering commands.

Running Tests

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

To run tests manually:

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.1.0.tar.gz (21.2 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.1.0-py3-none-any.whl (21.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for citrascope-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e6cc6eb83e31c1c4f2a6163b5dfdcd10780d81739d271b861dbf73917eaf8129
MD5 ca29bff82d9a01efb801d740dd8124f8
BLAKE2b-256 2e16a703d4896be7812435e89913079470f02be9e77c6b8bcd5610351a53e860

See more details on using hashes here.

File details

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

File metadata

  • Download URL: citrascope-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 21.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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f0e20c41003154736cf40e3915b97035f34de1a13f8c51a58751aab43377093b
MD5 d17de0b4a2ced5ef8996878eb6a625b1
BLAKE2b-256 f88323e6892225ea84fdbece9440551f6eda4f5c4b6c843095dc8465fc4cf7b3

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