@@ -92,8 +92,7 @@ def fill(self):
9292 ready_to_read , _ , _ = select ((self .socket ,), (), (), 0 )
9393 received = self .socket .recv (65539 )
9494 if received :
95- if __debug__ :
96- log_debug ("S: b%r" , received )
95+ log_debug ("S: b%r" , received )
9796 self .buffer [len (self .buffer ):] = received
9897 else :
9998 if ready_to_read is not None :
@@ -174,8 +173,7 @@ def send(self):
174173 """ Send all queued messages to the server.
175174 """
176175 data = self .raw .getvalue ()
177- if __debug__ :
178- log_debug ("C: b%r" , data )
176+ log_debug ("C: b%r" , data )
179177 self .socket .sendall (data )
180178
181179 self .raw .seek (self .raw .truncate (0 ))
@@ -264,8 +262,7 @@ def append(self, signature, fields=(), response=None):
264262 :arg fields: the fields of the message as a tuple
265263 :arg response: a response object to handle callbacks
266264 """
267- if __debug__ :
268- log_info ("C: %s %s" , message_names [signature ], " " .join (map (repr , fields )))
265+ log_info ("C: %s %r" , message_names [signature ], fields )
269266
270267 self .packer .pack_struct_header (len (fields ), signature )
271268 for field in fields :
@@ -329,29 +326,36 @@ def fetch(self):
329326 self .defunct = True
330327 self .close ()
331328 raise
332- # Unpack from the raw byte stream and call the relevant message handler(s)
333- self .unpacker .load (message_data )
334- size , signature = self .unpacker .unpack_structure_header ()
335- fields = [self .unpacker .unpack () for _ in range (size )]
336329
337- if __debug__ :
338- log_info ("S: %s %r" , message_names [signature ], fields )
330+ unpacker = self .unpacker
331+ unpacker .load (message_data )
332+ size , signature = unpacker .unpack_structure_header ()
333+ if size > 1 :
334+ raise ProtocolError ("Expected one field" )
339335
340336 if signature == SUCCESS :
337+ metadata = unpacker .unpack_map ()
338+ log_info ("S: SUCCESS (%r)" , metadata )
341339 response = self .responses .popleft ()
342340 response .complete = True
343- response .on_success (* fields )
341+ response .on_success (metadata or {} )
344342 elif signature == RECORD :
343+ data = unpacker .unpack_list ()
344+ log_info ("S: RECORD (%r)" , data )
345345 response = self .responses [0 ]
346- response .on_record (* fields )
346+ response .on_record (data or [] )
347347 elif signature == IGNORED :
348+ metadata = unpacker .unpack_map ()
349+ log_info ("S: IGNORED (%r)" , metadata )
348350 response = self .responses .popleft ()
349351 response .complete = True
350- response .on_ignored (* fields )
352+ response .on_ignored (metadata or {} )
351353 elif signature == FAILURE :
354+ metadata = unpacker .unpack_map ()
355+ log_info ("S: FAILURE (%r)" , metadata )
352356 response = self .responses .popleft ()
353357 response .complete = True
354- response .on_failure (* fields )
358+ response .on_failure (metadata or {} )
355359 else :
356360 raise ProtocolError ("Unexpected response message with signature %02X" % signature )
357361
@@ -365,8 +369,7 @@ def close(self):
365369 """ Close the connection.
366370 """
367371 if not self .closed :
368- if __debug__ :
369- log_info ("~~ [CLOSE]" )
372+ log_info ("~~ [CLOSE]" )
370373 self .channel .socket .close ()
371374 self .closed = True
372375
@@ -476,7 +479,7 @@ def connect(address, ssl_context=None, **config):
476479 # Establish a connection to the host and port specified
477480 # Catches refused connections see:
478481 # https://docs.python.org/2/library/errno.html
479- if __debug__ : log_info ("~~ [CONNECT] %s" , address )
482+ log_info ("~~ [CONNECT] %s" , address )
480483 try :
481484 s = create_connection (address )
482485 except SocketError as error :
@@ -488,7 +491,7 @@ def connect(address, ssl_context=None, **config):
488491 # Secure the connection if an SSL context has been provided
489492 if ssl_context and SSL_AVAILABLE :
490493 host , port = address
491- if __debug__ : log_info ("~~ [SECURE] %s" , host )
494+ log_info ("~~ [SECURE] %s" , host )
492495 try :
493496 s = ssl_context .wrap_socket (s , server_hostname = host if HAS_SNI else None )
494497 except SSLError as cause :
@@ -514,9 +517,9 @@ def connect(address, ssl_context=None, **config):
514517 # Send details of the protocol versions supported
515518 supported_versions = [1 , 0 , 0 , 0 ]
516519 handshake = [MAGIC_PREAMBLE ] + supported_versions
517- if __debug__ : log_info ("C: [HANDSHAKE] 0x%X %r" , MAGIC_PREAMBLE , supported_versions )
520+ log_info ("C: [HANDSHAKE] 0x%X %r" , MAGIC_PREAMBLE , supported_versions )
518521 data = b"" .join (struct_pack (">I" , num ) for num in handshake )
519- if __debug__ : log_debug ("C: b%r" , data )
522+ log_debug ("C: b%r" , data )
520523 s .sendall (data )
521524
522525 # Handle the handshake response
@@ -531,15 +534,15 @@ def connect(address, ssl_context=None, **config):
531534 log_error ("S: [CLOSE]" )
532535 raise ProtocolError ("Connection to %r closed without handshake response" % (address ,))
533536 if data_size == 4 :
534- if __debug__ : log_debug ("S: b%r" , data )
537+ log_debug ("S: b%r" , data )
535538 else :
536539 # Some other garbled data has been received
537540 log_error ("S: @*#!" )
538541 raise ProtocolError ("Expected four byte handshake response, received %r instead" % data )
539542 agreed_version , = struct_unpack (">I" , data )
540- if __debug__ : log_info ("S: [HANDSHAKE] %d" , agreed_version )
543+ log_info ("S: [HANDSHAKE] %d" , agreed_version )
541544 if agreed_version == 0 :
542- if __debug__ : log_info ("~~ [CLOSE]" )
545+ log_info ("~~ [CLOSE]" )
543546 s .shutdown (SHUT_RDWR )
544547 s .close ()
545548 elif agreed_version == 1 :
0 commit comments