lunar-times


Namelunar-times JSON
Version 1.0.0 PyPI version JSON
download
home_pageNone
SummaryCalculate lunar rise and set times for any location
upload_time2025-07-16 22:45:37
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT License Copyright (c) 2024 cscortes Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords astronomy cli lunar moonrise moonset times
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Lunar Times

[![CI](https://github.com/cscortes/lunar-times/workflows/CI/badge.svg)](https://github.com/cscortes/lunar-times/actions)
[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![PyPI version](https://badge.fury.io/py/lunar-times.svg)](https://badge.fury.io/py/lunar-times)
[![Coverage](https://codecov.io/gh/cscortes/lunar-times/branch/main/graph/badge.svg)](https://codecov.io/gh/cscortes/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

```bash
# 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

```bash
$ 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](docs/USAGE.md)** - Detailed usage instructions and examples
- **[Testing Documentation](docs/TEST.md)** - Comprehensive testing documentation and coverage analysis
- **[Setup Guide](docs/SETUP.md)** - Installation and configuration instructions
- **[Invisible Character Detection](scripts/invisible_chars_commands.md)** - Tools for detecting and removing invisible characters in AI-generated code
- **[Architecture](docs/ARCH.md)** - Technical architecture and design documentation
- **[Changelog](docs/CHANGELOG.md)** - Version history and release notes
- **[Failure Analysis](docs/FAILURE.md)** - 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`](.github/workflows/ci.yml)) - 212 lines of comprehensive testing automation
- **Release Pipeline** ([`.github/workflows/release.yml`](.github/workflows/release.yml)) - 104 lines of deployment automation
- **Health Monitoring** ([`.github/workflows/health-check.yml`](.github/workflows/health-check.yml)) - 57 lines of API monitoring

### Development Workflow
```bash
# 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](https://github.com/cscortes/lunar-times/actions) and [automation details](.github/workflows/).

## Requirements

- Python 3.8+
- [uv](https://docs.astral.sh/uv/) package manager
- Internet connection for API calls
- Dependencies: requests, geopy, timezonefinder, pytz

## License

This project is licensed under the terms in the [LICENSE](LICENSE) file.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "lunar-times",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "Luis Cort\u00e9s <cscortes@users.noreply.github.com>",
    "keywords": "astronomy, cli, lunar, moonrise, moonset, times",
    "author": null,
    "author_email": "Luis Cort\u00e9s <cscortes@users.noreply.github.com>",
    "download_url": "https://files.pythonhosted.org/packages/83/71/07b4cf4419c4344ac485e510d5709e75c69cce6c564d5acd386ecbbf2f7a/lunar_times-1.0.0.tar.gz",
    "platform": null,
    "description": "# Lunar Times\n\n[![CI](https://github.com/cscortes/lunar-times/workflows/CI/badge.svg)](https://github.com/cscortes/lunar-times/actions)\n[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\n[![PyPI version](https://badge.fury.io/py/lunar-times.svg)](https://badge.fury.io/py/lunar-times)\n[![Coverage](https://codecov.io/gh/cscortes/lunar-times/branch/main/graph/badge.svg)](https://codecov.io/gh/cscortes/lunar-times)\n\nA 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.\n\n## Features\n\n- \ud83c\udf19 Calculate moonrise and moonset times for any US city and state\n- \ud83d\udccd Automatic coordinate resolution using OpenStreetMap geocoding\n- \ud83d\udd50 Timezone-aware calculations with proper daylight saving time handling\n- \ud83d\udd27 Debug mode for development and testing\n- \ud83d\ude80 Clean command-line interface with clear output formatting\n- \u2705 **Enterprise-grade CI/CD** with automated testing across multiple Python versions and platforms\n\n## Quick Start\n\n```bash\n# Install dependencies\nmake install\n\n# Run the application\nmake run\n\n# Or use debug mode (defaults to El Paso, TX)\nmake run-debug\n\n# Run tests\nmake test\n\n# Check code quality\nmake check\n```\n\n## Example Usage\n\n```bash\n$ lunar-times\nEnter the city: Austin\nEnter the state: TX\n# Moon rise/set times in (Timezone: America/Chicago -6.0) on 2024-01-15:\n-  RISE: 10:45 PM\n-  SET: 11:30 AM\n```\n\n## Documentation\n\n- **[Usage Guide](docs/USAGE.md)** - Detailed usage instructions and examples\n- **[Testing Documentation](docs/TEST.md)** - Comprehensive testing documentation and coverage analysis\n- **[Setup Guide](docs/SETUP.md)** - Installation and configuration instructions\n- **[Invisible Character Detection](scripts/invisible_chars_commands.md)** - Tools for detecting and removing invisible characters in AI-generated code\n- **[Architecture](docs/ARCH.md)** - Technical architecture and design documentation\n- **[Changelog](docs/CHANGELOG.md)** - Version history and release notes\n- **[Failure Analysis](docs/FAILURE.md)** - Troubleshooting and known issues\n\n## Development & CI/CD\n\nThis project uses **GitHub Actions** for comprehensive automated testing and deployment. All workflows are **live and operational**:\n\n### Continuous Integration \u2705\n- **Multi-Python Testing**: Automated testing on Python 3.8, 3.9, 3.10, 3.11, and 3.12\n- **Cross-Platform**: Tests run on Ubuntu, Windows, and macOS \n- **Quality Gates**: Linting, type checking, test coverage, and security scanning\n- **Fast Feedback**: Quick validation jobs provide rapid feedback on pull requests\n\n### Automated Deployment \u2705\n- **PyPI Publishing**: Automatic package publishing on version tags\n- **GitHub Releases**: Automated release creation with changelog integration  \n- **Health Monitoring**: Weekly API health checks with automatic issue creation\n\n### Operational Workflows\n- **CI Pipeline** ([`.github/workflows/ci.yml`](.github/workflows/ci.yml)) - 212 lines of comprehensive testing automation\n- **Release Pipeline** ([`.github/workflows/release.yml`](.github/workflows/release.yml)) - 104 lines of deployment automation\n- **Health Monitoring** ([`.github/workflows/health-check.yml`](.github/workflows/health-check.yml)) - 57 lines of API monitoring\n\n### Development Workflow\n```bash\n# All development commands work with CI\nmake test          # Runs same tests as CI\nmake check         # Runs all quality checks  \nmake build-package # Builds package like CI\n```\n\nView live [workflow runs](https://github.com/cscortes/lunar-times/actions) and [automation details](.github/workflows/).\n\n## Requirements\n\n- Python 3.8+\n- [uv](https://docs.astral.sh/uv/) package manager\n- Internet connection for API calls\n- Dependencies: requests, geopy, timezonefinder, pytz\n\n## License\n\nThis project is licensed under the terms in the [LICENSE](LICENSE) file.\n",
    "bugtrack_url": null,
    "license": "MIT License\n        \n        Copyright (c) 2024 cscortes\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.",
    "summary": "Calculate lunar rise and set times for any location",
    "version": "1.0.0",
    "project_urls": {
        "Changelog": "https://github.com/cscortes/lunar-times/blob/main/docs/CHANGELOG.md",
        "Documentation": "https://github.com/cscortes/lunar-times/tree/main/docs",
        "Homepage": "https://github.com/cscortes/lunar-times",
        "Issues": "https://github.com/cscortes/lunar-times/issues",
        "Repository": "https://github.com/cscortes/lunar-times"
    },
    "split_keywords": [
        "astronomy",
        " cli",
        " lunar",
        " moonrise",
        " moonset",
        " times"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4668f6be8afb61b17f5deb5635a62c2495385307a74148e092780950cb78bf32",
                "md5": "0f1dc7d5626ff89e4b9e9519995eda74",
                "sha256": "b3f861e43e98de528dab319c8219d6def40e9b8391864882984b945dd1630346"
            },
            "downloads": -1,
            "filename": "lunar_times-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0f1dc7d5626ff89e4b9e9519995eda74",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 7579,
            "upload_time": "2025-07-16T22:45:35",
            "upload_time_iso_8601": "2025-07-16T22:45:35.997552Z",
            "url": "https://files.pythonhosted.org/packages/46/68/f6be8afb61b17f5deb5635a62c2495385307a74148e092780950cb78bf32/lunar_times-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "837107b4cf4419c4344ac485e510d5709e75c69cce6c564d5acd386ecbbf2f7a",
                "md5": "3e3fbbff3ab6d2e0e23077c61adebb1b",
                "sha256": "f183bcc3920c873bedd3abae4d3e524bb156feb93d4bf3fa1737d3729a8f1c3b"
            },
            "downloads": -1,
            "filename": "lunar_times-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "3e3fbbff3ab6d2e0e23077c61adebb1b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 121987,
            "upload_time": "2025-07-16T22:45:37",
            "upload_time_iso_8601": "2025-07-16T22:45:37.371634Z",
            "url": "https://files.pythonhosted.org/packages/83/71/07b4cf4419c4344ac485e510d5709e75c69cce6c564d5acd386ecbbf2f7a/lunar_times-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-16 22:45:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cscortes",
    "github_project": "lunar-times",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "lunar-times"
}
        
Elapsed time: 0.51532s