From 9e16820dd5d489444d1f7412923e3377e921416f Mon Sep 17 00:00:00 2001 From: INADA Naoki Date: Sat, 23 Aug 2014 03:34:14 +0900 Subject: [PATCH] Simplify MysqlPacket --- pymysql/connections.py | 97 +++++++++++++++++------------------------- 1 file changed, 39 insertions(+), 58 deletions(-) diff --git a/pymysql/connections.py b/pymysql/connections.py index 3aa3a14..177fc03 100644 --- a/pymysql/connections.py +++ b/pymysql/connections.py @@ -232,37 +232,15 @@ def unpack_int64(n): class MysqlPacket(object): - """Representation of a MySQL response packet. Reads in the packet - from the network socket, removes packet header and provides an interface - for reading/parsing the packet results.""" - __slots__ = ('_position', '_data', '_packet_number') + """Representation of a MySQL response packet. - def __init__(self, connection): + Provides an interface for reading/parsing the packet results. + """ + __slots__ = ('_position', '_data') + + def __init__(self, data, encoding): self._position = 0 - self._recv_packet(connection) - - def _recv_packet(self, connection): - """Parse the packet header and read entire packet payload into buffer.""" - buff = b'' - while True: - packet_header = connection._read_bytes(4) - if DEBUG: dump_packet(packet_header) - packet_length_bin = packet_header[:3] - - #TODO: check sequence id - self._packet_number = byte2int(packet_header[3]) - - bin_length = packet_length_bin + b'\0' # pad little-endian number - bytes_to_read = struct.unpack('