python-navitia-client 2.0.0__tar.gz → 2.0.2__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 (127) hide show
  1. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/PKG-INFO +76 -12
  2. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/README.md +75 -11
  3. python_navitia_client-2.0.2/navitia_client/__init__.py +3 -0
  4. python_navitia_client-2.0.2/navitia_client/client/__init__.py +3 -0
  5. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/pyproject.toml +1 -1
  6. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/python_navitia_client.egg-info/PKG-INFO +76 -12
  7. python_navitia_client-2.0.0/navitia_client/client/raw/__init__.py +0 -0
  8. python_navitia_client-2.0.0/navitia_client/entities/__init__.py +0 -0
  9. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/LICENSE +0 -0
  10. {python_navitia_client-2.0.0/navitia_client → python_navitia_client-2.0.2/navitia_client/client/apis}/__init__.py +0 -0
  11. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/api_base_client.py +0 -0
  12. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/arrival_apis.py +0 -0
  13. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/contributors_apis.py +0 -0
  14. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/coverage_apis.py +0 -0
  15. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/datasets_apis.py +0 -0
  16. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/departure_apis.py +0 -0
  17. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/equipment_report_apis.py +0 -0
  18. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/freefloatings_nearby_apis.py +0 -0
  19. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/inverted_geocoding_apis.py +0 -0
  20. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/isochrone_apis.py +0 -0
  21. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/journeys_apis.py +0 -0
  22. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/line_report_apis.py +0 -0
  23. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/place_apis.py +0 -0
  24. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/places_nearby_apis.py +0 -0
  25. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/public_transport_objects_apis.py +0 -0
  26. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/public_transportation_apis/__init__.py +0 -0
  27. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/public_transportation_apis/commercial_mode_apis.py +0 -0
  28. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/public_transportation_apis/company_apis.py +0 -0
  29. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/public_transportation_apis/disruption_apis.py +0 -0
  30. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/public_transportation_apis/entity_apis.py +0 -0
  31. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/public_transportation_apis/line_apis.py +0 -0
  32. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/public_transportation_apis/network_apis.py +0 -0
  33. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/public_transportation_apis/physical_mode_apis.py +0 -0
  34. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/public_transportation_apis/route_apis.py +0 -0
  35. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/public_transportation_apis/stop_area_apis.py +0 -0
  36. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/public_transportation_apis/stop_point_apis.py +0 -0
  37. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/public_transportation_apis/vehicle_journey_apis.py +0 -0
  38. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/route_schedules_apis.py +0 -0
  39. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/stop_schedules_apis.py +0 -0
  40. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/terminus_schedules_apis.py +0 -0
  41. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/apis/traffic_report_apis.py +0 -0
  42. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/exceptions.py +0 -0
  43. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/navitia_client.py +0 -0
  44. {python_navitia_client-2.0.0/navitia_client/client → python_navitia_client-2.0.2/navitia_client/client/raw}/__init__.py +0 -0
  45. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/client/raw/raw_client.py +0 -0
  46. {python_navitia_client-2.0.0/navitia_client/client/apis → python_navitia_client-2.0.2/navitia_client/entities}/__init__.py +0 -0
  47. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/__init__.py +0 -0
  48. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/arrival.py +0 -0
  49. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/base_entity_request.py +0 -0
  50. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/contributor.py +0 -0
  51. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/coverage.py +0 -0
  52. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/dataset.py +0 -0
  53. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/departure.py +0 -0
  54. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/equipment_report.py +0 -0
  55. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/freefloatings_nearby.py +0 -0
  56. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/inverted_geocoding.py +0 -0
  57. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/isochrone.py +0 -0
  58. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/journey.py +0 -0
  59. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/line_report.py +0 -0
  60. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/place.py +0 -0
  61. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/places_nearby.py +0 -0
  62. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/public_transport_object.py +0 -0
  63. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/public_transportations/___init__.py +0 -0
  64. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/public_transportations/__init__.py +0 -0
  65. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/public_transportations/commercial_mode.py +0 -0
  66. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/public_transportations/company.py +0 -0
  67. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/public_transportations/disruption.py +0 -0
  68. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/public_transportations/line.py +0 -0
  69. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/public_transportations/network.py +0 -0
  70. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/public_transportations/physical_mode.py +0 -0
  71. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/public_transportations/route.py +0 -0
  72. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/public_transportations/stop_area.py +0 -0
  73. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/public_transportations/stop_point.py +0 -0
  74. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/public_transportations/vehicle_journey.py +0 -0
  75. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/route_schedule.py +0 -0
  76. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/stop_schedule.py +0 -0
  77. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/terminus_schedule.py +0 -0
  78. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/request/traffic_report.py +0 -0
  79. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/__init__.py +0 -0
  80. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/access_point.py +0 -0
  81. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/address.py +0 -0
  82. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/administrative_region.py +0 -0
  83. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/arrival.py +0 -0
  84. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/base_entity.py +0 -0
  85. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/company.py +0 -0
  86. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/context.py +0 -0
  87. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/contributor.py +0 -0
  88. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/coord.py +0 -0
  89. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/dataset.py +0 -0
  90. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/departure.py +0 -0
  91. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/direction.py +0 -0
  92. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/display_information.py +0 -0
  93. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/disruption.py +0 -0
  94. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/equipment.py +0 -0
  95. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/equipment_reports.py +0 -0
  96. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/free_floating.py +0 -0
  97. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/isochrones.py +0 -0
  98. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/journey.py +0 -0
  99. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/line_and_route.py +0 -0
  100. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/line_report.py +0 -0
  101. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/link.py +0 -0
  102. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/network.py +0 -0
  103. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/note.py +0 -0
  104. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/pagination.py +0 -0
  105. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/path.py +0 -0
  106. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/pathway.py +0 -0
  107. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/physical_mode.py +0 -0
  108. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/place.py +0 -0
  109. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/poi.py +0 -0
  110. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/pt_datetime.py +0 -0
  111. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/pt_object.py +0 -0
  112. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/route_schedule.py +0 -0
  113. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/schedule_table.py +0 -0
  114. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/stand.py +0 -0
  115. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/stop_area.py +0 -0
  116. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/stop_datetime.py +0 -0
  117. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/stop_schedule.py +0 -0
  118. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/ticket.py +0 -0
  119. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/traffic_report.py +0 -0
  120. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/trip.py +0 -0
  121. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/navitia_client/entities/response/vehicle_journey.py +0 -0
  122. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/python_navitia_client.egg-info/SOURCES.txt +0 -0
  123. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/python_navitia_client.egg-info/dependency_links.txt +0 -0
  124. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/python_navitia_client.egg-info/requires.txt +0 -0
  125. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/python_navitia_client.egg-info/top_level.txt +0 -0
  126. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/setup.cfg +0 -0
  127. {python_navitia_client-2.0.0 → python_navitia_client-2.0.2}/tests/test_navitia_client.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-navitia-client
