python-navitia-client 1.3.0__tar.gz → 2.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {python_navitia_client-1.3.0/python_navitia_client.egg-info → python_navitia_client-2.0.0}/PKG-INFO +1 -1
- python_navitia_client-2.0.0/navitia_client/client/apis/arrival_apis.py +95 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/contributors_apis.py +76 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/coverage_apis.py +91 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/datasets_apis.py +74 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/departure_apis.py +93 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/equipment_report_apis.py +84 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/freefloatings_nearby_apis.py +146 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/inverted_geocoding_apis.py +131 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/isochrone_apis.py +59 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/journeys_apis.py +77 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/line_report_apis.py +56 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/place_apis.py +47 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/places_nearby_apis.py +133 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/public_transport_objects_apis.py +50 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/public_transportation_apis/commercial_mode_apis.py +111 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/public_transportation_apis/company_apis.py +111 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/public_transportation_apis/disruption_apis.py +113 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/public_transportation_apis/entity_apis.py +162 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/public_transportation_apis/line_apis.py +111 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/public_transportation_apis/network_apis.py +111 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/public_transportation_apis/physical_mode_apis.py +111 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/public_transportation_apis/route_apis.py +111 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/public_transportation_apis/stop_area_apis.py +111 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/public_transportation_apis/stop_point_apis.py +111 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/public_transportation_apis/vehicle_journey_apis.py +112 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/route_schedules_apis.py +87 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/stop_schedules_apis.py +91 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/terminus_schedules_apis.py +95 -0
- python_navitia_client-2.0.0/navitia_client/client/apis/traffic_report_apis.py +61 -0
- python_navitia_client-2.0.0/navitia_client/entities/__init__.py +0 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/__init__.py +45 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/arrival.py +62 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/base_entity_request.py +82 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/contributor.py +28 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/coverage.py +28 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/dataset.py +28 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/departure.py +67 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/equipment_report.py +46 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/freefloatings_nearby.py +40 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/inverted_geocoding.py +29 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/isochrone.py +75 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/journey.py +215 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/line_report.py +56 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/place.py +52 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/places_nearby.py +68 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/public_transport_object.py +52 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/public_transportations/___init__.py +39 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/public_transportations/__init__.py +39 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/public_transportations/commercial_mode.py +24 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/public_transportations/company.py +25 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/public_transportations/disruption.py +25 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/public_transportations/line.py +25 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/public_transportations/network.py +25 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/public_transportations/physical_mode.py +25 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/public_transportations/route.py +25 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/public_transportations/stop_area.py +25 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/public_transportations/stop_point.py +25 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/public_transportations/vehicle_journey.py +25 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/route_schedule.py +67 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/stop_schedule.py +67 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/terminus_schedule.py +67 -0
- python_navitia_client-2.0.0/navitia_client/entities/request/traffic_report.py +56 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/__init__.py +18 -16
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/arrival.py +3 -3
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/contributor.py +1 -1
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/dataset.py +1 -1
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/departure.py +3 -3
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/direction.py +2 -2
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/isochrones.py +1 -1
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/journey.py +5 -5
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/line_and_route.py +4 -4
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/line_report.py +2 -2
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/link.py +4 -4
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/pt_datetime.py +1 -1
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/route_schedule.py +2 -2
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/schedule_table.py +4 -4
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/stop_datetime.py +1 -1
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/stop_schedule.py +4 -4
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/ticket.py +2 -2
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/traffic_report.py +2 -2
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/vehicle_journey.py +4 -4
- {python_navitia_client-1.3.0 → python_navitia_client-2.0.0}/pyproject.toml +1 -1
- {python_navitia_client-1.3.0 → python_navitia_client-2.0.0/python_navitia_client.egg-info}/PKG-INFO +1 -1
- python_navitia_client-2.0.0/python_navitia_client.egg-info/SOURCES.txt +123 -0
- python_navitia_client-1.3.0/navitia_client/client/apis/arrival_apis.py +0 -207
- python_navitia_client-1.3.0/navitia_client/client/apis/contributors_apis.py +0 -107
- python_navitia_client-1.3.0/navitia_client/client/apis/coverage_apis.py +0 -131
- python_navitia_client-1.3.0/navitia_client/client/apis/datasets_apis.py +0 -105
- python_navitia_client-1.3.0/navitia_client/client/apis/departure_apis.py +0 -227
- python_navitia_client-1.3.0/navitia_client/client/apis/equipment_report_apis.py +0 -153
- python_navitia_client-1.3.0/navitia_client/client/apis/freefloatings_nearby_apis.py +0 -247
- python_navitia_client-1.3.0/navitia_client/client/apis/inverted_geocoding_apis.py +0 -199
- python_navitia_client-1.3.0/navitia_client/client/apis/isochrone_apis.py +0 -196
- python_navitia_client-1.3.0/navitia_client/client/apis/journeys_apis.py +0 -770
- python_navitia_client-1.3.0/navitia_client/client/apis/line_report_apis.py +0 -106
- python_navitia_client-1.3.0/navitia_client/client/apis/place_apis.py +0 -74
- python_navitia_client-1.3.0/navitia_client/client/apis/places_nearby_apis.py +0 -354
- python_navitia_client-1.3.0/navitia_client/client/apis/public_transport_objects_apis.py +0 -88
- python_navitia_client-1.3.0/navitia_client/client/apis/public_transportation_apis/commercial_mode_apis.py +0 -317
- python_navitia_client-1.3.0/navitia_client/client/apis/public_transportation_apis/company_apis.py +0 -389
- python_navitia_client-1.3.0/navitia_client/client/apis/public_transportation_apis/disruption_apis.py +0 -391
- python_navitia_client-1.3.0/navitia_client/client/apis/public_transportation_apis/entity_apis.py +0 -352
- python_navitia_client-1.3.0/navitia_client/client/apis/public_transportation_apis/line_apis.py +0 -389
- python_navitia_client-1.3.0/navitia_client/client/apis/public_transportation_apis/network_apis.py +0 -389
- python_navitia_client-1.3.0/navitia_client/client/apis/public_transportation_apis/physical_mode_apis.py +0 -389
- python_navitia_client-1.3.0/navitia_client/client/apis/public_transportation_apis/route_apis.py +0 -389
- python_navitia_client-1.3.0/navitia_client/client/apis/public_transportation_apis/stop_area_apis.py +0 -389
- python_navitia_client-1.3.0/navitia_client/client/apis/public_transportation_apis/stop_point_apis.py +0 -389
- python_navitia_client-1.3.0/navitia_client/client/apis/public_transportation_apis/vehicle_journey_apis.py +0 -390
- python_navitia_client-1.3.0/navitia_client/client/apis/route_schedules_apis.py +0 -189
- python_navitia_client-1.3.0/navitia_client/client/apis/stop_schedules_apis.py +0 -193
- python_navitia_client-1.3.0/navitia_client/client/apis/terminus_schedules_apis.py +0 -198
- python_navitia_client-1.3.0/navitia_client/client/apis/traffic_report_apis.py +0 -106
- python_navitia_client-1.3.0/python_navitia_client.egg-info/SOURCES.txt +0 -90
- {python_navitia_client-1.3.0 → python_navitia_client-2.0.0}/LICENSE +0 -0
- {python_navitia_client-1.3.0 → python_navitia_client-2.0.0}/README.md +0 -0
- {python_navitia_client-1.3.0 → python_navitia_client-2.0.0}/navitia_client/__init__.py +0 -0
- {python_navitia_client-1.3.0 → python_navitia_client-2.0.0}/navitia_client/client/__init__.py +0 -0
- {python_navitia_client-1.3.0 → python_navitia_client-2.0.0}/navitia_client/client/apis/__init__.py +0 -0
- {python_navitia_client-1.3.0 → python_navitia_client-2.0.0}/navitia_client/client/apis/api_base_client.py +0 -0
- {python_navitia_client-1.3.0 → python_navitia_client-2.0.0}/navitia_client/client/apis/public_transportation_apis/__init__.py +0 -0
- {python_navitia_client-1.3.0 → python_navitia_client-2.0.0}/navitia_client/client/exceptions.py +0 -0
- {python_navitia_client-1.3.0 → python_navitia_client-2.0.0}/navitia_client/client/navitia_client.py +0 -0
- {python_navitia_client-1.3.0 → python_navitia_client-2.0.0}/navitia_client/client/raw/__init__.py +0 -0
- {python_navitia_client-1.3.0 → python_navitia_client-2.0.0}/navitia_client/client/raw/raw_client.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/access_point.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/address.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/administrative_region.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/base_entity.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/company.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/context.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/coord.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/display_information.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/disruption.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/equipment.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/equipment_reports.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/free_floating.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/network.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/note.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/pagination.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/path.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/pathway.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/physical_mode.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/place.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/poi.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/pt_object.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/stand.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/stop_area.py +0 -0
- {python_navitia_client-1.3.0/navitia_client/entities → python_navitia_client-2.0.0/navitia_client/entities/response}/trip.py +0 -0
- {python_navitia_client-1.3.0 → python_navitia_client-2.0.0}/python_navitia_client.egg-info/dependency_links.txt +0 -0
- {python_navitia_client-1.3.0 → python_navitia_client-2.0.0}/python_navitia_client.egg-info/requires.txt +0 -0
- {python_navitia_client-1.3.0 → python_navitia_client-2.0.0}/python_navitia_client.egg-info/top_level.txt +0 -0
- {python_navitia_client-1.3.0 → python_navitia_client-2.0.0}/setup.cfg +0 -0
- {python_navitia_client-1.3.0 → python_navitia_client-2.0.0}/tests/test_navitia_client.py +0 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
from typing import Any, Sequence, Tuple
|
|
2
|
+
from navitia_client.client.apis.api_base_client import ApiBaseClient
|
|
3
|
+
from navitia_client.entities.request.arrival import ArrivalRequest
|
|
4
|
+
from navitia_client.entities.response import Pagination
|
|
5
|
+
from navitia_client.entities.response.arrival import Arrival
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class ArrivalApiClient(ApiBaseClient):
|
|
9
|
+
"""Client class to interact with the Navitia API for fetching arrival information.
|
|
10
|
+
|
|
11
|
+
See https://doc.navitia.io/#arrivals
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
@staticmethod
|
|
15
|
+
def _get_arrival_objects_from_response(
|
|
16
|
+
response: Any,
|
|
17
|
+
) -> Sequence[Arrival]:
|
|
18
|
+
"""Convert raw response data into a list of Arrival objects.
|
|
19
|
+
|
|
20
|
+
Args:
|
|
21
|
+
response: The raw response data from the API containing arrivals' information.
|
|
22
|
+
|
|
23
|
+
Returns:
|
|
24
|
+
A list of Arrival objects created from the raw response data.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
arrivals = []
|
|
28
|
+
for arrival_data in response:
|
|
29
|
+
arrivals.append(Arrival.from_payload(arrival_data))
|
|
30
|
+
|
|
31
|
+
return arrivals
|
|
32
|
+
|
|
33
|
+
def _get_arrivals(
|
|
34
|
+
self, url: str, filters: dict
|
|
35
|
+
) -> Tuple[Sequence[Arrival], Pagination]:
|
|
36
|
+
"""Fetch arrivals based on a given URL and filters.
|
|
37
|
+
|
|
38
|
+
Args:
|
|
39
|
+
url: The URL for the API request.
|
|
40
|
+
filters: The filters to apply to the API request.
|
|
41
|
+
|
|
42
|
+
Returns:
|
|
43
|
+
A tuple containing a list of Arrival objects and a Pagination object for managing result pages.
|
|
44
|
+
"""
|
|
45
|
+
results = self.get_navitia_api(url + self._generate_filter_query(filters))
|
|
46
|
+
raw_results = results.json()["arrivals"]
|
|
47
|
+
pagination = Pagination.from_payload(results.json()["pagination"])
|
|
48
|
+
return self._get_arrival_objects_from_response(raw_results), pagination
|
|
49
|
+
|
|
50
|
+
def list_arrivals_by_region_id_and_path(
|
|
51
|
+
self,
|
|
52
|
+
region_id: str,
|
|
53
|
+
resource_path: str,
|
|
54
|
+
request: ArrivalRequest,
|
|
55
|
+
) -> Tuple[Sequence[Arrival], Pagination]:
|
|
56
|
+
"""Retrieve a list of arrivals for a specific region and resource path.
|
|
57
|
+
|
|
58
|
+
Args:
|
|
59
|
+
region_id: The identifier of the region to fetch arrivals from.
|
|
60
|
+
resource_path: The resource path within the region to fetch arrivals for.
|
|
61
|
+
request: The ArrivalRequest containing filters and parameters for the query.
|
|
62
|
+
|
|
63
|
+
Returns:
|
|
64
|
+
A tuple containing a list of Arrival objects and a Pagination object for managing result pages.
|
|
65
|
+
"""
|
|
66
|
+
request_url = (
|
|
67
|
+
f"{self.base_navitia_url}/coverage/{region_id}/{resource_path}/arrivals"
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
return self._get_arrivals(request_url, request.to_filters())
|
|
71
|
+
|
|
72
|
+
def list_arrivals_by_coordinates(
|
|
73
|
+
self,
|
|
74
|
+
region_lon: float,
|
|
75
|
+
region_lat: float,
|
|
76
|
+
lon: float,
|
|
77
|
+
lat: float,
|
|
78
|
+
request: ArrivalRequest,
|
|
79
|
+
) -> Tuple[Sequence[Arrival], Pagination]:
|
|
80
|
+
"""Retrieve a list of arrivals for specific coordinates.
|
|
81
|
+
|
|
82
|
+
Args:
|
|
83
|
+
region_lon: The longitude of the region to fetch arrivals from.
|
|
84
|
+
region_lat: The latitude of the region to fetch arrivals from.
|
|
85
|
+
lon: The longitude of the specific location to fetch arrivals for.
|
|
86
|
+
lat: The latitude of the specific location to fetch arrivals for.
|
|
87
|
+
request: The ArrivalRequest containing filters and parameters for the query.
|
|
88
|
+
|
|
89
|
+
Returns:
|
|
90
|
+
A tuple containing a list of Arrival objects and a Pagination object for managing result pages.
|
|
91
|
+
"""
|
|
92
|
+
# List of objects near the resource, navitia guesses the region from coordinates
|
|
93
|
+
request_url = f"{self.base_navitia_url}/coverage/{region_lon};{region_lat}/coords/{lon};{lat}/arrivals"
|
|
94
|
+
|
|
95
|
+
return self._get_arrivals(request_url, request.to_filters())
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
from typing import Any, Sequence, Tuple
|
|
2
|
+
|
|
3
|
+
from navitia_client.client.apis.api_base_client import ApiBaseClient
|
|
4
|
+
from navitia_client.entities.request.contributor import ContributorRequest
|
|
5
|
+
from navitia_client.entities.response.contributor import Contributor
|
|
6
|
+
from navitia_client.entities.response import Pagination
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ContributorsApiClient(ApiBaseClient):
|
|
10
|
+
"""Client class to interact with the Navitia API for fetching contributors.
|
|
11
|
+
|
|
12
|
+
See https://doc.navitia.io/#contributors
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
@staticmethod
|
|
16
|
+
def _get_contributors_from_response(
|
|
17
|
+
raw_contributors_response: Any,
|
|
18
|
+
) -> Sequence[Contributor]:
|
|
19
|
+
"""Convert raw response data into a list of Contributor objects.
|
|
20
|
+
|
|
21
|
+
Args:
|
|
22
|
+
raw_contributors_response: The raw response data from the API containing contributors' information.
|
|
23
|
+
|
|
24
|
+
Returns:
|
|
25
|
+
A list of Contributor objects created from the raw response data.
|
|
26
|
+
"""
|
|
27
|
+
contributors = []
|
|
28
|
+
for contributor_data in raw_contributors_response:
|
|
29
|
+
contributors.append(Contributor.from_payload(contributor_data))
|
|
30
|
+
|
|
31
|
+
return contributors
|
|
32
|
+
|
|
33
|
+
def list_contributors(
|
|
34
|
+
self, region_id: str, request: ContributorRequest
|
|
35
|
+
) -> Tuple[Sequence[Contributor], Pagination]:
|
|
36
|
+
"""Retrieve a list of contributors for a specific region.
|
|
37
|
+
|
|
38
|
+
Args:
|
|
39
|
+
region_id: The identifier of the region to fetch contributors from.
|
|
40
|
+
request: The request object containing query parameters.
|
|
41
|
+
|
|
42
|
+
Returns:
|
|
43
|
+
A tuple containing a list of Contributor objects and a Pagination object for managing result pages.
|
|
44
|
+
"""
|
|
45
|
+
url = f"{self.base_navitia_url}/coverage/{region_id}/contributors"
|
|
46
|
+
results = self.get_navitia_api(
|
|
47
|
+
url + self._generate_filter_query(request.to_filters())
|
|
48
|
+
)
|
|
49
|
+
raw_results = results.json()["contributors"]
|
|
50
|
+
pagination = Pagination.from_payload(results.json()["pagination"])
|
|
51
|
+
return ContributorsApiClient._get_contributors_from_response(
|
|
52
|
+
raw_results
|
|
53
|
+
), pagination
|
|
54
|
+
|
|
55
|
+
def get_contributor_on_dataset(
|
|
56
|
+
self, region_id: str, dataset_id: str, request: ContributorRequest
|
|
57
|
+
) -> Tuple[Sequence[Contributor], Pagination]:
|
|
58
|
+
"""Retrieve a list of contributors for a specific dataset in a region.
|
|
59
|
+
|
|
60
|
+
Args:
|
|
61
|
+
region_id: The identifier of the region to fetch contributors from.
|
|
62
|
+
dataset_id: The identifier of the dataset to fetch contributors for.
|
|
63
|
+
request: The request object containing query parameters.
|
|
64
|
+
|
|
65
|
+
Returns:
|
|
66
|
+
A tuple containing a list of Contributor objects and a Pagination object for managing result pages.
|
|
67
|
+
"""
|
|
68
|
+
url = f"{self.base_navitia_url}/coverage/{region_id}/contributors/{dataset_id}"
|
|
69
|
+
results = self.get_navitia_api(
|
|
70
|
+
url + self._generate_filter_query(request.to_filters())
|
|
71
|
+
)
|
|
72
|
+
raw_results = results.json()["contributors"]
|
|
73
|
+
pagination = Pagination.from_payload(results.json()["pagination"])
|
|
74
|
+
return ContributorsApiClient._get_contributors_from_response(
|
|
75
|
+
raw_results
|
|
76
|
+
), pagination
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
from typing import Any, Sequence, Tuple
|
|
2
|
+
|
|
3
|
+
from navitia_client.client.apis.api_base_client import ApiBaseClient
|
|
4
|
+
from navitia_client.entities.request.coverage import CoverageRequest
|
|
5
|
+
from navitia_client.entities.response.administrative_region import Region
|
|
6
|
+
from navitia_client.entities.response import Pagination
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class CoverageApiClient(ApiBaseClient):
|
|
10
|
+
"""Client class to interact with the Navitia API for fetching coverage area information.
|
|
11
|
+
|
|
12
|
+
See https://doc.navitia.io/#coverage
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
@staticmethod
|
|
16
|
+
def _get_regions_from_response(raw_regions_response: Any) -> Sequence[Region]:
|
|
17
|
+
"""Convert raw response data into a list of Region objects.
|
|
18
|
+
|
|
19
|
+
Args:
|
|
20
|
+
raw_regions_response: The raw response data from the API containing regions' information.
|
|
21
|
+
|
|
22
|
+
Returns:
|
|
23
|
+
A list of Region objects created from the raw response data.
|
|
24
|
+
"""
|
|
25
|
+
regions = []
|
|
26
|
+
for region_data in raw_regions_response:
|
|
27
|
+
regions.append(Region.from_payload(region_data))
|
|
28
|
+
return regions
|
|
29
|
+
|
|
30
|
+
def list_covered_areas(
|
|
31
|
+
self, request: CoverageRequest
|
|
32
|
+
) -> Tuple[Sequence[Region], Pagination]:
|
|
33
|
+
"""Retrieve a list of covered areas from the Navitia API.
|
|
34
|
+
|
|
35
|
+
Args:
|
|
36
|
+
request: The request object containing query parameters.
|
|
37
|
+
|
|
38
|
+
Returns:
|
|
39
|
+
A tuple containing a list of Region objects and a Pagination object for managing result pages.
|
|
40
|
+
"""
|
|
41
|
+
url = f"{self.base_navitia_url}/coverage"
|
|
42
|
+
results = self.get_navitia_api(
|
|
43
|
+
url + self._generate_filter_query(request.to_filters())
|
|
44
|
+
)
|
|
45
|
+
result_regions = results.json()["regions"]
|
|
46
|
+
regions = CoverageApiClient._get_regions_from_response(result_regions)
|
|
47
|
+
pagination = Pagination.from_payload(results.json()["pagination"])
|
|
48
|
+
return regions, pagination
|
|
49
|
+
|
|
50
|
+
def get_coverage_by_region_id(
|
|
51
|
+
self, region_id: str, request: CoverageRequest
|
|
52
|
+
) -> Tuple[Sequence[Region], Pagination]:
|
|
53
|
+
"""Retrieve information about a specific region by its ID.
|
|
54
|
+
|
|
55
|
+
Args:
|
|
56
|
+
region_id: The identifier of the region to fetch information about.
|
|
57
|
+
request: The request object containing query parameters.
|
|
58
|
+
|
|
59
|
+
Returns:
|
|
60
|
+
A tuple containing a list of Region objects and a Pagination object for managing result pages.
|
|
61
|
+
"""
|
|
62
|
+
url = f"{self.base_navitia_url}/coverage/{region_id}"
|
|
63
|
+
results = self.get_navitia_api(
|
|
64
|
+
url + self._generate_filter_query(request.to_filters())
|
|
65
|
+
)
|
|
66
|
+
result_regions = results.json()["regions"]
|
|
67
|
+
regions = CoverageApiClient._get_regions_from_response(result_regions)
|
|
68
|
+
pagination = Pagination.from_payload(results.json()["pagination"])
|
|
69
|
+
return regions, pagination
|
|
70
|
+
|
|
71
|
+
def get_coverage_by_region_coordinates_and_coordinates(
|
|
72
|
+
self, lon: float, lat: float, request: CoverageRequest
|
|
73
|
+
) -> Tuple[Sequence[Region], Pagination]:
|
|
74
|
+
"""Retrieve information about a region based on coordinates.
|
|
75
|
+
|
|
76
|
+
Args:
|
|
77
|
+
lon: The longitude of the location to fetch information about.
|
|
78
|
+
lat: The latitude of the location to fetch information about.
|
|
79
|
+
request: The request object containing query parameters.
|
|
80
|
+
|
|
81
|
+
Returns:
|
|
82
|
+
A tuple containing a list of Region objects and a Pagination object for managing result pages.
|
|
83
|
+
"""
|
|
84
|
+
url = f"{self.base_navitia_url}/coverage/{lon};{lat}"
|
|
85
|
+
results = self.get_navitia_api(
|
|
86
|
+
url + self._generate_filter_query(request.to_filters())
|
|
87
|
+
)
|
|
88
|
+
result_regions = results.json()["regions"]
|
|
89
|
+
regions = CoverageApiClient._get_regions_from_response(result_regions)
|
|
90
|
+
pagination = Pagination.from_payload(results.json()["pagination"])
|
|
91
|
+
return regions, pagination
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
from typing import Any, Sequence, Tuple
|
|
2
|
+
|
|
3
|
+
from navitia_client.client.apis.api_base_client import ApiBaseClient
|
|
4
|
+
from navitia_client.entities.request.dataset import DatasetRequest
|
|
5
|
+
from navitia_client.entities.response.dataset import Dataset
|
|
6
|
+
from navitia_client.entities.response import Pagination
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class DatasetsApiClient(ApiBaseClient):
|
|
10
|
+
"""Client class to interact with the Navitia API for fetching dataset information.
|
|
11
|
+
|
|
12
|
+
See https://doc.navitia.io/#datasets
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
@staticmethod
|
|
16
|
+
def _get_datasets_from_response(raw_datasets_response: Any) -> Sequence[Dataset]:
|
|
17
|
+
"""Convert raw response data into a list of Dataset objects.
|
|
18
|
+
|
|
19
|
+
Args:
|
|
20
|
+
raw_datasets_response: The raw response data from the API containing datasets' information.
|
|
21
|
+
|
|
22
|
+
Returns:
|
|
23
|
+
A list of Dataset objects created from the raw response data.
|
|
24
|
+
"""
|
|
25
|
+
datasets = []
|
|
26
|
+
for dataset in raw_datasets_response:
|
|
27
|
+
dataset_contributor = dataset.get("contributor")
|
|
28
|
+
if not dataset_contributor:
|
|
29
|
+
continue
|
|
30
|
+
|
|
31
|
+
datasets.append(Dataset.from_payload(dataset))
|
|
32
|
+
|
|
33
|
+
return datasets
|
|
34
|
+
|
|
35
|
+
def list_datasets(
|
|
36
|
+
self, region_id: str, request: DatasetRequest
|
|
37
|
+
) -> Tuple[Sequence[Dataset], Pagination]:
|
|
38
|
+
"""Retrieve a list of datasets for a specified region from the Navitia API.
|
|
39
|
+
|
|
40
|
+
Args:
|
|
41
|
+
region_id: The identifier of the region to fetch datasets from.
|
|
42
|
+
request: The request object containing query parameters.
|
|
43
|
+
|
|
44
|
+
Returns:
|
|
45
|
+
A tuple containing a list of Dataset objects and a Pagination object for managing result pages.
|
|
46
|
+
"""
|
|
47
|
+
url = f"{self.base_navitia_url}/coverage/{region_id}/datasets"
|
|
48
|
+
results = self.get_navitia_api(
|
|
49
|
+
url + self._generate_filter_query(request.to_filters())
|
|
50
|
+
)
|
|
51
|
+
raw_results = results.json()["datasets"]
|
|
52
|
+
pagination = Pagination.from_payload(results.json()["pagination"])
|
|
53
|
+
return DatasetsApiClient._get_datasets_from_response(raw_results), pagination
|
|
54
|
+
|
|
55
|
+
def get_dataset_by_id(
|
|
56
|
+
self, region_id: str, dataset_id: str, request: DatasetRequest
|
|
57
|
+
) -> Tuple[Sequence[Dataset], Pagination]:
|
|
58
|
+
"""Retrieve information about a specific dataset by its ID within a region.
|
|
59
|
+
|
|
60
|
+
Args:
|
|
61
|
+
region_id: The identifier of the region to fetch the dataset from.
|
|
62
|
+
dataset_id: The identifier of the dataset to fetch.
|
|
63
|
+
request: The request object containing query parameters.
|
|
64
|
+
|
|
65
|
+
Returns:
|
|
66
|
+
A tuple containing a list of Dataset objects and a Pagination object for managing result pages.
|
|
67
|
+
"""
|
|
68
|
+
url = f"{self.base_navitia_url}/coverage/{region_id}/datasets/{dataset_id}"
|
|
69
|
+
results = self.get_navitia_api(
|
|
70
|
+
url + self._generate_filter_query(request.to_filters())
|
|
71
|
+
)
|
|
72
|
+
raw_results = results.json()["datasets"]
|
|
73
|
+
pagination = Pagination.from_payload(results.json()["pagination"])
|
|
74
|
+
return DatasetsApiClient._get_datasets_from_response(raw_results), pagination
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
from typing import Any, Sequence, Tuple
|
|
2
|
+
from navitia_client.client.apis.api_base_client import ApiBaseClient
|
|
3
|
+
from navitia_client.entities.request.departure import DepartureRequest
|
|
4
|
+
from navitia_client.entities.response import Pagination
|
|
5
|
+
from navitia_client.entities.response.departure import Departure
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class DepartureApiClient(ApiBaseClient):
|
|
9
|
+
"""Client for interacting with the Navitia API to retrieve departure schedules.
|
|
10
|
+
|
|
11
|
+
See https://doc.navitia.io/#departures
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
@staticmethod
|
|
15
|
+
def _get_departure_objects_from_response(
|
|
16
|
+
response: Any,
|
|
17
|
+
) -> Sequence[Departure]:
|
|
18
|
+
"""Convert raw response data into a list of Departure objects.
|
|
19
|
+
|
|
20
|
+
Args:
|
|
21
|
+
response: The raw response data from the API containing departures' information.
|
|
22
|
+
|
|
23
|
+
Returns:
|
|
24
|
+
A list of Departure objects created from the raw response data.
|
|
25
|
+
"""
|
|
26
|
+
departures = []
|
|
27
|
+
for departure_data in response:
|
|
28
|
+
departures.append(Departure.from_payload(departure_data))
|
|
29
|
+
|
|
30
|
+
return departures
|
|
31
|
+
|
|
32
|
+
def _get_departures(
|
|
33
|
+
self, url: str, filters: dict
|
|
34
|
+
) -> Tuple[Sequence[Departure], Pagination]:
|
|
35
|
+
"""Fetch departures from the Navitia API based on the provided URL and filters.
|
|
36
|
+
|
|
37
|
+
Args:
|
|
38
|
+
url: The URL to fetch departures from.
|
|
39
|
+
filters: A dictionary of filters to apply to the query.
|
|
40
|
+
|
|
41
|
+
Returns:
|
|
42
|
+
A tuple containing a list of Departure objects and a Pagination object for managing result pages.
|
|
43
|
+
"""
|
|
44
|
+
results = self.get_navitia_api(url + self._generate_filter_query(filters))
|
|
45
|
+
raw_results = results.json()["departures"]
|
|
46
|
+
pagination = Pagination.from_payload(results.json()["pagination"])
|
|
47
|
+
return self._get_departure_objects_from_response(raw_results), pagination
|
|
48
|
+
|
|
49
|
+
def list_departures_by_region_id_and_path(
|
|
50
|
+
self,
|
|
51
|
+
region_id: str,
|
|
52
|
+
resource_path: str,
|
|
53
|
+
request: DepartureRequest,
|
|
54
|
+
) -> Tuple[Sequence[Departure], Pagination]:
|
|
55
|
+
"""Retrieve a list of departures for a specified region and resource path.
|
|
56
|
+
|
|
57
|
+
Args:
|
|
58
|
+
region_id: The identifier of the region to fetch departures from.
|
|
59
|
+
resource_path: The resource path to fetch departures for.
|
|
60
|
+
request: The request object containing query parameters.
|
|
61
|
+
|
|
62
|
+
Returns:
|
|
63
|
+
A tuple containing a list of Departure objects and a Pagination object for managing result pages.
|
|
64
|
+
"""
|
|
65
|
+
request_url = (
|
|
66
|
+
f"{self.base_navitia_url}/coverage/{region_id}/{resource_path}/departures"
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
return self._get_departures(request_url, request.to_filters())
|
|
70
|
+
|
|
71
|
+
def list_departures_by_coordinates(
|
|
72
|
+
self,
|
|
73
|
+
region_lon: float,
|
|
74
|
+
region_lat: float,
|
|
75
|
+
lon: float,
|
|
76
|
+
lat: float,
|
|
77
|
+
request: DepartureRequest,
|
|
78
|
+
) -> Tuple[Sequence[Departure], Pagination]:
|
|
79
|
+
"""Retrieve a list of departures for a specified region and coordinates.
|
|
80
|
+
|
|
81
|
+
Args:
|
|
82
|
+
region_lon: The longitude of the region.
|
|
83
|
+
region_lat: The latitude of the region.
|
|
84
|
+
lon: The longitude of the specific location.
|
|
85
|
+
lat: The latitude of the specific location.
|
|
86
|
+
request: The request object containing query parameters.
|
|
87
|
+
|
|
88
|
+
Returns:
|
|
89
|
+
A tuple containing a list of Departure objects and a Pagination object for managing result pages.
|
|
90
|
+
"""
|
|
91
|
+
request_url = f"{self.base_navitia_url}/coverage/{region_lon};{region_lat}/coords/{lon};{lat}/departures"
|
|
92
|
+
|
|
93
|
+
return self._get_departures(request_url, request.to_filters())
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
from typing import Sequence, Tuple
|
|
2
|
+
from navitia_client.client.apis.api_base_client import ApiBaseClient
|
|
3
|
+
from navitia_client.entities.request.equipment_report import EquipmentReportRequest
|
|
4
|
+
from navitia_client.entities.response.equipment_reports import EquipmentReports
|
|
5
|
+
from navitia_client.entities.response import Pagination
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class EquipmentReportsApiClient(ApiBaseClient):
|
|
9
|
+
"""Client class to interact with the Navitia API for fetching equipment reports.
|
|
10
|
+
|
|
11
|
+
See https://doc.navitia.io/#equipment-reports
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
def _get_equipment_reports(
|
|
15
|
+
self, url: str, filters: dict
|
|
16
|
+
) -> Tuple[Sequence[EquipmentReports], Pagination]:
|
|
17
|
+
"""Retrieve equipment reports from the Navitia API based on provided URL and filters.
|
|
18
|
+
|
|
19
|
+
Args:
|
|
20
|
+
url: The URL for the API request.
|
|
21
|
+
filters: Filters to apply to the API request.
|
|
22
|
+
|
|
23
|
+
Returns:
|
|
24
|
+
A tuple containing sequences of EquipmentReports objects and Pagination object.
|
|
25
|
+
"""
|
|
26
|
+
results = self.get_navitia_api(url + self._generate_filter_query(filters))
|
|
27
|
+
equipment_reports = [
|
|
28
|
+
EquipmentReports.from_payload(data)
|
|
29
|
+
for data in results.json()["equipment_reports"]
|
|
30
|
+
]
|
|
31
|
+
pagination = Pagination.from_payload(results.json()["pagination"])
|
|
32
|
+
return equipment_reports, pagination
|
|
33
|
+
|
|
34
|
+
def list_equipment_reports(
|
|
35
|
+
self,
|
|
36
|
+
region_id: str,
|
|
37
|
+
request: EquipmentReportRequest,
|
|
38
|
+
) -> Tuple[Sequence[EquipmentReports], Pagination]:
|
|
39
|
+
"""Retrieve equipment reports for a specified region from the Navitia API.
|
|
40
|
+
|
|
41
|
+
This service provides the state of equipments such as lifts or elevators that
|
|
42
|
+
are giving better accessibility to public transport facilities.
|
|
43
|
+
The endpoint will report accessible equipment per stop area and per line.
|
|
44
|
+
|
|
45
|
+
Args:
|
|
46
|
+
region_id: The region ID (coverage identifier).
|
|
47
|
+
request: The request object containing query parameters.
|
|
48
|
+
|
|
49
|
+
Returns:
|
|
50
|
+
A tuple containing sequences of EquipmentReports objects and Pagination object.
|
|
51
|
+
|
|
52
|
+
Note:
|
|
53
|
+
This feature requires a specific configuration from an equipment service provider.
|
|
54
|
+
Therefore, this service is not available by default.
|
|
55
|
+
"""
|
|
56
|
+
request_url = f"{self.base_navitia_url}/coverage/{region_id}/equipment_reports"
|
|
57
|
+
return self._get_equipment_reports(request_url, request.to_filters())
|
|
58
|
+
|
|
59
|
+
def list_equipment_reports_with_resource_path(
|
|
60
|
+
self,
|
|
61
|
+
region_id: str,
|
|
62
|
+
resource_path: str,
|
|
63
|
+
request: EquipmentReportRequest,
|
|
64
|
+
) -> Tuple[Sequence[EquipmentReports], Pagination]:
|
|
65
|
+
"""Retrieve equipment reports for a specific resource path in a region.
|
|
66
|
+
|
|
67
|
+
This service provides the state of equipments such as lifts or elevators that
|
|
68
|
+
are giving better accessibility to public transport facilities.
|
|
69
|
+
The endpoint will report accessible equipment per stop area and per line.
|
|
70
|
+
|
|
71
|
+
Args:
|
|
72
|
+
region_id: The region ID (coverage identifier).
|
|
73
|
+
resource_path: The resource path (e.g., 'lines/line:A').
|
|
74
|
+
request: The request object containing query parameters.
|
|
75
|
+
|
|
76
|
+
Returns:
|
|
77
|
+
A tuple containing sequences of EquipmentReports objects and Pagination object.
|
|
78
|
+
|
|
79
|
+
Note:
|
|
80
|
+
This feature requires a specific configuration from an equipment service provider.
|
|
81
|
+
Therefore, this service is not available by default.
|
|
82
|
+
"""
|
|
83
|
+
request_url = f"{self.base_navitia_url}/coverage/{region_id}/{resource_path}/equipment_reports"
|
|
84
|
+
return self._get_equipment_reports(request_url, request.to_filters())
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
from typing import Sequence, Tuple
|
|
2
|
+
|
|
3
|
+
from navitia_client.client.apis.api_base_client import ApiBaseClient
|
|
4
|
+
from navitia_client.entities.request.freefloatings_nearby import (
|
|
5
|
+
FreefloatingsNearbyRequest,
|
|
6
|
+
)
|
|
7
|
+
from navitia_client.entities.response.free_floating import FreeFloating
|
|
8
|
+
from navitia_client.entities.response import Pagination
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class FreefloatingsNearbyApiClient(ApiBaseClient):
|
|
12
|
+
"""Client class to interact with the Navitia API for fetching nearby free-floating vehicles.
|
|
13
|
+
|
|
14
|
+
See https://doc.navitia.io/#freefloatings-nearby-api
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
def _get_freefloatings_nearby(
|
|
18
|
+
self, url: str, filters: dict
|
|
19
|
+
) -> Tuple[Sequence[FreeFloating], Pagination]:
|
|
20
|
+
"""Retrieve free-floating vehicles from the Navitia API based on provided URL and filters.
|
|
21
|
+
|
|
22
|
+
Args:
|
|
23
|
+
url: The URL for the API request.
|
|
24
|
+
filters: Filters to apply to the API request.
|
|
25
|
+
|
|
26
|
+
Returns:
|
|
27
|
+
A tuple containing sequences of FreeFloating objects and Pagination object.
|
|
28
|
+
"""
|
|
29
|
+
results = self.get_navitia_api(url + self._generate_filter_query(filters))
|
|
30
|
+
free_floatings = [
|
|
31
|
+
FreeFloating.from_payload(data) for data in results.json()["free_floatings"]
|
|
32
|
+
]
|
|
33
|
+
pagination = Pagination.from_payload(results.json()["pagination"])
|
|
34
|
+
return free_floatings, pagination
|
|
35
|
+
|
|
36
|
+
def list_freefloatings_nearby(
|
|
37
|
+
self,
|
|
38
|
+
region_id: str,
|
|
39
|
+
lon: float,
|
|
40
|
+
lat: float,
|
|
41
|
+
request: FreefloatingsNearbyRequest,
|
|
42
|
+
) -> Tuple[Sequence[FreeFloating], Pagination]:
|
|
43
|
+
"""Retrieve free-floating vehicles near coordinates in a specific region.
|
|
44
|
+
|
|
45
|
+
This service provides access to nearby shared mobility options (such as bikes,
|
|
46
|
+
scooters, or cars) based on user-provided coordinates.
|
|
47
|
+
|
|
48
|
+
Args:
|
|
49
|
+
region_id: The region ID (coverage identifier).
|
|
50
|
+
lon: The longitude coordinate.
|
|
51
|
+
lat: The latitude coordinate.
|
|
52
|
+
request: The request object containing query parameters.
|
|
53
|
+
|
|
54
|
+
Returns:
|
|
55
|
+
A tuple containing sequences of FreeFloating objects and Pagination object.
|
|
56
|
+
|
|
57
|
+
Note:
|
|
58
|
+
This feature requires a specific configuration from a freefloating data service provider.
|
|
59
|
+
Therefore, this service is not available by default.
|
|
60
|
+
"""
|
|
61
|
+
request_url = f"{self.base_navitia_url}/coverage/{region_id}/coords/{lon};{lat}/freefloatings_nearby"
|
|
62
|
+
return self._get_freefloatings_nearby(request_url, request.to_filters())
|
|
63
|
+
|
|
64
|
+
def list_freefloatings_nearby_with_resource_path(
|
|
65
|
+
self,
|
|
66
|
+
region_id: str,
|
|
67
|
+
resource_path: str,
|
|
68
|
+
request: FreefloatingsNearbyRequest,
|
|
69
|
+
) -> Tuple[Sequence[FreeFloating], Pagination]:
|
|
70
|
+
"""Retrieve free-floating vehicles near a specific resource path in a region.
|
|
71
|
+
|
|
72
|
+
This service provides access to nearby shared mobility options (such as bikes,
|
|
73
|
+
scooters, or cars) near a specific resource (stop area, address, etc.).
|
|
74
|
+
|
|
75
|
+
Args:
|
|
76
|
+
region_id: The region ID (coverage identifier).
|
|
77
|
+
resource_path: The resource path (e.g., 'stop_areas/stop_area:XXX').
|
|
78
|
+
request: The request object containing query parameters.
|
|
79
|
+
|
|
80
|
+
Returns:
|
|
81
|
+
A tuple containing sequences of FreeFloating objects and Pagination object.
|
|
82
|
+
|
|
83
|
+
Note:
|
|
84
|
+
This feature requires a specific configuration from a freefloating data service provider.
|
|
85
|
+
Therefore, this service is not available by default.
|
|
86
|
+
"""
|
|
87
|
+
request_url = f"{self.base_navitia_url}/coverage/{region_id}/{resource_path}/freefloatings_nearby"
|
|
88
|
+
return self._get_freefloatings_nearby(request_url, request.to_filters())
|
|
89
|
+
|
|
90
|
+
def list_freefloatings_nearby_by_coordinates(
|
|
91
|
+
self,
|
|
92
|
+
region_lon: float,
|
|
93
|
+
region_lat: float,
|
|
94
|
+
lon: float,
|
|
95
|
+
lat: float,
|
|
96
|
+
request: FreefloatingsNearbyRequest = FreefloatingsNearbyRequest(),
|
|
97
|
+
) -> Tuple[Sequence[FreeFloating], Pagination]:
|
|
98
|
+
"""Retrieve free-floating vehicles near coordinates, navitia guesses the region from coordinates.
|
|
99
|
+
|
|
100
|
+
This service provides access to nearby shared mobility options (such as bikes,
|
|
101
|
+
scooters, or cars) based on user-provided coordinates. Navitia will automatically
|
|
102
|
+
determine the region based on the provided region coordinates.
|
|
103
|
+
|
|
104
|
+
Args:
|
|
105
|
+
region_lon: The longitude coordinate for region identification.
|
|
106
|
+
region_lat: The latitude coordinate for region identification.
|
|
107
|
+
lon: The longitude coordinate for the search center.
|
|
108
|
+
lat: The latitude coordinate for the search center.
|
|
109
|
+
request: The request object containing query parameters.
|
|
110
|
+
|
|
111
|
+
Returns:
|
|
112
|
+
A tuple containing sequences of FreeFloating objects and Pagination object.
|
|
113
|
+
|
|
114
|
+
Note:
|
|
115
|
+
This feature requires a specific configuration from a freefloating data service provider.
|
|
116
|
+
Therefore, this service is not available by default.
|
|
117
|
+
"""
|
|
118
|
+
request_url = f"{self.base_navitia_url}/coverage/{region_lon};{region_lat}/coords/{lon};{lat}/freefloatings_nearby"
|
|
119
|
+
return self._get_freefloatings_nearby(request_url, request.to_filters())
|
|
120
|
+
|
|
121
|
+
def list_freefloatings_nearby_by_coordinates_only(
|
|
122
|
+
self,
|
|
123
|
+
lon: float,
|
|
124
|
+
lat: float,
|
|
125
|
+
request: FreefloatingsNearbyRequest = FreefloatingsNearbyRequest(),
|
|
126
|
+
) -> Tuple[Sequence[FreeFloating], Pagination]:
|
|
127
|
+
"""Retrieve free-floating vehicles near coordinates without any region id.
|
|
128
|
+
|
|
129
|
+
This service provides access to nearby shared mobility options (such as bikes,
|
|
130
|
+
scooters, or cars) based on user-provided coordinates. This method does not require
|
|
131
|
+
a region ID; Navitia will automatically determine the appropriate region.
|
|
132
|
+
|
|
133
|
+
Args:
|
|
134
|
+
lon: The longitude coordinate.
|
|
135
|
+
lat: The latitude coordinate.
|
|
136
|
+
request: The request object containing query parameters.
|
|
137
|
+
|
|
138
|
+
Returns:
|
|
139
|
+
A tuple containing sequences of FreeFloating objects and Pagination object.
|
|
140
|
+
|
|
141
|
+
Note:
|
|
142
|
+
This feature requires a specific configuration from a freefloating data service provider.
|
|
143
|
+
Therefore, this service is not available by default.
|
|
144
|
+
"""
|
|
145
|
+
request_url = f"{self.base_navitia_url}/coord/{lon};{lat}/freefloatings_nearby"
|
|
146
|
+
return self._get_freefloatings_nearby(request_url, request.to_filters())
|