32
32
)
33
33
34
34
if TYPE_CHECKING :
35
- from .resources import chat , agents , models , regions , databases , inference , gpu_droplets , knowledge_bases
35
+ from .resources import (
36
+ chat ,
37
+ agents ,
38
+ models ,
39
+ regions ,
40
+ databases ,
41
+ inference ,
42
+ gpu_droplets ,
43
+ knowledge_bases ,
44
+ )
36
45
from .resources .regions import RegionsResource , AsyncRegionsResource
37
46
from .resources .chat .chat import ChatResource , AsyncChatResource
38
47
from .resources .gpu_droplets import (
@@ -102,14 +111,24 @@ def __init__(
102
111
"""
103
112
if api_key is None :
104
113
api_key = os .environ .get ("DIGITALOCEAN_ACCESS_TOKEN" )
114
+ # support for legacy environment variable
115
+ if api_key is None :
116
+ api_key = os .environ .get ("GRADIENT_API_KEY" )
105
117
self .api_key = api_key
106
118
107
119
if inference_key is None :
108
120
inference_key = os .environ .get ("GRADIENT_MODEL_ACCESS_KEY" )
121
+ # support for legacy environment variable
122
+ if inference_key is None :
123
+ inference_key = os .environ .get ("GRADIENT_INFERENCE_KEY" )
124
+
109
125
self .inference_key = inference_key
110
126
111
127
if agent_key is None :
112
128
agent_key = os .environ .get ("GRADIENT_AGENT_ACCESS_KEY" )
129
+ # support for legacy environment variable
130
+ if agent_key is None :
131
+ agent_key = os .environ .get ("GRADIENT_AGENT_KEY" )
113
132
self .agent_key = agent_key
114
133
115
134
self ._agent_endpoint = agent_endpoint
@@ -226,7 +245,9 @@ def default_headers(self) -> dict[str, str | Omit]:
226
245
227
246
@override
228
247
def _validate_headers (self , headers : Headers , custom_headers : Headers ) -> None :
229
- if (self .api_key or self .agent_key or self .inference_key ) and headers .get ("Authorization" ):
248
+ if (self .api_key or self .agent_key or self .inference_key ) and headers .get (
249
+ "Authorization"
250
+ ):
230
251
return
231
252
if isinstance (custom_headers .get ("Authorization" ), Omit ):
232
253
return
@@ -256,10 +277,14 @@ def copy(
256
277
Create a new client instance re-using the same options given to the current client with optional overriding.
257
278
"""
258
279
if default_headers is not None and set_default_headers is not None :
259
- raise ValueError ("The `default_headers` and `set_default_headers` arguments are mutually exclusive" )
280
+ raise ValueError (
281
+ "The `default_headers` and `set_default_headers` arguments are mutually exclusive"
282
+ )
260
283
261
284
if default_query is not None and set_default_query is not None :
262
- raise ValueError ("The `default_query` and `set_default_query` arguments are mutually exclusive" )
285
+ raise ValueError (
286
+ "The `default_query` and `set_default_query` arguments are mutually exclusive"
287
+ )
263
288
264
289
headers = self ._custom_headers
265
290
if default_headers is not None :
@@ -306,10 +331,14 @@ def _make_status_error(
306
331
return _exceptions .BadRequestError (err_msg , response = response , body = body )
307
332
308
333
if response .status_code == 401 :
309
- return _exceptions .AuthenticationError (err_msg , response = response , body = body )
334
+ return _exceptions .AuthenticationError (
335
+ err_msg , response = response , body = body
336
+ )
310
337
311
338
if response .status_code == 403 :
312
- return _exceptions .PermissionDeniedError (err_msg , response = response , body = body )
339
+ return _exceptions .PermissionDeniedError (
340
+ err_msg , response = response , body = body
341
+ )
313
342
314
343
if response .status_code == 404 :
315
344
return _exceptions .NotFoundError (err_msg , response = response , body = body )
@@ -318,13 +347,17 @@ def _make_status_error(
318
347
return _exceptions .ConflictError (err_msg , response = response , body = body )
319
348
320
349
if response .status_code == 422 :
321
- return _exceptions .UnprocessableEntityError (err_msg , response = response , body = body )
350
+ return _exceptions .UnprocessableEntityError (
351
+ err_msg , response = response , body = body
352
+ )
322
353
323
354
if response .status_code == 429 :
324
355
return _exceptions .RateLimitError (err_msg , response = response , body = body )
325
356
326
357
if response .status_code >= 500 :
327
- return _exceptions .InternalServerError (err_msg , response = response , body = body )
358
+ return _exceptions .InternalServerError (
359
+ err_msg , response = response , body = body
360
+ )
328
361
return APIStatusError (err_msg , response = response , body = body )
329
362
330
363
@@ -370,14 +403,24 @@ def __init__(
370
403
"""
371
404
if api_key is None :
372
405
api_key = os .environ .get ("DIGITALOCEAN_ACCESS_TOKEN" )
406
+ # support for legacy environment variable
407
+ if api_key is None :
408
+ api_key = os .environ .get ("GRADIENT_API_KEY" )
373
409
self .api_key = api_key
374
410
375
411
if inference_key is None :
376
412
inference_key = os .environ .get ("GRADIENT_MODEL_ACCESS_KEY" )
413
+ # support for legacy environment variable
414
+ if inference_key is None :
415
+ inference_key = os .environ .get ("GRADIENT_INFERENCE_KEY" )
416
+ self .api_key = api_key
377
417
self .inference_key = inference_key
378
418
379
419
if agent_key is None :
380
420
agent_key = os .environ .get ("GRADIENT_AGENT_ACCESS_KEY" )
421
+ # support for legacy environment variable
422
+ if agent_key is None :
423
+ agent_key = os .environ .get ("GRADIENT_AGENT_KEY" )
381
424
self .agent_key = agent_key
382
425
383
426
self ._agent_endpoint = agent_endpoint
@@ -494,7 +537,9 @@ def default_headers(self) -> dict[str, str | Omit]:
494
537
495
538
@override
496
539
def _validate_headers (self , headers : Headers , custom_headers : Headers ) -> None :
497
- if (self .api_key or self .agent_key or self .inference_key ) and headers .get ("Authorization" ):
540
+ if (self .api_key or self .agent_key or self .inference_key ) and headers .get (
541
+ "Authorization"
542
+ ):
498
543
return
499
544
if isinstance (custom_headers .get ("Authorization" ), Omit ):
500
545
return
@@ -524,10 +569,14 @@ def copy(
524
569
Create a new client instance re-using the same options given to the current client with optional overriding.
525
570
"""
526
571
if default_headers is not None and set_default_headers is not None :
527
- raise ValueError ("The `default_headers` and `set_default_headers` arguments are mutually exclusive" )
572
+ raise ValueError (
573
+ "The `default_headers` and `set_default_headers` arguments are mutually exclusive"
574
+ )
528
575
529
576
if default_query is not None and set_default_query is not None :
530
- raise ValueError ("The `default_query` and `set_default_query` arguments are mutually exclusive" )
577
+ raise ValueError (
578
+ "The `default_query` and `set_default_query` arguments are mutually exclusive"
579
+ )
531
580
532
581
headers = self ._custom_headers
533
582
if default_headers is not None :
@@ -574,10 +623,14 @@ def _make_status_error(
574
623
return _exceptions .BadRequestError (err_msg , response = response , body = body )
575
624
576
625
if response .status_code == 401 :
577
- return _exceptions .AuthenticationError (err_msg , response = response , body = body )
626
+ return _exceptions .AuthenticationError (
627
+ err_msg , response = response , body = body
628
+ )
578
629
579
630
if response .status_code == 403 :
580
- return _exceptions .PermissionDeniedError (err_msg , response = response , body = body )
631
+ return _exceptions .PermissionDeniedError (
632
+ err_msg , response = response , body = body
633
+ )
581
634
582
635
if response .status_code == 404 :
583
636
return _exceptions .NotFoundError (err_msg , response = response , body = body )
@@ -586,13 +639,17 @@ def _make_status_error(
586
639
return _exceptions .ConflictError (err_msg , response = response , body = body )
587
640
588
641
if response .status_code == 422 :
589
- return _exceptions .UnprocessableEntityError (err_msg , response = response , body = body )
642
+ return _exceptions .UnprocessableEntityError (
643
+ err_msg , response = response , body = body
644
+ )
590
645
591
646
if response .status_code == 429 :
592
647
return _exceptions .RateLimitError (err_msg , response = response , body = body )
593
648
594
649
if response .status_code >= 500 :
595
- return _exceptions .InternalServerError (err_msg , response = response , body = body )
650
+ return _exceptions .InternalServerError (
651
+ err_msg , response = response , body = body
652
+ )
596
653
return APIStatusError (err_msg , response = response , body = body )
597
654
598
655
@@ -811,7 +868,9 @@ def knowledge_bases(
811
868
AsyncKnowledgeBasesResourceWithStreamingResponse ,
812
869
)
813
870
814
- return AsyncKnowledgeBasesResourceWithStreamingResponse (self ._client .knowledge_bases )
871
+ return AsyncKnowledgeBasesResourceWithStreamingResponse (
872
+ self ._client .knowledge_bases
873
+ )
815
874
816
875
@cached_property
817
876
def models (self ) -> models .AsyncModelsResourceWithStreamingResponse :
0 commit comments