Metadata-Version: 2.4
Name: oasatelematics
Version: 0.4
Summary: Python wrapper for the OASA Telematics API
Author-email: panosmz <p.mazarakis94@gmail.com>
License-Expression: GPL-3.0-only
Project-URL: Homepage, https://github.com/panosmz/oasatelematics
Project-URL: Repository, https://github.com/panosmz/oasatelematics
Keywords: api,telematics,oasa,transit
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
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
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: requests
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Dynamic: license-file

# oasatelematics

[![PyPI version](https://img.shields.io/pypi/v/oasatelematics.svg)](https://pypi.org/project/oasatelematics/)
[![Python](https://img.shields.io/pypi/pyversions/oasatelematics.svg)](https://pypi.org/project/oasatelematics/)
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)

Python wrapper for the [OASA Telematics API](http://telematics.oasa.gr/) (Athens public transit).

## Installation

```bash
pip install oasatelematics
```

## Usage

```python
import oasatelematics

# Get all lines
lines = oasatelematics.webGetLines()

# Get routes for a line
routes = oasatelematics.webGetRoutes(line_code)

# Get real-time arrivals at a stop
arrivals = oasatelematics.getStopArrivals(stop_code)

# Get closest stops to coordinates
stops = oasatelematics.getClosestStops(longitude, latitude)

# Get bus location on a route
buses = oasatelematics.getBusLocation(route_code)
```

## Available Functions

| Function | Parameters | Description |
|---|---|---|
| `webGetLines()` | — | Get all lines |
| `webGetLinesWithMLInfo()` | — | Get lines with master line info |
| `webGetRoutes(linecode)` | line code | Get routes for a line |
| `webRouteDetails(routecode)` | route code | Get route details |
| `webGetStops(routecode)` | route code | Get stops for a route |
| `webRoutesForStop(stopcode)` | stop code | Get routes serving a stop |
| `webGetRoutesDetailsAndStops(routecode)` | route code | Get route details and stops |
| `getStopArrivals(stopcode)` | stop code | Get real-time arrivals at a stop |
| `getBusLocation(routecode)` | route code | Get bus locations on a route |
| `getScheduleDaysMasterline(linecode)` | line code | Get schedule days for a master line |
| `getLinesAndRoutesForMl(mlcode)` | master line code | Get lines and routes for a master line |
| `getRoutesForLine(linecode)` | line code | Get routes for a line |
| `getMLName(mlcode)` | master line code | Get master line name |
| `getLineName(linecode)` | line code | Get line name |
| `getRouteName(routecode)` | route code | Get route name |
| `getStopNameAndXY(stopcode)` | stop code | Get stop name and coordinates |
| `getSchedLines(mlcode, linecode, sdc_code)` | master line, line, schedule day code | Get schedule lines |
| `getClosestStops(lon, lat)` | longitude, latitude | Get closest stops to coordinates |
| `getDailySchedule(linecode)` | line code | Get daily schedule |

## Development

```bash
pip install -e ".[dev]"         # install with dev dependencies
pytest -v                        # run unit tests (mocked)
pytest -m integration -v        # run integration tests (hits real API)
```

## License

[GPL-3.0](LICENSE.txt)
