onebusaway 1.13.5__tar.gz → 1.14.1__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 (194) hide show
  1. onebusaway-1.14.1/.release-please-manifest.json +3 -0
  2. {onebusaway-1.13.5 → onebusaway-1.14.1}/CHANGELOG.md +17 -0
  3. {onebusaway-1.13.5 → onebusaway-1.14.1}/PKG-INFO +2 -3
  4. {onebusaway-1.13.5 → onebusaway-1.14.1}/README.md +1 -2
  5. {onebusaway-1.13.5 → onebusaway-1.14.1}/pyproject.toml +1 -1
  6. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_models.py +24 -3
  7. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_version.py +1 -1
  8. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_models.py +28 -1
  9. onebusaway-1.13.5/.release-please-manifest.json +0 -3
  10. {onebusaway-1.13.5 → onebusaway-1.14.1}/.gitignore +0 -0
  11. {onebusaway-1.13.5 → onebusaway-1.14.1}/CONTRIBUTING.md +0 -0
  12. {onebusaway-1.13.5 → onebusaway-1.14.1}/LICENSE +0 -0
  13. {onebusaway-1.13.5 → onebusaway-1.14.1}/SECURITY.md +0 -0
  14. {onebusaway-1.13.5 → onebusaway-1.14.1}/api.md +0 -0
  15. {onebusaway-1.13.5 → onebusaway-1.14.1}/bin/check-release-environment +0 -0
  16. {onebusaway-1.13.5 → onebusaway-1.14.1}/bin/publish-pypi +0 -0
  17. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/.env.example +0 -0
  18. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/.keep +0 -0
  19. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/README.md +0 -0
  20. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/agencies_with_coverage.py +0 -0
  21. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/arrivals_and_departures_for_stop.py +0 -0
  22. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/block.py +0 -0
  23. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/config.py +0 -0
  24. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/current_time.py +0 -0
  25. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/helpers/__init__.py +0 -0
  26. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/helpers/load_env.py +0 -0
  27. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/routes_for_agency.py +0 -0
  28. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/routes_ids_for_agency.py +0 -0
  29. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/schedule_for_route.py +0 -0
  30. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/schedule_for_stop.py +0 -0
  31. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/search_for_route.py +0 -0
  32. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/search_for_stop.py +0 -0
  33. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/shape.py +0 -0
  34. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/stop.py +0 -0
  35. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/stop_for_route.py +0 -0
  36. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/stop_ids_for_agency.py +0 -0
  37. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/stops_for_location.py +0 -0
  38. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/trip.py +0 -0
  39. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/trip_details.py +0 -0
  40. {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/vehicles_for_agency.py +0 -0
  41. {onebusaway-1.13.5 → onebusaway-1.14.1}/mypy.ini +0 -0
  42. {onebusaway-1.13.5 → onebusaway-1.14.1}/noxfile.py +0 -0
  43. {onebusaway-1.13.5 → onebusaway-1.14.1}/release-please-config.json +0 -0
  44. {onebusaway-1.13.5 → onebusaway-1.14.1}/requirements-dev.lock +0 -0
  45. {onebusaway-1.13.5 → onebusaway-1.14.1}/requirements.lock +0 -0
  46. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/__init__.py +0 -0
  47. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_base_client.py +0 -0
  48. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_client.py +0 -0
  49. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_compat.py +0 -0
  50. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_constants.py +0 -0
  51. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_exceptions.py +0 -0
  52. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_files.py +0 -0
  53. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_qs.py +0 -0
  54. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_resource.py +0 -0
  55. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_response.py +0 -0
  56. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_streaming.py +0 -0
  57. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_types.py +0 -0
  58. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_utils/__init__.py +0 -0
  59. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_utils/_logs.py +0 -0
  60. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_utils/_proxy.py +0 -0
  61. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_utils/_reflection.py +0 -0
  62. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_utils/_resources_proxy.py +0 -0
  63. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_utils/_streams.py +0 -0
  64. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_utils/_sync.py +0 -0
  65. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_utils/_transform.py +0 -0
  66. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_utils/_typing.py +0 -0
  67. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_utils/_utils.py +0 -0
  68. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/lib/.keep +0 -0
  69. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/py.typed +0 -0
  70. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/__init__.py +0 -0
  71. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/agencies_with_coverage.py +0 -0
  72. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/agency.py +0 -0
  73. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/arrival_and_departure.py +0 -0
  74. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/block.py +0 -0
  75. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/config.py +0 -0
  76. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/current_time.py +0 -0
  77. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/report_problem_with_stop.py +0 -0
  78. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/report_problem_with_trip.py +0 -0
  79. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/route.py +0 -0
  80. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/route_ids_for_agency.py +0 -0
  81. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/routes_for_agency.py +0 -0
  82. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/routes_for_location.py +0 -0
  83. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/schedule_for_route.py +0 -0
  84. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/schedule_for_stop.py +0 -0
  85. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/search_for_route.py +0 -0
  86. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/search_for_stop.py +0 -0
  87. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/shape.py +0 -0
  88. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/stop.py +0 -0
  89. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/stop_ids_for_agency.py +0 -0
  90. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/stops_for_agency.py +0 -0
  91. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/stops_for_location.py +0 -0
  92. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/stops_for_route.py +0 -0
  93. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/trip.py +0 -0
  94. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/trip_details.py +0 -0
  95. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/trip_for_vehicle.py +0 -0
  96. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/trips_for_location.py +0 -0
  97. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/trips_for_route.py +0 -0
  98. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/vehicles_for_agency.py +0 -0
  99. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/__init__.py +0 -0
  100. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/agencies_with_coverage_list_response.py +0 -0
  101. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/agency_retrieve_response.py +0 -0
  102. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/arrival_and_departure_list_params.py +0 -0
  103. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/arrival_and_departure_list_response.py +0 -0
  104. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/arrival_and_departure_retrieve_params.py +0 -0
  105. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/arrival_and_departure_retrieve_response.py +0 -0
  106. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/block_retrieve_response.py +0 -0
  107. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/config_retrieve_response.py +0 -0
  108. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/current_time_retrieve_response.py +0 -0
  109. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/report_problem_with_stop_retrieve_params.py +0 -0
  110. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/report_problem_with_trip_retrieve_params.py +0 -0
  111. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/route_ids_for_agency_list_response.py +0 -0
  112. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/route_retrieve_response.py +0 -0
  113. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/routes_for_agency_list_response.py +0 -0
  114. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/routes_for_location_list_params.py +0 -0
  115. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/routes_for_location_list_response.py +0 -0
  116. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/schedule_for_route_retrieve_params.py +0 -0
  117. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/schedule_for_route_retrieve_response.py +0 -0
  118. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/schedule_for_stop_retrieve_params.py +0 -0
  119. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/schedule_for_stop_retrieve_response.py +0 -0
  120. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_route_list_params.py +0 -0
  121. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_route_list_response.py +0 -0
  122. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_route_retrieve_params.py +0 -0
  123. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_route_retrieve_response.py +0 -0
  124. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_stop_list_params.py +0 -0
  125. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_stop_list_response.py +0 -0
  126. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_stop_retrieve_params.py +0 -0
  127. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_stop_retrieve_response.py +0 -0
  128. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/shape_retrieve_response.py +0 -0
  129. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/shared/__init__.py +0 -0
  130. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/shared/references.py +0 -0
  131. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/shared/response_wrapper.py +0 -0
  132. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/stop_ids_for_agency_list_response.py +0 -0
  133. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/stop_retrieve_response.py +0 -0
  134. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/stops_for_agency_list_response.py +0 -0
  135. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/stops_for_location_list_params.py +0 -0
  136. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/stops_for_location_list_response.py +0 -0
  137. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/stops_for_route_list_params.py +0 -0
  138. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/stops_for_route_list_response.py +0 -0
  139. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trip_detail_retrieve_params.py +0 -0
  140. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trip_detail_retrieve_response.py +0 -0
  141. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trip_for_vehicle_retrieve_params.py +0 -0
  142. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trip_for_vehicle_retrieve_response.py +0 -0
  143. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trip_retrieve_response.py +0 -0
  144. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trips_for_location_list_params.py +0 -0
  145. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trips_for_location_list_response.py +0 -0
  146. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trips_for_route_list_params.py +0 -0
  147. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trips_for_route_list_response.py +0 -0
  148. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/vehicles_for_agency_list_params.py +0 -0
  149. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/vehicles_for_agency_list_response.py +0 -0
  150. {onebusaway-1.13.5 → onebusaway-1.14.1}/src/open_transit/lib/.keep +0 -0
  151. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/__init__.py +0 -0
  152. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/__init__.py +0 -0
  153. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_agencies_with_coverage.py +0 -0
  154. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_agency.py +0 -0
  155. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_arrival_and_departure.py +0 -0
  156. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_block.py +0 -0
  157. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_config.py +0 -0
  158. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_current_time.py +0 -0
  159. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_report_problem_with_stop.py +0 -0
  160. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_report_problem_with_trip.py +0 -0
  161. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_route.py +0 -0
  162. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_route_ids_for_agency.py +0 -0
  163. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_routes_for_agency.py +0 -0
  164. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_routes_for_location.py +0 -0
  165. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_schedule_for_route.py +0 -0
  166. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_schedule_for_stop.py +0 -0
  167. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_search_for_route.py +0 -0
  168. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_search_for_stop.py +0 -0
  169. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_shape.py +0 -0
  170. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_stop.py +0 -0
  171. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_stop_ids_for_agency.py +0 -0
  172. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_stops_for_agency.py +0 -0
  173. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_stops_for_location.py +0 -0
  174. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_stops_for_route.py +0 -0
  175. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_trip.py +0 -0
  176. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_trip_details.py +0 -0
  177. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_trip_for_vehicle.py +0 -0
  178. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_trips_for_location.py +0 -0
  179. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_trips_for_route.py +0 -0
  180. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_vehicles_for_agency.py +0 -0
  181. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/conftest.py +0 -0
  182. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/sample_file.txt +0 -0
  183. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_client.py +0 -0
  184. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_deepcopy.py +0 -0
  185. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_extract_files.py +0 -0
  186. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_files.py +0 -0
  187. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_qs.py +0 -0
  188. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_required_args.py +0 -0
  189. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_response.py +0 -0
  190. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_streaming.py +0 -0
  191. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_transform.py +0 -0
  192. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_utils/test_proxy.py +0 -0
  193. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_utils/test_typing.py +0 -0
  194. {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "1.14.1"
3
+ }
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.14.1 (2025-07-23)
4
+
5
+ Full Changelog: [v1.14.0...v1.14.1](https://github.com/OneBusAway/python-sdk/compare/v1.14.0...v1.14.1)
6
+
7
+ ### Bug Fixes
8
+
9
+ * **parsing:** ignore empty metadata ([eef0db2](https://github.com/OneBusAway/python-sdk/commit/eef0db25134ae51703d4560860a984ddc603e114))
10
+ * **parsing:** parse extra field types ([e477fc8](https://github.com/OneBusAway/python-sdk/commit/e477fc84dbc063d64fc6983e243f0a41a6dfd07c))
11
+
12
+ ## 1.14.0 (2025-07-15)
13
+
14
+ Full Changelog: [v1.13.5...v1.14.0](https://github.com/OneBusAway/python-sdk/compare/v1.13.5...v1.14.0)
15
+
16
+ ### Features
17
+
18
+ * clean up environment call outs ([ecac1f6](https://github.com/OneBusAway/python-sdk/commit/ecac1f6610cdae3cde3a0f982c4bc11192a5a809))
19
+
3
20
  ## 1.13.5 (2025-07-12)
4
21
 
5
22
  Full Changelog: [v1.13.4...v1.13.5](https://github.com/OneBusAway/python-sdk/compare/v1.13.4...v1.13.5)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: onebusaway
3
- Version: 1.13.5
3
+ Version: 1.14.1
4
4
  Summary: The official Python library for the onebusaway-sdk API
5
5
  Project-URL: Homepage, https://github.com/OneBusAway/python-sdk
6
6
  Project-URL: Repository, https://github.com/OneBusAway/python-sdk
@@ -114,7 +114,6 @@ pip install onebusaway[aiohttp]
114
114
  Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
115
115
 
116
116
  ```python
117
- import os
118
117
  import asyncio
119
118
  from onebusaway import DefaultAioHttpClient
120
119
  from onebusaway import AsyncOnebusawaySDK
@@ -122,7 +121,7 @@ from onebusaway import AsyncOnebusawaySDK
122
121
 
123
122
  async def main() -> None:
124
123
  async with AsyncOnebusawaySDK(
125
- api_key=os.environ.get("ONEBUSAWAY_API_KEY"), # This is the default and can be omitted
124
+ api_key="My API Key",
126
125
  http_client=DefaultAioHttpClient(),
127
126
  ) as client:
128
127
  current_time = await client.current_time.retrieve()
@@ -79,7 +79,6 @@ pip install onebusaway[aiohttp]
79
79
  Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
80
80
 
81
81
  ```python
82
- import os
83
82
  import asyncio
84
83
  from onebusaway import DefaultAioHttpClient
85
84
  from onebusaway import AsyncOnebusawaySDK
@@ -87,7 +86,7 @@ from onebusaway import AsyncOnebusawaySDK
87
86
 
88
87
  async def main() -> None:
89
88
  async with AsyncOnebusawaySDK(
90
- api_key=os.environ.get("ONEBUSAWAY_API_KEY"), # This is the default and can be omitted
89
+ api_key="My API Key",
91
90
  http_client=DefaultAioHttpClient(),
92
91
  ) as client:
93
92
  current_time = await client.current_time.retrieve()
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "onebusaway"
3
- version = "1.13.5"
3
+ version = "1.14.1"
4
4
  description = "The official Python library for the onebusaway-sdk API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -208,14 +208,18 @@ class BaseModel(pydantic.BaseModel):
208
208
  else:
209
209
  fields_values[name] = field_get_default(field)
210
210
 
211
+ extra_field_type = _get_extra_fields_type(__cls)
212
+
211
213
  _extra = {}
212
214
  for key, value in values.items():
213
215
  if key not in model_fields:
216
+ parsed = construct_type(value=value, type_=extra_field_type) if extra_field_type is not None else value
217
+
214
218
  if PYDANTIC_V2:
215
- _extra[key] = value
219
+ _extra[key] = parsed
216
220
  else:
217
221
  _fields_set.add(key)
218
- fields_values[key] = value
222
+ fields_values[key] = parsed
219
223
 
220
224
  object.__setattr__(m, "__dict__", fields_values)
221
225
 
@@ -370,6 +374,23 @@ def _construct_field(value: object, field: FieldInfo, key: str) -> object:
370
374
  return construct_type(value=value, type_=type_, metadata=getattr(field, "metadata", None))
371
375
 
372
376
 
377
+ def _get_extra_fields_type(cls: type[pydantic.BaseModel]) -> type | None:
378
+ if not PYDANTIC_V2:
379
+ # TODO
380
+ return None
381
+
382
+ schema = cls.__pydantic_core_schema__
383
+ if schema["type"] == "model":
384
+ fields = schema["schema"]
385
+ if fields["type"] == "model-fields":
386
+ extras = fields.get("extras_schema")
387
+ if extras and "cls" in extras:
388
+ # mypy can't narrow the type
389
+ return extras["cls"] # type: ignore[no-any-return]
390
+
391
+ return None
392
+
393
+
373
394
  def is_basemodel(type_: type) -> bool:
374
395
  """Returns whether or not the given type is either a `BaseModel` or a union of `BaseModel`"""
375
396
  if is_union(type_):
@@ -439,7 +460,7 @@ def construct_type(*, value: object, type_: object, metadata: Optional[List[Any]
439
460
  type_ = type_.__value__ # type: ignore[unreachable]
440
461
 
441
462
  # unwrap `Annotated[T, ...]` -> `T`
442
- if metadata is not None:
463
+ if metadata is not None and len(metadata) > 0:
443
464
  meta: tuple[Any, ...] = tuple(metadata)
444
465
  elif is_annotated_type(type_):
445
466
  meta = get_args(type_)[1:]
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "onebusaway"
4
- __version__ = "1.13.5" # x-release-please-version
4
+ __version__ = "1.14.1" # x-release-please-version
@@ -1,5 +1,5 @@
1
1
  import json
2
- from typing import Any, Dict, List, Union, Optional, cast
2
+ from typing import TYPE_CHECKING, Any, Dict, List, Union, Optional, cast
3
3
  from datetime import datetime, timezone
4
4
  from typing_extensions import Literal, Annotated, TypeAliasType
5
5
 
@@ -934,3 +934,30 @@ def test_nested_discriminated_union() -> None:
934
934
  )
935
935
  assert isinstance(model, Type1)
936
936
  assert isinstance(model.value, InnerType2)
937
+
938
+
939
+ @pytest.mark.skipif(not PYDANTIC_V2, reason="this is only supported in pydantic v2 for now")
940
+ def test_extra_properties() -> None:
941
+ class Item(BaseModel):
942
+ prop: int
943
+
944
+ class Model(BaseModel):
945
+ __pydantic_extra__: Dict[str, Item] = Field(init=False) # pyright: ignore[reportIncompatibleVariableOverride]
946
+
947
+ other: str
948
+
949
+ if TYPE_CHECKING:
950
+
951
+ def __getattr__(self, attr: str) -> Item: ...
952
+
953
+ model = construct_type(
954
+ type_=Model,
955
+ value={
956
+ "a": {"prop": 1},
957
+ "other": "foo",
958
+ },
959
+ )
960
+ assert isinstance(model, Model)
961
+ assert model.a.prop == 1
962
+ assert isinstance(model.a, Item)
963
+ assert model.other == "foo"
@@ -1,3 +0,0 @@
1
- {
2
- ".": "1.13.5"
3
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes