diff --git a/ebook_converter/__init__.py b/ebook_converter/__init__.py index c920e9f..3af6217 100644 --- a/ebook_converter/__init__.py +++ b/ebook_converter/__init__.py @@ -1,8 +1,3 @@ -''' E-book management software''' -__license__ = 'GPL v3' -__copyright__ = '2008, Kovid Goyal ' -__docformat__ = 'restructuredtext en' - import math import os import pkg_resources @@ -14,7 +9,7 @@ import urllib.parse import urllib.request import warnings -from ebook_converter.polyglot.builtins import hasenv, native_string_type +from ebook_converter.polyglot.builtins import hasenv from functools import partial if not hasenv('CALIBRE_SHOW_DEPRECATION_WARNINGS'): @@ -191,10 +186,6 @@ def prints(*args, **kwargs): raise arg = repr(arg) if not isinstance(arg, bytes): - try: - arg = native_string_type(arg) - except ValueError: - arg = str(arg) if isinstance(arg, str): try: arg = arg.encode(enc) @@ -612,10 +603,7 @@ def as_unicode(obj, enc=preferred_encoding): try: obj = str(obj) except Exception: - try: - obj = native_string_type(obj) - except Exception: - obj = repr(obj) + obj = repr(obj) return force_unicode(obj, enc=enc) diff --git a/ebook_converter/constants.py b/ebook_converter/constants.py index 654a295..2abc793 100644 --- a/ebook_converter/constants.py +++ b/ebook_converter/constants.py @@ -5,7 +5,7 @@ import locale import os import sys -from ebook_converter.polyglot.builtins import environ_item, hasenv, as_unicode, native_string_type +from ebook_converter.polyglot.builtins import environ_item, hasenv, as_unicode __appname__ = 'calibre' numeric_version = (4, 12, 0) @@ -178,7 +178,7 @@ class Plugins(collections.Mapping): try: plugin_err = str(err) except Exception: - plugin_err = as_unicode(native_string_type(err), encoding=preferred_encoding, errors='replace') + plugin_err = as_unicode(err, encoding=preferred_encoding, errors='replace') self._plugins[name] = p, plugin_err # sys.path.remove(plugins_loc) diff --git a/ebook_converter/ebooks/conversion/__init__.py b/ebook_converter/ebooks/conversion/__init__.py index 944e1e7..8e83c72 100644 --- a/ebook_converter/ebooks/conversion/__init__.py +++ b/ebook_converter/ebooks/conversion/__init__.py @@ -1,11 +1,3 @@ -from ebook_converter.polyglot.builtins import native_string_type - - -__license__ = 'GPL v3' -__copyright__ = '2011, Kovid Goyal ' -__docformat__ = 'restructuredtext en' - - class ConversionUserFeedBack(Exception): def __init__(self, title, msg, level='info', det_msg=''): @@ -25,4 +17,4 @@ class ConversionUserFeedBack(Exception): # Ensure exception uses fully qualified name as this is used to detect it in # the GUI. -ConversionUserFeedBack.__name__ = native_string_type('ebook_converter.ebooks.conversion.ConversionUserFeedBack') +ConversionUserFeedBack.__name__ = 'ebook_converter.ebooks.conversion.ConversionUserFeedBack' diff --git a/ebook_converter/ebooks/docx/fields.py b/ebook_converter/ebooks/docx/fields.py index 09b5d2f..ce53800 100644 --- a/ebook_converter/ebooks/docx/fields.py +++ b/ebook_converter/ebooks/docx/fields.py @@ -1,11 +1,6 @@ import re from ebook_converter.ebooks.docx.index import process_index, polish_index_markup -from ebook_converter.polyglot.builtins import native_string_type - - -__license__ = 'GPL v3' -__copyright__ = '2013, Kovid Goyal ' class Field(object): @@ -72,7 +67,7 @@ def parser(name, field_map, default_field_name=None): ans.pop(null, None) return ans - parse.__name__ = native_string_type('parse_' + name) + parse.__name__ = 'parse_' + name return parse diff --git a/ebook_converter/ebooks/docx/writer/container.py b/ebook_converter/ebooks/docx/writer/container.py index 1794dc5..46d6e0c 100644 --- a/ebook_converter/ebooks/docx/writer/container.py +++ b/ebook_converter/ebooks/docx/writer/container.py @@ -11,11 +11,6 @@ from ebook_converter.ebooks.pdf.render.common import PAPER_SIZES from ebook_converter.utils.date import utcnow from ebook_converter.utils.localization import canonicalize_lang, lang_as_iso639_1 from ebook_converter.utils.zipfile import ZipFile -from ebook_converter.polyglot.builtins import native_string_type - - -__license__ = 'GPL v3' -__copyright__ = '2013, Kovid Goyal ' def xml2str(root, pretty_print=False, with_tail=False): @@ -237,7 +232,7 @@ class DOCX(object): namespaces = self.namespace.namespaces E = ElementMaker(namespace=namespaces['cp'], nsmap={x:namespaces[x] for x in 'cp dc dcterms xsi'.split()}) cp = E.coreProperties(E.revision("1"), E.lastModifiedBy('calibre')) - ts = utcnow().isoformat(native_string_type('T')).rpartition('.')[0] + 'Z' + ts = utcnow().isoformat('T').rpartition('.')[0] + 'Z' for x in 'created modified'.split(): x = cp.makeelement('{%s}%s' % (namespaces['dcterms'], x), **{'{%s}type' % namespaces['xsi']:'dcterms:W3CDTF'}) x.text = ts diff --git a/ebook_converter/ebooks/lrf/html/table.py b/ebook_converter/ebooks/lrf/html/table.py index ca41acc..c305da9 100644 --- a/ebook_converter/ebooks/lrf/html/table.py +++ b/ebook_converter/ebooks/lrf/html/table.py @@ -4,11 +4,6 @@ from ebook_converter.ebooks.lrf.fonts import get_font from ebook_converter.ebooks.lrf.pylrs.pylrs import TextBlock, Text, CR, Span, \ CharButton, Plot, Paragraph, \ LrsTextTag -from ebook_converter.polyglot.builtins import native_string_type - - -__license__ = 'GPL v3' -__copyright__ = '2008, Kovid Goyal ' def ceil(num): @@ -17,8 +12,8 @@ def ceil(num): def print_xml(elem): from ebook_converter.ebooks.lrf.pylrs.pylrs import ElementWriter - elem = elem.toElement(native_string_type('utf8')) - ew = ElementWriter(elem, sourceEncoding=native_string_type('utf8')) + elem = elem.toElement('utf8') + ew = ElementWriter(elem, sourceEncoding='utf8') ew.write(sys.stdout) print() diff --git a/ebook_converter/ebooks/lrf/pylrs/pylrs.py b/ebook_converter/ebooks/lrf/pylrs/pylrs.py index bcbd057..20e6f0f 100644 --- a/ebook_converter/ebooks/lrf/pylrs/pylrs.py +++ b/ebook_converter/ebooks/lrf/pylrs/pylrs.py @@ -51,7 +51,6 @@ DEFAULT_GENREADING = "fs" # default is yes to both lrf and lrs from ebook_converter import __appname__, __version__ from ebook_converter import entity_to_unicode -from ebook_converter.polyglot.builtins import native_string_type class LrsError(Exception): @@ -617,7 +616,7 @@ class Book(Delegator): _formatXml(root) tree = ElementTree(element=root) - tree.write(f, encoding=native_string_type(outputEncodingName), xml_declaration=True) + tree.write(f, encoding=outputEncodingName, xml_declaration=True) class BookInformation(Delegator): @@ -669,7 +668,7 @@ class Info(Delegator): # NB: generates an encoding attribute, which lrs2lrf does not tree = ElementTree(element=info) f = io.BytesIO() - tree.write(f, encoding=native_string_type('utf-8'), xml_declaration=True) + tree.write(f, encoding='utf-8', xml_declaration=True) xmlInfo = f.getvalue().decode('utf-8') xmlInfo = re.sub(r"\n", "", xmlInfo) xmlInfo = xmlInfo.replace("SumPage>", "Page>") diff --git a/ebook_converter/ebooks/metadata/pdf.py b/ebook_converter/ebooks/metadata/pdf.py index aff4f9c..85da406 100644 --- a/ebook_converter/ebooks/metadata/pdf.py +++ b/ebook_converter/ebooks/metadata/pdf.py @@ -9,7 +9,6 @@ from ebook_converter.constants import iswindows from ebook_converter.ptempfile import TemporaryDirectory from ebook_converter.ebooks.metadata import ( MetaInformation, string_to_authors, check_isbn, check_doi) -from ebook_converter.utils.ipc.simple_worker import fork_job, WorkerError __license__ = 'GPL v3' diff --git a/ebook_converter/polyglot/builtins.py b/ebook_converter/polyglot/builtins.py index 48af640..204e464 100644 --- a/ebook_converter/polyglot/builtins.py +++ b/ebook_converter/polyglot/builtins.py @@ -2,10 +2,6 @@ import importlib import os -native_string_type = str -iterkeys = iter - - def hasenv(x): return os.getenv(x) is not None diff --git a/ebook_converter/utils/config.py b/ebook_converter/utils/config.py index 6d48a86..71b5d70 100644 --- a/ebook_converter/utils/config.py +++ b/ebook_converter/utils/config.py @@ -14,12 +14,6 @@ from ebook_converter.utils.config_base import ( tweaks, from_json, to_json ) from ebook_converter.utils.lock import ExclusiveFile -from ebook_converter.polyglot.builtins import native_string_type - - -__license__ = 'GPL v3' -__copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' -__docformat__ = 'restructuredtext en' # optparse uses gettext.gettext instead of _ from builtins, so we @@ -164,11 +158,11 @@ class OptionParser(optparse.OptionParser): def options_iter(self): for opt in self.option_list: - if native_string_type(opt).strip(): + if str(opt).strip(): yield opt for gr in self.option_groups: for opt in gr.option_list: - if native_string_type(opt).strip(): + if str(opt).strip(): yield opt def option_by_dest(self, dest): @@ -193,7 +187,6 @@ class OptionParser(optparse.OptionParser): def add_option_group(self, *args, **kwargs): if isinstance(args[0], (str, bytes)): args = list(args) - args[0] = native_string_type(args[0]) return optparse.OptionParser.add_option_group(self, *args, **kwargs) diff --git a/ebook_converter/utils/date.py b/ebook_converter/utils/date.py index de5c6a7..34ee7c0 100644 --- a/ebook_converter/utils/date.py +++ b/ebook_converter/utils/date.py @@ -6,13 +6,8 @@ from ebook_converter import strftime from ebook_converter.constants import iswindows, isosx, plugins, preferred_encoding from ebook_converter.utils.iso8601 import utc_tz, local_tz, UNDEFINED_DATE from ebook_converter.utils.localization import lcdata -from ebook_converter.polyglot.builtins import native_string_type -__license__ = 'GPL v3' -__copyright__ = '2010, Kovid Goyal ' -__docformat__ = 'restructuredtext en' - _utc_tz = utc_tz _local_tz = local_tz @@ -39,7 +34,7 @@ else: def first_index(raw, queries): for q in queries: try: - return raw.index(native_string_type(q)) + return raw.index(q) except ValueError: pass return -1 @@ -191,8 +186,7 @@ def isoformat(date_time, assume_utc=False, as_utc=True, sep='T'): date_time = date_time.replace(tzinfo=_utc_tz if assume_utc else _local_tz) date_time = date_time.astimezone(_utc_tz if as_utc else _local_tz) - # native_string_type(sep) because isoformat barfs with unicode sep on python 2.x - return str(date_time.isoformat(native_string_type(sep))) + return str(date_time.isoformat(sep)) def internal_iso_format_string(): diff --git a/ebook_converter/utils/ipc/launch.py b/ebook_converter/utils/ipc/launch.py index 689734b..1d05662 100644 --- a/ebook_converter/utils/ipc/launch.py +++ b/ebook_converter/utils/ipc/launch.py @@ -5,7 +5,7 @@ from ebook_converter.constants import isosx, isfrozen, filesystem_encoding from ebook_converter.utils.config import prefs from ebook_converter.ptempfile import PersistentTemporaryFile, base_dir from ebook_converter.utils.serialize import msgpack_dumps -from ebook_converter.polyglot.builtins import environ_item, native_string_type +from ebook_converter.polyglot.builtins import environ_item from ebook_converter.polyglot.binary import as_hex_unicode try: import win32process @@ -14,11 +14,6 @@ except ImportError: iswindows = False -__license__ = 'GPL v3' -__copyright__ = '2009, Kovid Goyal ' -__docformat__ = 'restructuredtext en' - - if iswindows: try: windows_null_file = open(os.devnull, 'wb') @@ -89,9 +84,9 @@ class Worker(object): @property def env(self): env = os.environ.copy() - env[native_string_type('CALIBRE_WORKER')] = environ_item('1') + env['CALIBRE_WORKER'] = environ_item('1') td = as_hex_unicode(msgpack_dumps(base_dir())) - env[native_string_type('CALIBRE_WORKER_TEMP_DIR')] = environ_item(td) + env['CALIBRE_WORKER_TEMP_DIR'] = environ_item(td) env.update(self._env) return env @@ -154,7 +149,7 @@ class Worker(object): except EnvironmentError: # cwd no longer exists origwd = cwd or os.path.expanduser('~') - env[native_string_type('ORIGWD')] = environ_item(as_hex_unicode(msgpack_dumps(origwd))) + env['ORIGWD'] = environ_item(as_hex_unicode(msgpack_dumps(origwd))) _cwd = cwd if priority is None: priority = prefs['worker_process_priority'] diff --git a/ebook_converter/utils/terminal.py b/ebook_converter/utils/terminal.py index 75a5597..302d31f 100644 --- a/ebook_converter/utils/terminal.py +++ b/ebook_converter/utils/terminal.py @@ -6,13 +6,6 @@ try: except ValueError: iswindows = False -from ebook_converter.polyglot.builtins import native_string_type - - -__license__ = 'GPL v3' -__copyright__ = '2012, Kovid Goyal ' -__docformat__ = 'restructuredtext en' - def fmt(code): return '\033[%dm' % code @@ -128,7 +121,7 @@ class Detect(object): # Stream is a console self.set_console = windll.kernel32.SetConsoleTextAttribute self.default_console_text_attributes = WCOLORS['white'] - kernel32 = WinDLL(native_string_type('kernel32'), use_last_error=True) + kernel32 = WinDLL('kernel32', use_last_error=True) self.write_console = kernel32.WriteConsoleW self.write_console.argtypes = [wintypes.HANDLE, wintypes.c_wchar_p, wintypes.DWORD, POINTER(wintypes.DWORD), wintypes.LPVOID] self.write_console.restype = wintypes.BOOL