@@ -121,7 +121,7 @@ def _parse_retry_after_header(
121
121
See also
122
122
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After#syntax
123
123
"""
124
- if response_headers is None :
124
+ if not response_headers :
125
125
return None
126
126
127
127
# First, try the non-standard `retry-after-ms` header for milliseconds,
@@ -485,6 +485,8 @@ def request_raw(
485
485
_thread_context .session .close ()
486
486
_thread_context .session = _make_session (MAX_CONNECTION_RETRIES )
487
487
_thread_context .session_create_time = time .time ()
488
+
489
+ result = None
488
490
try :
489
491
result = _thread_context .session .request (
490
492
options .method ,
@@ -500,11 +502,13 @@ def request_raw(
500
502
except requests .exceptions .Timeout as e :
501
503
utils .log_debug ("Encountered requests.exceptions.Timeout" )
502
504
505
+ result_headers = dict (result .headers ) if result is not None else {}
506
+
503
507
if remaining_retries > 0 :
504
508
return self ._retry_request (
505
509
options ,
506
510
remaining_retries = remaining_retries ,
507
- response_headers = dict ( result . headers ) ,
511
+ response_headers = result_headers ,
508
512
stream = stream ,
509
513
request_timeout = request_timeout ,
510
514
)
@@ -513,11 +517,13 @@ def request_raw(
513
517
except requests .exceptions .RequestException as e :
514
518
utils .log_debug ("Encountered requests.exceptions.RequestException" )
515
519
520
+ result_headers = dict (result .headers ) if result is not None else {}
521
+
516
522
if remaining_retries > 0 :
517
523
return self ._retry_request (
518
524
options ,
519
525
remaining_retries = remaining_retries ,
520
- response_headers = dict ( result . headers ) ,
526
+ response_headers = result_headers ,
521
527
stream = stream ,
522
528
request_timeout = request_timeout ,
523
529
)
@@ -527,26 +533,32 @@ def request_raw(
527
533
) from e
528
534
529
535
# retry on 5XX error or rate-limit
530
- if 500 <= result .status_code < 600 or result .status_code == 429 :
531
- utils .log_debug (
532
- f"Encountered requests.exceptions.HTTPError. Error code: { result .status_code } "
533
- )
534
-
535
- if remaining_retries > 0 :
536
- return self ._retry_request (
537
- options ,
538
- remaining_retries = remaining_retries ,
539
- response_headers = dict (result .headers ),
540
- stream = stream ,
541
- request_timeout = request_timeout ,
536
+ if result is not None :
537
+ if 500 <= result .status_code < 600 or result .status_code == 429 :
538
+ utils .log_debug (
539
+ f"Encountered requests.exceptions.HTTPError. Error code: { result .status_code } "
542
540
)
543
541
542
+ result_headers = dict (result .headers ) if result is not None else {}
543
+
544
+ if remaining_retries > 0 :
545
+ return self ._retry_request (
546
+ options ,
547
+ remaining_retries = remaining_retries ,
548
+ response_headers = result_headers ,
549
+ stream = stream ,
550
+ request_timeout = request_timeout ,
551
+ )
552
+
553
+ status_code = result .status_code if result is not None else 0
554
+ result_headers = dict (result .headers ) if result is not None else {}
555
+
544
556
utils .log_debug (
545
557
"Together API response" ,
546
558
path = abs_url ,
547
- response_code = result . status_code ,
548
- processing_ms = result . headers .get ("x-total-time" ),
549
- request_id = result . headers .get ("CF-RAY" ),
559
+ response_code = status_code ,
560
+ processing_ms = result_headers .get ("x-total-time" ),
561
+ request_id = result_headers .get ("CF-RAY" ),
550
562
)
551
563
552
564
return result # type: ignore
0 commit comments