11from __future__ import annotations
22
33import datetime
4+ import inspect
45import json
56import logging
67import os
@@ -579,33 +580,21 @@ def __send_request_to_server(
579580 session_info : SessionInfo ,
580581 request : requests .Request ,
581582 url : str ,
582- ) -> requests .Response :
583+ ) -> Optional [ requests .Response ] :
583584 try :
584585 self .number_of_server_requests += 1
585586 timeout = command .timeout if command .timeout else self .__default_timeout
586- if timeout :
587+
588+ if not timeout :
589+ return self .__send (chosen_node , command , session_info , request )
590+
591+ else :
587592 try :
588- # todo: create Task from lines below and call it
589- # AggressiveCacheOptions callingTheadAggressiveCaching = aggressiveCaching.get();
590- # CompletableFuture<CloseableHttpResponse> sendTask = CompletableFuture.supplyAsync(() ->
591- # AggressiveCacheOptions aggressiveCacheOptionsToRestore = aggressiveCaching.get();
592- try :
593- return self .__send (chosen_node , command , session_info , request )
594- except IOError :
595- # throw ExceptionsUtils.unwrapException(e);
596- raise
597- # finally aggressiveCaching.set(aggressiveCacheOptionsToRestore);
593+ return self .__send (chosen_node , command , session_info , request )
598594 except requests .Timeout as t :
599- # request.abort()
600- # net.ravendb.client.exceptions.TimeoutException timeoutException =
601- # new net.ravendb.client.exceptions.TimeoutException(
602- # "The request for " + request.getURI() + " failed with timeout after " +
603- # TimeUtils.durationToTimeSpan(timeout), e);
604-
605595 if not should_retry :
606596 if command .failed_nodes is None :
607597 command .failed_nodes = {}
608-
609598 command .failed_nodes [chosen_node ] = t
610599 raise t
611600
@@ -615,10 +604,6 @@ def __send_request_to_server(
615604 self .__throw_failed_to_contact_all_nodes (command , request )
616605
617606 return None
618- except IOError as e :
619- raise e
620- else :
621- return self .__send (chosen_node , command , session_info , request )
622607 except IOError as e :
623608 if not should_retry :
624609 raise
@@ -633,7 +618,7 @@ def __send_request_to_server(
633618 def __send (
634619 self , chosen_node : ServerNode , command : RavenCommand , session_info : SessionInfo , request : requests .Request
635620 ) -> requests .Response :
636- response : requests .Response = None
621+ response : Optional [ requests .Response ] = None
637622
638623 if self .should_execute_on_all (chosen_node , command ):
639624 response = self .__execute_on_all_to_figure_out_the_fastest (chosen_node , command )
@@ -891,7 +876,8 @@ def __supply_async(
891876
892877 def __create_request (self , node : ServerNode , command : RavenCommand ) -> requests .Request :
893878 request = command .create_request (node )
894- if request .data and not isinstance (request .data , str ):
879+ # todo: optimize that if - look for the way to make less ifs each time
880+ if request .data and not isinstance (request .data , str ) and not inspect .isgenerator (request .data ):
895881 request .data = json .dumps (request .data , default = self .conventions .json_default_method )
896882
897883 # todo: 1117 - 1133
@@ -1125,10 +1111,10 @@ def __handle_server_down(
11251111 self ,
11261112 url : str ,
11271113 chosen_node : ServerNode ,
1128- node_index : int ,
1114+ node_index : Optional [ int ] ,
11291115 command : RavenCommand ,
11301116 request : requests .Request ,
1131- response : requests .Response ,
1117+ response : Optional [ requests .Response ] ,
11321118 e : Exception ,
11331119 session_info : SessionInfo ,
11341120 should_retry : bool ,
0 commit comments