Skip to content

Commit bf5fa9f

Browse files
fix(client): loosen auth header validation
1 parent 07eeda8 commit bf5fa9f

File tree

4 files changed

+105
-318
lines changed

4 files changed

+105
-318
lines changed

src/gradient/_client.py

Lines changed: 13 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -353,14 +353,10 @@ def copy(
353353
Create a new client instance re-using the same options given to the current client with optional overriding.
354354
"""
355355
if default_headers is not None and set_default_headers is not None:
356-
raise ValueError(
357-
"The `default_headers` and `set_default_headers` arguments are mutually exclusive"
358-
)
356+
raise ValueError("The `default_headers` and `set_default_headers` arguments are mutually exclusive")
359357

360358
if default_query is not None and set_default_query is not None:
361-
raise ValueError(
362-
"The `default_query` and `set_default_query` arguments are mutually exclusive"
363-
)
359+
raise ValueError("The `default_query` and `set_default_query` arguments are mutually exclusive")
364360

365361
headers = self._custom_headers
366362
if default_headers is not None:
@@ -411,14 +407,10 @@ def _make_status_error(
411407
return _exceptions.BadRequestError(err_msg, response=response, body=body)
412408

413409
if response.status_code == 401:
414-
return _exceptions.AuthenticationError(
415-
err_msg, response=response, body=body
416-
)
410+
return _exceptions.AuthenticationError(err_msg, response=response, body=body)
417411

418412
if response.status_code == 403:
419-
return _exceptions.PermissionDeniedError(
420-
err_msg, response=response, body=body
421-
)
413+
return _exceptions.PermissionDeniedError(err_msg, response=response, body=body)
422414

423415
if response.status_code == 404:
424416
return _exceptions.NotFoundError(err_msg, response=response, body=body)
@@ -427,17 +419,13 @@ def _make_status_error(
427419
return _exceptions.ConflictError(err_msg, response=response, body=body)
428420

429421
if response.status_code == 422:
430-
return _exceptions.UnprocessableEntityError(
431-
err_msg, response=response, body=body
432-
)
422+
return _exceptions.UnprocessableEntityError(err_msg, response=response, body=body)
433423

434424
if response.status_code == 429:
435425
return _exceptions.RateLimitError(err_msg, response=response, body=body)
436426

437427
if response.status_code >= 500:
438-
return _exceptions.InternalServerError(
439-
err_msg, response=response, body=body
440-
)
428+
return _exceptions.InternalServerError(err_msg, response=response, body=body)
441429
return APIStatusError(err_msg, response=response, body=body)
442430

443431

@@ -719,14 +707,10 @@ def copy(
719707
Create a new client instance re-using the same options given to the current client with optional overriding.
720708
"""
721709
if default_headers is not None and set_default_headers is not None:
722-
raise ValueError(
723-
"The `default_headers` and `set_default_headers` arguments are mutually exclusive"
724-
)
710+
raise ValueError("The `default_headers` and `set_default_headers` arguments are mutually exclusive")
725711

726712
if default_query is not None and set_default_query is not None:
727-
raise ValueError(
728-
"The `default_query` and `set_default_query` arguments are mutually exclusive"
729-
)
713+
raise ValueError("The `default_query` and `set_default_query` arguments are mutually exclusive")
730714

731715
headers = self._custom_headers
732716
if default_headers is not None:
@@ -777,14 +761,10 @@ def _make_status_error(
777761
return _exceptions.BadRequestError(err_msg, response=response, body=body)
778762

779763
if response.status_code == 401:
780-
return _exceptions.AuthenticationError(
781-
err_msg, response=response, body=body
782-
)
764+
return _exceptions.AuthenticationError(err_msg, response=response, body=body)
783765

784766
if response.status_code == 403:
785-
return _exceptions.PermissionDeniedError(
786-
err_msg, response=response, body=body
787-
)
767+
return _exceptions.PermissionDeniedError(err_msg, response=response, body=body)
788768

789769
if response.status_code == 404:
790770
return _exceptions.NotFoundError(err_msg, response=response, body=body)
@@ -793,17 +773,13 @@ def _make_status_error(
793773
return _exceptions.ConflictError(err_msg, response=response, body=body)
794774

795775
if response.status_code == 422:
796-
return _exceptions.UnprocessableEntityError(
797-
err_msg, response=response, body=body
798-
)
776+
return _exceptions.UnprocessableEntityError(err_msg, response=response, body=body)
799777

800778
if response.status_code == 429:
801779
return _exceptions.RateLimitError(err_msg, response=response, body=body)
802780

803781
if response.status_code >= 500:
804-
return _exceptions.InternalServerError(
805-
err_msg, response=response, body=body
806-
)
782+
return _exceptions.InternalServerError(err_msg, response=response, body=body)
807783
return APIStatusError(err_msg, response=response, body=body)
808784

809785

@@ -1082,9 +1058,7 @@ def knowledge_bases(
10821058
AsyncKnowledgeBasesResourceWithStreamingResponse,
10831059
)
10841060

1085-
return AsyncKnowledgeBasesResourceWithStreamingResponse(
1086-
self._client.knowledge_bases
1087-
)
1061+
return AsyncKnowledgeBasesResourceWithStreamingResponse(self._client.knowledge_bases)
10881062

10891063
@cached_property
10901064
def models(self) -> models.AsyncModelsResourceWithStreamingResponse:

src/gradient/resources/knowledge_bases/knowledge_bases.py

Lines changed: 12 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -210,9 +210,7 @@ def retrieve(
210210
timeout: Override the client-level default timeout for this request, in seconds
211211
"""
212212
if not uuid:
213-
raise ValueError(
214-
f"Expected a non-empty value for `uuid` but received {uuid!r}"
215-
)
213+
raise ValueError(f"Expected a non-empty value for `uuid` but received {uuid!r}")
216214
return self._get(
217215
(
218216
f"/v2/gen-ai/knowledge_bases/{uuid}"
@@ -271,9 +269,7 @@ def update(
271269
timeout: Override the client-level default timeout for this request, in seconds
272270
"""
273271
if not path_uuid:
274-
raise ValueError(
275-
f"Expected a non-empty value for `path_uuid` but received {path_uuid!r}"
276-
)
272+
raise ValueError(f"Expected a non-empty value for `path_uuid` but received {path_uuid!r}")
277273
return self._put(
278274
(
279275
f"/v2/gen-ai/knowledge_bases/{path_uuid}"
@@ -375,9 +371,7 @@ def delete(
375371
timeout: Override the client-level default timeout for this request, in seconds
376372
"""
377373
if not uuid:
378-
raise ValueError(
379-
f"Expected a non-empty value for `uuid` but received {uuid!r}"
380-
)
374+
raise ValueError(f"Expected a non-empty value for `uuid` but received {uuid!r}")
381375
return self._delete(
382376
(
383377
f"/v2/gen-ai/knowledge_bases/{uuid}"
@@ -646,9 +640,7 @@ async def retrieve(
646640
timeout: Override the client-level default timeout for this request, in seconds
647641
"""
648642
if not uuid:
649-
raise ValueError(
650-
f"Expected a non-empty value for `uuid` but received {uuid!r}"
651-
)
643+
raise ValueError(f"Expected a non-empty value for `uuid` but received {uuid!r}")
652644
return await self._get(
653645
(
654646
f"/v2/gen-ai/knowledge_bases/{uuid}"
@@ -707,9 +699,7 @@ async def update(
707699
timeout: Override the client-level default timeout for this request, in seconds
708700
"""
709701
if not path_uuid:
710-
raise ValueError(
711-
f"Expected a non-empty value for `path_uuid` but received {path_uuid!r}"
712-
)
702+
raise ValueError(f"Expected a non-empty value for `path_uuid` but received {path_uuid!r}")
713703
return await self._put(
714704
(
715705
f"/v2/gen-ai/knowledge_bases/{path_uuid}"
@@ -811,9 +801,7 @@ async def delete(
811801
timeout: Override the client-level default timeout for this request, in seconds
812802
"""
813803
if not uuid:
814-
raise ValueError(
815-
f"Expected a non-empty value for `uuid` but received {uuid!r}"
816-
)
804+
raise ValueError(f"Expected a non-empty value for `uuid` but received {uuid!r}")
817805
return await self._delete(
818806
(
819807
f"/v2/gen-ai/knowledge_bases/{uuid}"
@@ -1011,15 +999,11 @@ def __init__(self, knowledge_bases: AsyncKnowledgeBasesResource) -> None:
1011999

10121000
@cached_property
10131001
def data_sources(self) -> AsyncDataSourcesResourceWithRawResponse:
1014-
return AsyncDataSourcesResourceWithRawResponse(
1015-
self._knowledge_bases.data_sources
1016-
)
1002+
return AsyncDataSourcesResourceWithRawResponse(self._knowledge_bases.data_sources)
10171003

10181004
@cached_property
10191005
def indexing_jobs(self) -> AsyncIndexingJobsResourceWithRawResponse:
1020-
return AsyncIndexingJobsResourceWithRawResponse(
1021-
self._knowledge_bases.indexing_jobs
1022-
)
1006+
return AsyncIndexingJobsResourceWithRawResponse(self._knowledge_bases.indexing_jobs)
10231007

10241008

10251009
class KnowledgeBasesResourceWithStreamingResponse:
@@ -1050,15 +1034,11 @@ def __init__(self, knowledge_bases: KnowledgeBasesResource) -> None:
10501034

10511035
@cached_property
10521036
def data_sources(self) -> DataSourcesResourceWithStreamingResponse:
1053-
return DataSourcesResourceWithStreamingResponse(
1054-
self._knowledge_bases.data_sources
1055-
)
1037+
return DataSourcesResourceWithStreamingResponse(self._knowledge_bases.data_sources)
10561038

10571039
@cached_property
10581040
def indexing_jobs(self) -> IndexingJobsResourceWithStreamingResponse:
1059-
return IndexingJobsResourceWithStreamingResponse(
1060-
self._knowledge_bases.indexing_jobs
1061-
)
1041+
return IndexingJobsResourceWithStreamingResponse(self._knowledge_bases.indexing_jobs)
10621042

10631043

10641044
class AsyncKnowledgeBasesResourceWithStreamingResponse:
@@ -1089,12 +1069,8 @@ def __init__(self, knowledge_bases: AsyncKnowledgeBasesResource) -> None:
10891069

10901070
@cached_property
10911071
def data_sources(self) -> AsyncDataSourcesResourceWithStreamingResponse:
1092-
return AsyncDataSourcesResourceWithStreamingResponse(
1093-
self._knowledge_bases.data_sources
1094-
)
1072+
return AsyncDataSourcesResourceWithStreamingResponse(self._knowledge_bases.data_sources)
10951073

10961074
@cached_property
10971075
def indexing_jobs(self) -> AsyncIndexingJobsResourceWithStreamingResponse:
1098-
return AsyncIndexingJobsResourceWithStreamingResponse(
1099-
self._knowledge_bases.indexing_jobs
1100-
)
1076+
return AsyncIndexingJobsResourceWithStreamingResponse(self._knowledge_bases.indexing_jobs)

src/gradient/types/retrieve_documents_params.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,3 @@ class Filters(TypedDict, total=False):
7373

7474
should: Iterable[FiltersShould]
7575
"""At least one condition must match (OR)"""
76-

0 commit comments

Comments
 (0)