Skip to content

Commit 2fc0ce6

Browse files
committed
feat(api): update via SDK Studio
1 parent c9f9a1c commit 2fc0ce6

31 files changed

+874
-281
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ on:
66
pull_request:
77
branches:
88
- main
9+
- next
910

1011
jobs:
1112
lint:

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
configured_endpoints: 11
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/open-transit%2Fopen-transit-c1ea5e90257369e139272db8e69752724a4c2ba2a4fc1a2df99b1f744fedd05f.yml
1+
configured_endpoints: 12
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/open-transit%2Fopen-transit-d7feb31fedeae9f0af2581bf85d95d374eb2eee635e6823975bc4f419bd8e492.yml

api.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,3 +124,15 @@ from onebusaway.types import TripsForLocationRetrieveResponse
124124
Methods:
125125

126126
- <code title="get /api/where/trips-for-location.json">client.trips_for_location.<a href="./src/onebusaway/resources/trips_for_location.py">retrieve</a>(\*\*<a href="src/onebusaway/types/trips_for_location_retrieve_params.py">params</a>) -> <a href="./src/onebusaway/types/trips_for_location_retrieve_response.py">TripsForLocationRetrieveResponse</a></code>
127+
128+
# TripDetails
129+
130+
Types:
131+
132+
```python
133+
from onebusaway.types import TripDetailRetrieveResponse
134+
```
135+
136+
Methods:
137+
138+
- <code title="get /api/where/trip-details/{tripID}.json">client.trip_details.<a href="./src/onebusaway/resources/trip_details.py">retrieve</a>(trip_id, \*\*<a href="src/onebusaway/types/trip_detail_retrieve_params.py">params</a>) -> <a href="./src/onebusaway/types/trip_detail_retrieve_response.py">TripDetailRetrieveResponse</a></code>

requirements-dev.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ markdown-it-py==3.0.0
4949
# via rich
5050
mdurl==0.1.2
5151
# via markdown-it-py
52-
mypy==1.7.1
52+
mypy==1.10.1
5353
mypy-extensions==1.0.0
5454
# via mypy
5555
nodeenv==1.8.0

src/onebusaway/_base_client.py

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -955,6 +955,11 @@ def _request(
955955
stream: bool,
956956
stream_cls: type[_StreamT] | None,
957957
) -> ResponseT | _StreamT:
958+
# create a copy of the options we were given so that if the
959+
# options are mutated later & we then retry, the retries are
960+
# given the original options
961+
input_options = model_copy(options)
962+
958963
cast_to = self._maybe_override_cast_to(cast_to, options)
959964
self._prepare_options(options)
960965

