Skip to content

Commit 0ffae08

Browse files
feat(api): manual updates
1 parent bb8e9df commit 0ffae08

File tree

5 files changed

+109
-306
lines changed

5 files changed

+109
-306
lines changed

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 170
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/digitalocean%2Fgradient-9aca3802735e1375125412aa28ac36bf2175144b8218610a73d2e7f775694dff.yml
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/digitalocean%2Fgradient-9ecd7b6ec2c5f4b9dddde78a975eba587128529bcd7cea1fc82e041ad9450420.yml
33
openapi_spec_hash: e29d14e3e4679fcf22b3e760e49931b1
4-
config_hash: 99e3cd5dde0beb796f4547410869f726
4+
config_hash: 868a2e440ec27146f18b1327daa1cd63

src/gradient/_client.py

Lines changed: 19 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ def __init__(
113113
- `access_token` from `DIGITALOCEAN_ACCESS_TOKEN`
114114
- `model_access_key` from `GRADIENT_MODEL_ACCESS_KEY`
115115
- `agent_access_key` from `GRADIENT_AGENT_ACCESS_KEY`
116+
- `agent_endpoint` from `GRADIENT_AGENT_ENDPOINT`
116117
"""
117118
if access_token is None:
118119
if api_key is not None:
@@ -267,9 +268,7 @@ def default_headers(self) -> dict[str, str | Omit]:
267268

268269
@override
269270
def _validate_headers(self, headers: Headers, custom_headers: Headers) -> None:
270-
if (
271-
self.access_token or self.agent_access_key or self.model_access_key
272-
) and headers.get("Authorization"):
271+
if (self.access_token or self.agent_access_key or self.model_access_key) and headers.get("Authorization"):
273272
return
274273
if isinstance(custom_headers.get("Authorization"), Omit):
275274
return
@@ -303,14 +302,10 @@ def copy(
303302
Create a new client instance re-using the same options given to the current client with optional overriding.
304303
"""
305304
if default_headers is not None and set_default_headers is not None:
306-
raise ValueError(
307-
"The `default_headers` and `set_default_headers` arguments are mutually exclusive"
308-
)
305+
raise ValueError("The `default_headers` and `set_default_headers` arguments are mutually exclusive")
309306

310307
if default_query is not None and set_default_query is not None:
311-
raise ValueError(
312-
"The `default_query` and `set_default_query` arguments are mutually exclusive"
313-
)
308+
raise ValueError("The `default_query` and `set_default_query` arguments are mutually exclusive")
314309

315310
headers = self._custom_headers
316311
if default_headers is not None:
@@ -358,14 +353,10 @@ def _make_status_error(
358353
return _exceptions.BadRequestError(err_msg, response=response, body=body)
359354

360355
if response.status_code == 401:
361-
return _exceptions.AuthenticationError(
362-
err_msg, response=response, body=body
363-
)
356+
return _exceptions.AuthenticationError(err_msg, response=response, body=body)
364357

365358
if response.status_code == 403:
366-
return _exceptions.PermissionDeniedError(
367-
err_msg, response=response, body=body
368-
)
359+
return _exceptions.PermissionDeniedError(err_msg, response=response, body=body)
369360

370361
if response.status_code == 404:
371362
return _exceptions.NotFoundError(err_msg, response=response, body=body)
@@ -374,17 +365,13 @@ def _make_status_error(
374365
return _exceptions.ConflictError(err_msg, response=response, body=body)
375366

376367
if response.status_code == 422:
377-
return _exceptions.UnprocessableEntityError(
378-
err_msg, response=response, body=body
379-
)
368+
return _exceptions.UnprocessableEntityError(err_msg, response=response, body=body)
380369

381370
if response.status_code == 429:
382371
return _exceptions.RateLimitError(err_msg, response=response, body=body)
383372

384373
if response.status_code >= 500:
385-
return _exceptions.InternalServerError(
386-
err_msg, response=response, body=body
387-
)
374+
return _exceptions.InternalServerError(err_msg, response=response, body=body)
388375
return APIStatusError(err_msg, response=response, body=body)
389376

390377

@@ -432,6 +419,7 @@ def __init__(
432419
- `access_token` from `DIGITALOCEAN_ACCESS_TOKEN`
433420
- `model_access_key` from `GRADIENT_MODEL_ACCESS_KEY`
434421
- `agent_access_key` from `GRADIENT_AGENT_ACCESS_KEY`
422+
- `agent_endpoint` from `GRADIENT_AGENT_ENDPOINT`
435423
"""
436424
if access_token is None:
437425
if api_key is not None:
@@ -463,6 +451,8 @@ def __init__(
463451
agent_access_key = os.environ.get("GRADIENT_AGENT_KEY")
464452
self.agent_access_key = agent_access_key
465453

454+
if agent_endpoint is None:
455+
agent_endpoint = os.environ.get("GRADIENT_AGENT_ENDPOINT")
466456
self._agent_endpoint = agent_endpoint
467457

468458
self.inference_endpoint = inference_endpoint
@@ -579,9 +569,7 @@ def default_headers(self) -> dict[str, str | Omit]:
579569

580570
@override
581571
def _validate_headers(self, headers: Headers, custom_headers: Headers) -> None:
582-
if (
583-
self.access_token or self.agent_access_key or self.model_access_key
584-
) and headers.get("Authorization"):
572+
if (self.access_token or self.agent_access_key or self.model_access_key) and headers.get("Authorization"):
585573
return
586574
if isinstance(custom_headers.get("Authorization"), Omit):
587575
return
@@ -615,14 +603,10 @@ def copy(
615603
Create a new client instance re-using the same options given to the current client with optional overriding.
616604
"""
617605
if default_headers is not None and set_default_headers is not None:
618-
raise ValueError(
619-
"The `default_headers` and `set_default_headers` arguments are mutually exclusive"
620-
)
606+
raise ValueError("The `default_headers` and `set_default_headers` arguments are mutually exclusive")
621607

622608
if default_query is not None and set_default_query is not None:
623-
raise ValueError(
624-
"The `default_query` and `set_default_query` arguments are mutually exclusive"
625-
)
609+
raise ValueError("The `default_query` and `set_default_query` arguments are mutually exclusive")
626610

627611
headers = self._custom_headers
628612
if default_headers is not None:
@@ -670,14 +654,10 @@ def _make_status_error(
670654
return _exceptions.BadRequestError(err_msg, response=response, body=body)
671655

672656
if response.status_code == 401:
673-
return _exceptions.AuthenticationError(
674-
err_msg, response=response, body=body
675-
)
657+
return _exceptions.AuthenticationError(err_msg, response=response, body=body)
676658

677659
if response.status_code == 403:
678-
return _exceptions.PermissionDeniedError(
679-
err_msg, response=response, body=body
680-
)
660+
return _exceptions.PermissionDeniedError(err_msg, response=response, body=body)
681661

682662
if response.status_code == 404:
683663
return _exceptions.NotFoundError(err_msg, response=response, body=body)
@@ -686,17 +666,13 @@ def _make_status_error(
686666
return _exceptions.ConflictError(err_msg, response=response, body=body)
687667

688668
if response.status_code == 422:
689-
return _exceptions.UnprocessableEntityError(
690-
err_msg, response=response, body=body
691-
)
669+
return _exceptions.UnprocessableEntityError(err_msg, response=response, body=body)
692670

693671
if response.status_code == 429:
694672
return _exceptions.RateLimitError(err_msg, response=response, body=body)
695673

696674
if response.status_code >= 500:
697-
return _exceptions.InternalServerError(
698-
err_msg, response=response, body=body
699-
)
675+
return _exceptions.InternalServerError(err_msg, response=response, body=body)
700676
return APIStatusError(err_msg, response=response, body=body)
701677

702678

@@ -915,9 +891,7 @@ def knowledge_bases(
915891
AsyncKnowledgeBasesResourceWithStreamingResponse,
916892
)
917893

918-
return AsyncKnowledgeBasesResourceWithStreamingResponse(
919-
self._client.knowledge_bases
920-
)
894+
return AsyncKnowledgeBasesResourceWithStreamingResponse(self._client.knowledge_bases)
921895

922896
@cached_property
923897
def models(self) -> models.AsyncModelsResourceWithStreamingResponse:

src/gradient/resources/agents/chat/completions.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -472,11 +472,9 @@ def create(
472472
headers = {"Authorization": f"Bearer {self._client.agent_access_key}", **headers}
473473

474474
return self._post(
475-
(
476-
"/chat/completions?agent=true"
477-
if self._client._base_url_overridden
478-
else f"{self._client.agent_endpoint}/api/v1/chat/completions?agent=true"
479-
),
475+
"/chat/completions?agent=true"
476+
if self._client._base_url_overridden
477+
else f"{self._client.agent_endpoint}/api/v1/chat/completions?agent=true",
480478
body=maybe_transform(
481479
{
482480
"messages": messages,
@@ -960,11 +958,9 @@ async def create(
960958
headers = {"Authorization": f"Bearer {self._client.agent_access_key}", **headers}
961959

962960
return await self._post(
963-
(
964-
"/chat/completions?agent=true"
965-
if self._client._base_url_overridden
966-
else f"{self._client.agent_endpoint}/api/v1/chat/completions?agent=true"
967-
),
961+
"/chat/completions?agent=true"
962+
if self._client._base_url_overridden
963+
else f"{self._client.agent_endpoint}/api/v1/chat/completions?agent=true",
968964
body=await async_maybe_transform(
969965
{
970966
"messages": messages,

src/gradient/resources/chat/completions.py

Lines changed: 9 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,7 @@ def create(
6262
presence_penalty: Optional[float] | NotGiven = NOT_GIVEN,
6363
stop: Union[Optional[str], List[str], None] | NotGiven = NOT_GIVEN,
6464
stream: Optional[Literal[False]] | NotGiven = NOT_GIVEN,
65-
stream_options: (
66-
Optional[completion_create_params.StreamOptions] | NotGiven
67-
) = NOT_GIVEN,
65+
stream_options: (Optional[completion_create_params.StreamOptions] | NotGiven) = NOT_GIVEN,
6866
temperature: Optional[float] | NotGiven = NOT_GIVEN,
6967
tool_choice: completion_create_params.ToolChoice | NotGiven = NOT_GIVEN,
7068
tools: Iterable[completion_create_params.Tool] | NotGiven = NOT_GIVEN,
@@ -193,9 +191,7 @@ def create(
193191
n: Optional[int] | NotGiven = NOT_GIVEN,
194192
presence_penalty: Optional[float] | NotGiven = NOT_GIVEN,
195193
stop: Union[Optional[str], List[str], None] | NotGiven = NOT_GIVEN,
196-
stream_options: (
197-
Optional[completion_create_params.StreamOptions] | NotGiven
198-
) = NOT_GIVEN,
194+
stream_options: (Optional[completion_create_params.StreamOptions] | NotGiven) = NOT_GIVEN,
199195
temperature: Optional[float] | NotGiven = NOT_GIVEN,
200196
tool_choice: completion_create_params.ToolChoice | NotGiven = NOT_GIVEN,
201197
tools: Iterable[completion_create_params.Tool] | NotGiven = NOT_GIVEN,
@@ -323,9 +319,7 @@ def create(
323319
n: Optional[int] | NotGiven = NOT_GIVEN,
324320
presence_penalty: Optional[float] | NotGiven = NOT_GIVEN,
325321
stop: Union[Optional[str], List[str], None] | NotGiven = NOT_GIVEN,
326-
stream_options: (
327-
Optional[completion_create_params.StreamOptions] | NotGiven
328-
) = NOT_GIVEN,
322+
stream_options: (Optional[completion_create_params.StreamOptions] | NotGiven) = NOT_GIVEN,
329323
temperature: Optional[float] | NotGiven = NOT_GIVEN,
330324
tool_choice: completion_create_params.ToolChoice | NotGiven = NOT_GIVEN,
331325
tools: Iterable[completion_create_params.Tool] | NotGiven = NOT_GIVEN,
@@ -453,9 +447,7 @@ def create(
453447
presence_penalty: Optional[float] | NotGiven = NOT_GIVEN,
454448
stop: Union[Optional[str], List[str], None] | NotGiven = NOT_GIVEN,
455449
stream: Optional[Literal[False]] | Literal[True] | NotGiven = NOT_GIVEN,
456-
stream_options: (
457-
Optional[completion_create_params.StreamOptions] | NotGiven
458-
) = NOT_GIVEN,
450+
stream_options: (Optional[completion_create_params.StreamOptions] | NotGiven) = NOT_GIVEN,
459451
temperature: Optional[float] | NotGiven = NOT_GIVEN,
460452
tool_choice: completion_create_params.ToolChoice | NotGiven = NOT_GIVEN,
461453
tools: Iterable[completion_create_params.Tool] | NotGiven = NOT_GIVEN,
@@ -562,9 +554,7 @@ async def create(
562554
presence_penalty: Optional[float] | NotGiven = NOT_GIVEN,
563555
stop: Union[Optional[str], List[str], None] | NotGiven = NOT_GIVEN,
564556
stream: Optional[Literal[False]] | NotGiven = NOT_GIVEN,
565-
stream_options: (
566-
Optional[completion_create_params.StreamOptions] | NotGiven
567-
) = NOT_GIVEN,
557+
stream_options: (Optional[completion_create_params.StreamOptions] | NotGiven) = NOT_GIVEN,
568558
temperature: Optional[float] | NotGiven = NOT_GIVEN,
569559
tool_choice: completion_create_params.ToolChoice | NotGiven = NOT_GIVEN,
570560
tools: Iterable[completion_create_params.Tool] | NotGiven = NOT_GIVEN,
@@ -693,9 +683,7 @@ async def create(
693683
n: Optional[int] | NotGiven = NOT_GIVEN,
694684
presence_penalty: Optional[float] | NotGiven = NOT_GIVEN,
695685
stop: Union[Optional[str], List[str], None] | NotGiven = NOT_GIVEN,
696-
stream_options: (
697-
Optional[completion_create_params.StreamOptions] | NotGiven
698-
) = NOT_GIVEN,
686+
stream_options: (Optional[completion_create_params.StreamOptions] | NotGiven) = NOT_GIVEN,
699687
temperature: Optional[float] | NotGiven = NOT_GIVEN,
700688
tool_choice: completion_create_params.ToolChoice | NotGiven = NOT_GIVEN,
701689
tools: Iterable[completion_create_params.Tool] | NotGiven = NOT_GIVEN,
@@ -823,9 +811,7 @@ async def create(
823811
n: Optional[int] | NotGiven = NOT_GIVEN,
824812
presence_penalty: Optional[float] | NotGiven = NOT_GIVEN,
825813
stop: Union[Optional[str], List[str], None] | NotGiven = NOT_GIVEN,
826-
stream_options: (
827-
Optional[completion_create_params.StreamOptions] | NotGiven
828-
) = NOT_GIVEN,
814+
stream_options: (Optional[completion_create_params.StreamOptions] | NotGiven) = NOT_GIVEN,
829815
temperature: Optional[float] | NotGiven = NOT_GIVEN,
830816
tool_choice: completion_create_params.ToolChoice | NotGiven = NOT_GIVEN,
831817
tools: Iterable[completion_create_params.Tool] | NotGiven = NOT_GIVEN,
@@ -953,9 +939,7 @@ async def create(
953939
presence_penalty: Optional[float] | NotGiven = NOT_GIVEN,
954940
stop: Union[Optional[str], List[str], None] | NotGiven = NOT_GIVEN,
955941
stream: Optional[Literal[False]] | Literal[True] | NotGiven = NOT_GIVEN,
956-
stream_options: (
957-
Optional[completion_create_params.StreamOptions] | NotGiven
958-
) = NOT_GIVEN,
942+
stream_options: (Optional[completion_create_params.StreamOptions] | NotGiven) = NOT_GIVEN,
959943
temperature: Optional[float] | NotGiven = NOT_GIVEN,
960944
tool_choice: completion_create_params.ToolChoice | NotGiven = NOT_GIVEN,
961945
tools: Iterable[completion_create_params.Tool] | NotGiven = NOT_GIVEN,
@@ -970,10 +954,7 @@ async def create(
970954
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
971955
) -> CompletionCreateResponse | AsyncStream[ChatCompletionChunk]:
972956
# This method requires an model_access_key to be set via client argument or environment variable
973-
if (
974-
not hasattr(self._client, "model_access_key")
975-
or not self._client.model_access_key
976-
):
957+
if not hasattr(self._client, "model_access_key") or not self._client.model_access_key:
977958
raise TypeError(
978959
"Could not resolve authentication method. Expected model_access_key to be set for chat completions."
979960
)

0 commit comments

Comments
 (0)