Python travelling library
This is a Python library to use in conjunction with the
Google Maps API (at least for now) in order to plan trips
and much more! It tries to bring a less JSON-oriented way of using the API.
Roadmap
- Distance and timing calculations for trips. ✔️
- Geocoding and decoding locations in the globe.
- Support for static map images.
- Drop
googlemaps
dependency. - Investigate other APIs to use.
- ...
Getting started
These instructions will get you a copy of the project up and running on your local machine for development and testing
purposes.
Local installation
Prerequisites
You will need the following:
- Python >= 3.10
- A Google Maps API key (for testing outside the testing environment)
Installing
For a local installation, just clone this repository inside the parent directory of your project.
git clone https://github.com/diagmatrix/py-travel.git
git checkout main
Then install the dependencies of py-travel.
pip install -r requirements.txt
And there you have it! You can now use this library freely.
Installation
This project is available in PyPy, so you can install it using
pip.
pip install py-travel
Usage
There are currently two ways of using the classes provided in the package: by using the built-in
Google Maps API clients or by using the googlemaps
client directly. The first method will initialize an API client for
each of the classes of py-travel that use them, while the second approach will give you more control on which ones
can access it.
Using built-in client
from py_travel import init_clients
from py_travel.trip import Trip
init_clients(api_key="<API KEY>")
my_trip = Trip(origin=(39.25, -4.47), destination="Aveiro, Portugal", config={'mode': 'walking'})
kms = my_trip.distance
Using googlemaps
directly
from py_travel.trip import Trip
import googlemaps
cli = googlemaps.Client(key="<API KEY>")
Trip.set_client(cli)
my_trip = Trip(origin=(39.25, -4.47), destination="Aveiro, Portugal", config={'mode': 'walking'})
kms = my_trip.distance
Running the tests
In order to run the tests you will first need to install the python package pytest
. Then, place yourself in the parent
branch of the repository and run the following command:
pytest
For linting tests, this project uses the default ruff
configuration.
Contributing
Work in progress