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.
- onebusaway-1.14.1/.release-please-manifest.json +3 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/CHANGELOG.md +17 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/PKG-INFO +2 -3
- {onebusaway-1.13.5 → onebusaway-1.14.1}/README.md +1 -2
- {onebusaway-1.13.5 → onebusaway-1.14.1}/pyproject.toml +1 -1
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_models.py +24 -3
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_version.py +1 -1
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_models.py +28 -1
- onebusaway-1.13.5/.release-please-manifest.json +0 -3
- {onebusaway-1.13.5 → onebusaway-1.14.1}/.gitignore +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/CONTRIBUTING.md +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/LICENSE +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/SECURITY.md +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/api.md +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/bin/check-release-environment +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/bin/publish-pypi +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/.env.example +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/.keep +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/README.md +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/agencies_with_coverage.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/arrivals_and_departures_for_stop.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/block.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/config.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/current_time.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/helpers/__init__.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/helpers/load_env.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/routes_for_agency.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/routes_ids_for_agency.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/schedule_for_route.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/schedule_for_stop.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/search_for_route.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/search_for_stop.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/shape.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/stop.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/stop_for_route.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/stop_ids_for_agency.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/stops_for_location.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/trip.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/trip_details.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/examples/vehicles_for_agency.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/mypy.ini +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/noxfile.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/release-please-config.json +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/requirements-dev.lock +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/requirements.lock +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/__init__.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_base_client.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_client.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_compat.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_constants.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_exceptions.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_files.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_qs.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_resource.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_streaming.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_types.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_utils/__init__.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_utils/_logs.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_utils/_proxy.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_utils/_reflection.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_utils/_resources_proxy.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_utils/_streams.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_utils/_sync.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_utils/_transform.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_utils/_typing.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/_utils/_utils.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/lib/.keep +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/py.typed +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/__init__.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/agencies_with_coverage.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/agency.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/arrival_and_departure.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/block.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/config.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/current_time.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/report_problem_with_stop.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/report_problem_with_trip.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/route.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/route_ids_for_agency.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/routes_for_agency.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/routes_for_location.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/schedule_for_route.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/schedule_for_stop.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/search_for_route.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/search_for_stop.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/shape.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/stop.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/stop_ids_for_agency.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/stops_for_agency.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/stops_for_location.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/stops_for_route.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/trip.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/trip_details.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/trip_for_vehicle.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/trips_for_location.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/trips_for_route.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/vehicles_for_agency.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/__init__.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/agencies_with_coverage_list_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/agency_retrieve_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/arrival_and_departure_list_params.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/arrival_and_departure_list_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/arrival_and_departure_retrieve_params.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/arrival_and_departure_retrieve_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/block_retrieve_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/config_retrieve_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/current_time_retrieve_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/report_problem_with_stop_retrieve_params.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/report_problem_with_trip_retrieve_params.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/route_ids_for_agency_list_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/route_retrieve_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/routes_for_agency_list_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/routes_for_location_list_params.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/routes_for_location_list_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/schedule_for_route_retrieve_params.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/schedule_for_route_retrieve_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/schedule_for_stop_retrieve_params.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/schedule_for_stop_retrieve_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_route_list_params.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_route_list_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_route_retrieve_params.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_route_retrieve_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_stop_list_params.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_stop_list_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_stop_retrieve_params.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_stop_retrieve_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/shape_retrieve_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/shared/__init__.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/shared/references.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/shared/response_wrapper.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/stop_ids_for_agency_list_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/stop_retrieve_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/stops_for_agency_list_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/stops_for_location_list_params.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/stops_for_location_list_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/stops_for_route_list_params.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/stops_for_route_list_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trip_detail_retrieve_params.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trip_detail_retrieve_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trip_for_vehicle_retrieve_params.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trip_for_vehicle_retrieve_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trip_retrieve_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trips_for_location_list_params.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trips_for_location_list_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trips_for_route_list_params.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trips_for_route_list_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/vehicles_for_agency_list_params.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/vehicles_for_agency_list_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/src/open_transit/lib/.keep +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/__init__.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/__init__.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_agencies_with_coverage.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_agency.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_arrival_and_departure.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_block.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_config.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_current_time.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_report_problem_with_stop.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_report_problem_with_trip.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_route.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_route_ids_for_agency.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_routes_for_agency.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_routes_for_location.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_schedule_for_route.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_schedule_for_stop.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_search_for_route.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_search_for_stop.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_shape.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_stop.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_stop_ids_for_agency.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_stops_for_agency.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_stops_for_location.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_stops_for_route.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_trip.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_trip_details.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_trip_for_vehicle.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_trips_for_location.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_trips_for_route.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_vehicles_for_agency.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/conftest.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/sample_file.txt +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_client.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_deepcopy.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_extract_files.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_files.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_qs.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_required_args.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_response.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_streaming.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_transform.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_utils/test_proxy.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/test_utils/test_typing.py +0 -0
- {onebusaway-1.13.5 → onebusaway-1.14.1}/tests/utils.py +0 -0
@@ -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.
|
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=
|
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=
|
89
|
+
api_key="My API Key",
|
91
90
|
http_client=DefaultAioHttpClient(),
|
92
91
|
) as client:
|
93
92
|
current_time = await client.current_time.retrieve()
|
@@ -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] =
|
219
|
+
_extra[key] = parsed
|
216
220
|
else:
|
217
221
|
_fields_set.add(key)
|
218
|
-
fields_values[key] =
|
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,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"
|
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
|
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
|
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
|
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
|
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
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/report_problem_with_stop.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/resources/report_problem_with_trip.py
RENAMED
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
|
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
|
File without changes
|
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/agencies_with_coverage_list_response.py
RENAMED
File without changes
|
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/arrival_and_departure_list_params.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/arrival_and_departure_list_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/current_time_retrieve_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/route_ids_for_agency_list_response.py
RENAMED
File without changes
|
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/routes_for_agency_list_response.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/routes_for_location_list_params.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/routes_for_location_list_response.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/schedule_for_route_retrieve_params.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/schedule_for_route_retrieve_response.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/schedule_for_stop_retrieve_params.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/schedule_for_stop_retrieve_response.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_route_list_params.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_route_list_response.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_route_retrieve_params.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_route_retrieve_response.py
RENAMED
File without changes
|
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_stop_list_response.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_stop_retrieve_params.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/search_for_stop_retrieve_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/stop_ids_for_agency_list_response.py
RENAMED
File without changes
|
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/stops_for_agency_list_response.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/stops_for_location_list_params.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/stops_for_location_list_response.py
RENAMED
File without changes
|
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/stops_for_route_list_response.py
RENAMED
File without changes
|
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trip_detail_retrieve_response.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trip_for_vehicle_retrieve_params.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trip_for_vehicle_retrieve_response.py
RENAMED
File without changes
|
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trips_for_location_list_params.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trips_for_location_list_response.py
RENAMED
File without changes
|
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/trips_for_route_list_response.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/vehicles_for_agency_list_params.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/src/onebusaway/types/vehicles_for_agency_list_response.py
RENAMED
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
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_report_problem_with_stop.py
RENAMED
File without changes
|
{onebusaway-1.13.5 → onebusaway-1.14.1}/tests/api_resources/test_report_problem_with_trip.py
RENAMED
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
|
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
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|