Calculate lunar rise and set times for any location
Project description
Lunar Times
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
- Usage Guide - Detailed usage instructions and examples
- Testing Documentation - Comprehensive testing documentation and coverage analysis
- Setup Guide - Installation and configuration instructions
- Invisible Character Detection - Tools for detecting and removing invisible characters in AI-generated code
- Architecture - Technical architecture and design documentation
- Changelog - Version history and release notes
- Failure Analysis - Troubleshooting and known issues
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
- CI Pipeline (
.github/workflows/ci.yml) - 212 lines of comprehensive testing automation - Release Pipeline (
.github/workflows/release.yml) - 104 lines of deployment automation - Health Monitoring (
.github/workflows/health-check.yml) - 57 lines of API monitoring
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58d49cb7c050c3048766af526af9657554c0dc22908fe5645f8e99cfb0ad0a94
|
|
| MD5 |
8c25c224bc403901b57e1e4e48819b24
|
|
| BLAKE2b-256 |
84b3391289cf6f0bba2aa02f1a4b1c1d85cf481552ed4614106f0cb4f5d814c9
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec1a3557617c3823ae3eebf176111eb64181f208f3d8a48672fd951972764cc5
|
|
| MD5 |
802bb799064283c483e01efa77acec49
|
|
| BLAKE2b-256 |
3556a4a6f0c6b92d9282f4152ce53ca7dce9518691b15debf7d6b25ed060d56f
|