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

Uploaded Python 3

File details

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

File metadata

  • Download URL: lunar_times-1.0.0.tar.gz
  • Upload date:
  • Size: 122.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-1.0.0.tar.gz
Algorithm Hash digest
SHA256 f183bcc3920c873bedd3abae4d3e524bb156feb93d4bf3fa1737d3729a8f1c3b
MD5 3e3fbbff3ab6d2e0e23077c61adebb1b
BLAKE2b-256 837107b4cf4419c4344ac485e510d5709e75c69cce6c564d5acd386ecbbf2f7a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lunar_times-1.0.0-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-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b3f861e43e98de528dab319c8219d6def40e9b8391864882984b945dd1630346
MD5 0f1dc7d5626ff89e4b9e9519995eda74
BLAKE2b-256 4668f6be8afb61b17f5deb5635a62c2495385307a74148e092780950cb78bf32

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