# PythonRMV Small module that makes your journey with RMV REST API somehow easier. Based fully on official RMV API reference and HAFAS documentation. # Requirements * RMV API key (Get it [here](https://opendata.rmv.de/site/start.html)) * Python3 (Tested versions are 3.7.9 and 3.9.13) * git (Only for installation from source) # Installation If you have everything listed in [requirements](#requirements), then let's begin. ### Variant 1: 1. `python -m pip install pyrmv` ### Variant 2: 1. `git clone https://git.end-play.xyz/profitroll/PythonRMV.git` 2. `cd PythonRMV` 3. `python setup.py install` # Usage ```py import pyrmv # Define a Client with API key client = pyrmv.Client("AcessId") # Get origin's and destination's location origin = client.stop_by_name("Frankfurt Hauptbahnhof", max_number=3)[0] destination = client.stop_by_coords(50.099613, 8.685449, max_number=3)[0] # Find a trip by locations got trip = client.trip_find(origin_id=origin.id, dest_id=destination.id) ``` # Frequently Asked Questions - [Why are there raw versions and formatted ones?](#why-are-there-raw-versions-and-formatted-ones) - [Some methods work slightly different](#some-methods-work-slightly-different) ## Why are there raw versions and formatted ones? For the purposes of my projects I don't really need all the stuff RMV gives (even though it's not much). I only need some specific things. However I do understand that in some cases other users may find those methods quite useful so I implemented them as well. ## Some methods work slightly different Can be. Not all function arguments written may work perfectly because I simply did not test each and every request. Some of arguments may be irrelevant in my use-case and the others are used quite rare at all. Just [make an issue](https://git.end-play.xyz/profitroll/PythonRMV/issues/new) and I'll implement it correct when I'll have some free time. # To-Do ## General - [ ] Docs in Wiki ## Raw methods - [x] arrivalBoard (board_arrival) - [x] departureBoard (board_departure) - [x] himsearch (him_search) - [x] journeyDetail (journey_detail) - [x] location.nearbystops (stop_by_coords) - [x] location.name (stop_by_name) - [x] trip (trip_find) - [x] recon (trip_recon) ## Normal methods - [x] arrivalBoard (board_arrival) - [x] departureBoard (board_departure) - [x] himsearch (him_search) - [x] journeyDetail (journey_detail) - [x] location.nearbystops (stop_by_coords) - [x] location.name (stop_by_name) - [x] trip (trip_find) - [x] recon (trip_recon)