onebusaway 1.14.0__tar.gz → 1.14.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 (194) hide show
  1. {onebusaway-1.14.0 → onebusaway-1.14.2}/.gitignore +0 -1
  2. onebusaway-1.14.2/.release-please-manifest.json +3 -0
  3. {onebusaway-1.14.0 → onebusaway-1.14.2}/CHANGELOG.md +17 -0
  4. {onebusaway-1.14.0 → onebusaway-1.14.2}/PKG-INFO +1 -1
  5. {onebusaway-1.14.0 → onebusaway-1.14.2}/pyproject.toml +1 -1
  6. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_models.py +24 -3
  7. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_version.py +1 -1
  8. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/test_models.py +28 -1
  9. onebusaway-1.14.0/.release-please-manifest.json +0 -3
  10. {onebusaway-1.14.0 → onebusaway-1.14.2}/CONTRIBUTING.md +0 -0
  11. {onebusaway-1.14.0 → onebusaway-1.14.2}/LICENSE +0 -0
  12. {onebusaway-1.14.0 → onebusaway-1.14.2}/README.md +0 -0
  13. {onebusaway-1.14.0 → onebusaway-1.14.2}/SECURITY.md +0 -0
  14. {onebusaway-1.14.0 → onebusaway-1.14.2}/api.md +0 -0
  15. {onebusaway-1.14.0 → onebusaway-1.14.2}/bin/check-release-environment +0 -0
  16. {onebusaway-1.14.0 → onebusaway-1.14.2}/bin/publish-pypi +0 -0
  17. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/.env.example +0 -0
  18. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/.keep +0 -0
  19. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/README.md +0 -0
  20. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/agencies_with_coverage.py +0 -0
  21. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/arrivals_and_departures_for_stop.py +0 -0
  22. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/block.py +0 -0
  23. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/config.py +0 -0
  24. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/current_time.py +0 -0
  25. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/helpers/__init__.py +0 -0
  26. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/helpers/load_env.py +0 -0
  27. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/routes_for_agency.py +0 -0
  28. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/routes_ids_for_agency.py +0 -0
  29. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/schedule_for_route.py +0 -0
  30. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/schedule_for_stop.py +0 -0
  31. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/search_for_route.py +0 -0
  32. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/search_for_stop.py +0 -0
  33. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/shape.py +0 -0
  34. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/stop.py +0 -0
  35. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/stop_for_route.py +0 -0
  36. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/stop_ids_for_agency.py +0 -0
  37. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/stops_for_location.py +0 -0
  38. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/trip.py +0 -0
  39. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/trip_details.py +0 -0
  40. {onebusaway-1.14.0 → onebusaway-1.14.2}/examples/vehicles_for_agency.py +0 -0
  41. {onebusaway-1.14.0 → onebusaway-1.14.2}/mypy.ini +0 -0
  42. {onebusaway-1.14.0 → onebusaway-1.14.2}/noxfile.py +0 -0
  43. {onebusaway-1.14.0 → onebusaway-1.14.2}/release-please-config.json +0 -0
  44. {onebusaway-1.14.0 → onebusaway-1.14.2}/requirements-dev.lock +0 -0
  45. {onebusaway-1.14.0 → onebusaway-1.14.2}/requirements.lock +0 -0
  46. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/__init__.py +0 -0
  47. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_base_client.py +0 -0
  48. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_client.py +0 -0
  49. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_compat.py +0 -0
  50. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_constants.py +0 -0
  51. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_exceptions.py +0 -0
  52. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_files.py +0 -0
  53. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_qs.py +0 -0
  54. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_resource.py +0 -0
  55. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_response.py +0 -0
  56. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_streaming.py +0 -0
  57. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_types.py +0 -0
  58. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_utils/__init__.py +0 -0
  59. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_utils/_logs.py +0 -0
  60. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_utils/_proxy.py +0 -0
  61. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_utils/_reflection.py +0 -0
  62. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_utils/_resources_proxy.py +0 -0
  63. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_utils/_streams.py +0 -0
  64. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_utils/_sync.py +0 -0
  65. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_utils/_transform.py +0 -0
  66. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_utils/_typing.py +0 -0
  67. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/_utils/_utils.py +0 -0
  68. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/lib/.keep +0 -0
  69. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/py.typed +0 -0
  70. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/__init__.py +0 -0
  71. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/agencies_with_coverage.py +0 -0
  72. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/agency.py +0 -0
  73. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/arrival_and_departure.py +0 -0
  74. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/block.py +0 -0
  75. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/config.py +0 -0
  76. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/current_time.py +0 -0
  77. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/report_problem_with_stop.py +0 -0
  78. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/report_problem_with_trip.py +0 -0
  79. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/route.py +0 -0
  80. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/route_ids_for_agency.py +0 -0
  81. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/routes_for_agency.py +0 -0
  82. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/routes_for_location.py +0 -0
  83. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/schedule_for_route.py +0 -0
  84. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/schedule_for_stop.py +0 -0
  85. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/search_for_route.py +0 -0
  86. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/search_for_stop.py +0 -0
  87. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/shape.py +0 -0
  88. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/stop.py +0 -0
  89. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/stop_ids_for_agency.py +0 -0
  90. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/stops_for_agency.py +0 -0
  91. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/stops_for_location.py +0 -0
  92. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/stops_for_route.py +0 -0
  93. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/trip.py +0 -0
  94. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/trip_details.py +0 -0
  95. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/trip_for_vehicle.py +0 -0
  96. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/trips_for_location.py +0 -0
  97. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/trips_for_route.py +0 -0
  98. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/resources/vehicles_for_agency.py +0 -0
  99. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/__init__.py +0 -0
  100. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/agencies_with_coverage_list_response.py +0 -0
  101. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/agency_retrieve_response.py +0 -0
  102. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/arrival_and_departure_list_params.py +0 -0
  103. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/arrival_and_departure_list_response.py +0 -0
  104. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/arrival_and_departure_retrieve_params.py +0 -0
  105. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/arrival_and_departure_retrieve_response.py +0 -0
  106. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/block_retrieve_response.py +0 -0
  107. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/config_retrieve_response.py +0 -0
  108. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/current_time_retrieve_response.py +0 -0
  109. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/report_problem_with_stop_retrieve_params.py +0 -0
  110. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/report_problem_with_trip_retrieve_params.py +0 -0
  111. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/route_ids_for_agency_list_response.py +0 -0
  112. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/route_retrieve_response.py +0 -0
  113. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/routes_for_agency_list_response.py +0 -0
  114. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/routes_for_location_list_params.py +0 -0
  115. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/routes_for_location_list_response.py +0 -0
  116. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/schedule_for_route_retrieve_params.py +0 -0
  117. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/schedule_for_route_retrieve_response.py +0 -0
  118. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/schedule_for_stop_retrieve_params.py +0 -0
  119. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/schedule_for_stop_retrieve_response.py +0 -0
  120. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/search_for_route_list_params.py +0 -0
  121. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/search_for_route_list_response.py +0 -0
  122. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/search_for_route_retrieve_params.py +0 -0
  123. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/search_for_route_retrieve_response.py +0 -0
  124. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/search_for_stop_list_params.py +0 -0
  125. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/search_for_stop_list_response.py +0 -0
  126. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/search_for_stop_retrieve_params.py +0 -0
  127. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/search_for_stop_retrieve_response.py +0 -0
  128. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/shape_retrieve_response.py +0 -0
  129. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/shared/__init__.py +0 -0
  130. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/shared/references.py +0 -0
  131. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/shared/response_wrapper.py +0 -0
  132. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/stop_ids_for_agency_list_response.py +0 -0
  133. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/stop_retrieve_response.py +0 -0
  134. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/stops_for_agency_list_response.py +0 -0
  135. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/stops_for_location_list_params.py +0 -0
  136. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/stops_for_location_list_response.py +0 -0
  137. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/stops_for_route_list_params.py +0 -0
  138. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/stops_for_route_list_response.py +0 -0
  139. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/trip_detail_retrieve_params.py +0 -0
  140. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/trip_detail_retrieve_response.py +0 -0
  141. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/trip_for_vehicle_retrieve_params.py +0 -0
  142. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/trip_for_vehicle_retrieve_response.py +0 -0
  143. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/trip_retrieve_response.py +0 -0
  144. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/trips_for_location_list_params.py +0 -0
  145. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/trips_for_location_list_response.py +0 -0
  146. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/trips_for_route_list_params.py +0 -0
  147. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/trips_for_route_list_response.py +0 -0
  148. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/vehicles_for_agency_list_params.py +0 -0
  149. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/onebusaway/types/vehicles_for_agency_list_response.py +0 -0
  150. {onebusaway-1.14.0 → onebusaway-1.14.2}/src/open_transit/lib/.keep +0 -0
  151. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/__init__.py +0 -0
  152. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/__init__.py +0 -0
  153. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_agencies_with_coverage.py +0 -0
  154. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_agency.py +0 -0
  155. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_arrival_and_departure.py +0 -0
  156. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_block.py +0 -0
  157. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_config.py +0 -0
  158. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_current_time.py +0 -0
  159. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_report_problem_with_stop.py +0 -0
  160. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_report_problem_with_trip.py +0 -0
  161. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_route.py +0 -0
  162. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_route_ids_for_agency.py +0 -0
  163. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_routes_for_agency.py +0 -0
  164. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_routes_for_location.py +0 -0
  165. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_schedule_for_route.py +0 -0
  166. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_schedule_for_stop.py +0 -0
  167. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_search_for_route.py +0 -0
  168. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_search_for_stop.py +0 -0
  169. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_shape.py +0 -0
  170. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_stop.py +0 -0
  171. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_stop_ids_for_agency.py +0 -0
  172. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_stops_for_agency.py +0 -0
  173. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_stops_for_location.py +0 -0
  174. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_stops_for_route.py +0 -0
  175. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_trip.py +0 -0
  176. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_trip_details.py +0 -0
  177. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_trip_for_vehicle.py +0 -0
  178. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_trips_for_location.py +0 -0
  179. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_trips_for_route.py +0 -0
  180. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/api_resources/test_vehicles_for_agency.py +0 -0
  181. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/conftest.py +0 -0
  182. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/sample_file.txt +0 -0
  183. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/test_client.py +0 -0
  184. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/test_deepcopy.py +0 -0
  185. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/test_extract_files.py +0 -0
  186. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/test_files.py +0 -0
  187. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/test_qs.py +0 -0
  188. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/test_required_args.py +0 -0
  189. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/test_response.py +0 -0
  190. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/test_streaming.py +0 -0
  191. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/test_transform.py +0 -0
  192. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/test_utils/test_proxy.py +0 -0
  193. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/test_utils/test_typing.py +0 -0
  194. {onebusaway-1.14.0 → onebusaway-1.14.2}/tests/utils.py +0 -0
