Skip to main content

stargazing-core

PyPI version Python

Shared astronomical computation package for the stargazing toolchain — telescope optics, deep-sky catalog, and equipment presets used by both mcp-stargazing and stargazing-place-finder.

Installation

pip install stargazing-core

Requires Python ≥ 3.11.

Quick Start

from stargazing_core import TelescopeConfig, TelescopeOptics, TELESCOPE_PRESETS

# Look up a preset
config = TELESCOPE_PRESETS['seestar-s50']

# Compute derived optics
optics = config.compute_optics()
print(f'FOV: {optics.fov_width_deg:.1f}° × {optics.fov_height_deg:.1f}°')
# → FOV: 1.7° × 1.3°

Modules

Module Purpose
_catalog.py 10,000+ Messier/NGC deep-sky object catalog
_celestial_models.py Pydantic models: CelestialPosition, RiseSet, MoonInfo, VisiblePlanet
_constellation.py Constellation center lookup
_coord.py Coordinate validation (validate_coordinates)
_ephemeris.py Ephemeris calculations for observing windows
_filtering.py Deep-sky object filtering pipeline
_geo.py GeoBounds / GeoPoint shared geometry types
_moon.py Moon phase / altitude / illumination
_mosaic.py Mosaic grid computation for wide-field targets
_pagination.py Generic PaginatedResult[T]
_planets.py Solar-system planet visibility
_shooting_plan.py ShootingPlan / ShootingSlot — imaging schedule engine
_telescope.py TelescopeConfig, TELESCOPE_PRESETS, match_telescope_targets
_timegrid.py Altitude curve time-grid generation

Consumers

Project Usage
mcp-stargazing get_telescope_targets, get_shooting_plan tools; shared CelestialPosition/RiseSet/MoonInfo models
stargazing-place-finder TelescopeConfig, GeoPoint, telescope target matching endpoint

Public API

All symbols are importable from the top-level package:

from stargazing_core import (
    # Telescope
    TelescopeConfig, TelescopeOptics, TELESCOPE_PRESETS,
    # Deep-sky matching
    DeepSkyCatalog, load_objects,
    match_telescope_targets, filter_candidates_by_lst, score_deep_sky_objects,
    # Shooting plan
    ShootingPlan, ShootingSlot, generate_shooting_schedule,
    # Mosaic
    MosaicPanel, MosaicGrid, compute_mosaic_grid,
    # Celestial models
    CelestialPosition, RiseSet, MoonInfo, VisiblePlanet,
    # Astronomy
    calculate_moon_info, get_moon_altaz, get_visible_planets, identify_constellation,
    # Geometry
    GeoPoint, GeoBounds, TimeInfo, validate_coordinates,
    # Time grid
    generate_time_grid, find_rise_set_indices,
    # Pagination
    PaginatedResult,
)

Compatibility

Consumer Min version Status
mcp-stargazing >=0.1.0 ✅ Active
stargazing-place-finder >=0.1.0 ✅ Active

Release

Version: 0.1.0 (PyPI)

Release process:

  1. Bump version in pyproject.toml
  2. Merge to master → auto-tag workflow creates vX.Y.Z tag
  3. Tag push triggers release-pypi.yml → OIDC Trusted Publishing to PyPI
  4. GitHub Release auto-generated

Development

uv sync
uv run pytest -v
uv run ruff format --check . && uv run ruff check .

Release files for stargazing-core 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for stargazing-core 0.2.0
File Size Uploaded
stargazing_core-0.2.0.tar.gz 257.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for stargazing-core 0.2.0
File Interpreter ABI Platform
stargazing_core-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 518.8 kB

Release files / stargazing_core-0.2.0.tar.gz

Download URL stargazing_core-0.2.0.tar.gz
Size 257.4 kB
Tags Source
SHA-256 checksum
How to use checksums
9ba2df98b2b9b9e27f8c23ee10b34a5348398346ff4ae949339714166cbc30c6
BLAKE2b-256 checksum
How to use checksums
e8300ff3b97cbf02385e3db64dfe7b28f7b13caf54e3605cbc7f5ac033924c54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 20, 2026.

Transparency log

Release files / stargazing_core-0.2.0-py3-none-any.whl

Download URL stargazing_core-0.2.0-py3-none-any.whl
Size 261.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8a9aa7f93e7f71791e0b8ff7612b8a82a5671df7e0ed535f8ac68bda47c6f82e
BLAKE2b-256 checksum
How to use checksums
f2823d55b9ddf16e5a5e1798b475743e43315b1e0e1d4621d77fcc9fd757644a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 20, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page