[Python-modules-commits] [python-vertica] 06/08: merge patched into master
Jean Baptiste Favre
jbfavre-guest at moszumanska.debian.org
Sun Apr 10 15:54:49 UTC 2016
This is an automated email from the git hooks/post-receive script.
jbfavre-guest pushed a commit to branch master
in repository python-vertica.
commit b851e5eb69b947d68870af239753d6d558208877
Merge: d9cb82e 4bd817c
Author: Jean Baptiste Favre <github at jbfavre.org>
Date: Sun Apr 10 17:49:03 2016 +0200
merge patched into master
debian/.git-dpm | 4 +-
...0001-Update-python-3-compatibility-patch.patch} | 764 +++++++++++++++++----
debian/patches/series | 2 +-
vertica_python/errors.py | 18 +-
vertica_python/tests/basic_tests.py | 2 +-
vertica_python/tests/unicode_tests.py | 11 +
vertica_python/vertica/column.py | 11 +-
vertica_python/vertica/connection.py | 24 +-
vertica_python/vertica/cursor.py | 8 +-
.../messages/backend_messages/authentication.py | 2 +-
.../messages/backend_messages/backend_key_data.py | 2 +-
.../messages/backend_messages/bind_complete.py | 2 +-
.../messages/backend_messages/close_complete.py | 2 +-
.../messages/backend_messages/command_complete.py | 10 +-
.../messages/backend_messages/copy_in_response.py | 4 +-
.../vertica/messages/backend_messages/data_row.py | 3 +-
.../backend_messages/empty_query_response.py | 2 +-
.../messages/backend_messages/error_response.py | 2 +-
.../vertica/messages/backend_messages/no_data.py | 2 +-
.../messages/backend_messages/notice_response.py | 30 +-
.../backend_messages/parameter_description.py | 2 +-
.../messages/backend_messages/parameter_status.py | 6 +-
.../messages/backend_messages/parse_complete.py | 2 +-
.../messages/backend_messages/portal_suspended.py | 2 +-
.../messages/backend_messages/ready_for_query.py | 8 +-
.../messages/backend_messages/row_description.py | 6 +-
.../vertica/messages/frontend_messages/bind.py | 16 +-
.../vertica/messages/frontend_messages/close.py | 2 +-
.../messages/frontend_messages/copy_data.py | 2 +-
.../messages/frontend_messages/copy_done.py | 2 +-
.../messages/frontend_messages/copy_fail.py | 2 +-
.../messages/frontend_messages/copy_stream.py | 2 +-
.../vertica/messages/frontend_messages/describe.py | 2 +-
.../vertica/messages/frontend_messages/execute.py | 2 +-
.../vertica/messages/frontend_messages/flush.py | 2 +-
.../vertica/messages/frontend_messages/parse.py | 2 +-
.../vertica/messages/frontend_messages/password.py | 2 +-
.../vertica/messages/frontend_messages/query.py | 7 +-
.../vertica/messages/frontend_messages/startup.py | 6 +-
.../vertica/messages/frontend_messages/sync.py | 2 +-
.../messages/frontend_messages/terminate.py | 2 +-
vertica_python/vertica/messages/message.py | 12 +-
42 files changed, 755 insertions(+), 241 deletions(-)
diff --cc debian/.git-dpm
index 1e13515,0000000..b58c905
mode 100644,000000..100644
--- a/debian/.git-dpm
+++ b/debian/.git-dpm
@@@ -1,11 -1,0 +1,11 @@@
+# see git-dpm(1) from git-dpm package
- 1073fb22a17118aad454aedce26c510115984f1e
- 1073fb22a17118aad454aedce26c510115984f1e
++4bd817c41fbba2c3383ef26dc1439e145884ab0a
++4bd817c41fbba2c3383ef26dc1439e145884ab0a
+ae8b3b3ef96558d8f3f28f77dfc946ea612084d5
+ae8b3b3ef96558d8f3f28f77dfc946ea612084d5
+python-vertica_0.5.6.orig.tar.gz
+d8a8f8dd8ba452aa0938d48cb33a563c9ea76f6e
+22874
+debianTag="debian/%e%v"
+patchedTag="patched/%e%v"
+upstreamTag="upstream/%e%u"
diff --cc debian/patches/0001-Update-python-3-compatibility-patch.patch
index 03e8c46,0000000..fd5103b
mode 100644,000000..100644
--- a/debian/patches/0001-Update-python-3-compatibility-patch.patch
+++ b/debian/patches/0001-Update-python-3-compatibility-patch.patch
@@@ -1,711 -1,0 +1,1219 @@@
- From 1073fb22a17118aad454aedce26c510115984f1e Mon Sep 17 00:00:00 2001
- From: Jean Baptiste Favre <debian at jbfavre.org>
- Date: Thu, 8 Oct 2015 13:20:49 -0700
- Subject: remove deprecated import for python 3
++From 4bd817c41fbba2c3383ef26dc1439e145884ab0a Mon Sep 17 00:00:00 2001
++From: Jean Baptiste Favre <github at jbfavre.org>
++Date: Sun, 10 Apr 2016 17:49:01 +0200
++Subject: Update python 3 compatibility patch
+
- Origin: other
- Reviewed-by: Jean Baptiste Favre <debian at jbfavre.org>
- Last-Update: 2015-08-16
- Patch-Name: fix_python3_compatibility.patch
+---
+ vertica_python/__init__.py | 2 +-
+ vertica_python/datatypes.py | 2 +-
- vertica_python/errors.py | 10 ++--
- vertica_python/tests/basic_tests.py | 2 +-
++ vertica_python/errors.py | 28 +++++----
++ vertica_python/tests/basic_tests.py | 4 +-
+ vertica_python/tests/date_tests.py | 2 +-
- vertica_python/vertica/column.py | 6 +-
- vertica_python/vertica/connection.py | 11 ++--
- vertica_python/vertica/cursor.py | 6 +-
++ vertica_python/tests/unicode_tests.py | 11 ++++
++ vertica_python/vertica/column.py | 15 ++---
++ vertica_python/vertica/connection.py | 35 ++++++-----
++ vertica_python/vertica/cursor.py | 14 +++--
+ vertica_python/vertica/messages/__init__.py | 70 +++++++++++-----------
- .../messages/backend_messages/authentication.py | 2 +-
- .../messages/backend_messages/backend_key_data.py | 2 +-
- .../messages/backend_messages/bind_complete.py | 2 +-
- .../messages/backend_messages/close_complete.py | 2 +-
- .../messages/backend_messages/command_complete.py | 2 +-
- .../messages/backend_messages/copy_in_response.py | 2 +-
- .../vertica/messages/backend_messages/data_row.py | 4 +-
- .../backend_messages/empty_query_response.py | 2 +-
- .../messages/backend_messages/error_response.py | 2 +-
- .../vertica/messages/backend_messages/no_data.py | 2 +-
- .../messages/backend_messages/notice_response.py | 2 +-
- .../backend_messages/parameter_description.py | 2 +-
- .../messages/backend_messages/parameter_status.py | 2 +-
- .../messages/backend_messages/parse_complete.py | 2 +-
- .../messages/backend_messages/portal_suspended.py | 2 +-
- .../messages/backend_messages/ready_for_query.py | 2 +-
- .../messages/backend_messages/row_description.py | 4 +-
++ .../messages/backend_messages/authentication.py | 4 +-
++ .../messages/backend_messages/backend_key_data.py | 4 +-
++ .../messages/backend_messages/bind_complete.py | 4 +-
++ .../messages/backend_messages/close_complete.py | 4 +-
++ .../messages/backend_messages/command_complete.py | 12 ++--
++ .../messages/backend_messages/copy_in_response.py | 6 +-
++ .../vertica/messages/backend_messages/data_row.py | 7 ++-
++ .../backend_messages/empty_query_response.py | 4 +-
++ .../messages/backend_messages/error_response.py | 4 +-
++ .../vertica/messages/backend_messages/no_data.py | 4 +-
++ .../messages/backend_messages/notice_response.py | 30 +++++-----
++ .../backend_messages/parameter_description.py | 4 +-
++ .../messages/backend_messages/parameter_status.py | 6 +-
++ .../messages/backend_messages/parse_complete.py | 4 +-
++ .../messages/backend_messages/portal_suspended.py | 4 +-
++ .../messages/backend_messages/ready_for_query.py | 10 ++--
++ .../messages/backend_messages/row_description.py | 8 +--
+ .../vertica/messages/backend_messages/unknown.py | 2 +-
- .../vertica/messages/frontend_messages/bind.py | 4 +-
++ .../vertica/messages/frontend_messages/bind.py | 14 ++---
+ .../messages/frontend_messages/cancel_request.py | 2 +-
- .../vertica/messages/frontend_messages/close.py | 2 +-
- .../messages/frontend_messages/copy_data.py | 2 +-
- .../messages/frontend_messages/copy_done.py | 2 +-
- .../messages/frontend_messages/copy_fail.py | 2 +-
- .../messages/frontend_messages/copy_stream.py | 2 +-
- .../vertica/messages/frontend_messages/describe.py | 2 +-
- .../vertica/messages/frontend_messages/execute.py | 2 +-
- .../vertica/messages/frontend_messages/flush.py | 2 +-
- .../vertica/messages/frontend_messages/parse.py | 2 +-
- .../vertica/messages/frontend_messages/password.py | 2 +-
- .../vertica/messages/frontend_messages/query.py | 4 +-
++ .../vertica/messages/frontend_messages/close.py | 4 +-
++ .../messages/frontend_messages/copy_data.py | 4 +-
++ .../messages/frontend_messages/copy_done.py | 4 +-
++ .../messages/frontend_messages/copy_fail.py | 4 +-
++ .../messages/frontend_messages/copy_stream.py | 4 +-
++ .../vertica/messages/frontend_messages/describe.py | 4 +-
++ .../vertica/messages/frontend_messages/execute.py | 4 +-
++ .../vertica/messages/frontend_messages/flush.py | 4 +-
++ .../vertica/messages/frontend_messages/parse.py | 4 +-
++ .../vertica/messages/frontend_messages/password.py | 4 +-
++ .../vertica/messages/frontend_messages/query.py | 9 +--
+ .../messages/frontend_messages/ssl_request.py | 2 +-
- .../vertica/messages/frontend_messages/startup.py | 2 +-
- .../vertica/messages/frontend_messages/sync.py | 2 +-
- .../messages/frontend_messages/terminate.py | 2 +-
- vertica_python/vertica/messages/message.py | 2 +-
- 45 files changed, 97 insertions(+), 94 deletions(-)
++ .../vertica/messages/frontend_messages/startup.py | 8 +--
++ .../vertica/messages/frontend_messages/sync.py | 4 +-
++ .../messages/frontend_messages/terminate.py | 4 +-
++ vertica_python/vertica/messages/message.py | 14 ++---
++ 46 files changed, 205 insertions(+), 196 deletions(-)
+
+diff --git a/vertica_python/__init__.py b/vertica_python/__init__.py
+index 5a7dc99..1a751da 100644
+--- a/vertica_python/__init__.py
++++ b/vertica_python/__init__.py
+@@ -1,4 +1,4 @@
+-from __future__ import absolute_import
++
+
+ from vertica_python.vertica.connection import Connection
+
+diff --git a/vertica_python/datatypes.py b/vertica_python/datatypes.py
+index c459295..89fe296 100644
+--- a/vertica_python/datatypes.py
++++ b/vertica_python/datatypes.py
+@@ -1,4 +1,4 @@
+-from __future__ import absolute_import
++
+
+ from datetime import datetime
+ from datetime import timedelta
+diff --git a/vertica_python/errors.py b/vertica_python/errors.py
- index 1b9f842..28bc605 100644
++index 1b9f842..08ae256 100644
+--- a/vertica_python/errors.py
++++ b/vertica_python/errors.py
+@@ -1,14 +1,16 @@
+-from __future__ import absolute_import
+
+-import exceptions
++
++import sys
++if sys.version_info < (3,):
++ import exceptions
+ import re
+
+
+-class Error(exceptions.StandardError):
++class Error(Exception):
+ pass
+
+
+-class Warning(exceptions.StandardError):
++class Warning(Exception):
+ pass
+
+
++@@ -128,13 +130,13 @@ class InvalidDatetimeFormat(QueryError):
++
++
++ QUERY_ERROR_CLASSES = {
++- '55V03': LockFailure,
++- '53000': InsufficientResources,
++- '53200': OutOfMemory,
++- '42601': VerticaSyntaxError,
++- '42V01': MissingRelation,
++- '42703': MissingColumn,
++- '22V04': CopyRejected,
++- '42501': PermissionDenied,
++- '22007': InvalidDatetimeFormat
+++ b'55V03': LockFailure,
+++ b'53000': InsufficientResources,
+++ b'53200': OutOfMemory,
+++ b'42601': VerticaSyntaxError,
+++ b'42V01': MissingRelation,
+++ b'42703': MissingColumn,
+++ b'22V04': CopyRejected,
+++ b'42501': PermissionDenied,
+++ b'22007': InvalidDatetimeFormat
++ }
+diff --git a/vertica_python/tests/basic_tests.py b/vertica_python/tests/basic_tests.py
- index 0593e40..9627c43 100644
++index 0593e40..dbc72de 100644
+--- a/vertica_python/tests/basic_tests.py
++++ b/vertica_python/tests/basic_tests.py
+@@ -2,7 +2,7 @@ import unittest
+ import logging
+ import tempfile
+
+-from test_commons import conn_info
++from .test_commons import conn_info
+
+ import vertica_python
+ from vertica_python import errors
++@@ -184,7 +184,7 @@ class TestVerticaPython(unittest.TestCase):
++ cur2 = conn.cursor()
++
++ f = tempfile.TemporaryFile()
++- f.write("1,foo\n2,bar")
+++ f.write(b"1,foo\n2,bar")
++ # move rw pointer to top of file
++ f.seek(0)
++ cur.copy(""" COPY vertica_python_unit_test (a, b) from stdin DELIMITER ',' """, f)
+diff --git a/vertica_python/tests/date_tests.py b/vertica_python/tests/date_tests.py
+index 90e4486..4477165 100644
+--- a/vertica_python/tests/date_tests.py
++++ b/vertica_python/tests/date_tests.py
+@@ -1,5 +1,5 @@
+ from datetime import date, datetime
+-from test_commons import *
++from .test_commons import *
+ from vertica_python import errors
+ from vertica_python.vertica.column import timestamp_parse
+
++diff --git a/vertica_python/tests/unicode_tests.py b/vertica_python/tests/unicode_tests.py
++index 42a5bc6..5fe9907 100644
++--- a/vertica_python/tests/unicode_tests.py
+++++ b/vertica_python/tests/unicode_tests.py
++@@ -3,6 +3,17 @@ from .. import connect
++
++
++ class UnicodeTestCase(VerticaTestCase):
+++ def test_unicode_query(self):
+++ value = u'\u16a0'
+++ query = u"SELECT '%s'" % value
+++
+++ with connect(**conn_info) as conn:
+++ cur = conn.cursor()
+++ cur.execute(query)
+++ res = cur.fetchone()
+++
+++ assert res[0] == value
+++
++ def test_unicode_named_parameter_binding(self):
++ key = u'\u16a0'
++ value = 1
+diff --git a/vertica_python/vertica/column.py b/vertica_python/vertica/column.py
- index 7dd4df5..52e3e55 100644
++index 7dd4df5..91c41dd 100644
+--- a/vertica_python/vertica/column.py
++++ b/vertica_python/vertica/column.py
- @@ -1,4 +1,4 @@
++@@ -1,8 +1,9 @@
+-from __future__ import absolute_import
++
+
+ from collections import namedtuple
+ import re
- @@ -81,7 +81,7 @@ def date_parse(s):
- if s.endswith(' BC'):
- raise errors.NotSupportedError('Dates Before Christ are not supported. Got: ' + s)
++
+++from builtins import str
++ from decimal import Decimal
++ from datetime import date
++ from datetime import datetime
++@@ -78,10 +79,10 @@ def date_parse(s):
++ :return: an instance of datetime.date
++ :raises NotSupportedError when a date Before Christ is encountered
++ """
++- if s.endswith(' BC'):
++- raise errors.NotSupportedError('Dates Before Christ are not supported. Got: ' + s)
+++ if s.endswith(b' BC'):
+++ raise errors.NotSupportedError('Dates Before Christ are not supported. Got: ' + str(s, 'utf-8'))
+
+- return date(*map(lambda x: int(x), s.split('-')))
- + return date(*[int(x) for x in s.split('-')])
+++ return date(*map(lambda x: int(x), s.split(b'-')))
+
+ ColumnTuple = namedtuple(
+ 'Column',
- @@ -165,7 +165,7 @@ class Column(object):
++@@ -105,8 +106,8 @@ class Column(object):
++ ('bool', lambda s: s == 't'),
++ ('integer', lambda s: int(s)),
++ ('float', lambda s: float(s)),
++- ('char', lambda s: unicode(s, 'utf-8', unicode_error)),
++- ('varchar', lambda s: unicode(s, 'utf-8', unicode_error)),
+++ ('char', lambda s: str(s, 'utf-8', unicode_error)),
+++ ('varchar', lambda s: str(s, 'utf-8', unicode_error)),
++ ('date', date_parse),
++ ('time', None),
++ ('timestamp', timestamp_parse),
++@@ -165,7 +166,7 @@ class Column(object):
+ return self.props.__str__()
+
+ def __unicode__(self):
+- return unicode(self.props.__str__())
++ return str(self.props.__str__())
+
+ def __repr__(self):
+ return self.props.__str__()
+diff --git a/vertica_python/vertica/connection.py b/vertica_python/vertica/connection.py
- index 8bc9a1e..7176f48 100644
++index 8bc9a1e..ddbdaf4 100644
+--- a/vertica_python/vertica/connection.py
++++ b/vertica_python/vertica/connection.py
+@@ -1,4 +1,4 @@
+-from __future__ import absolute_import
++
+
+ import logging
+ import select
- @@ -14,6 +14,7 @@ from vertica_python.vertica.messages.message import BackendMessage
++@@ -7,6 +7,8 @@ import ssl
++
++ from struct import unpack
++
+++from builtins import str
+++
++ import vertica_python.errors as errors
++ import vertica_python.vertica.messages as messages
++
++@@ -14,6 +16,7 @@ from vertica_python.vertica.messages.message import BackendMessage
+
+ from vertica_python.vertica.cursor import Cursor
+ from vertica_python.errors import SSLNotSupported
++import collections
+
+ logger = logging.getLogger('vertica')
+
- @@ -24,7 +25,7 @@ class Connection(object):
++@@ -24,7 +27,7 @@ class Connection(object):
+
+ options = options or {}
+ self.options = dict(
+- (key, value) for key, value in options.iteritems() if value is not None
++ (key, value) for key, value in options.items() if value is not None
+ )
+
+ # we only support one cursor per connection
- @@ -134,7 +135,7 @@ class Connection(object):
++@@ -37,13 +40,13 @@ class Connection(object):
++ def __enter__(self):
++ return self
++
++- def __exit__(self, type, value, traceback):
+++ def __exit__(self, type_, value, traceback):
++ try:
++ # if there's no outstanding transaction, we can simply close the connection
++ if self.transaction_status in (None, 'in_transaction'):
++ return
++
++- if type is not None:
+++ if type_ is not None:
++ self.rollback()
++ else:
++ self.commit()
++@@ -134,7 +137,7 @@ class Connection(object):
+
+ is_stream = hasattr(message, "read_bytes")
+
+- if (hasattr(message, 'to_bytes') is False or callable(getattr(message, 'to_bytes')) is False) and not is_stream:
++ if (hasattr(message, 'to_bytes') is False or isinstance(getattr(message, 'to_bytes'), collections.Callable) is False) and not is_stream:
+ raise TypeError("invalid message: ({0})".format(message))
+
+ logger.debug('=> %s', message)
- @@ -151,7 +152,7 @@ class Connection(object):
++@@ -151,12 +154,12 @@ class Connection(object):
+
+ self._socket().sendall(data)
+
+- except Exception, e:
++ except Exception as e:
+ self.close_socket()
- if e.message == 'unsupported authentication method: 9':
++- if e.message == 'unsupported authentication method: 9':
+++ if str(e) == 'unsupported authentication method: 9':
+ raise errors.ConnectionError('Error during authentication. Your password might be expired.')
- @@ -221,7 +222,7 @@ class Connection(object):
++ else:
++- raise errors.ConnectionError(e.message)
+++ raise errors.ConnectionError(str(e))
++
++ def close_socket(self):
++ try:
++@@ -173,14 +176,14 @@ class Connection(object):
++ try:
++ ready = select.select([self._socket()], [], [], self.options['read_timeout'])
++ if len(ready[0]) > 0:
++- type = self.read_bytes(1)
+++ type_ = self.read_bytes(1)
++ size = unpack('!I', self.read_bytes(4))[0]
++
++ if size < 4:
++ raise errors.MessageError(
++ "Bad message size: {0}".format(size)
++ )
++- message = BackendMessage.factory(type, self.read_bytes(size - 4))
+++ message = BackendMessage.factory(type_, self.read_bytes(size - 4))
++ logger.debug('<= %s', message)
++ return message
++ else:
++@@ -190,7 +193,7 @@ class Connection(object):
++ raise
++ except Exception as e:
++ self.close_socket()
++- raise errors.ConnectionError(e.message)
+++ raise errors.ConnectionError(str(e))
++
++ def process_message(self, message):
++ if isinstance(message, messages.ErrorResponse):
++@@ -221,7 +224,7 @@ class Connection(object):
+
+ def __str__(self):
+ safe_options = dict(
+- (key, value) for key, value in self.options.iteritems() if key != 'password'
++ (key, value) for key, value in self.options.items() if key != 'password'
+ )
+ s1 = "<Vertica.Connection:{0} parameters={1} backend_pid={2}, ".format(
+ id(self), self.parameters, self.backend_pid
++@@ -233,12 +236,12 @@ class Connection(object):
++ return s1 + s2
++
++ def read_bytes(self, n):
++- results = ''
+++ results = bytes()
++ while len(results) < n:
++- bytes = self._socket().recv(n - len(results))
++- if not bytes:
+++ bytes_ = self._socket().recv(n - len(results))
+++ if not bytes_:
++ raise errors.ConnectionError("Connection closed by Vertica")
++- results = results + bytes
+++ results = results + bytes_
++ return results
++
++ def startup_connection(self):
+diff --git a/vertica_python/vertica/cursor.py b/vertica_python/vertica/cursor.py
- index 4389951..c4a0381 100644
++index 4389951..e26d3c1 100644
+--- a/vertica_python/vertica/cursor.py
++++ b/vertica_python/vertica/cursor.py
- @@ -1,4 +1,4 @@
++@@ -1,8 +1,10 @@
+-from __future__ import absolute_import
++
+
+ import re
+ import logging
- @@ -57,7 +57,7 @@ class Cursor(object):
++
+++from builtins import str
+++
++ import vertica_python.errors as errors
++
++ import vertica_python.vertica.messages as messages
++@@ -30,7 +32,7 @@ class Cursor(object):
++ def __enter__(self):
++ return self
++
++- def __exit__(self, type, value, traceback):
+++ def __exit__(self, type_, value, traceback):
++ self.close()
++
++ #
++@@ -57,19 +59,19 @@ class Cursor(object):
+ for key in parameters:
+ param = parameters[key]
+ # Make sure adapt() behaves properly
+- if isinstance(param, unicode):
++ if isinstance(param, str):
+ v = adapt(param.encode('utf8')).getquoted()
+ else:
+ v = adapt(param).getquoted()
- @@ -69,7 +69,7 @@ class Cursor(object):
++
++ # Using a regex with word boundary to correctly handle params with similar names
++ # such as :s and :start
++- match_str = u':%s\\b' % unicode(key)
+++ match_str = u':%s\\b' % str(key)
++ operation = re.sub(match_str, v.decode('utf-8'), operation, flags=re.UNICODE)
+ elif isinstance(parameters, tuple):
+ tlist = []
+ for p in parameters:
+- if isinstance(p, unicode):
++ if isinstance(p, str):
+ tlist.append(adapt(p.encode('utf8')).getquoted())
+ else:
+ tlist.append(adapt(p).getquoted())
++@@ -89,7 +91,7 @@ class Cursor(object):
++ if isinstance(message, messages.ErrorResponse):
++ raise errors.QueryError.from_error_response(message, operation)
++ elif isinstance(message, messages.RowDescription):
++- self.description = map(lambda fd: Column(fd, self.unicode_error), message.fields)
+++ self.description = list(map(lambda fd: Column(fd, self.unicode_error), message.fields))
++ elif isinstance(message, messages.DataRow):
++ break
++ elif isinstance(message, messages.ReadyForQuery):
+diff --git a/vertica_python/vertica/messages/__init__.py b/vertica_python/vertica/messages/__init__.py
+index d15ed69..7168246 100644
+--- a/vertica_python/vertica/messages/__init__.py
++++ b/vertica_python/vertica/messages/__init__.py
+@@ -1,39 +1,39 @@
+-from backend_messages.authentication import Authentication
+-from backend_messages.backend_key_data import BackendKeyData
+-from backend_messages.bind_complete import BindComplete
+-from backend_messages.close_complete import CloseComplete
+-from backend_messages.command_complete import CommandComplete
+-from backend_messages.copy_in_response import CopyInResponse
+-from backend_messages.data_row import DataRow
+-from backend_messages.empty_query_response import EmptyQueryResponse
+-from backend_messages.error_response import ErrorResponse
+-from backend_messages.no_data import NoData
+-from backend_messages.notice_response import NoticeResponse
+-from backend_messages.parameter_description import ParameterDescription
+-from backend_messages.parameter_status import ParameterStatus
+-from backend_messages.parse_complete import ParseComplete
+-from backend_messages.portal_suspended import PortalSuspended
+-from backend_messages.ready_for_query import ReadyForQuery
+-from backend_messages.row_description import RowDescription
+-from backend_messages.unknown import Unknown
++from .backend_messages.authentication import Authentication
++from .backend_messages.backend_key_data import BackendKeyData
++from .backend_messages.bind_complete import BindComplete
++from .backend_messages.close_complete import CloseComplete
++from .backend_messages.command_complete import CommandComplete
++from .backend_messages.copy_in_response import CopyInResponse
++from .backend_messages.data_row import DataRow
++from .backend_messages.empty_query_response import EmptyQueryResponse
++from .backend_messages.error_response import ErrorResponse
++from .backend_messages.no_data import NoData
++from .backend_messages.notice_response import NoticeResponse
++from .backend_messages.parameter_description import ParameterDescription
++from .backend_messages.parameter_status import ParameterStatus
++from .backend_messages.parse_complete import ParseComplete
++from .backend_messages.portal_suspended import PortalSuspended
++from .backend_messages.ready_for_query import ReadyForQuery
++from .backend_messages.row_description import RowDescription
++from .backend_messages.unknown import Unknown
+
+-from frontend_messages.bind import Bind
+-from frontend_messages.cancel_request import CancelRequest
+-from frontend_messages.close import Close
+-from frontend_messages.copy_data import CopyData
+-from frontend_messages.copy_stream import CopyStream
+-from frontend_messages.copy_done import CopyDone
+-from frontend_messages.copy_fail import CopyFail
+-from frontend_messages.describe import Describe
+-from frontend_messages.execute import Execute
+-from frontend_messages.flush import Flush
+-from frontend_messages.parse import Parse
+-from frontend_messages.password import Password
+-from frontend_messages.query import Query
+-from frontend_messages.ssl_request import SslRequest
+-from frontend_messages.startup import Startup
+-from frontend_messages.sync import Sync
+-from frontend_messages.terminate import Terminate
++from .frontend_messages.bind import Bind
++from .frontend_messages.cancel_request import CancelRequest
++from .frontend_messages.close import Close
++from .frontend_messages.copy_data import CopyData
++from .frontend_messages.copy_stream import CopyStream
++from .frontend_messages.copy_done import CopyDone
++from .frontend_messages.copy_fail import CopyFail
++from .frontend_messages.describe import Describe
++from .frontend_messages.execute import Execute
++from .frontend_messages.flush import Flush
++from .frontend_messages.parse import Parse
++from .frontend_messages.password import Password
++from .frontend_messages.query import Query
++from .frontend_messages.ssl_request import SslRequest
++from .frontend_messages.startup import Startup
++from .frontend_messages.sync import Sync
++from .frontend_messages.terminate import Terminate
+
+ __all__ = ["Authentication", "BackendKeyData", "BindComplete", "CloseComplete", "CommandComplete",
+ "CopyInResponse", "DataRow", "EmptyQueryResponse", "ErrorResponse", "NoData", "NoticeResponse",
+diff --git a/vertica_python/vertica/messages/backend_messages/authentication.py b/vertica_python/vertica/messages/backend_messages/authentication.py
- index 54add1a..6575207 100644
++index 54add1a..3e0a93e 100644
+--- a/vertica_python/vertica/messages/backend_messages/authentication.py
++++ b/vertica_python/vertica/messages/backend_messages/authentication.py
+@@ -1,4 +1,4 @@
+-from __future__ import absolute_import
++
+
+ from struct import unpack
+
++@@ -27,4 +27,4 @@ class Authentication(BackendMessage):
++ self.auth_data = other
++
++
++-Authentication._message_id('R')
+++Authentication._message_id(b'R')
+diff --git a/vertica_python/vertica/messages/backend_messages/backend_key_data.py b/vertica_python/vertica/messages/backend_messages/backend_key_data.py
- index 317d450..ce1ce52 100644
++index 317d450..d2f8316 100644
+--- a/vertica_python/vertica/messages/backend_messages/backend_key_data.py
++++ b/vertica_python/vertica/messages/backend_messages/backend_key_data.py
+@@ -1,4 +1,4 @@
+-from __future__ import absolute_import
++
+
+ from struct import unpack
+
++@@ -13,4 +13,4 @@ class BackendKeyData(BackendMessage):
++ self.key = unpacked[1]
++
++
++-BackendKeyData._message_id('K')
+++BackendKeyData._message_id(b'K')
+diff --git a/vertica_python/vertica/messages/backend_messages/bind_complete.py b/vertica_python/vertica/messages/backend_messages/bind_complete.py
- index 5d25e1d..e2510da 100644
++index 5d25e1d..12c352a 100644
+--- a/vertica_python/vertica/messages/backend_messages/bind_complete.py
++++ b/vertica_python/vertica/messages/backend_messages/bind_complete.py
+@@ -1,4 +1,4 @@
+-from __future__ import absolute_import
++
+
+ from vertica_python.vertica.messages.message import BackendMessage
+
++@@ -7,4 +7,4 @@ class BindComplete(BackendMessage):
++ pass
++
++
++-BindComplete._message_id('2')
+++BindComplete._message_id(b'2')
+diff --git a/vertica_python/vertica/messages/backend_messages/close_complete.py b/vertica_python/vertica/messages/backend_messages/close_complete.py
- index fea59dd..bf138c1 100644
++index fea59dd..4ff7ddf 100644
+--- a/vertica_python/vertica/messages/backend_messages/close_complete.py
++++ b/vertica_python/vertica/messages/backend_messages/close_complete.py
+@@ -1,4 +1,4 @@
+-from __future__ import absolute_import
++
+
+ from vertica_python.vertica.messages.message import BackendMessage
+
++@@ -7,4 +7,4 @@ class CloseComplete(BackendMessage):
++ pass
++
++
++-CloseComplete._message_id('3')
+++CloseComplete._message_id(b'3')
+diff --git a/vertica_python/vertica/messages/backend_messages/command_complete.py b/vertica_python/vertica/messages/backend_messages/command_complete.py
- index 92873f2..ab0be2c 100644
++index 92873f2..802577c 100644
+--- a/vertica_python/vertica/messages/backend_messages/command_complete.py
++++ b/vertica_python/vertica/messages/backend_messages/command_complete.py
+@@ -1,4 +1,4 @@
+-from __future__ import absolute_import
++
+
+ import re
+
++@@ -13,15 +13,15 @@ class CommandComplete(BackendMessage):
++
++ data = unpack('{0}sx'.format(len(data) - 1), data)[0]
++
++- if re.match("INSERT", data) is not None:
++- splitstr = data.split(' ', 3)
+++ if re.match(b"INSERT", data) is not None:
+++ splitstr = data.split(b' ', 3)
++ self.tag = splitstr[0]
++ if len(splitstr) >= 2:
++ self.oid = int(splitstr[1])
++ if len(splitstr) >= 3:
++ self.rows = int(splitstr[2])
++- elif re.match("(DELETE|UPDATE|MOVE|FETCH|COPY)", data) is not None:
++- splitstr = data.split(' ', 2)
+++ elif re.match(b"(DELETE|UPDATE|MOVE|FETCH|COPY)", data) is not None:
+++ splitstr = data.split(b' ', 2)
++ self.tag = splitstr[0]
++ if len(splitstr) >= 2:
++ self.rows = int(splitstr[1])
++@@ -29,4 +29,4 @@ class CommandComplete(BackendMessage):
++ self.tag = data
++
++
++-CommandComplete._message_id('C')
+++CommandComplete._message_id(b'C')
+diff --git a/vertica_python/vertica/messages/backend_messages/copy_in_response.py b/vertica_python/vertica/messages/backend_messages/copy_in_response.py
- index 1566035..78ea2ca 100644
++index 1566035..71c2bc2 100644
+--- a/vertica_python/vertica/messages/backend_messages/copy_in_response.py
++++ b/vertica_python/vertica/messages/backend_messages/copy_in_response.py
+@@ -1,4 +1,4 @@
+-from __future__ import absolute_import
++
+
+ from struct import unpack
+
++@@ -8,9 +8,9 @@ from vertica_python.vertica.messages.message import BackendMessage
++ class CopyInResponse(BackendMessage):
++
++ def __init__(self, data):
++- values = unpack('!B{0}H'.format((len(data) - 1)/2), data)
+++ values = unpack('!B{0}H'.format((len(data) - 1)//2), data)
++ self.format = values[0]
++ self.column_formats = values[2::]
++
++
++-CopyInResponse._message_id('G')
+++CopyInResponse._message_id(b'G')
+diff --git a/vertica_python/vertica/messages/backend_messages/data_row.py b/vertica_python/vertica/messages/backend_messages/data_row.py
- index 52eec1a..163b19d 100644
++index 52eec1a..8c7fbc5 100644
+--- a/vertica_python/vertica/messages/backend_messages/data_row.py
++++ b/vertica_python/vertica/messages/backend_messages/data_row.py
- @@ -1,4 +1,4 @@
++@@ -1,5 +1,6 @@
+-from __future__ import absolute_import
- +
+
+++
+++from builtins import range
+ from struct import unpack, unpack_from
+
- @@ -12,7 +12,7 @@ class DataRow(BackendMessage):
++ from vertica_python.vertica.messages.message import BackendMessage
++@@ -12,7 +13,7 @@ class DataRow(BackendMessage):
+ field_count = unpack('!H', data[0:2])[0]
+ pos = 2
+
+- for i in xrange(field_count):
++ for i in range(field_count):
+ size = unpack_from('!I', data, pos)[0]
+
+ if size == 4294967295:
++@@ -25,4 +26,4 @@ class DataRow(BackendMessage):
++ pos += (4 + max(size, 0))
++
++
++-DataRow._message_id('D')
+++DataRow._message_id(b'D')
+diff --git a/vertica_python/vertica/messages/backend_messages/empty_query_response.py b/vertica_python/vertica/messages/backend_messages/empty_query_response.py
- index fbe68aa..3ba6a7d 100644
++index fbe68aa..9b3eb20 100644
+--- a/vertica_python/vertica/messages/backend_messages/empty_query_response.py
++++ b/vertica_python/vertica/messages/backend_messages/empty_query_response.py
+@@ -1,4 +1,4 @@
+-from __future__ import absolute_import
++
+
+ from vertica_python.vertica.messages.message import BackendMessage
+
++@@ -7,4 +7,4 @@ class EmptyQueryResponse(BackendMessage):
++ pass
++
++
++-EmptyQueryResponse._message_id('I')
+++EmptyQueryResponse._message_id(b'I')
+diff --git a/vertica_python/vertica/messages/backend_messages/error_response.py b/vertica_python/vertica/messages/backend_messages/error_response.py
- index 471c16e..5ad1065 100644
++index 471c16e..cf03e2a 100644
+--- a/vertica_python/vertica/messages/backend_messages/error_response.py
++++ b/vertica_python/vertica/messages/backend_messages/error_response.py
+@@ -1,4 +1,4 @@
+-from __future__ import absolute_import
++
+
+ from vertica_python.vertica.messages.message import BackendMessage
+ from vertica_python.vertica.messages.backend_messages.notice_response import NoticeResponse
++@@ -8,4 +8,4 @@ class ErrorResponse(NoticeResponse, BackendMessage):
++ pass
++
++
++-ErrorResponse._message_id('E')
+++ErrorResponse._message_id(b'E')
+diff --git a/vertica_python/vertica/messages/backend_messages/no_data.py b/vertica_python/vertica/messages/backend_messages/no_data.py
- index b9c3c7c..cb4030d 100644
++index b9c3c7c..78086ff 100644
+--- a/vertica_python/vertica/messages/backend_messages/no_data.py
++++ b/vertica_python/vertica/messages/backend_messages/no_data.py
+@@ -1,4 +1,4 @@
+-from __future__ import absolute_import
++
+
+ from vertica_python.vertica.messages.message import BackendMessage
+
++@@ -7,4 +7,4 @@ class NoData(BackendMessage):
++ pass
++
++
++-NoData._message_id('n')
+++NoData._message_id(b'n')
+diff --git a/vertica_python/vertica/messages/backend_messages/notice_response.py b/vertica_python/vertica/messages/backend_messages/notice_response.py
- index e0dc35c..4916fef 100644
++index e0dc35c..fadf7ff 100644
+--- a/vertica_python/vertica/messages/backend_messages/notice_response.py
++++ b/vertica_python/vertica/messages/backend_messages/notice_response.py
- @@ -1,4 +1,4 @@
++@@ -1,6 +1,4 @@
+-from __future__ import absolute_import
- +
-
- import string
+
++-import string
++
++ from struct import unpack_from
++
++@@ -10,18 +8,18 @@ from vertica_python.vertica.messages.message import BackendMessage
++ class NoticeResponse(BackendMessage):
++
++ FIELDS_DEFINITIONS = [
++- {'type': 'q', 'name': "Internal Query", 'method': 'internal_query'},
++- {'type': 'S', 'name': "Severity", 'method': 'severity'},
++- {'type': 'M', 'name': "Message", 'method': 'message'},
++- {'type': 'C', 'name': "Sqlstate", 'method': 'sqlstate'},
++- {'type': 'D', 'name': "Detail", 'method': 'detail'},
++- {'type': 'H', 'name': "Hint", 'method': 'hint'},
++- {'type': 'P', 'name': "Position", 'method': 'position'},
++- {'type': 'W', 'name': "Where", 'method': 'where'},
++- {'type': 'p', 'name': "Internal Position", 'method': 'internal_position'},
++- {'type': 'R', 'name': "Routine", 'method': 'routine'},
++- {'type': 'F', 'name': "File", 'method': 'file'},
++- {'type': 'L', 'name': "Line", 'method': 'line'}
+++ {'type': b'q', 'name': "Internal Query", 'method': 'internal_query'},
+++ {'type': b'S', 'name': "Severity", 'method': 'severity'},
+++ {'type': b'M', 'name': "Message", 'method': 'message'},
+++ {'type': b'C', 'name': "Sqlstate", 'method': 'sqlstate'},
+++ {'type': b'D', 'name': "Detail", 'method': 'detail'},
+++ {'type': b'H', 'name': "Hint", 'method': 'hint'},
+++ {'type': b'P', 'name': "Position", 'method': 'position'},
+++ {'type': b'W', 'name': "Where", 'method': 'where'},
+++ {'type': b'p', 'name': "Internal Position", 'method': 'internal_position'},
+++ {'type': b'R', 'name': "Routine", 'method': 'routine'},
+++ {'type': b'F', 'name': "File", 'method': 'file'},
+++ {'type': b'L', 'name': "Line", 'method': 'line'}
++ ]
++
++ def FIELDS(self):
++@@ -35,7 +33,7 @@ class NoticeResponse(BackendMessage):
++
++ pos = 0
++ while pos < len(data) - 1:
++- null_byte = string.find(data, '\x00', pos)
+++ null_byte = data.find(b'\x00', pos)
++
++ # This will probably work
++ unpacked = unpack_from('c{0}sx'.format(null_byte - 1 - pos), data, pos)
++@@ -58,4 +56,4 @@ class NoticeResponse(BackendMessage):
++ return ', '.join(ordered)
++
++
++-NoticeResponse._message_id('N')
+++NoticeResponse._message_id(b'N')
+diff --git a/vertica_python/vertica/messages/backend_messages/parameter_description.py b/vertica_python/vertica/messages/backend_messages/parameter_description.py
- index 0c0b9fb..d5ddac9 100644
++index 0c0b9fb..91113f1 100644
+--- a/vertica_python/vertica/messages/backend_messages/parameter_description.py
++++ b/vertica_python/vertica/messages/backend_messages/parameter_description.py
+@@ -1,4 +1,4 @@
+-from __future__ import absolute_import
++
+
+ from struct import unpack, unpack_from
+
++@@ -14,4 +14,4 @@ class ParameterDescription(BackendMessage):
++ self.parameter_types = [Column.data_types[dtid] for dtid in parameter_type_ids]
++
++
++-ParameterDescription._message_id('t')
+++ParameterDescription._message_id(b't')
+diff --git a/vertica_python/vertica/messages/backend_messages/parameter_status.py b/vertica_python/vertica/messages/backend_messages/parameter_status.py
- index 06c952a..7c32b24 100644
++index 06c952a..c96b4b2 100644
+--- a/vertica_python/vertica/messages/backend_messages/parameter_status.py
++++ b/vertica_python/vertica/messages/backend_messages/parameter_status.py
- @@ -1,4 +1,4 @@
++@@ -1,6 +1,4 @@
+-from __future__ import absolute_import
- +
+
- import string
++-import string
+
++ from struct import unpack
++
++@@ -10,10 +8,10 @@ from vertica_python.vertica.messages.message import BackendMessage
++ class ParameterStatus(BackendMessage):
++
++ def __init__(self, data):
++- null_byte = string.find(data, '\x00')
+++ null_byte = data.find(b'\x00')
++ unpacked = unpack('{0}sx{1}sx'.format(null_byte - 1, len(data) - null_byte - 1), data)
++ self.name = unpacked[0]
++ self.value = unpacked[1]
++
++
++-ParameterStatus._message_id('S')
+++ParameterStatus._message_id(b'S')
+diff --git a/vertica_python/vertica/messages/backend_messages/parse_complete.py b/vertica_python/vertica/messages/backend_messages/parse_complete.py
- index ea3c1ab..d286714 100644
++index ea3c1ab..9e3664e 100644
+--- a/vertica_python/vertica/messages/backend_messages/parse_complete.py
++++ b/vertica_python/vertica/messages/backend_messages/parse_complete.py
+@@ -1,4 +1,4 @@
+-from __future__ import absolute_import
++
+
+ from vertica_python.vertica.messages.message import BackendMessage
+
++@@ -7,4 +7,4 @@ class ParseComplete(BackendMessage):
++ pass
++
++
++-ParseComplete._message_id('1')
+++ParseComplete._message_id(b'1')
+diff --git a/vertica_python/vertica/messages/backend_messages/portal_suspended.py b/vertica_python/vertica/messages/backend_messages/portal_suspended.py
- index 773f078..3b94325 100644
++index 773f078..52c2f8b 100644
+--- a/vertica_python/vertica/messages/backend_messages/portal_suspended.py
++++ b/vertica_python/vertica/messages/backend_messages/portal_suspended.py
+@@ -1,4 +1,4 @@
+-from __future__ import absolute_import
++
+
+ from vertica_python.vertica.messages.message import BackendMessage
+
++@@ -7,4 +7,4 @@ class PortalSuspended(BackendMessage):
++ pass
++
++
++-PortalSuspended._message_id('s')
+++PortalSuspended._message_id(b's')
+diff --git a/vertica_python/vertica/messages/backend_messages/ready_for_query.py b/vertica_python/vertica/messages/backend_messages/ready_for_query.py
- index 1c38a5a..c6640e7 100644
++index 1c38a5a..6d6fec2 100644
+--- a/vertica_python/vertica/messages/backend_messages/ready_for_query.py
++++ b/vertica_python/vertica/messages/backend_messages/ready_for_query.py
+@@ -1,4 +1,4 @@
+-from __future__ import absolute_import
++
+
+ from struct import unpack
+
++@@ -8,13 +8,13 @@ from vertica_python.vertica.messages.message import BackendMessage
++ class ReadyForQuery(BackendMessage):
++
++ STATUSES = {
... 431 lines suppressed ...
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-vertica.git
More information about the Python-modules-commits
mailing list