Metadata-Version: 2.4
Name: meteo-greece-api
Version: 0.1.0
Summary: A Python client for the Meteo Greece API (meteostations-gr-api)
Project-URL: Homepage, https://github.com/apo-mak/meteo-greece-api
Project-URL: Repository, https://github.com/apo-mak/meteo-greece-api.git
Author: apo-mak
License: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.9
Requires-Dist: aiohttp>=3.8.0
Provides-Extra: dev
Requires-Dist: black>=23.0; extra == 'dev'
Requires-Dist: isort>=5.0; extra == 'dev'
Requires-Dist: mypy>=1.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Description-Content-Type: text/markdown

# Meteo Greece API Client

A simple, asynchronous Python client for the Meteostations GR Private API, which provides live meteorological data from Greek weather stations and city forecasts from meteo.gr.

This package is designed for easy integration with [Home Assistant](https://www.home-assistant.io/) and other asynchronous Python applications.

## Installation

```bash
pip install meteo-greece-api
```

## Usage

```python
import asyncio
from meteo_greece_api import MeteoGreeceClient

async def main():
    async with MeteoGreeceClient() as client:
        # Get all available stations
        stations = await client.get_available_stations()
        print(f"Found {len(stations.get('stations', []))} stations.")
        
        # Get live data for a specific station (e.g., 'aggelokastro')
        data = await client.get_station_data('aggelokastro')
        print(data)

        # Get all available cities for forecasts
        cities = await client.get_cities()
        print(f"Found {len(cities.get('cities', []))} cities.")
        
        # Get forecast for a specific city (e.g., 12 for Athens)
        forecast = await client.get_forecast(12)
        print(forecast)

if __name__ == "__main__":
    asyncio.run(main())
```

## Features

- **Asynchronous**: Uses `aiohttp` for non-blocking network requests, ideal for Home Assistant integrations.
- **Context Manager**: Supports `async with` for easy resource management.
- **Minimal Dependencies**: Only requires `aiohttp`.

## Development

To set up the development environment:

```bash
# Clone the repository
git clone https://github.com/apo-mak/meteo-greece-api.git
cd meteo-greece-api

# Install dependencies including development ones
pip install -e ".[dev]"

# Run tests
pytest
```

## Publishing to PyPI

To build and publish this package to PyPI, you can use the `build` and `twine` tools:

```bash
# Install build tools
pip install build twine

# Build the package (sdist and wheel)
python -m build

# Upload to PyPI (will prompt for your PyPI token)
twine upload dist/*
```
