python-navitia-client 1.2.2__tar.gz → 1.3.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.2.2/python_navitia_client.egg-info → python_navitia_client-1.3.0}/PKG-INFO +6 -5
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/README.md +5 -4
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/arrival_apis.py +16 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/departure_apis.py +16 -0
- python_navitia_client-1.3.0/navitia_client/client/apis/equipment_report_apis.py +153 -0
- python_navitia_client-1.3.0/navitia_client/client/apis/freefloatings_nearby_apis.py +247 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/journeys_apis.py +136 -1
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/public_transportation_apis/commercial_mode_apis.py +66 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/public_transportation_apis/company_apis.py +86 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/public_transportation_apis/disruption_apis.py +86 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/public_transportation_apis/entity_apis.py +22 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/public_transportation_apis/line_apis.py +86 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/public_transportation_apis/network_apis.py +86 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/public_transportation_apis/physical_mode_apis.py +86 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/public_transportation_apis/route_apis.py +86 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/public_transportation_apis/stop_area_apis.py +86 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/public_transportation_apis/stop_point_apis.py +86 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/public_transportation_apis/vehicle_journey_apis.py +86 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/route_schedules_apis.py +12 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/stop_schedules_apis.py +12 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/terminus_schedules_apis.py +12 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/navitia_client.py +22 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/__init__.py +1 -0
- python_navitia_client-1.3.0/navitia_client/entities/equipment.py +101 -0
- python_navitia_client-1.3.0/navitia_client/entities/equipment_reports.py +30 -0
- python_navitia_client-1.3.0/navitia_client/entities/free_floating.py +59 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/journey.py +6 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/pyproject.toml +1 -1
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0/python_navitia_client.egg-info}/PKG-INFO +6 -5
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/python_navitia_client.egg-info/SOURCES.txt +3 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/tests/test_navitia_client.py +12 -0
- python_navitia_client-1.2.2/navitia_client/entities/equipment.py +0 -42
- python_navitia_client-1.2.2/navitia_client/entities/equipment_reports.py +0 -10
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/LICENSE +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/__init__.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/__init__.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/__init__.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/api_base_client.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/contributors_apis.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/coverage_apis.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/datasets_apis.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/inverted_geocoding_apis.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/isochrone_apis.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/line_report_apis.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/place_apis.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/places_nearby_apis.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/public_transport_objects_apis.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/public_transportation_apis/__init__.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/traffic_report_apis.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/exceptions.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/raw/__init__.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/raw/raw_client.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/access_point.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/address.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/administrative_region.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/arrival.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/base_entity.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/company.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/context.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/contributor.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/coord.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/dataset.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/departure.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/direction.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/display_information.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/disruption.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/isochrones.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/line_and_route.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/line_report.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/link.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/network.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/note.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/pagination.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/path.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/pathway.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/physical_mode.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/place.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/poi.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/pt_datetime.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/pt_object.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/route_schedule.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/schedule_table.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/stand.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/stop_area.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/stop_datetime.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/stop_schedule.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/ticket.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/traffic_report.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/trip.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/vehicle_journey.py +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/python_navitia_client.egg-info/dependency_links.txt +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/python_navitia_client.egg-info/requires.txt +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/python_navitia_client.egg-info/top_level.txt +0 -0
- {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/setup.cfg +0 -0
{python_navitia_client-1.2.2/python_navitia_client.egg-info → python_navitia_client-1.3.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-navitia-client
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.3.0
|
|
4
4
|
Summary: Python library to use with Navitia APIs
|
|
5
5
|
Author-email: Jonathan Perron <jonathan@perron.bzh>
|
|
6
6
|
License: MIT License
|
|
@@ -52,15 +52,16 @@ The library supports the following [APIs](https://doc.navitia.io/#api-catalog):
|
|
|
52
52
|
| Autocomplete on geographical objects | ✅ | |
|
|
53
53
|
| Places nearby | ✅ | |
|
|
54
54
|
| Journeys | ✅ | |
|
|
55
|
-
| Isochrones | ✅ |
|
|
55
|
+
| Isochrones | ✅ | |
|
|
56
56
|
| Route Schedules | ✅ | |
|
|
57
57
|
| Stop Schedules | ✅ | |
|
|
58
58
|
| Terminus Schedules | ✅ | |
|
|
59
59
|
| Departures | ✅ | |
|
|
60
60
|
| Arrivals | ✅ | |
|
|
61
|
-
| Line reports | ✅ |
|
|
62
|
-
| Traffic reports | ✅ |
|
|
63
|
-
| Equipment reports |
|
|
61
|
+
| Line reports | ✅ | |
|
|
62
|
+
| Traffic reports | ✅ | |
|
|
63
|
+
| Equipment reports | ✅ | Not available to all providers |
|
|
64
|
+
| Freefloating nearby | ✅ | Not available to all providers |
|
|
64
65
|
|
|
65
66
|
## Usage
|
|
66
67
|
|
|
@@ -33,15 +33,16 @@ The library supports the following [APIs](https://doc.navitia.io/#api-catalog):
|
|
|
33
33
|
| Autocomplete on geographical objects | ✅ | |
|
|
34
34
|
| Places nearby | ✅ | |
|
|
35
35
|
| Journeys | ✅ | |
|
|
36
|
-
| Isochrones | ✅ |
|
|
36
|
+
| Isochrones | ✅ | |
|
|
37
37
|
| Route Schedules | ✅ | |
|
|
38
38
|
| Stop Schedules | ✅ | |
|
|
39
39
|
| Terminus Schedules | ✅ | |
|
|
40
40
|
| Departures | ✅ | |
|
|
41
41
|
| Arrivals | ✅ | |
|
|
42
|
-
| Line reports | ✅ |
|
|
43
|
-
| Traffic reports | ✅ |
|
|
44
|
-
| Equipment reports |
|
|
42
|
+
| Line reports | ✅ | |
|
|
43
|
+
| Traffic reports | ✅ | |
|
|
44
|
+
| Equipment reports | ✅ | Not available to all providers |
|
|
45
|
+
| Freefloating nearby | ✅ | Not available to all providers |
|
|
45
46
|
|
|
46
47
|
## Usage
|
|
47
48
|
|
|
@@ -80,6 +80,8 @@ class ArrivalApiClient(ApiBaseClient):
|
|
|
80
80
|
from_datetime: datetime = datetime.now(),
|
|
81
81
|
duration: int = 86400,
|
|
82
82
|
depth: int = 1,
|
|
83
|
+
count: int = 10,
|
|
84
|
+
start_page: int = 0,
|
|
83
85
|
forbidden_uris: Optional[Sequence[str]] = None,
|
|
84
86
|
data_freshness: str = "realtime",
|
|
85
87
|
disable_geojson: bool = False,
|
|
@@ -100,6 +102,10 @@ class ArrivalApiClient(ApiBaseClient):
|
|
|
100
102
|
The duration in seconds for which to fetch arrivals (default is 86400 seconds).
|
|
101
103
|
depth : int, optional
|
|
102
104
|
The depth of the search (default is 1).
|
|
105
|
+
count : int, optional
|
|
106
|
+
Maximum number of results (default is 10).
|
|
107
|
+
start_page : int, optional
|
|
108
|
+
The page number to start from (default is 0).
|
|
103
109
|
forbidden_uris : Optional[Sequence[str]], optional
|
|
104
110
|
A list of URIs to exclude from the search (default is None).
|
|
105
111
|
data_freshness : str, optional
|
|
@@ -120,6 +126,8 @@ class ArrivalApiClient(ApiBaseClient):
|
|
|
120
126
|
"from_datetime": from_datetime,
|
|
121
127
|
"duration": duration,
|
|
122
128
|
"depth": depth,
|
|
129
|
+
"count": count,
|
|
130
|
+
"start_page": start_page,
|
|
123
131
|
"disable_geojson": disable_geojson,
|
|
124
132
|
"forbidden_uris[]": forbidden_uris,
|
|
125
133
|
"data_freshness": data_freshness,
|
|
@@ -137,6 +145,8 @@ class ArrivalApiClient(ApiBaseClient):
|
|
|
137
145
|
from_datetime: datetime = datetime.now(),
|
|
138
146
|
duration: int = 86400,
|
|
139
147
|
depth: int = 1,
|
|
148
|
+
count: int = 10,
|
|
149
|
+
start_page: int = 0,
|
|
140
150
|
forbidden_uris: Optional[Sequence[str]] = None,
|
|
141
151
|
data_freshness: str = "realtime",
|
|
142
152
|
disable_geojson: bool = False,
|
|
@@ -161,6 +171,10 @@ class ArrivalApiClient(ApiBaseClient):
|
|
|
161
171
|
The duration in seconds for which to fetch arrivals (default is 86400 seconds).
|
|
162
172
|
depth : int, optional
|
|
163
173
|
The depth of the search (default is 1).
|
|
174
|
+
count : int, optional
|
|
175
|
+
Maximum number of results (default is 10).
|
|
176
|
+
start_page : int, optional
|
|
177
|
+
The page number to start from (default is 0).
|
|
164
178
|
forbidden_uris : Optional[Sequence[str]], optional
|
|
165
179
|
A list of URIs to exclude from the search (default is None).
|
|
166
180
|
data_freshness : str, optional
|
|
@@ -182,6 +196,8 @@ class ArrivalApiClient(ApiBaseClient):
|
|
|
182
196
|
"from_datetime": from_datetime,
|
|
183
197
|
"duration": duration,
|
|
184
198
|
"depth": depth,
|
|
199
|
+
"count": count,
|
|
200
|
+
"start_page": start_page,
|
|
185
201
|
"disable_geojson": disable_geojson,
|
|
186
202
|
"forbidden_uris[]": forbidden_uris,
|
|
187
203
|
"data_freshness": data_freshness,
|
|
@@ -101,6 +101,8 @@ class DepartureApiClient(ApiBaseClient):
|
|
|
101
101
|
from_datetime: datetime = datetime.now(),
|
|
102
102
|
duration: int = 86400,
|
|
103
103
|
depth: int = 1,
|
|
104
|
+
count: int = 10,
|
|
105
|
+
start_page: int = 0,
|
|
104
106
|
forbidden_uris: Optional[Sequence[str]] = None,
|
|
105
107
|
data_freshness: str = "realtime",
|
|
106
108
|
disable_geojson: bool = False,
|
|
@@ -121,6 +123,10 @@ class DepartureApiClient(ApiBaseClient):
|
|
|
121
123
|
The duration for which to fetch departures, in seconds (default is 86400 seconds, i.e., 1 day).
|
|
122
124
|
depth : int, optional
|
|
123
125
|
The depth of the search (default is 1).
|
|
126
|
+
count : int, optional
|
|
127
|
+
Maximum number of results (default is 10).
|
|
128
|
+
start_page : int, optional
|
|
129
|
+
The page number to start from (default is 0).
|
|
124
130
|
forbidden_uris : Optional[Sequence[str]], optional
|
|
125
131
|
A list of URIs to exclude from the search (default is None).
|
|
126
132
|
data_freshness : str, optional
|
|
@@ -141,6 +147,8 @@ class DepartureApiClient(ApiBaseClient):
|
|
|
141
147
|
"from_datetime": from_datetime,
|
|
142
148
|
"duration": duration,
|
|
143
149
|
"depth": depth,
|
|
150
|
+
"count": count,
|
|
151
|
+
"start_page": start_page,
|
|
144
152
|
"disable_geojson": disable_geojson,
|
|
145
153
|
"forbidden_uris[]": forbidden_uris,
|
|
146
154
|
"data_freshness": data_freshness,
|
|
@@ -158,6 +166,8 @@ class DepartureApiClient(ApiBaseClient):
|
|
|
158
166
|
from_datetime: datetime = datetime.now(),
|
|
159
167
|
duration: int = 86400,
|
|
160
168
|
depth: int = 1,
|
|
169
|
+
count: int = 10,
|
|
170
|
+
start_page: int = 0,
|
|
161
171
|
forbidden_uris: Optional[Sequence[str]] = None,
|
|
162
172
|
data_freshness: str = "realtime",
|
|
163
173
|
disable_geojson: bool = False,
|
|
@@ -182,6 +192,10 @@ class DepartureApiClient(ApiBaseClient):
|
|
|
182
192
|
The duration for which to fetch departures, in seconds (default is 86400 seconds, i.e., 1 day).
|
|
183
193
|
depth : int, optional
|
|
184
194
|
The depth of the search (default is 1).
|
|
195
|
+
count : int, optional
|
|
196
|
+
Maximum number of results (default is 10).
|
|
197
|
+
start_page : int, optional
|
|
198
|
+
The page number to start from (default is 0).
|
|
185
199
|
forbidden_uris : Optional[Sequence[str]], optional
|
|
186
200
|
A list of URIs to exclude from the search (default is None).
|
|
187
201
|
data_freshness : str, optional
|
|
@@ -202,6 +216,8 @@ class DepartureApiClient(ApiBaseClient):
|
|
|
202
216
|
"from_datetime": from_datetime,
|
|
203
217
|
"duration": duration,
|
|
204
218
|
"depth": depth,
|
|
219
|
+
"count": count,
|
|
220
|
+
"start_page": start_page,
|
|
205
221
|
"disable_geojson": disable_geojson,
|
|
206
222
|
"forbidden_uris[]": forbidden_uris,
|
|
207
223
|
"data_freshness": data_freshness,
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
from typing import Optional, Sequence, Tuple
|
|
2
|
+
from navitia_client.client.apis.api_base_client import ApiBaseClient
|
|
3
|
+
from navitia_client.entities.equipment_reports import EquipmentReports
|
|
4
|
+
from navitia_client.entities.pagination import Pagination
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class EquipmentReportsApiClient(ApiBaseClient):
|
|
8
|
+
"""
|
|
9
|
+
A client class to interact with the Navitia API for fetching equipment reports.
|
|
10
|
+
|
|
11
|
+
See https://doc.navitia.io/#equipment-reports
|
|
12
|
+
|
|
13
|
+
Methods
|
|
14
|
+
-------
|
|
15
|
+
_get_equipment_reports(
|
|
16
|
+
url: str, filters: dict
|
|
17
|
+
) -> Tuple[Sequence[EquipmentReports], Pagination]:
|
|
18
|
+
Retrieves equipment reports from the Navitia API based on provided URL and filters.
|
|
19
|
+
|
|
20
|
+
list_equipment_reports(
|
|
21
|
+
region_id: str,
|
|
22
|
+
count: int = 10,
|
|
23
|
+
depth: int = 1,
|
|
24
|
+
filter: Optional[str] = None,
|
|
25
|
+
forbidden_uris: Optional[Sequence[str]] = None,
|
|
26
|
+
start_page: int = 0,
|
|
27
|
+
) -> Tuple[Sequence[EquipmentReports], Pagination]:
|
|
28
|
+
Retrieves equipment reports for a specified region from the Navitia API.
|
|
29
|
+
|
|
30
|
+
list_equipment_reports_with_resource_path(
|
|
31
|
+
region_id: str,
|
|
32
|
+
resource_path: str,
|
|
33
|
+
count: int = 10,
|
|
34
|
+
depth: int = 1,
|
|
35
|
+
filter: Optional[str] = None,
|
|
36
|
+
forbidden_uris: Optional[Sequence[str]] = None,
|
|
37
|
+
start_page: int = 0,
|
|
38
|
+
) -> Tuple[Sequence[EquipmentReports], Pagination]:
|
|
39
|
+
Retrieves equipment reports for a specific resource path in a region from the Navitia API.
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
def _get_equipment_reports(
|
|
43
|
+
self, url: str, filters: dict
|
|
44
|
+
) -> Tuple[Sequence[EquipmentReports], Pagination]:
|
|
45
|
+
"""
|
|
46
|
+
Retrieves equipment reports from the Navitia API based on provided URL and filters.
|
|
47
|
+
|
|
48
|
+
Parameters:
|
|
49
|
+
url (str): The URL for the API request.
|
|
50
|
+
filters (dict): Filters to apply to the API request.
|
|
51
|
+
|
|
52
|
+
Returns:
|
|
53
|
+
Tuple[Sequence[EquipmentReports], Pagination]: A tuple containing sequences of EquipmentReports objects and Pagination object.
|
|
54
|
+
"""
|
|
55
|
+
results = self.get_navitia_api(url + self._generate_filter_query(filters))
|
|
56
|
+
equipment_reports = [
|
|
57
|
+
EquipmentReports.from_payload(data)
|
|
58
|
+
for data in results.json()["equipment_reports"]
|
|
59
|
+
]
|
|
60
|
+
pagination = Pagination.from_payload(results.json()["pagination"])
|
|
61
|
+
return equipment_reports, pagination
|
|
62
|
+
|
|
63
|
+
def list_equipment_reports(
|
|
64
|
+
self,
|
|
65
|
+
region_id: str,
|
|
66
|
+
count: int = 10,
|
|
67
|
+
depth: int = 1,
|
|
68
|
+
filter: Optional[str] = None,
|
|
69
|
+
forbidden_uris: Optional[Sequence[str]] = None,
|
|
70
|
+
start_page: int = 0,
|
|
71
|
+
) -> Tuple[Sequence[EquipmentReports], Pagination]:
|
|
72
|
+
"""
|
|
73
|
+
Retrieves equipment reports for a specified region from the Navitia API.
|
|
74
|
+
|
|
75
|
+
This service provides the state of equipments such as lifts or elevators that
|
|
76
|
+
are giving better accessibility to public transport facilities.
|
|
77
|
+
The endpoint will report accessible equipment per stop area and per line.
|
|
78
|
+
|
|
79
|
+
Parameters:
|
|
80
|
+
region_id (str): The region ID (coverage identifier).
|
|
81
|
+
count (int): Elements per page. Defaults to 10.
|
|
82
|
+
depth (int): Json response depth. Defaults to 1.
|
|
83
|
+
filter (Optional[str]): A filter to refine your request (e.g., 'line.code=A').
|
|
84
|
+
forbidden_uris (Optional[Sequence[str]]): If you want to avoid lines, modes, networks, etc.
|
|
85
|
+
start_page (int): The page number. Defaults to 0.
|
|
86
|
+
|
|
87
|
+
Returns:
|
|
88
|
+
Tuple[Sequence[EquipmentReports], Pagination]: A tuple containing sequences of EquipmentReports objects and Pagination object.
|
|
89
|
+
|
|
90
|
+
Note:
|
|
91
|
+
This feature requires a specific configuration from an equipment service provider.
|
|
92
|
+
Therefore, this service is not available by default.
|
|
93
|
+
"""
|
|
94
|
+
request_url = f"{self.base_navitia_url}/coverage/{region_id}/equipment_reports"
|
|
95
|
+
|
|
96
|
+
filters = {
|
|
97
|
+
"count": count,
|
|
98
|
+
"depth": depth,
|
|
99
|
+
"start_page": start_page,
|
|
100
|
+
"forbidden_uris[]": forbidden_uris,
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
if filter:
|
|
104
|
+
filters["filter"] = filter
|
|
105
|
+
|
|
106
|
+
return self._get_equipment_reports(request_url, filters)
|
|
107
|
+
|
|
108
|
+
def list_equipment_reports_with_resource_path(
|
|
109
|
+
self,
|
|
110
|
+
region_id: str,
|
|
111
|
+
resource_path: str,
|
|
112
|
+
count: int = 10,
|
|
113
|
+
depth: int = 1,
|
|
114
|
+
filter: Optional[str] = None,
|
|
115
|
+
forbidden_uris: Optional[Sequence[str]] = None,
|
|
116
|
+
start_page: int = 0,
|
|
117
|
+
) -> Tuple[Sequence[EquipmentReports], Pagination]:
|
|
118
|
+
"""
|
|
119
|
+
Retrieves equipment reports for a specific resource path in a region from the Navitia API.
|
|
120
|
+
|
|
121
|
+
This service provides the state of equipments such as lifts or elevators that
|
|
122
|
+
are giving better accessibility to public transport facilities.
|
|
123
|
+
The endpoint will report accessible equipment per stop area and per line.
|
|
124
|
+
|
|
125
|
+
Parameters:
|
|
126
|
+
region_id (str): The region ID (coverage identifier).
|
|
127
|
+
resource_path (str): The resource path (e.g., 'lines/line:A').
|
|
128
|
+
count (int): Elements per page. Defaults to 10.
|
|
129
|
+
depth (int): Json response depth. Defaults to 1.
|
|
130
|
+
filter (Optional[str]): A filter to refine your request (e.g., 'line.code=A').
|
|
131
|
+
forbidden_uris (Optional[Sequence[str]]): If you want to avoid lines, modes, networks, etc.
|
|
132
|
+
start_page (int): The page number. Defaults to 0.
|
|
133
|
+
|
|
134
|
+
Returns:
|
|
135
|
+
Tuple[Sequence[EquipmentReports], Pagination]: A tuple containing sequences of EquipmentReports objects and Pagination object.
|
|
136
|
+
|
|
137
|
+
Note:
|
|
138
|
+
This feature requires a specific configuration from an equipment service provider.
|
|
139
|
+
Therefore, this service is not available by default.
|
|
140
|
+
"""
|
|
141
|
+
request_url = f"{self.base_navitia_url}/coverage/{region_id}/{resource_path}/equipment_reports"
|
|
142
|
+
|
|
143
|
+
filters = {
|
|
144
|
+
"count": count,
|
|
145
|
+
"depth": depth,
|
|
146
|
+
"start_page": start_page,
|
|
147
|
+
"forbidden_uris[]": forbidden_uris,
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
if filter:
|
|
151
|
+
filters["filter"] = filter
|
|
152
|
+
|
|
153
|
+
return self._get_equipment_reports(request_url, filters)
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
from typing import Any, Dict, Optional, Sequence, Tuple
|
|
2
|
+
|
|
3
|
+
from navitia_client.client.apis.api_base_client import ApiBaseClient
|
|
4
|
+
from navitia_client.entities.free_floating import FreeFloating
|
|
5
|
+
from navitia_client.entities.pagination import Pagination
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class FreefloatingsNearbyApiClient(ApiBaseClient):
|
|
9
|
+
"""
|
|
10
|
+
A client class to interact with the Navitia API for fetching nearby free-floating vehicles.
|
|
11
|
+
|
|
12
|
+
See https://doc.navitia.io/#freefloatings-nearby-api
|
|
13
|
+
|
|
14
|
+
Methods
|
|
15
|
+
-------
|
|
16
|
+
_get_freefloatings_nearby(
|
|
17
|
+
url: str, filters: dict
|
|
18
|
+
) -> Tuple[Sequence[FreeFloating], Pagination]:
|
|
19
|
+
Retrieves free-floating vehicles from the Navitia API based on provided URL and filters.
|
|
20
|
+
|
|
21
|
+
list_freefloatings_nearby(
|
|
22
|
+
region_id: str,
|
|
23
|
+
lon: float,
|
|
24
|
+
lat: float,
|
|
25
|
+
distance: int = 500,
|
|
26
|
+
type: Optional[Sequence[str]] = None,
|
|
27
|
+
count: int = 10,
|
|
28
|
+
) -> Tuple[Sequence[FreeFloating], Pagination]:
|
|
29
|
+
Retrieves free-floating vehicles near coordinates in a specific region from the Navitia API.
|
|
30
|
+
|
|
31
|
+
list_freefloatings_nearby_with_resource_path(
|
|
32
|
+
region_id: str,
|
|
33
|
+
resource_path: str,
|
|
34
|
+
distance: int = 500,
|
|
35
|
+
type: Optional[Sequence[str]] = None,
|
|
36
|
+
count: int = 10,
|
|
37
|
+
) -> Tuple[Sequence[FreeFloating], Pagination]:
|
|
38
|
+
Retrieves free-floating vehicles near a specific resource path in a region from the Navitia API.
|
|
39
|
+
|
|
40
|
+
list_freefloatings_nearby_by_coordinates(
|
|
41
|
+
region_lon: float,
|
|
42
|
+
region_lat: float,
|
|
43
|
+
lon: float,
|
|
44
|
+
lat: float,
|
|
45
|
+
distance: int = 500,
|
|
46
|
+
type: Optional[Sequence[str]] = None,
|
|
47
|
+
count: int = 10,
|
|
48
|
+
) -> Tuple[Sequence[FreeFloating], Pagination]:
|
|
49
|
+
Retrieves free-floating vehicles near coordinates, navitia guesses the region from coordinates.
|
|
50
|
+
|
|
51
|
+
list_freefloatings_nearby_by_coordinates_only(
|
|
52
|
+
lon: float,
|
|
53
|
+
lat: float,
|
|
54
|
+
distance: int = 500,
|
|
55
|
+
type: Optional[Sequence[str]] = None,
|
|
56
|
+
count: int = 10,
|
|
57
|
+
) -> Tuple[Sequence[FreeFloating], Pagination]:
|
|
58
|
+
Retrieves free-floating vehicles near coordinates without any region id.
|
|
59
|
+
"""
|
|
60
|
+
|
|
61
|
+
def _get_freefloatings_nearby(
|
|
62
|
+
self, url: str, filters: dict
|
|
63
|
+
) -> Tuple[Sequence[FreeFloating], Pagination]:
|
|
64
|
+
"""
|
|
65
|
+
Retrieves free-floating vehicles from the Navitia API based on provided URL and filters.
|
|
66
|
+
|
|
67
|
+
Parameters:
|
|
68
|
+
url (str): The URL for the API request.
|
|
69
|
+
filters (dict): Filters to apply to the API request.
|
|
70
|
+
|
|
71
|
+
Returns:
|
|
72
|
+
Tuple[Sequence[FreeFloating], Pagination]: A tuple containing sequences of FreeFloating objects and Pagination object.
|
|
73
|
+
"""
|
|
74
|
+
results = self.get_navitia_api(url + self._generate_filter_query(filters))
|
|
75
|
+
free_floatings = [
|
|
76
|
+
FreeFloating.from_payload(data) for data in results.json()["free_floatings"]
|
|
77
|
+
]
|
|
78
|
+
pagination = Pagination.from_payload(results.json()["pagination"])
|
|
79
|
+
return free_floatings, pagination
|
|
80
|
+
|
|
81
|
+
def list_freefloatings_nearby(
|
|
82
|
+
self,
|
|
83
|
+
region_id: str,
|
|
84
|
+
lon: float,
|
|
85
|
+
lat: float,
|
|
86
|
+
distance: int = 500,
|
|
87
|
+
type: Optional[Sequence[str]] = None,
|
|
88
|
+
count: int = 10,
|
|
89
|
+
) -> Tuple[Sequence[FreeFloating], Pagination]:
|
|
90
|
+
"""
|
|
91
|
+
Retrieves free-floating vehicles near coordinates in a specific region from the Navitia API.
|
|
92
|
+
|
|
93
|
+
This service provides access to nearby shared mobility options (such as bikes,
|
|
94
|
+
scooters, or cars) based on user-provided coordinates.
|
|
95
|
+
|
|
96
|
+
Parameters:
|
|
97
|
+
region_id (str): The region ID (coverage identifier).
|
|
98
|
+
lon (float): The longitude coordinate.
|
|
99
|
+
lat (float): The latitude coordinate.
|
|
100
|
+
distance (int): Search radius in meters. Defaults to 500.
|
|
101
|
+
type (Optional[Sequence[str]]): The type of shared mobility vehicles to return (e.g., bike, scooter, car).
|
|
102
|
+
count (int): Maximum number of results to return. Defaults to 10.
|
|
103
|
+
|
|
104
|
+
Returns:
|
|
105
|
+
Tuple[Sequence[FreeFloating], Pagination]: A tuple containing sequences of FreeFloating objects and Pagination object.
|
|
106
|
+
|
|
107
|
+
Note:
|
|
108
|
+
This feature requires a specific configuration from a freefloating data service provider.
|
|
109
|
+
Therefore, this service is not available by default.
|
|
110
|
+
"""
|
|
111
|
+
request_url = f"{self.base_navitia_url}/coverage/{region_id}/coords/{lon};{lat}/freefloatings_nearby"
|
|
112
|
+
|
|
113
|
+
filters: Dict[str, Any] = {
|
|
114
|
+
"distance": distance,
|
|
115
|
+
"count": count,
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
if type:
|
|
119
|
+
filters["type[]"] = type
|
|
120
|
+
|
|
121
|
+
return self._get_freefloatings_nearby(request_url, filters)
|
|
122
|
+
|
|
123
|
+
def list_freefloatings_nearby_with_resource_path(
|
|
124
|
+
self,
|
|
125
|
+
region_id: str,
|
|
126
|
+
resource_path: str,
|
|
127
|
+
distance: int = 500,
|
|
128
|
+
type: Optional[Sequence[str]] = None,
|
|
129
|
+
count: int = 10,
|
|
130
|
+
) -> Tuple[Sequence[FreeFloating], Pagination]:
|
|
131
|
+
"""
|
|
132
|
+
Retrieves free-floating vehicles near a specific resource path in a region from the Navitia API.
|
|
133
|
+
|
|
134
|
+
This service provides access to nearby shared mobility options (such as bikes,
|
|
135
|
+
scooters, or cars) near a specific resource (stop area, address, etc.).
|
|
136
|
+
|
|
137
|
+
Parameters:
|
|
138
|
+
region_id (str): The region ID (coverage identifier).
|
|
139
|
+
resource_path (str): The resource path (e.g., 'stop_areas/stop_area:XXX').
|
|
140
|
+
distance (int): Search radius in meters. Defaults to 500.
|
|
141
|
+
type (Optional[Sequence[str]]): The type of shared mobility vehicles to return (e.g., bike, scooter, car).
|
|
142
|
+
count (int): Maximum number of results to return. Defaults to 10.
|
|
143
|
+
|
|
144
|
+
Returns:
|
|
145
|
+
Tuple[Sequence[FreeFloating], Pagination]: A tuple containing sequences of FreeFloating objects and Pagination object.
|
|
146
|
+
|
|
147
|
+
Note:
|
|
148
|
+
This feature requires a specific configuration from a freefloating data service provider.
|
|
149
|
+
Therefore, this service is not available by default.
|
|
150
|
+
"""
|
|
151
|
+
request_url = f"{self.base_navitia_url}/coverage/{region_id}/{resource_path}/freefloatings_nearby"
|
|
152
|
+
|
|
153
|
+
filters: Dict[str, Any] = {
|
|
154
|
+
"distance": distance,
|
|
155
|
+
"count": count,
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
if type:
|
|
159
|
+
filters["type[]"] = type
|
|
160
|
+
|
|
161
|
+
return self._get_freefloatings_nearby(request_url, filters)
|
|
162
|
+
|
|
163
|
+
def list_freefloatings_nearby_by_coordinates(
|
|
164
|
+
self,
|
|
165
|
+
region_lon: float,
|
|
166
|
+
region_lat: float,
|
|
167
|
+
lon: float,
|
|
168
|
+
lat: float,
|
|
169
|
+
distance: int = 500,
|
|
170
|
+
type: Optional[Sequence[str]] = None,
|
|
171
|
+
count: int = 10,
|
|
172
|
+
) -> Tuple[Sequence[FreeFloating], Pagination]:
|
|
173
|
+
"""
|
|
174
|
+
Retrieves free-floating vehicles near coordinates, navitia guesses the region from coordinates.
|
|
175
|
+
|
|
176
|
+
This service provides access to nearby shared mobility options (such as bikes,
|
|
177
|
+
scooters, or cars) based on user-provided coordinates. Navitia will automatically
|
|
178
|
+
determine the region based on the provided region coordinates.
|
|
179
|
+
|
|
180
|
+
Parameters:
|
|
181
|
+
region_lon (float): The longitude coordinate for region identification.
|
|
182
|
+
region_lat (float): The latitude coordinate for region identification.
|
|
183
|
+
lon (float): The longitude coordinate for the search center.
|
|
184
|
+
lat (float): The latitude coordinate for the search center.
|
|
185
|
+
distance (int): Search radius in meters. Defaults to 500.
|
|
186
|
+
type (Optional[Sequence[str]]): The type of shared mobility vehicles to return (e.g., bike, scooter, car).
|
|
187
|
+
count (int): Maximum number of results to return. Defaults to 10.
|
|
188
|
+
|
|
189
|
+
Returns:
|
|
190
|
+
Tuple[Sequence[FreeFloating], Pagination]: A tuple containing sequences of FreeFloating objects and Pagination object.
|
|
191
|
+
|
|
192
|
+
Note:
|
|
193
|
+
This feature requires a specific configuration from a freefloating data service provider.
|
|
194
|
+
Therefore, this service is not available by default.
|
|
195
|
+
"""
|
|
196
|
+
request_url = f"{self.base_navitia_url}/coverage/{region_lon};{region_lat}/coords/{lon};{lat}/freefloatings_nearby"
|
|
197
|
+
|
|
198
|
+
filters: Dict[str, Any] = {
|
|
199
|
+
"distance": distance,
|
|
200
|
+
"count": count,
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
if type:
|
|
204
|
+
filters["type[]"] = type
|
|
205
|
+
|
|
206
|
+
return self._get_freefloatings_nearby(request_url, filters)
|
|
207
|
+
|
|
208
|
+
def list_freefloatings_nearby_by_coordinates_only(
|
|
209
|
+
self,
|
|
210
|
+
lon: float,
|
|
211
|
+
lat: float,
|
|
212
|
+
distance: int = 500,
|
|
213
|
+
type: Optional[Sequence[str]] = None,
|
|
214
|
+
count: int = 10,
|
|
215
|
+
) -> Tuple[Sequence[FreeFloating], Pagination]:
|
|
216
|
+
"""
|
|
217
|
+
Retrieves free-floating vehicles near coordinates without any region id.
|
|
218
|
+
|
|
219
|
+
This service provides access to nearby shared mobility options (such as bikes,
|
|
220
|
+
scooters, or cars) based on user-provided coordinates. This method does not require
|
|
221
|
+
a region ID; Navitia will automatically determine the appropriate region.
|
|
222
|
+
|
|
223
|
+
Parameters:
|
|
224
|
+
lon (float): The longitude coordinate.
|
|
225
|
+
lat (float): The latitude coordinate.
|
|
226
|
+
distance (int): Search radius in meters. Defaults to 500.
|
|
227
|
+
type (Optional[Sequence[str]]): The type of shared mobility vehicles to return (e.g., bike, scooter, car).
|
|
228
|
+
count (int): Maximum number of results to return. Defaults to 10.
|
|
229
|
+
|
|
230
|
+
Returns:
|
|
231
|
+
Tuple[Sequence[FreeFloating], Pagination]: A tuple containing sequences of FreeFloating objects and Pagination object.
|
|
232
|
+
|
|
233
|
+
Note:
|
|
234
|
+
This feature requires a specific configuration from a freefloating data service provider.
|
|
235
|
+
Therefore, this service is not available by default.
|
|
236
|
+
"""
|
|
237
|
+
request_url = f"{self.base_navitia_url}/coord/{lon};{lat}/freefloatings_nearby"
|
|
238
|
+
|
|
239
|
+
filters: Dict[str, Any] = {
|
|
240
|
+
"distance": distance,
|
|
241
|
+
"count": count,
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
if type:
|
|
245
|
+
filters["type[]"] = type
|
|
246
|
+
|
|
247
|
+
return self._get_freefloatings_nearby(request_url, filters)
|