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

Uploaded Python 3

File details

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

File metadata

  • Download URL: lunar_times-0.6.16.tar.gz
  • Upload date:
  • Size: 121.6 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.16.tar.gz
Algorithm Hash digest
SHA256 58d49cb7c050c3048766af526af9657554c0dc22908fe5645f8e99cfb0ad0a94
MD5 8c25c224bc403901b57e1e4e48819b24
BLAKE2b-256 84b3391289cf6f0bba2aa02f1a4b1c1d85cf481552ed4614106f0cb4f5d814c9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lunar_times-0.6.16-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.16-py3-none-any.whl
Algorithm Hash digest
SHA256 ec1a3557617c3823ae3eebf176111eb64181f208f3d8a48672fd951972764cc5
MD5 802bb799064283c483e01efa77acec49
BLAKE2b-256 3556a4a6f0c6b92d9282f4152ce53ca7dce9518691b15debf7d6b25ed060d56f

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