Skip to content

Commit

Permalink
Update WKT response with new features
Browse files Browse the repository at this point in the history
  • Loading branch information
arnasbr committed Oct 24, 2023
2 parents 0c47d8d + 26b7b34 commit 2e88819
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 25 deletions.
22 changes: 16 additions & 6 deletions traveltimepy/dto/requests/time_map_wkt.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
Walking,
Cycling,
DrivingTrain,
CyclingPublicTransport,
)
from traveltimepy.dto.requests.request import TravelTimeRequest
from traveltimepy.dto.responses.time_map_wkt import WKTResponseCollection
Expand All @@ -26,7 +27,13 @@ class DepartureSearch(BaseModel):
departure_time: datetime
travel_time: int
transportation: typing.Union[
PublicTransport, Driving, Ferry, Walking, Cycling, DrivingTrain
PublicTransport,
Driving,
Ferry,
Walking,
Cycling,
DrivingTrain,
CyclingPublicTransport,
]
range: Optional[Range] = None

Expand All @@ -37,7 +44,13 @@ class ArrivalSearch(BaseModel):
arrival_time: datetime
travel_time: int
transportation: typing.Union[
PublicTransport, Driving, Ferry, Walking, Cycling, DrivingTrain
PublicTransport,
Driving,
Ferry,
Walking,
Cycling,
DrivingTrain,
CyclingPublicTransport,
]
range: Optional[Range] = None

Expand All @@ -48,10 +61,7 @@ class TimeMapWKTRequest(TravelTimeRequest[WKTResponseCollection]):

def split_searches(self, window_size: int) -> List[TravelTimeRequest]:
return [
TimeMapWKTRequest(
departure_searches=departures,
arrival_searches=arrivals
)
TimeMapWKTRequest(departure_searches=departures, arrival_searches=arrivals)
for departures, arrivals in split(
self.departure_searches, self.arrival_searches, window_size
)
Expand Down
10 changes: 9 additions & 1 deletion traveltimepy/mapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -465,12 +465,19 @@ def create_time_map_geojson(
def create_time_map_wkt(
coordinates: List[Coordinates],
transportation: Union[
PublicTransport, Driving, Ferry, Walking, Cycling, DrivingTrain
PublicTransport,
Driving,
Ferry,
Walking,
Cycling,
DrivingTrain,
CyclingPublicTransport,
],
travel_time: int,
departure_time: Optional[datetime],
arrival_time: Optional[datetime],
search_range: Optional[Range],
level_of_detail: Optional[LevelOfDetail],
) -> TimeMapWKTRequest:
if arrival_time is not None and departure_time is not None:
raise ApiError("arrival_time and departure_time cannot be both specified")
Expand All @@ -485,6 +492,7 @@ def create_time_map_wkt(
arrival_time=arrival_time,
transportation=transportation,
range=search_range,
level_of_detail=level_of_detail,
)
for ind, cur_coordinates in enumerate(coordinates)
],
Expand Down
53 changes: 35 additions & 18 deletions traveltimepy/sdk.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
)
from traveltimepy.dto.responses.time_map_wkt import (
TimeMapWKTResult,
WKTResponseCollection
WKTResponseCollection,
)
from traveltimepy.dto.transportation import (
PublicTransport,
Expand Down Expand Up @@ -64,6 +64,7 @@
create_intersection,
create_union,
create_time_map_geojson,
create_time_map_wkt,
)

from traveltimepy.proto_http import send_proto_async
Expand Down Expand Up @@ -143,13 +144,13 @@ async def map_info_async(self) -> List[Map]:
return res.maps

async def geocoding_async(
self,
query: str,
limit: Optional[int] = None,
within_countries: Optional[List[str]] = None,
format_name: Optional[bool] = None,
format_exclude_country: Optional[bool] = None,
bounds: Optional[Rectangle] = None,
self,
query: str,
limit: Optional[int] = None,
within_countries: Optional[List[str]] = None,
format_name: Optional[bool] = None,
format_exclude_country: Optional[bool] = None,
bounds: Optional[Rectangle] = None,
) -> FeatureCollection:
return await send_get_async(
FeatureCollection,
Expand Down Expand Up @@ -522,12 +523,19 @@ async def time_map_wkt_async(
self,
coordinates: List[Coordinates],
transportation: Union[
PublicTransport, Driving, Ferry, Walking, Cycling, DrivingTrain
PublicTransport,
Driving,
Ferry,
Walking,
Cycling,
DrivingTrain,
CyclingPublicTransport,
],
arrival_time: Optional[datetime] = None,
departure_time: Optional[datetime] = None,
travel_time: int = 3600,
search_range: Optional[Range] = None,
level_of_detail: Optional[LevelOfDetail] = None,
) -> List[TimeMapWKTResult]:
resp = await send_post_async(
WKTResponseCollection,
Expand All @@ -540,21 +548,29 @@ async def time_map_wkt_async(
arrival_time,
departure_time,
search_range,
level_of_detail,
),
self._sdk_params,
)
return resp.results

async def time_map_wkt_no_holes_async(
self,
coordinates: List[Coordinates],
transportation: Union[
PublicTransport, Driving, Ferry, Walking, Cycling, DrivingTrain
],
arrival_time: Optional[datetime] = None,
departure_time: Optional[datetime] = None,
travel_time: int = 3600,
search_range: Optional[Range] = None,
self,
coordinates: List[Coordinates],
transportation: Union[
PublicTransport,
Driving,
Ferry,
Walking,
Cycling,
DrivingTrain,
CyclingPublicTransport,
],
arrival_time: Optional[datetime] = None,
departure_time: Optional[datetime] = None,
travel_time: int = 3600,
search_range: Optional[Range] = None,
level_of_detail: Optional[LevelOfDetail] = None,
) -> List[TimeMapWKTResult]:
resp = await send_post_async(
WKTResponseCollection,
Expand All @@ -567,6 +583,7 @@ async def time_map_wkt_no_holes_async(
arrival_time,
departure_time,
search_range,
level_of_detail,
),
self._sdk_params,
)
Expand Down

0 comments on commit 2e88819

Please sign in to comment.