This is a python3 library, so make sure to use pip for python3
python3 -m pip install ODWC
In your python project, include the library as follows:
import ODWC as odwc
Now, set your Google maps api key:
odwc.key = "<your key here>"
First, create a Coordinator
(aka. router):
router = odwc.Coordinator(students, drivers)
The Coordinator
constructor takes a list of students and a list of drivers. These are described in the Data Types section below.
Next, calculate the schedules.
schedules = router.calculate()
THis will return a dictionary with the names of the drivers as keys and their schedules as a list for the value.
A key with the name failed
will also be returned. This may contain a list of Student
objects (described below). These are the students that could not be automatically scheduled and require manual scheduling.
These are the various types and formats that are used.
Student
is a class that contains info about each student. These are only returned. DO NOT pass them in to the Coordinator
. They contain the following values:
pickup: str
dropoff: str
time: float
To convert the time to a human-readable time, use the floatToTime()
function and pass in the time.
When passing in a list of students, use the following structure:
[
{
"pickup":"<address>",
"dropoff":"<address>",
"time":"<24 hour time>"
},
...
]
Here is an example:
[
{
"pickup":"525 Dundas St, London, ON N6B 1W5",
"dropoff":"450 Dundas St, London, ON N6B 3K3",
"time":"15:00"
}
]
Passing in a list of drivers works in a similar way.
[
{
"name":"<Unique name>",
"location":"<Starting location of the car>"
},
...
]
Here is an example:
[
{
"name":"driver 1",
"location":"600 Oxford St E, London, ON N5Y 3J1"
}
]