onebusaway 1.13.3__tar.gz → 1.13.4__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.13.4/.release-please-manifest.json +3 -0
  2. {onebusaway-1.13.3 → onebusaway-1.13.4}/CHANGELOG.md +8 -0
  3. {onebusaway-1.13.3 → onebusaway-1.13.4}/PKG-INFO +1 -1
  4. {onebusaway-1.13.3 → onebusaway-1.13.4}/pyproject.toml +1 -1
  5. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_models.py +8 -5
  6. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_version.py +1 -1
  7. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/test_models.py +45 -0
  8. onebusaway-1.13.3/.release-please-manifest.json +0 -3
  9. {onebusaway-1.13.3 → onebusaway-1.13.4}/.gitignore +0 -0
  10. {onebusaway-1.13.3 → onebusaway-1.13.4}/CONTRIBUTING.md +0 -0
  11. {onebusaway-1.13.3 → onebusaway-1.13.4}/LICENSE +0 -0
  12. {onebusaway-1.13.3 → onebusaway-1.13.4}/README.md +0 -0
  13. {onebusaway-1.13.3 → onebusaway-1.13.4}/SECURITY.md +0 -0
  14. {onebusaway-1.13.3 → onebusaway-1.13.4}/api.md +0 -0
  15. {onebusaway-1.13.3 → onebusaway-1.13.4}/bin/check-release-environment +0 -0
  16. {onebusaway-1.13.3 → onebusaway-1.13.4}/bin/publish-pypi +0 -0
  17. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/.env.example +0 -0
  18. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/.keep +0 -0
  19. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/README.md +0 -0
  20. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/agencies_with_coverage.py +0 -0
  21. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/arrivals_and_departures_for_stop.py +0 -0
  22. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/block.py +0 -0
  23. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/config.py +0 -0
  24. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/current_time.py +0 -0
  25. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/helpers/__init__.py +0 -0
  26. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/helpers/load_env.py +0 -0
  27. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/routes_for_agency.py +0 -0
  28. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/routes_ids_for_agency.py +0 -0
  29. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/schedule_for_route.py +0 -0
  30. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/schedule_for_stop.py +0 -0
  31. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/search_for_route.py +0 -0
  32. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/search_for_stop.py +0 -0
  33. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/shape.py +0 -0
  34. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/stop.py +0 -0
  35. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/stop_for_route.py +0 -0
  36. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/stop_ids_for_agency.py +0 -0
  37. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/stops_for_location.py +0 -0
  38. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/trip.py +0 -0
  39. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/trip_details.py +0 -0
  40. {onebusaway-1.13.3 → onebusaway-1.13.4}/examples/vehicles_for_agency.py +0 -0
  41. {onebusaway-1.13.3 → onebusaway-1.13.4}/mypy.ini +0 -0
  42. {onebusaway-1.13.3 → onebusaway-1.13.4}/noxfile.py +0 -0
  43. {onebusaway-1.13.3 → onebusaway-1.13.4}/release-please-config.json +0 -0
  44. {onebusaway-1.13.3 → onebusaway-1.13.4}/requirements-dev.lock +0 -0
  45. {onebusaway-1.13.3 → onebusaway-1.13.4}/requirements.lock +0 -0
  46. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/__init__.py +0 -0
  47. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_base_client.py +0 -0
  48. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_client.py +0 -0
  49. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_compat.py +0 -0
  50. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_constants.py +0 -0
  51. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_exceptions.py +0 -0
  52. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_files.py +0 -0
  53. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_qs.py +0 -0
  54. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_resource.py +0 -0
  55. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_response.py +0 -0
  56. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_streaming.py +0 -0
  57. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_types.py +0 -0
  58. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_utils/__init__.py +0 -0
  59. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_utils/_logs.py +0 -0
  60. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_utils/_proxy.py +0 -0
  61. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_utils/_reflection.py +0 -0
  62. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_utils/_resources_proxy.py +0 -0
  63. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_utils/_streams.py +0 -0
  64. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_utils/_sync.py +0 -0
  65. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_utils/_transform.py +0 -0
  66. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_utils/_typing.py +0 -0
  67. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/_utils/_utils.py +0 -0
  68. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/lib/.keep +0 -0
  69. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/py.typed +0 -0
  70. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/__init__.py +0 -0
  71. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/agencies_with_coverage.py +0 -0
  72. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/agency.py +0 -0
  73. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/arrival_and_departure.py +0 -0
  74. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/block.py +0 -0
  75. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/config.py +0 -0
  76. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/current_time.py +0 -0
  77. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/report_problem_with_stop.py +0 -0
  78. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/report_problem_with_trip.py +0 -0
  79. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/route.py +0 -0
  80. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/route_ids_for_agency.py +0 -0
  81. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/routes_for_agency.py +0 -0
  82. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/routes_for_location.py +0 -0
  83. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/schedule_for_route.py +0 -0
  84. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/schedule_for_stop.py +0 -0
  85. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/search_for_route.py +0 -0
  86. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/search_for_stop.py +0 -0
  87. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/shape.py +0 -0
  88. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/stop.py +0 -0
  89. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/stop_ids_for_agency.py +0 -0
  90. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/stops_for_agency.py +0 -0
  91. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/stops_for_location.py +0 -0
  92. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/stops_for_route.py +0 -0
  93. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/trip.py +0 -0
  94. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/trip_details.py +0 -0
  95. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/trip_for_vehicle.py +0 -0
  96. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/trips_for_location.py +0 -0
  97. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/trips_for_route.py +0 -0
  98. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/resources/vehicles_for_agency.py +0 -0
  99. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/__init__.py +0 -0
  100. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/agencies_with_coverage_list_response.py +0 -0
  101. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/agency_retrieve_response.py +0 -0
  102. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/arrival_and_departure_list_params.py +0 -0
  103. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/arrival_and_departure_list_response.py +0 -0
  104. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/arrival_and_departure_retrieve_params.py +0 -0
  105. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/arrival_and_departure_retrieve_response.py +0 -0
  106. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/block_retrieve_response.py +0 -0
  107. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/config_retrieve_response.py +0 -0
  108. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/current_time_retrieve_response.py +0 -0
  109. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/report_problem_with_stop_retrieve_params.py +0 -0
  110. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/report_problem_with_trip_retrieve_params.py +0 -0
  111. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/route_ids_for_agency_list_response.py +0 -0
  112. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/route_retrieve_response.py +0 -0
  113. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/routes_for_agency_list_response.py +0 -0
  114. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/routes_for_location_list_params.py +0 -0
  115. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/routes_for_location_list_response.py +0 -0
  116. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/schedule_for_route_retrieve_params.py +0 -0
  117. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/schedule_for_route_retrieve_response.py +0 -0
  118. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/schedule_for_stop_retrieve_params.py +0 -0
  119. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/schedule_for_stop_retrieve_response.py +0 -0
  120. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/search_for_route_list_params.py +0 -0
  121. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/search_for_route_list_response.py +0 -0
  122. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/search_for_route_retrieve_params.py +0 -0
  123. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/search_for_route_retrieve_response.py +0 -0
  124. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/search_for_stop_list_params.py +0 -0
  125. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/search_for_stop_list_response.py +0 -0
  126. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/search_for_stop_retrieve_params.py +0 -0
  127. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/search_for_stop_retrieve_response.py +0 -0
  128. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/shape_retrieve_response.py +0 -0
  129. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/shared/__init__.py +0 -0
  130. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/shared/references.py +0 -0
  131. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/shared/response_wrapper.py +0 -0
  132. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/stop_ids_for_agency_list_response.py +0 -0
  133. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/stop_retrieve_response.py +0 -0
  134. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/stops_for_agency_list_response.py +0 -0
  135. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/stops_for_location_list_params.py +0 -0
  136. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/stops_for_location_list_response.py +0 -0
  137. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/stops_for_route_list_params.py +0 -0
  138. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/stops_for_route_list_response.py +0 -0
  139. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/trip_detail_retrieve_params.py +0 -0
  140. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/trip_detail_retrieve_response.py +0 -0
  141. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/trip_for_vehicle_retrieve_params.py +0 -0
  142. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/trip_for_vehicle_retrieve_response.py +0 -0
  143. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/trip_retrieve_response.py +0 -0
  144. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/trips_for_location_list_params.py +0 -0
  145. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/trips_for_location_list_response.py +0 -0
  146. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/trips_for_route_list_params.py +0 -0
  147. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/trips_for_route_list_response.py +0 -0
  148. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/vehicles_for_agency_list_params.py +0 -0
  149. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/onebusaway/types/vehicles_for_agency_list_response.py +0 -0
  150. {onebusaway-1.13.3 → onebusaway-1.13.4}/src/open_transit/lib/.keep +0 -0
  151. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/__init__.py +0 -0
  152. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/__init__.py +0 -0
  153. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_agencies_with_coverage.py +0 -0
  154. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_agency.py +0 -0
  155. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_arrival_and_departure.py +0 -0
  156. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_block.py +0 -0
  157. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_config.py +0 -0
  158. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_current_time.py +0 -0
  159. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_report_problem_with_stop.py +0 -0
  160. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_report_problem_with_trip.py +0 -0
  161. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_route.py +0 -0
  162. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_route_ids_for_agency.py +0 -0
  163. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_routes_for_agency.py +0 -0
  164. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_routes_for_location.py +0 -0
  165. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_schedule_for_route.py +0 -0
  166. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_schedule_for_stop.py +0 -0
  167. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_search_for_route.py +0 -0
  168. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_search_for_stop.py +0 -0
  169. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_shape.py +0 -0
  170. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_stop.py +0 -0
  171. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_stop_ids_for_agency.py +0 -0
  172. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_stops_for_agency.py +0 -0
  173. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_stops_for_location.py +0 -0
  174. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_stops_for_route.py +0 -0
  175. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_trip.py +0 -0
  176. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_trip_details.py +0 -0
  177. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_trip_for_vehicle.py +0 -0
  178. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_trips_for_location.py +0 -0
  179. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_trips_for_route.py +0 -0
  180. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/api_resources/test_vehicles_for_agency.py +0 -0
  181. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/conftest.py +0 -0
  182. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/sample_file.txt +0 -0
  183. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/test_client.py +0 -0
  184. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/test_deepcopy.py +0 -0
  185. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/test_extract_files.py +0 -0
  186. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/test_files.py +0 -0
  187. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/test_qs.py +0 -0
  188. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/test_required_args.py +0 -0
  189. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/test_response.py +0 -0
  190. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/test_streaming.py +0 -0
  191. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/test_transform.py +0 -0
  192. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/test_utils/test_proxy.py +0 -0
  193. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/test_utils/test_typing.py +0 -0
  194. {onebusaway-1.13.3 → onebusaway-1.13.4}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "1.13.4"