3
- Version: 2.0.0
3
+ Version: 2.0.2
4
4
  Summary: Python library to use with Navitia APIs
5
5
  Author-email: Jonathan Perron <jonathan@perron.bzh>
6
6
  License: MIT License
@@ -25,7 +25,12 @@ Dynamic: license-file
25
25
 
26
26
  This repository provides a unofficial Python wrapper to use [navitia.io APIs](https://doc.navitia.io).
27
27
 
28
- ##  Pre-requisites
28
+ > **⚠️ Version 2.0.0 Breaking Changes**
29
+ >
30
+ > Version 2.0.0 introduces breaking changes with the adoption of Request objects for all API methods.
31
+ > If you're upgrading from v1.x, please see the [CHANGELOG](CHANGELOG.md) for the migration guide.
32
+
33
+ ## Pre-requisites
29
34
 
30
35
  To use this library, you will need an access token from [navitia.io](https://navitia.io/tarifs/).
31
36
 
@@ -69,30 +74,89 @@ To use this library, you need an authentication token provided by Navitia.io.
69
74
 
70
75
  ### Create client instance
71
76
 
72
- Once created, you will create an instance of the NavitiaClient class with the following:
77
+ Create an instance of the NavitiaClient class with your authentication token:
78
+
79
+ ```python
80
+ from navitia_client import NavitiaClient
81
+
82
+ client = NavitiaClient(auth="YOUR_TOKEN_HERE")
83
+ ```
84
+
85
+ A base URL for Navitia IO is hardcoded and provided to NavitiaClient by default. It can be updated using the `base_navitia_url` parameter.
86
+
87
+ ### Access APIs data
88
+
89
+ URLs are mapped as properties in the `NavitiaClient` class. You can find the mapping [here](docs/api_support/).
90
+
91
+ #### Simple APIs (Coverage, Datasets, Contributors)
92
+
93
+ For simple APIs like coverage, datasets, and contributors, you can call methods directly:
73
94
 
74
95
  ```python
75
- from navitia_client.client import NavitiaClient
76
- client = NavitiaClient(auth=<YOUR_TOKEN_HERE>)
96
+ # Get coverage information
97
+ regions = client.coverage.list_coverage_regions()
98
+
99
+ # Get datasets for a region
100
+ datasets, pagination = client.datasets.list_datasets(region_id="fr-idf")
77
101
  ```
78
102
 
79
- A base URL for Navitia IO is hardcoded and provided to NavitiaClient by default. It can be updated using the base_navitia_url parameter.
103
+ #### APIs with Request Objects (Journeys, Places, Schedules, etc.)
80
104
 
81
- ###  Access APIs data
105
+ Most APIs now use Request objects for better type safety and maintainability:
82
106
 
83
- URLs are mapped as property in the class `NavitiaClient`. You can find the mapping [here](docs/api_support/).
107
+ ```python
108
+ from navitia_client.entities.request.journey import JourneyRequest
109
+ from datetime import datetime
110
+
111
+ # Create a journey request
112
+ request = JourneyRequest(
113
+ from_="stop_area:RAT:SA:GDLYO",
114
+ to_="stop_area:RAT:SA:CHDEG",
115
+ datetime_=datetime(2024, 6, 1, 8, 0),
116
+ count=5
117
+ )
118
+
119
+ # Get journeys
120
+ journeys = client.journeys.list_journeys(request=request)
121
+ ```
84
122
 
85
- For example, if you want to have the list of datasets in a given region, use:
123
+ Other examples:
86
124
 
87
125
  ```python
88
- datasets, pagination = client.datasets.list_datasets(region_id=<REGION_ID>)
126
+ from navitia_client.entities.request.places_nearby import PlacesNearbyRequest
127
+
128
+ # Places nearby with custom parameters
129
+ request = PlacesNearbyRequest(
130
+ distance=1000,
131
+ type=["stop_area", "stop_point"],
132
+ count=20
133
+ )
134
+ places, pagination = client.places_nearby.list_objects_by_region_id_and_path(
135
+ region_id="fr-idf",
136
+ resource_path="lines/line:RAT:M1",
137
+ request=request
138
+ )
89
139
  ```
90
140
 
91
141
  ### Pagination
92
142
 
93
- A couple of APIs are paginated, in particular the public transporations APIs.. In such case, you can navigate in the response using the parameters `start_page` and `count`.
143
+ Several APIs are paginated, particularly the public transportation APIs. You can navigate through results using the `start_page` and `count` parameters in Request objects:
144
+
145
+ ```python
146
+ from navitia_client.entities.request.journey import JourneyRequest
147
+
148
+ # Request with pagination
149
+ request = JourneyRequest(
150
+ from_="stop_area:RAT:SA:GDLYO",
151
+ to_="stop_area:RAT:SA:CHDEG",
152
+ start_page=0, # First page
153
+ count=10 # 10 results per page
154
+ )
155
+
156
+ journeys = client.journeys.list_journeys(request=request)
157
+ ```
94
158
 
95
- An object `Pagination` will be provided by the impacted methods to help you navigating.
159
+ A `Pagination` object is provided by paginated methods to help you navigate through results.
96
160
 
97
161
  ### Tips
98
162
 
@@ -6,7 +6,12 @@
6
6
 
7
7
  This repository provides a unofficial Python wrapper to use [navitia.io APIs](https://doc.navitia.io).
8
8
 
9
- ##  Pre-requisites
9
+ > **⚠️ Version 2.0.0 Breaking Changes**
10
+ >
11
+ > Version 2.0.0 introduces breaking changes with the adoption of Request objects for all API methods.
12
+ > If you're upgrading from v1.x, please see the [CHANGELOG](CHANGELOG.md) for the migration guide.
13
+
14
+ ## Pre-requisites
10
15
 
11
16
  To use this library, you will need an access token from [navitia.io](https://navitia.io/tarifs/).
12
17
 
@@ -50,30 +55,89 @@ To use this library, you need an authentication token provided by Navitia.io.
50
55
 
51
56
  ### Create client instance
52
57
 
53
- Once created, you will create an instance of the NavitiaClient class with the following:
58
+ Create an instance of the NavitiaClient class with your authentication token:
59
+
60
+ ```python
61
+ from navitia_client import NavitiaClient
62
+
63
+ client = NavitiaClient(auth="YOUR_TOKEN_HERE")
64
+ ```
65
+
66
+ A base URL for Navitia IO is hardcoded and provided to NavitiaClient by default. It can be updated using the `base_navitia_url` parameter.
67
+
68
+ ### Access APIs data
69
+
70
+ URLs are mapped as properties in the `NavitiaClient` class. You can find the mapping [here](docs/api_support/).
71
+
72
+ #### Simple APIs (Coverage, Datasets, Contributors)
73
+
74
+ For simple APIs like coverage, datasets, and contributors, you can call methods directly:
54
75
 
55
76
  ```python
56
- from navitia_client.client import NavitiaClient
57
- client = NavitiaClient(auth=<YOUR_TOKEN_HERE>)
77
+ # Get coverage information
78
+ regions = client.coverage.list_coverage_regions()
79
+
80
+ # Get datasets for a region
81
+ datasets, pagination = client.datasets.list_datasets(region_id="fr-idf")
58
82
  ```
59
83
 
60
- A base URL for Navitia IO is hardcoded and provided to NavitiaClient by default. It can be updated using the base_navitia_url parameter.
84
+ #### APIs with Request Objects (Journeys, Places, Schedules, etc.)
61
85
 
62
- ###  Access APIs data
86
+ Most APIs now use Request objects for better type safety and maintainability:
63
87
 
64
- URLs are mapped as property in the class `NavitiaClient`. You can find the mapping [here](docs/api_support/).
88
+ ```python
89
+ from navitia_client.entities.request.journey import JourneyRequest
90
+ from datetime import datetime
91
+
92
+ # Create a journey request
93
+ request = JourneyRequest(
94
+ from_="stop_area:RAT:SA:GDLYO",
95
+ to_="stop_area:RAT:SA:CHDEG",
96
+ datetime_=datetime(2024, 6, 1, 8, 0),
97
+ count=5
98
+ )
99
+
100
+ # Get journeys
101
+ journeys = client.journeys.list_journeys(request=request)
102
+ ```
65
103
 
66
- For example, if you want to have the list of datasets in a given region, use:
104
+ Other examples:
67
105
 
68
106
  ```python
69
- datasets, pagination = client.datasets.list_datasets(region_id=<REGION_ID>)
107
+ from navitia_client.entities.request.places_nearby import PlacesNearbyRequest
108
+
109
+ # Places nearby with custom parameters
110
+ request = PlacesNearbyRequest(
111
+ distance=1000,
112
+ type=["stop_area", "stop_point"],
113
+ count=20
114
+ )
115
+ places, pagination = client.places_nearby.list_objects_by_region_id_and_path(
116
+ region_id="fr-idf",
117
+ resource_path="lines/line:RAT:M1",
118
+ request=request
119
+ )
70
120
  ```
71
121
 
72
122
  ### Pagination
73
123
 
74
- A couple of APIs are paginated, in particular the public transporations APIs.. In such case, you can navigate in the response using the parameters `start_page` and `count`.
124
+ Several APIs are paginated, particularly the public transportation APIs. You can navigate through results using the `start_page` and `count` parameters in Request objects:
125
+
126
+ ```python
127
+ from navitia_client.entities.request.journey import JourneyRequest
128
+
129
+ # Request with pagination
130
+ request = JourneyRequest(
131
+ from_="stop_area:RAT:SA:GDLYO",
132
+ to_="stop_area:RAT:SA:CHDEG",
133
+ start_page=0, # First page
134
+ count=10 # 10 results per page
135
+ )
136
+
137
+ journeys = client.journeys.list_journeys(request=request)
138
+ ```
75
139
 
76
- An object `Pagination` will be provided by the impacted methods to help you navigating.
140
+ A `Pagination` object is provided by paginated methods to help you navigate through results.
77
141
 
78
142
  ### Tips
79
143
 
@@ -0,0 +1,3 @@
1
+ # ruff: noqa: F401
2
+
3
+ from .client import NavitiaClient
@@ -0,0 +1,3 @@
1
+ # ruff: noqa: F401
2
+
3
+ from .navitia_client import NavitiaClient
@@ -17,7 +17,7 @@ classifiers = [
17
17
  "Programming Language :: Python :: 3.12",
18
18
  "Programming Language :: Python :: 3.13",
19
19
  ]
20
- version = "2.0.0"
20
+ version = "2.0.2"
21
21
  requires-python = ">=3.10"
22
22
  dependencies = [
23
23
  "requests>=2.32, < 3",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-navitia-client
3
- Version: 2.0.0
3
+ Version: 2.0.2
4
4
  Summary: Python library to use with Navitia APIs
5
5
  Author-email: Jonathan Perron <jonathan@perron.bzh>
6
6
  License: MIT License
@@ -25,7 +25,12 @@ Dynamic: license-file
25
25
 
26
26
  This repository provides a unofficial Python wrapper to use [navitia.io APIs](https://doc.navitia.io).
27
27
 
28
- ##  Pre-requisites
28
+ > **⚠️ Version 2.0.0 Breaking Changes**
29
+ >
30
+ > Version 2.0.0 introduces breaking changes with the adoption of Request objects for all API methods.
31
+ > If you're upgrading from v1.x, please see the [CHANGELOG](CHANGELOG.md) for the migration guide.
32
+
33
+ ## Pre-requisites
29
34
 
30
35
  To use this library, you will need an access token from [navitia.io](https://navitia.io/tarifs/).
31
36
 
@@ -69,30 +74,89 @@ To use this library, you need an authentication token provided by Navitia.io.
69
74
 
70
75
  ### Create client instance
71
76
 
72
- Once created, you will create an instance of the NavitiaClient class with the following:
77
+ Create an instance of the NavitiaClient class with your authentication token:
78
+
79
+ ```python
80
+ from navitia_client import NavitiaClient
81
+
82
+ client = NavitiaClient(auth="YOUR_TOKEN_HERE")
83
+ ```
84
+
85
+ A base URL for Navitia IO is hardcoded and provided to NavitiaClient by default. It can be updated using the `base_navitia_url` parameter.
86
+
87
+ ### Access APIs data
88
+
89
+ URLs are mapped as properties in the `NavitiaClient` class. You can find the mapping [here](docs/api_support/).
90
+
91
+ #### Simple APIs (Coverage, Datasets, Contributors)
92
+
93
+ For simple APIs like coverage, datasets, and contributors, you can call methods directly:
73
94
 
74
95
  ```python
75
- from navitia_client.client import NavitiaClient
76
- client = NavitiaClient(auth=<YOUR_TOKEN_HERE>)
96
+ # Get coverage information
97
+ regions = client.coverage.list_coverage_regions()
98
+
99
+ # Get datasets for a region
100
+ datasets, pagination = client.datasets.list_datasets(region_id="fr-idf")
77
101
  ```
78
102
 
79
- A base URL for Navitia IO is hardcoded and provided to NavitiaClient by default. It can be updated using the base_navitia_url parameter.
103
+ #### APIs with Request Objects (Journeys, Places, Schedules, etc.)
80
104
 
81
- ###  Access APIs data
105
+ Most APIs now use Request objects for better type safety and maintainability:
82
106
 
83
- URLs are mapped as property in the class `NavitiaClient`. You can find the mapping [here](docs/api_support/).
107
+ ```python
108
+ from navitia_client.entities.request.journey import JourneyRequest
109
+ from datetime import datetime
110
+
111
+ # Create a journey request
112
+ request = JourneyRequest(
113
+ from_="stop_area:RAT:SA:GDLYO",
114
+ to_="stop_area:RAT:SA:CHDEG",
115
+ datetime_=datetime(2024, 6, 1, 8, 0),
116
+ count=5
117
+ )
118
+
119
+ # Get journeys
120
+ journeys = client.journeys.list_journeys(request=request)
121
+ ```
84
122
 
85
- For example, if you want to have the list of datasets in a given region, use:
123
+ Other examples:
86
124
 
87
125
  ```python
88
- datasets, pagination = client.datasets.list_datasets(region_id=<REGION_ID>)
126
+ from navitia_client.entities.request.places_nearby import PlacesNearbyRequest
127
+
128
+ # Places nearby with custom parameters
129
+ request = PlacesNearbyRequest(
130
+ distance=1000,
131
+ type=["stop_area", "stop_point"],
132
+ count=20
133
+ )
134
+ places, pagination = client.places_nearby.list_objects_by_region_id_and_path(
135
+ region_id="fr-idf",
136
+ resource_path="lines/line:RAT:M1",
137
+ request=request
138
+ )
89
139
  ```
90
140
 
91
141
  ### Pagination
92
142
 
93
- A couple of APIs are paginated, in particular the public transporations APIs.. In such case, you can navigate in the response using the parameters `start_page` and `count`.
143
+ Several APIs are paginated, particularly the public transportation APIs. You can navigate through results using the `start_page` and `count` parameters in Request objects:
144
+
145
+ ```python
146
+ from navitia_client.entities.request.journey import JourneyRequest
147
+
148
+ # Request with pagination
149
+ request = JourneyRequest(
150
+ from_="stop_area:RAT:SA:GDLYO",
151
+ to_="stop_area:RAT:SA:CHDEG",
152
+ start_page=0, # First page
153
+ count=10 # 10 results per page
154
+ )
155
+
156
+ journeys = client.journeys.list_journeys(request=request)
157
+ ```
94
158
 
95
- An object `Pagination` will be provided by the impacted methods to help you navigating.
159
+ A `Pagination` object is provided by paginated methods to help you navigate through results.
96
160
 
97
161
  ### Tips
98
162