@@ -979,7 +984,7 @@ def _request(
979984

980985
if retries > 0:
981986
return self._retry_request(
982-
options,
987+
input_options,
983988
cast_to,
984989
retries,
985990
stream=stream,
@@ -994,7 +999,7 @@ def _request(
994999

9951000
if retries > 0:
9961001
return self._retry_request(
997-
options,
1002+
input_options,
9981003
cast_to,
9991004
retries,
10001005
stream=stream,
@@ -1022,7 +1027,7 @@ def _request(
10221027
if retries > 0 and self._should_retry(err.response):
10231028
err.response.close()
10241029
return self._retry_request(
1025-
options,
1030+
input_options,
10261031
cast_to,
10271032
retries,
10281033
err.response.headers,
@@ -1518,6 +1523,11 @@ async def _request(
15181523
# execute it earlier while we are in an async context
15191524
self._platform = await asyncify(get_platform)()
15201525

1526+
# create a copy of the options we were given so that if the
1527+
# options are mutated later & we then retry, the retries are
1528+
# given the original options
1529+
input_options = model_copy(options)
1530+
15211531
cast_to = self._maybe_override_cast_to(cast_to, options)
15221532
await self._prepare_options(options)
15231533

@@ -1540,7 +1550,7 @@ async def _request(
15401550

15411551
if retries > 0:
15421552
return await self._retry_request(
1543-
options,
1553+
input_options,
15441554
cast_to,
15451555
retries,
15461556
stream=stream,
@@ -1555,7 +1565,7 @@ async def _request(
15551565

15561566
if retries > 0:
15571567
return await self._retry_request(
1558-
options,
1568+
input_options,
15591569
cast_to,
15601570
retries,
15611571
stream=stream,
@@ -1578,7 +1588,7 @@ async def _request(
15781588
if retries > 0 and self._should_retry(err.response):
15791589
await err.response.aclose()
15801590
return await self._retry_request(
1581-
options,
1591+
input_options,
15821592
cast_to,
15831593
retries,
15841594
err.response.headers,

src/onebusaway/_client.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ class OnebusawaySDK(SyncAPIClient):
5656
arrival_and_departure: resources.ArrivalAndDepartureResource
5757
trip: resources.TripResource
5858
trips_for_location: resources.TripsForLocationResource
59+
trip_details: resources.TripDetailsResource
5960
with_raw_response: OnebusawaySDKWithRawResponse
6061
with_streaming_response: OnebusawaySDKWithStreamedResponse
6162

@@ -123,6 +124,7 @@ def __init__(
123124
self.arrival_and_departure = resources.ArrivalAndDepartureResource(self)
124125
self.trip = resources.TripResource(self)
125126
self.trips_for_location = resources.TripsForLocationResource(self)
127+
self.trip_details = resources.TripDetailsResource(self)
126128
self.with_raw_response = OnebusawaySDKWithRawResponse(self)
127129
self.with_streaming_response = OnebusawaySDKWithStreamedResponse(self)
128130

@@ -132,9 +134,8 @@ def qs(self) -> Querystring:
132134
return Querystring(array_format="repeat")
133135

134136
@property
135-
@override
136-
def auth_headers(self) -> dict[str, str]:
137-
return {}
137+
def auth_headers(self) -> httpx.Auth:
138+
raise NotImplementedError("This auth method has not been implemented yet.")
138139

139140
@property
140141
@override
@@ -250,6 +251,7 @@ class AsyncOnebusawaySDK(AsyncAPIClient):
250251
arrival_and_departure: resources.AsyncArrivalAndDepartureResource
251252
trip: resources.AsyncTripResource
252253
trips_for_location: resources.AsyncTripsForLocationResource
254+
trip_details: resources.AsyncTripDetailsResource
253255
with_raw_response: AsyncOnebusawaySDKWithRawResponse
254256
with_streaming_response: AsyncOnebusawaySDKWithStreamedResponse
255257

@@ -317,6 +319,7 @@ def __init__(
317319
self.arrival_and_departure = resources.AsyncArrivalAndDepartureResource(self)
318320
self.trip = resources.AsyncTripResource(self)
319321
self.trips_for_location = resources.AsyncTripsForLocationResource(self)
322+
self.trip_details = resources.AsyncTripDetailsResource(self)
320323
self.with_raw_response = AsyncOnebusawaySDKWithRawResponse(self)
321324
self.with_streaming_response = AsyncOnebusawaySDKWithStreamedResponse(self)
322325

@@ -326,9 +329,8 @@ def qs(self) -> Querystring:
326329
return Querystring(array_format="repeat")
327330

328331
@property
329-
@override
330-
def auth_headers(self) -> dict[str, str]:
331-
return {}
332+
def auth_headers(self) -> httpx.Auth:
333+
raise NotImplementedError("This auth method has not been implemented yet.")
332334

333335
@property
334336
@override
@@ -447,6 +449,7 @@ def __init__(self, client: OnebusawaySDK) -> None:
447449
self.arrival_and_departure = resources.ArrivalAndDepartureResourceWithRawResponse(client.arrival_and_departure)
448450
self.trip = resources.TripResourceWithRawResponse(client.trip)
449451
self.trips_for_location = resources.TripsForLocationResourceWithRawResponse(client.trips_for_location)
452+
self.trip_details = resources.TripDetailsResourceWithRawResponse(client.trip_details)
450453

451454

452455
class AsyncOnebusawaySDKWithRawResponse:
@@ -465,6 +468,7 @@ def __init__(self, client: AsyncOnebusawaySDK) -> None:
465468
)
466469
self.trip = resources.AsyncTripResourceWithRawResponse(client.trip)
467470
self.trips_for_location = resources.AsyncTripsForLocationResourceWithRawResponse(client.trips_for_location)
471+
self.trip_details = resources.AsyncTripDetailsResourceWithRawResponse(client.trip_details)
468472

469473

470474
class OnebusawaySDKWithStreamedResponse:
@@ -483,6 +487,7 @@ def __init__(self, client: OnebusawaySDK) -> None:
483487
)
484488
self.trip = resources.TripResourceWithStreamingResponse(client.trip)
485489
self.trips_for_location = resources.TripsForLocationResourceWithStreamingResponse(client.trips_for_location)
490+
self.trip_details = resources.TripDetailsResourceWithStreamingResponse(client.trip_details)
486491

487492

488493
class AsyncOnebusawaySDKWithStreamedResponse:
@@ -505,6 +510,7 @@ def __init__(self, client: AsyncOnebusawaySDK) -> None:
505510
self.trips_for_location = resources.AsyncTripsForLocationResourceWithStreamingResponse(
506511
client.trips_for_location
507512
)
513+
self.trip_details = resources.AsyncTripDetailsResourceWithStreamingResponse(client.trip_details)
508514

509515

510516
Client = OnebusawaySDK

src/onebusaway/_models.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -643,6 +643,14 @@ def validate_type(*, type_: type[_T], value: object) -> _T:
643643
return cast(_T, _validate_non_model_type(type_=type_, value=value))
644644

645645

646+
def set_pydantic_config(typ: Any, config: pydantic.ConfigDict) -> None:
647+
"""Add a pydantic config for the given type.
648+
649+
Note: this is a no-op on Pydantic v1.
650+
"""
651+
setattr(typ, "__pydantic_config__", config) # noqa: B010
652+
653+
646654
# our use of subclasssing here causes weirdness for type checkers,
647655
# so we just pretend that we don't subclass
648656
if TYPE_CHECKING:

src/onebusaway/resources/__init__.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,14 @@
4040
CurrentTimeResourceWithStreamingResponse,
4141
AsyncCurrentTimeResourceWithStreamingResponse,
4242
)
43+
from .trip_details import (
44+
TripDetailsResource,
45+
AsyncTripDetailsResource,
46+
TripDetailsResourceWithRawResponse,
47+
AsyncTripDetailsResourceWithRawResponse,
48+
TripDetailsResourceWithStreamingResponse,
49+
AsyncTripDetailsResourceWithStreamingResponse,
50+
)
4351
from .stops_for_route import (
4452
StopsForRouteResource,
4553
AsyncStopsForRouteResource,
@@ -142,4 +150,10 @@
142150
"AsyncTripsForLocationResourceWithRawResponse",
143151
"TripsForLocationResourceWithStreamingResponse",
144152
"AsyncTripsForLocationResourceWithStreamingResponse",
153+
"TripDetailsResource",
154+
"AsyncTripDetailsResource",
155+
"TripDetailsResourceWithRawResponse",
156+
"AsyncTripDetailsResourceWithRawResponse",
157+
"TripDetailsResourceWithStreamingResponse",
158+
"AsyncTripDetailsResourceWithStreamingResponse",
145159
]

src/onebusaway/resources/agencies_with_coverage.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,7 @@
1313
async_to_raw_response_wrapper,
1414
async_to_streamed_response_wrapper,
1515
)
16-
from .._base_client import (
17-
make_request_options,
18-
)
16+
from .._base_client import make_request_options
1917
from ..types.agencies_with_coverage_retrieve_response import AgenciesWithCoverageRetrieveResponse
2018

2119
__all__ = ["AgenciesWithCoverageResource", "AsyncAgenciesWithCoverageResource"]

src/onebusaway/resources/agency.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,7 @@
1313
async_to_raw_response_wrapper,
1414
async_to_streamed_response_wrapper,
1515
)
16-
from .._base_client import (
17-
make_request_options,
18-
)
16+
from .._base_client import make_request_options
1917
from ..types.agency_retrieve_response import AgencyRetrieveResponse
2018

2119
__all__ = ["AgencyResource", "AsyncAgencyResource"]
@@ -56,7 +54,7 @@ def retrieve(
5654
if not agency_id:
5755
raise ValueError(f"Expected a non-empty value for `agency_id` but received {agency_id!r}")
5856
return self._get(
59-
f"/api/where/agency/{agency_id}.json",
57+
f"/api/where/agency/agencyID.json",
6058
options=make_request_options(
6159
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
6260
),
@@ -99,7 +97,7 @@ async def retrieve(
9997
if not agency_id:
10098
raise ValueError(f"Expected a non-empty value for `agency_id` but received {agency_id!r}")
10199
return await self._get(
102-
f"/api/where/agency/{agency_id}.json",
100+
f"/api/where/agency/agencyID.json",
103101
options=make_request_options(
104102
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
105103
),

0 commit comments

Comments
 (0)