3
+ }
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.13.4 (2025-07-10)
4
+
5
+ Full Changelog: [v1.13.3...v1.13.4](https://github.com/OneBusAway/python-sdk/compare/v1.13.3...v1.13.4)
6
+
7
+ ### Bug Fixes
8
+
9
+ * **parsing:** correctly handle nested discriminated unions ([d1bb078](https://github.com/OneBusAway/python-sdk/commit/d1bb078b61f81f9f5192505e08cea3dc7df136f4))
10
+
3
11
  ## 1.13.3 (2025-07-09)
4
12
 
5
13
  Full Changelog: [v1.13.2...v1.13.3](https://github.com/OneBusAway/python-sdk/compare/v1.13.2...v1.13.3)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: onebusaway
3
- Version: 1.13.3
3
+ Version: 1.13.4
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.13.3"
3
+ version = "1.13.4"
4
4
  description = "The official Python library for the onebusaway-sdk API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -2,9 +2,10 @@ from __future__ import annotations
2
2
 
3
3
  import os
4
4
  import inspect
5
- from typing import TYPE_CHECKING, Any, Type, Union, Generic, TypeVar, Callable, cast
5
+ from typing import TYPE_CHECKING, Any, Type, Union, Generic, TypeVar, Callable, Optional, cast
6
6
  from datetime import date, datetime
7
7
  from typing_extensions import (
8
+ List,
8
9
  Unpack,
9
10
  Literal,
10
11
  ClassVar,
@@ -366,7 +367,7 @@ def _construct_field(value: object, field: FieldInfo, key: str) -> object:
366
367
  if type_ is None:
367
368
  raise RuntimeError(f"Unexpected field type is None for {key}")
368
369
 
369
- return construct_type(value=value, type_=type_)
370
+ return construct_type(value=value, type_=type_, metadata=getattr(field, "metadata", None))
370
371
 
371
372
 
372
373
  def is_basemodel(type_: type) -> bool:
@@ -420,7 +421,7 @@ def construct_type_unchecked(*, value: object, type_: type[_T]) -> _T:
420
421
  return cast(_T, construct_type(value=value, type_=type_))
421
422
 
422
423
 
423
- def construct_type(*, value: object, type_: object) -> object:
424
+ def construct_type(*, value: object, type_: object, metadata: Optional[List[Any]] = None) -> object:
424
425
  """Loose coercion to the expected type with construction of nested values.
425
426
 
426
427
  If the given value does not match the expected type then it is returned as-is.
@@ -438,8 +439,10 @@ def construct_type(*, value: object, type_: object) -> object:
438
439
  type_ = type_.__value__ # type: ignore[unreachable]
439
440
 
440
441
  # unwrap `Annotated[T, ...]` -> `T`
441
- if is_annotated_type(type_):
442
- meta: tuple[Any, ...] = get_args(type_)[1:]
442
+ if metadata is not None:
443
+ meta: tuple[Any, ...] = tuple(metadata)
444
+ elif is_annotated_type(type_):
445
+ meta = get_args(type_)[1:]
443
446
  type_ = extract_type_arg(type_, 0)
444
447
  else:
445
448
  meta = tuple()
@@ -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.3" # x-release-please-version
4
+ __version__ = "1.13.4" # x-release-please-version
@@ -889,3 +889,48 @@ def test_discriminated_union_case() -> None:
889
889
  )
890
890
 
891
891
  assert isinstance(m, ModelB)
892
+
893
+
894
+ def test_nested_discriminated_union() -> None:
895
+ class InnerType1(BaseModel):
896
+ type: Literal["type_1"]
897
+
898
+ class InnerModel(BaseModel):
899
+ inner_value: str
900
+
901
+ class InnerType2(BaseModel):
902
+ type: Literal["type_2"]
903
+ some_inner_model: InnerModel
904
+
905
+ class Type1(BaseModel):
906
+ base_type: Literal["base_type_1"]
907
+ value: Annotated[
908
+ Union[
909
+ InnerType1,
910
+ InnerType2,
911
+ ],
912
+ PropertyInfo(discriminator="type"),
913
+ ]
914
+
915
+ class Type2(BaseModel):
916
+ base_type: Literal["base_type_2"]
917
+
918
+ T = Annotated[
919
+ Union[
920
+ Type1,
921
+ Type2,
922
+ ],
923
+ PropertyInfo(discriminator="base_type"),
924
+ ]
925
+
926
+ model = construct_type(
927
+ type_=T,
928
+ value={
929
+ "base_type": "base_type_1",
930
+ "value": {
931
+ "type": "type_2",
932
+ },
933
+ },
934
+ )
935
+ assert isinstance(model, Type1)
936
+ assert isinstance(model.value, InnerType2)
@@ -1,3 +0,0 @@
1
- {
2
- ".": "1.13.3"
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
File without changes