@@ -1,5 +1,4 @@
1
1
  .prism.log
2
- .vscode
3
2
  _dev
4
3
 
5
4
  __pycache__
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "1.14.2"
3
+ }
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.14.2 (2025-07-25)
4
+
5
+ Full Changelog: [v1.14.1...v1.14.2](https://github.com/OneBusAway/python-sdk/compare/v1.14.1...v1.14.2)
6
+
7
+ ### Chores
8
+
9
+ * **project:** add settings file for vscode ([995b6d4](https://github.com/OneBusAway/python-sdk/commit/995b6d4a9aea939ac187f802cf330a0db134997d))
10
+
11
+ ## 1.14.1 (2025-07-23)
12
+
13
+ Full Changelog: [v1.14.0...v1.14.1](https://github.com/OneBusAway/python-sdk/compare/v1.14.0...v1.14.1)
14
+
15
+ ### Bug Fixes
16
+
17
+ * **parsing:** ignore empty metadata ([eef0db2](https://github.com/OneBusAway/python-sdk/commit/eef0db25134ae51703d4560860a984ddc603e114))
18
+ * **parsing:** parse extra field types ([e477fc8](https://github.com/OneBusAway/python-sdk/commit/e477fc84dbc063d64fc6983e243f0a41a6dfd07c))
19
+
3
20
  ## 1.14.0 (2025-07-15)
4
21
 
5
22
  Full Changelog: [v1.13.5...v1.14.0](https://github.com/OneBusAway/python-sdk/compare/v1.13.5...v1.14.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: onebusaway
3
- Version: 1.14.0
3
+ Version: 1.14.2
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "onebusaway"
3
- version = "1.14.0"
3
+ version = "1.14.2"
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.14.0" # x-release-please-version
4
+ __version__ = "1.14.2" # 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.14.0"
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