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.
Files changed (94) hide show
  1. {python_navitia_client-1.2.2/python_navitia_client.egg-info → python_navitia_client-1.3.0}/PKG-INFO +6 -5
  2. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/README.md +5 -4
  3. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/arrival_apis.py +16 -0
  4. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/departure_apis.py +16 -0
  5. python_navitia_client-1.3.0/navitia_client/client/apis/equipment_report_apis.py +153 -0
  6. python_navitia_client-1.3.0/navitia_client/client/apis/freefloatings_nearby_apis.py +247 -0
  7. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/journeys_apis.py +136 -1
  8. {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
  9. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/public_transportation_apis/company_apis.py +86 -0
  10. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/public_transportation_apis/disruption_apis.py +86 -0
  11. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/public_transportation_apis/entity_apis.py +22 -0
  12. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/public_transportation_apis/line_apis.py +86 -0
  13. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/public_transportation_apis/network_apis.py +86 -0
  14. {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
  15. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/public_transportation_apis/route_apis.py +86 -0
  16. {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
  17. {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
  18. {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
  19. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/route_schedules_apis.py +12 -0
  20. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/stop_schedules_apis.py +12 -0
  21. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/terminus_schedules_apis.py +12 -0
  22. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/navitia_client.py +22 -0
  23. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/__init__.py +1 -0
  24. python_navitia_client-1.3.0/navitia_client/entities/equipment.py +101 -0
  25. python_navitia_client-1.3.0/navitia_client/entities/equipment_reports.py +30 -0
  26. python_navitia_client-1.3.0/navitia_client/entities/free_floating.py +59 -0
  27. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/journey.py +6 -0
  28. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/pyproject.toml +1 -1
  29. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0/python_navitia_client.egg-info}/PKG-INFO +6 -5
  30. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/python_navitia_client.egg-info/SOURCES.txt +3 -0
  31. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/tests/test_navitia_client.py +12 -0
  32. python_navitia_client-1.2.2/navitia_client/entities/equipment.py +0 -42
  33. python_navitia_client-1.2.2/navitia_client/entities/equipment_reports.py +0 -10
  34. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/LICENSE +0 -0
  35. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/__init__.py +0 -0
  36. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/__init__.py +0 -0
  37. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/__init__.py +0 -0
  38. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/api_base_client.py +0 -0
  39. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/contributors_apis.py +0 -0
  40. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/coverage_apis.py +0 -0
  41. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/datasets_apis.py +0 -0
  42. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/inverted_geocoding_apis.py +0 -0
  43. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/isochrone_apis.py +0 -0
  44. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/line_report_apis.py +0 -0
  45. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/place_apis.py +0 -0
  46. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/places_nearby_apis.py +0 -0
  47. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/public_transport_objects_apis.py +0 -0
  48. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/public_transportation_apis/__init__.py +0 -0
  49. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/apis/traffic_report_apis.py +0 -0
  50. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/exceptions.py +0 -0
  51. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/raw/__init__.py +0 -0
  52. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/client/raw/raw_client.py +0 -0
  53. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/access_point.py +0 -0
  54. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/address.py +0 -0
  55. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/administrative_region.py +0 -0
  56. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/arrival.py +0 -0
  57. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/base_entity.py +0 -0
  58. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/company.py +0 -0
  59. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/context.py +0 -0
  60. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/contributor.py +0 -0
  61. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/coord.py +0 -0
  62. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/dataset.py +0 -0
  63. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/departure.py +0 -0
  64. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/direction.py +0 -0
  65. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/display_information.py +0 -0
  66. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/disruption.py +0 -0
  67. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/isochrones.py +0 -0
  68. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/line_and_route.py +0 -0
  69. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/line_report.py +0 -0
  70. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/link.py +0 -0
  71. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/network.py +0 -0
  72. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/note.py +0 -0
  73. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/pagination.py +0 -0
  74. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/path.py +0 -0
  75. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/pathway.py +0 -0
  76. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/physical_mode.py +0 -0
  77. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/place.py +0 -0
  78. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/poi.py +0 -0
  79. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/pt_datetime.py +0 -0
  80. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/pt_object.py +0 -0
  81. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/route_schedule.py +0 -0
  82. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/schedule_table.py +0 -0
  83. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/stand.py +0 -0
  84. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/stop_area.py +0 -0
  85. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/stop_datetime.py +0 -0
  86. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/stop_schedule.py +0 -0
  87. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/ticket.py +0 -0
  88. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/traffic_report.py +0 -0
  89. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/trip.py +0 -0
  90. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/navitia_client/entities/vehicle_journey.py +0 -0
  91. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/python_navitia_client.egg-info/dependency_links.txt +0 -0
  92. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/python_navitia_client.egg-info/requires.txt +0 -0
  93. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/python_navitia_client.egg-info/top_level.txt +0 -0
  94. {python_navitia_client-1.2.2 → python_navitia_client-1.3.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-navitia-client
3
- Version: 1.2.2
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 | ✅ | Beta endpoint according to API response |
55
+ | Isochrones | ✅ | |
56
56
  | Route Schedules | ✅ | |
57
57
  | Stop Schedules | ✅ | |
58
58
  | Terminus Schedules | ✅ | |
59
59
  | Departures | ✅ | |
60
60
  | Arrivals | ✅ | |
61
- | Line reports | ✅ | Beta endpoint according to API response |
62
- | Traffic reports | ✅ | Beta endpoint according to API response |
63
- | Equipment reports | | Beta service, not available to all providers |
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 | ✅ | Beta endpoint according to API response |
36
+ | Isochrones | ✅ | |
37
37
  | Route Schedules | ✅ | |
38
38
  | Stop Schedules | ✅ | |
39
39
  | Terminus Schedules | ✅ | |
40
40
  | Departures | ✅ | |
41
41
  | Arrivals | ✅ | |
42
- | Line reports | ✅ | Beta endpoint according to API response |
43
- | Traffic reports | ✅ | Beta endpoint according to API response |
44
- | Equipment reports | | Beta service, not available to all providers |
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)