From 564f053c026fe3946d5c9c3e915ab4cbcd2694d2 Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Tue, 26 Mar 2019 03:15:21 -0400 Subject: [PATCH] python3: add reprlib wrapper to polyglot --- src/calibre/__init__.py | 2 +- src/calibre/db/tests/legacy.py | 4 ++-- src/calibre/library/sqlite.py | 2 +- src/calibre/srv/http_request.py | 4 ++-- src/calibre/srv/http_response.py | 4 ++-- src/calibre/srv/utils.py | 2 +- src/polyglot/reprlib.py | 10 ++++++++++ 7 files changed, 19 insertions(+), 9 deletions(-) create mode 100755 src/polyglot/reprlib.py diff --git a/src/calibre/__init__.py b/src/calibre/__init__.py index c71af8e0f4..11a2317d69 100644 --- a/src/calibre/__init__.py +++ b/src/calibre/__init__.py @@ -240,7 +240,7 @@ def prints(*args, **kwargs): file.write(arg) count += len(arg) except: - import repr as reprlib + from polyglot import reprlib arg = reprlib.repr(arg) file.write(arg) count += len(arg) diff --git a/src/calibre/db/tests/legacy.py b/src/calibre/db/tests/legacy.py index b0f88feb30..b7406bbca8 100644 --- a/src/calibre/db/tests/legacy.py +++ b/src/calibre/db/tests/legacy.py @@ -8,13 +8,13 @@ __copyright__ = '2013, Kovid Goyal ' import inspect, time, numbers from io import BytesIO -from repr import repr from functools import partial from operator import itemgetter from calibre.library.field_metadata import fm_as_dict from calibre.db.tests.base import BaseTest from polyglot.builtins import iteritems, range +from polyglot import reprlib # Utils {{{ @@ -32,7 +32,7 @@ class ET(object): oldres = getattr(old, self.func_name)(*self.args, **self.kwargs) newres = getattr(legacy, self.func_name)(*self.args, **self.kwargs) test.assertEqual(oldres, newres, 'Equivalence test for %s with args: %s and kwargs: %s failed' % ( - self.func_name, repr(self.args), repr(self.kwargs))) + self.func_name, reprlib.repr(self.args), reprlib.repr(self.kwargs))) self.retval = newres return newres diff --git a/src/calibre/library/sqlite.py b/src/calibre/library/sqlite.py index d876e96ccf..488925fe76 100644 --- a/src/calibre/library/sqlite.py +++ b/src/calibre/library/sqlite.py @@ -8,7 +8,6 @@ Wrapper for multi-threaded access to a single sqlite database connection. Serial all calls. ''' import sqlite3 as sqlite, traceback, time, uuid, sys, os -import repr as reprlib from sqlite3 import IntegrityError, OperationalError from threading import Thread from threading import RLock @@ -22,6 +21,7 @@ from calibre.constants import iswindows, DEBUG, plugins from calibre.utils.icu import sort_key from calibre import prints from polyglot.builtins import unicode_type +from polyglot import reprlib from polyglot.queue import Queue from dateutil.tz import tzoffset diff --git a/src/calibre/srv/http_request.py b/src/calibre/srv/http_request.py index 74ac506790..02afb5252f 100644 --- a/src/calibre/srv/http_request.py +++ b/src/calibre/srv/http_request.py @@ -6,7 +6,7 @@ from __future__ import (unicode_literals, division, absolute_import, __license__ = 'GPL v3' __copyright__ = '2015, Kovid Goyal ' -import re, repr as reprlib +import re from io import BytesIO, DEFAULT_BUFFER_SIZE from calibre import as_unicode, force_unicode @@ -14,7 +14,7 @@ from calibre.ptempfile import SpooledTemporaryFile from calibre.srv.errors import HTTPSimpleResponse from calibre.srv.loop import Connection, READ, WRITE from calibre.srv.utils import MultiDict, HTTP1, HTTP11, Accumulator -from polyglot import http_client +from polyglot import http_client, reprlib from polyglot.urllib import unquote protocol_map = {(1, 0):HTTP1, (1, 1):HTTP11} diff --git a/src/calibre/srv/http_response.py b/src/calibre/srv/http_response.py index fc11fd0782..b5b16fbe8f 100644 --- a/src/calibre/srv/http_response.py +++ b/src/calibre/srv/http_response.py @@ -6,7 +6,7 @@ from __future__ import (unicode_literals, division, absolute_import, __license__ = 'GPL v3' __copyright__ = '2015, Kovid Goyal ' -import os, hashlib, uuid, struct, repr as reprlib +import os, hashlib, uuid, struct from collections import namedtuple from io import BytesIO, DEFAULT_BUFFER_SIZE from itertools import chain, repeat @@ -26,7 +26,7 @@ from calibre.srv.utils import ( sort_q_values, get_translator_for_lang, Cookie, fast_now_strftime) from calibre.utils.speedups import ReadOnlyFileBuffer from calibre.utils.monotonic import monotonic -from polyglot import http_client +from polyglot import http_client, reprlib Range = namedtuple('Range', 'start stop size') MULTIPART_SEPARATOR = uuid.uuid4().hex.decode('ascii') diff --git a/src/calibre/srv/utils.py b/src/calibre/srv/utils.py index 7e74d2b057..0037e4e8a7 100644 --- a/src/calibre/srv/utils.py +++ b/src/calibre/srv/utils.py @@ -9,7 +9,6 @@ __copyright__ = '2015, Kovid Goyal ' import errno, socket, select, os, time from Cookie import SimpleCookie from contextlib import closing -import repr as reprlib from email.utils import formatdate from operator import itemgetter from binascii import hexlify, unhexlify @@ -23,6 +22,7 @@ from calibre.utils.socket_inheritance import set_socket_inherit from calibre.utils.logging import ThreadSafeLog from calibre.utils.shared_file import share_open, raise_winerror from polyglot.builtins import iteritems, map, unicode_type, range +from polyglot import reprlib from polyglot.urllib import parse_qs, quote as urlquote HTTP1 = 'HTTP/1.0' diff --git a/src/polyglot/reprlib.py b/src/polyglot/reprlib.py new file mode 100755 index 0000000000..2444ad1788 --- /dev/null +++ b/src/polyglot/reprlib.py @@ -0,0 +1,10 @@ +#!/usr/bin/env python2 +# vim:fileencoding=utf-8 +# License: GPL v3 Copyright: 2019, Eli Schwartz + +from polyglot.builtins import is_py3 + +if is_py3: + from reprlib import repr +else: + from repr import repr