Skip to main content

Calculate lunar rise and set times for any location

Project description

Lunar Times

CI Python 3.8+ PyPI version Coverage

A command-line Python application that calculates moonrise and moonset times for any location. The application integrates with external APIs to provide accurate astronomical data with proper timezone handling.

Features

  • 🌙 Calculate moonrise and moonset times for any US city and state
  • 📍 Automatic coordinate resolution using OpenStreetMap geocoding
  • 🕐 Timezone-aware calculations with proper daylight saving time handling
  • 🔧 Debug mode for development and testing
  • 🚀 Clean command-line interface with clear output formatting
  • Enterprise-grade CI/CD with automated testing across multiple Python versions and platforms

Quick Start

# Install dependencies
make install

# Run the application
make run

# Or use debug mode (defaults to El Paso, TX)
make run-debug

# Run tests
make test

# Check code quality
make check

Example Usage

$ lunar-times
Enter the city: Austin
Enter the state: TX
# Moon rise/set times in (Timezone: America/Chicago -6.0) on 2024-01-15:
-  RISE: 10:45 PM
-  SET: 11:30 AM

Documentation

Development & CI/CD

This project uses GitHub Actions for comprehensive automated testing and deployment. All workflows are live and operational:

Continuous Integration ✅

  • Multi-Python Testing: Automated testing on Python 3.8, 3.9, 3.10, 3.11, and 3.12
  • Cross-Platform: Tests run on Ubuntu, Windows, and macOS
  • Quality Gates: Linting, type checking, test coverage, and security scanning
  • Fast Feedback: Quick validation jobs provide rapid feedback on pull requests

Automated Deployment ✅

  • PyPI Publishing: Automatic package publishing on version tags
  • GitHub Releases: Automated release creation with changelog integration
  • Health Monitoring: Weekly API health checks with automatic issue creation

Operational Workflows

Development Workflow

# All development commands work with CI
make test          # Runs same tests as CI
make check         # Runs all quality checks  
make build-package # Builds package like CI

View live workflow runs and automation details.

Requirements

  • Python 3.8+
  • uv package manager
  • Internet connection for API calls
  • Dependencies: requests, geopy, timezonefinder, pytz

License

This project is licensed under the terms in the LICENSE file.

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

lunar_times-0.6.14.tar.gz (121.0 kB view details)

Uploaded Source

Built Distribution

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

lunar_times-0.6.14-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file lunar_times-0.6.14.tar.gz.

File metadata

  • Download URL: lunar_times-0.6.14.tar.gz
  • Upload date:
  • Size: 121.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.18

File hashes

Hashes for lunar_times-0.6.14.tar.gz
Algorithm Hash digest
SHA256 aa3d3f9bdf51d11e204e4f14de3a90f109db558f57622f2fa3c47d6a29f0f6ae
MD5 cb74701c8ae4b0b45f27778b7b45579f
BLAKE2b-256 f34f5b80d0729219f5385d0274ca073016a5196259ee6b9097eca5a650d46182

See more details on using hashes here.

File details

Details for the file lunar_times-0.6.14-py3-none-any.whl.

File metadata

  • Download URL: lunar_times-0.6.14-py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.18

File hashes

Hashes for lunar_times-0.6.14-py3-none-any.whl
Algorithm Hash digest
SHA256 913714b6e1955c97e617b0bf6a8182a9f816e1b2d9ef6114e5b9e9a4fb592c69
MD5 ed5c809b7a9b202b89aad961a3fb734c
BLAKE2b-256 e23a6746f44dfb247e2729cfa08b15549f73ec84a9a0cab8b75e51cc471aaa57

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