Skip to content

Commit 1af4a30

Browse files
committed
Check log level. Allow non-default json lib.
1 parent b87744e commit 1af4a30

File tree

3 files changed

+30
-8
lines changed

3 files changed

+30
-8
lines changed

prestodb/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@
2020
from . import exceptions
2121
from . import logging
2222

23-
__version__ = "0.7.0"
23+
__version__ = "0.7.1"

prestodb/client.py

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ def __init__(
210210
request_timeout=constants.DEFAULT_REQUEST_TIMEOUT, # type: Union[float, Tuple[float, float]]
211211
handle_retry=exceptions.RetryWithExponentialBackoff(),
212212
service_account_file=None,
213+
json_lib=None,
213214
):
214215
# type: (...) -> None
215216
self._client_session = ClientSession(
@@ -258,6 +259,7 @@ def __init__(
258259
self._handle_retry = handle_retry
259260
self.max_attempts = max_attempts
260261
self._http_scheme = http_scheme
262+
self.json_lib = json_lib
261263

262264
@property
263265
def transaction_id(self):
@@ -355,6 +357,8 @@ def post(self, sql):
355357
while http_response is not None and http_response.is_redirect:
356358
location = http_response.headers["Location"]
357359
url = self._redirect_handler.handle(location)
360+
log_level = logger.getEffectiveLevel()
361+
if log_level <= logging.logging.INFO:
358362
logger.info(
359363
"redirect {} from {} to {}".format(
360364
http_response.status_code, location, url
@@ -406,9 +410,14 @@ def process(self, http_response):
406410
if not http_response.ok:
407411
self.raise_response_error(http_response)
408412

413+
log_level = logger.getEffectiveLevel()
409414
http_response.encoding = "utf-8"
410-
response = http_response.json()
411-
logger.debug("HTTP {}: {}".format(http_response.status_code, response))
415+
if self.json_lib:
416+
response = self.json_lib.loads(http_response.content)
417+
else:
418+
response = http_response.json()
419+
if log_level <= logging.logging.DEBUG:
420+
logger.debug("HTTP {}: {}".format(http_response.status_code, response))
412421
if "error" in response:
413422
raise self._process_error(response["error"], response.get("id"))
414423

@@ -474,11 +483,13 @@ def __iter__(self):
474483
self._rows = None
475484

476485
# Subsequent fetches from GET requests until next_uri is empty.
486+
log_level = logger.getEffectiveLevel()
477487
while not self._query.is_finished():
478488
rows = self._query.fetch()
479489
for row in rows:
480490
self._rownumber += 1
481-
logger.debug("row {}".format(row))
491+
if log_level <= logging.logging.DEBUG:
492+
logger.debug("row {}".format(row))
482493
yield row
483494

484495

@@ -554,7 +565,9 @@ def fetch(self):
554565
if status.columns:
555566
self._columns = status.columns
556567
self._stats.update(status.stats)
557-
logger.debug(status)
568+
log_level = logger.getEffectiveLevel()
569+
if log_level <= logging.logging.DEBUG:
570+
logger.debug(status)
558571
if status.next_uri is None:
559572
self._finished = True
560573
return status.rows
@@ -565,13 +578,17 @@ def cancel(self):
565578
if self.query_id is None or self.is_finished():
566579
return
567580

581+
log_level = logger.getEffectiveLevel()
568582
self._cancelled = True
569583
url = self._request.get_url("/v1/query/{}".format(self.query_id))
570-
logger.debug("cancelling query: %s", self.query_id)
584+
if log_level <= logging.logging.DEBUG:
585+
logger.debug("cancelling query: %s", self.query_id)
571586
response = self._request.delete(url)
572-
logger.info(response)
587+
if log_level <= logging.logging.INFO:
588+
logger.info(response)
573589
if response.status_code == requests.codes.no_content:
574-
logger.debug("query cancelled: %s", self.query_id)
590+
if log_level <= logging.logging.DEBUG:
591+
logger.debug("query cancelled: %s", self.query_id)
575592
return
576593
self._request.raise_response_error(response)
577594

prestodb/dbapi.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ def __init__(
7575
max_attempts=constants.DEFAULT_MAX_ATTEMPTS,
7676
request_timeout=constants.DEFAULT_REQUEST_TIMEOUT,
7777
isolation_level=IsolationLevel.AUTOCOMMIT,
78+
json_lib=None,
7879
):
7980
self.host = host
8081
self.port = port
@@ -95,6 +96,7 @@ def __init__(
9596
self._isolation_level = isolation_level
9697
self._request = None
9798
self._transaction = None
99+
self._json_lib = json_lib
98100

99101
@property
100102
def isolation_level(self):
@@ -154,6 +156,9 @@ def _create_request(self):
154156
self.redirect_handler,
155157
self.max_attempts,
156158
self.request_timeout,
159+
None,
160+
None,
161+
self._json_lib,
157162
)
158163

159164
def cursor(self):

0 commit comments

Comments
 (0)