Work on removing use of _ from builtins

This commit is contained in:
Kovid Goyal 2023-01-10 08:46:42 +05:30
parent 36ff53ca30
commit 8b71e251c4
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
53 changed files with 180 additions and 117 deletions

View File

@ -7,7 +7,7 @@ from operator import itemgetter
from qt.core import (
QAbstractItemView, QAction, QComboBox, QGridLayout, QHBoxLayout, QIcon,
QInputDialog, QItemSelectionModel, QLabel, QListWidget, QListWidgetItem,
QPushButton, Qt, QWidget, pyqtSignal
QPushButton, Qt, QWidget, pyqtSignal,
)
from calibre.gui2 import choose_files, choose_save_file
@ -17,6 +17,7 @@ from calibre.gui2.viewer.shortcuts import get_shortcut_for
from calibre.gui2.viewer.web_view import vprefs
from calibre.utils.date import EPOCH, utcnow
from calibre.utils.icu import primary_sort_key
from calibre.utils.localization import _
class BookmarksList(QListWidget):

View File

@ -28,7 +28,7 @@ from calibre.gui2.viewer.config import vprefs
from calibre.gui2.viewer.search import SearchInput
from calibre.gui2.viewer.shortcuts import get_shortcut_for, index_to_key_sequence
from calibre.gui2.widgets2 import Dialog
from calibre.utils.localization import ngettext
from calibre.utils.localization import _, ngettext
from calibre_extensions.progress_indicator import set_no_activate_on_click
decoration_cache = {}

View File

@ -18,7 +18,7 @@ from calibre import prints, random_user_agent
from calibre.gui2 import error_dialog
from calibre.gui2.viewer.web_view import apply_font_settings, vprefs
from calibre.gui2.widgets2 import Dialog
from calibre.utils.localization import canonicalize_lang, get_lang, lang_as_iso639_1
from calibre.utils.localization import _, canonicalize_lang, get_lang, lang_as_iso639_1
from calibre.utils.resources import get_path as P
from calibre.utils.webengine import (
create_script, insert_scripts, secure_webengine, setup_profile,

View File

@ -16,6 +16,7 @@ from calibre.gui2.viewer.ui import EbookViewer, is_float
from calibre.ptempfile import reset_base_dir
from calibre.utils.config import JSONConfig
from calibre.utils.ipc import viewer_socket_address
from calibre.utils.localization import _
singleinstance_name = 'calibre_viewer'
@ -168,6 +169,7 @@ def run_gui(app, opts, args, internal_book_data, listener=None):
def main(args=sys.argv):
from calibre.utils.webengine import setup_fake_protocol
# Ensure viewer can continue to function if GUI is closed
os.environ.pop('CALIBRE_WORKER_TEMP_DIR', None)
reset_base_dir()

View File

@ -5,18 +5,16 @@
import os
import subprocess
import sys
from threading import Thread
from qt.core import (
QCheckBox, QDoubleSpinBox, QFormLayout, QHBoxLayout, QIcon, QLabel, QDialog,
QLineEdit, QPageSize, QProgressDialog, QTimer, QToolButton, QVBoxLayout
QCheckBox, QDialog, QDoubleSpinBox, QFormLayout, QHBoxLayout, QIcon, QLabel,
QLineEdit, QPageSize, QProgressDialog, QTimer, QToolButton, QVBoxLayout,
)
from threading import Thread
from calibre import sanitize_file_name
from calibre.ebooks.conversion.plugins.pdf_output import PAPER_SIZES
from calibre.gui2 import (
Application, choose_save_file, dynamic, elided_text, error_dialog,
open_local_file
Application, choose_save_file, dynamic, elided_text, error_dialog, open_local_file,
)
from calibre.gui2.widgets import PaperSizes
from calibre.gui2.widgets2 import Dialog
@ -24,9 +22,9 @@ from calibre.ptempfile import PersistentTemporaryFile
from calibre.utils.config import JSONConfig
from calibre.utils.filenames import expanduser
from calibre.utils.ipc.simple_worker import start_pipe_worker
from calibre.utils.localization import _
from calibre.utils.serialize import msgpack_dumps, msgpack_loads
vprefs = JSONConfig('viewer')

View File

@ -19,7 +19,7 @@ from calibre.gui2.viewer.config import vprefs
from calibre.gui2.viewer.web_view import get_data, get_manifest
from calibre.gui2.viewer.widgets import ResultsDelegate, SearchBox
from calibre.utils.icu import primary_collator_without_punctuation
from calibre.utils.localization import ngettext
from calibre.utils.localization import _, ngettext
from polyglot.builtins import iteritems
from polyglot.functools import lru_cache
from polyglot.queue import Queue

View File

@ -6,14 +6,15 @@ import re
from functools import partial
from qt.core import (
QAbstractItemView, QApplication, QEvent, QFont, QHBoxLayout, QIcon, QMenu,
QModelIndex, QStandardItem, QStandardItemModel, QStyledItemDelegate,
Qt, QToolButton, QToolTip, QTreeView, QWidget, pyqtSignal
QModelIndex, QStandardItem, QStandardItemModel, QStyledItemDelegate, Qt,
QToolButton, QToolTip, QTreeView, QWidget, pyqtSignal,
)
from calibre.gui2 import error_dialog
from calibre.gui2.search_box import SearchBox2
from calibre.gui2.gestures import GestureManager
from calibre.gui2.search_box import SearchBox2
from calibre.utils.icu import primary_contains
from calibre.utils.localization import _
class Delegate(QStyledItemDelegate):

View File

@ -19,6 +19,7 @@ from calibre.gui2.viewer.web_view import set_book_path, vprefs
from calibre.gui2.widgets2 import Dialog
from calibre.startup import connect_lambda
from calibre.utils.icu import primary_sort_key
from calibre.utils.localization import _
class Action:

View File

@ -6,6 +6,7 @@ from qt.core import QDialog, QDialogButtonBox, QObject, QVBoxLayout, pyqtSignal
from calibre.gui2 import error_dialog
from calibre.gui2.viewer.config import get_pref_group, vprefs
from calibre.gui2.widgets2 import Dialog
from calibre.utils.localization import _
def set_sync_override(allowed):

View File

@ -48,6 +48,7 @@ from calibre.startup import connect_lambda
from calibre.utils.date import utcnow
from calibre.utils.img import image_from_path
from calibre.utils.ipc.simple_worker import WorkerError
from calibre.utils.localization import _
from polyglot.builtins import as_bytes, as_unicode, iteritems, itervalues

View File

@ -1,7 +1,6 @@
#!/usr/bin/env python
# License: GPL v3 Copyright: 2018, Kovid Goyal <kovid at kovidgoyal.net>
import os
import shutil
import sys
@ -28,7 +27,7 @@ from calibre.gui2.viewer.config import viewer_config_dir, vprefs
from calibre.gui2.viewer.tts import TTS
from calibre.gui2.webengine import RestartingWebEngineView
from calibre.srv.code import get_translations_data
from calibre.utils.localization import localize_user_manual_link
from calibre.utils.localization import _, localize_user_manual_link
from calibre.utils.resources import get_path as P
from calibre.utils.serialize import json_loads
from calibre.utils.shared_file import share_open

View File

@ -2,13 +2,13 @@
# License: GPL v3 Copyright: 2020, Kovid Goyal <kovid at kovidgoyal.net>
import re
from qt.core import (
QAction, QFont, QFontMetrics, QStyle, QStyledItemDelegate, Qt, pyqtSignal, QPalette
QAction, QFont, QFontMetrics, QPalette, QStyle, QStyledItemDelegate, Qt, pyqtSignal,
)
from calibre.gui2 import QT_HIDDEN_CLEAR_ACTION
from calibre.gui2.widgets2 import HistoryComboBox
from calibre.utils.localization import _
class ResultsDelegate(QStyledItemDelegate): # {{{

View File

@ -25,7 +25,7 @@ from calibre.gui2.filename_pattern_ui import Ui_Form
from calibre.gui2.progress_indicator import ProgressIndicator as _ProgressIndicator
from calibre.startup import connect_lambda
from calibre.utils.config import XMLConfig, prefs
from calibre.utils.localization import localize_user_manual_link
from calibre.utils.localization import _, localize_user_manual_link
from polyglot.builtins import native_string_type
history = XMLConfig('history')

View File

@ -4,13 +4,13 @@
import weakref
from qt.core import (
QApplication, QBrush, QByteArray, QCalendarWidget, QCheckBox, QColor,
QColorDialog, QComboBox, QDate, QDateTime, QDateTimeEdit, QDialog,
QDialogButtonBox, QFont, QFontInfo, QFontMetrics, QFrame, QIcon, QKeySequence,
QLabel, QLayout, QMenu, QMimeData, QPainter, QPalette, QPixmap, QPoint,
QPushButton, QRect, QScrollArea, QSize, QSizePolicy, QStyle, QStyledItemDelegate,
QStyleOptionToolButton, QStylePainter, Qt, QTabWidget, QTextBrowser, QTextCursor,
QToolButton, QUndoCommand, QUndoStack, QUrl, QWidget, pyqtSignal
QApplication, QBrush, QByteArray, QCalendarWidget, QCheckBox, QColor, QColorDialog,
QComboBox, QDate, QDateTime, QDateTimeEdit, QDialog, QDialogButtonBox, QFont,
QFontInfo, QFontMetrics, QFrame, QIcon, QKeySequence, QLabel, QLayout, QMenu,
QMimeData, QPainter, QPalette, QPixmap, QPoint, QPushButton, QRect, QScrollArea,
QSize, QSizePolicy, QStyle, QStyledItemDelegate, QStyleOptionToolButton,
QStylePainter, Qt, QTabWidget, QTextBrowser, QTextCursor, QToolButton, QUndoCommand,
QUndoStack, QUrl, QWidget, pyqtSignal,
)
from calibre.ebooks.metadata import rating_to_stars
@ -19,6 +19,7 @@ from calibre.gui2.complete2 import EditWithComplete, LineEdit
from calibre.gui2.widgets import history
from calibre.utils.config_base import tweaks
from calibre.utils.date import UNDEFINED_DATE
from calibre.utils.localization import _
from polyglot.functools import lru_cache

View File

@ -6,11 +6,11 @@ import os
import struct
import subprocess
import sys
from contextlib import suppress
from threading import Thread
from uuid import uuid4
from contextlib import suppress
from calibre.utils.localization import _
from polyglot.builtins import string_or_bytes
base = sys.extensions_location if hasattr(sys, 'new_app_layout') else os.path.dirname(sys.executable)

View File

@ -10,8 +10,8 @@ import re
import traceback
from contextlib import closing, suppress
from qt.core import (
QAbstractListModel, QDir, QIcon, QItemSelection, QItemSelectionModel, Qt,
QWizard, QWizardPage, pyqtSignal
QAbstractListModel, QDir, QIcon, QItemSelection, QItemSelectionModel, Qt, QWizard,
QWizardPage, pyqtSignal,
)
from calibre import __appname__
@ -24,7 +24,7 @@ from calibre.gui2.wizard.library_ui import Ui_WizardPage as LibraryUI
from calibre.gui2.wizard.send_email import smtp_prefs
from calibre.gui2.wizard.stanza_ui import Ui_WizardPage as StanzaUI
from calibre.utils.config import dynamic, prefs
from calibre.utils.localization import localize_user_manual_link
from calibre.utils.localization import _, localize_user_manual_link
from polyglot.builtins import iteritems
# Devices {{{
@ -717,7 +717,7 @@ class LibraryPage(QWizardPage, LibraryUI):
self.language.blockSignals(True)
self.language.clear()
from calibre.utils.localization import (
available_translations, get_lang, get_language, get_lc_messages_path
available_translations, get_lang, get_language, get_lc_messages_path,
)
lang = get_lang()
lang = get_lc_messages_path(lang) if lang else lang

View File

@ -7,17 +7,17 @@ __docformat__ = 'restructuredtext en'
import sys
from functools import partial
from qt.core import (
QCheckBox, QDialog, QDialogButtonBox, QGridLayout, QHBoxLayout, QIcon, QLabel,
QLineEdit, QPlainTextEdit, QPushButton, Qt, QVBoxLayout, QWidget, pyqtSignal,
)
from threading import Thread
from qt.core import (
QWidget, pyqtSignal, QDialog, Qt, QLabel, QLineEdit, QDialogButtonBox,
QGridLayout, QCheckBox, QIcon, QVBoxLayout, QPushButton, QPlainTextEdit,
QHBoxLayout)
from calibre import prints
from calibre.gui2.wizard.send_email_ui import Ui_Form
from calibre.utils.smtp import config as smtp_prefs
from calibre.gui2 import error_dialog, question_dialog
from calibre.gui2.wizard.send_email_ui import Ui_Form
from calibre.utils.localization import _
from calibre.utils.smtp import config as smtp_prefs
from polyglot.binary import as_hex_unicode, from_hex_unicode
from polyglot.io import PolyglotStringIO
@ -211,7 +211,7 @@ class SendEmail(QWidget, Ui_Form):
def test_email_settings(self, to):
opts = smtp_prefs().parse()
from calibre.utils.smtp import sendmail, create_mail
from calibre.utils.smtp import create_mail, sendmail
buf = PolyglotStringIO()
debug_out = partial(prints, file=buf)
oout, oerr = sys.stdout, sys.stderr

View File

@ -85,6 +85,7 @@ def is_possible_media_pack_error(e):
def show_media_pack_error():
import traceback
from calibre.gui2 import error_dialog, Application
from calibre.utils.localization import _
app = Application([])
error_dialog(None, _('Required component missing'), '<p>' + _(
'This computer is missing the Windows MediaPack, which is needed for calibre. Instructions'

View File

@ -20,7 +20,7 @@ from calibre.ebooks.metadata.opf2 import metadata_to_opf
from calibre.utils.config import prefs, tweaks
from calibre.utils.date import UNDEFINED_DATE, clean_date_for_sort, now, parse_date
from calibre.utils.icu import lower as icu_lower
from calibre.utils.localization import canonicalize_lang, get_udc, lang_map
from calibre.utils.localization import _, canonicalize_lang, get_udc, lang_map
from calibre.utils.search_query_parser import ParseException, SearchQueryParser
from polyglot.builtins import cmp, iteritems, itervalues, string_or_bytes

View File

@ -16,6 +16,7 @@ from calibre.customize import CatalogPlugin
from calibre.customize.conversion import DummyReporter
from calibre.ebooks.metadata import format_isbn
from calibre.library.catalogs import FIELDS, TEMPLATE_ALLOWED_FIELDS
from calibre.utils.localization import _
from polyglot.builtins import string_or_bytes

View File

@ -5,12 +5,15 @@ __license__ = 'GPL v3'
__copyright__ = '2012, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en'
import re, codecs, os
import codecs
import os
import re
from collections import namedtuple
from calibre.customize import CatalogPlugin
from calibre.library.catalogs import FIELDS
from calibre.customize.conversion import DummyReporter
from calibre.library.catalogs import FIELDS
from calibre.utils.localization import _
class CSV_XML(CatalogPlugin):
@ -50,12 +53,13 @@ class CSV_XML(CatalogPlugin):
"Applies to: CSV, XML output formats"))]
def run(self, path_to_output, opts, db, notification=DummyReporter()):
from lxml import etree
from calibre.ebooks.metadata import authors_to_string
from calibre.library import current_library_name
from calibre.utils.date import isoformat
from calibre.utils.html2text import html2text
from calibre.utils.logging import default_log as log
from lxml import etree
from calibre.ebooks.metadata import authors_to_string
self.fmt = path_to_output.rpartition('.')[2]
self.notification = notification

View File

@ -5,16 +5,20 @@ __license__ = 'GPL v3'
__copyright__ = '2012, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en'
import datetime, os, time
import datetime
import os
import time
from collections import namedtuple
from calibre import strftime
from calibre.customize import CatalogPlugin
from calibre.customize.conversion import OptionRecommendation, DummyReporter
from calibre.customize.conversion import DummyReporter, OptionRecommendation
from calibre.library import current_library_name
from calibre.library.catalogs import AuthorSortMismatchException, EmptyCatalogException
from calibre.ptempfile import PersistentTemporaryFile
from calibre.utils.localization import calibre_langcode_to_name, canonicalize_lang, get_lang
from calibre.utils.localization import (
_, calibre_langcode_to_name, canonicalize_lang, get_lang,
)
Option = namedtuple('Option', 'option, default, dest, action, help')
@ -190,8 +194,8 @@ class EPUB_MOBI(CatalogPlugin):
def run(self, path_to_output, opts, db, notification=DummyReporter()):
from calibre.library.catalogs.epub_mobi_builder import CatalogBuilder
from calibre.utils.logging import default_log as log
from calibre.utils.config import JSONConfig
from calibre.utils.logging import default_log as log
# If preset specified from the cli, insert stored options from JSON file
if hasattr(opts, 'preset') and opts.preset:

View File

@ -38,7 +38,7 @@ from calibre.utils.formatter import TemplateFormatter
from calibre.utils.icu import (
capitalize, collation_order, sort_key, title_case as icu_title, upper as icu_upper,
)
from calibre.utils.localization import get_lang, lang_as_iso639_1, ngettext
from calibre.utils.localization import _, get_lang, lang_as_iso639_1, ngettext
from calibre.utils.resources import get_image_path as I, get_path as P
from calibre.utils.xml_parse import safe_xml_fromstring
from calibre.utils.zipfile import ZipFile

View File

@ -5,11 +5,15 @@ __license__ = 'GPL v3'
__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en'
import re, os, traceback, fnmatch
import fnmatch
import os
import re
import traceback
from calibre import isbytestring
from calibre.constants import filesystem_encoding
from calibre.ebooks import BOOK_EXTENSIONS
from calibre.utils.localization import _
from polyglot.builtins import iteritems
EBOOK_EXTENSIONS = frozenset(BOOK_EXTENSIONS)

View File

@ -6,6 +6,7 @@ import json
import re
from textwrap import dedent
from calibre.utils.localization import _
from polyglot.binary import as_hex_unicode, from_hex_bytes
color_row_key = '*row'

View File

@ -5,14 +5,17 @@ __license__ = 'GPL v3'
__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en'
import json, re, numbers
import json
import numbers
import re
from functools import partial
from calibre import prints, force_unicode
from calibre import force_unicode, prints
from calibre.constants import preferred_encoding
from calibre.library.field_metadata import FieldMetadata
from calibre.utils.date import parse_date
from calibre.utils.config import tweaks
from calibre.utils.date import parse_date
from calibre.utils.localization import _
from polyglot.builtins import string_or_bytes
@ -217,7 +220,7 @@ class CustomColumns:
if data['display'].get('sort_alpha', False):
ans.sort(key=lambda x:x.lower())
if data['datatype'] == 'datetime' and isinstance(ans, string_or_bytes):
from calibre.db.tables import c_parse, UNDEFINED_DATE
from calibre.db.tables import UNDEFINED_DATE, c_parse
ans = c_parse(ans)
if ans is UNDEFINED_DATE:
ans = None
@ -249,7 +252,7 @@ class CustomColumns:
if data['display'].get('sort_alpha', False):
ans.sort(key=lambda x: x.lower())
if data['datatype'] == 'datetime' and isinstance(ans, string_or_bytes):
from calibre.db.tables import c_parse, UNDEFINED_DATE
from calibre.db.tables import UNDEFINED_DATE, c_parse
ans = c_parse(ans)
if ans is UNDEFINED_DATE:
ans = None

View File

@ -5,14 +5,16 @@ __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
Backend that implements storage of ebooks in an sqlite database.
'''
import datetime
import re
import sqlite3 as sqlite
import datetime, re, sre_constants
import sre_constants
from zlib import compress, decompress
from calibre.ebooks.metadata import MetaInformation
from calibre.ebooks.metadata import string_to_authors
from calibre.utils.serialize import pickle_loads, pickle_dumps
from calibre import isbytestring
from calibre.ebooks.metadata import MetaInformation, string_to_authors
from calibre.utils.localization import _
from calibre.utils.serialize import pickle_dumps, pickle_loads
class Concatenate:
@ -980,7 +982,7 @@ ALTER TABLE books ADD COLUMN isbn TEXT DEFAULT "" COLLATE NOCASE;
data = self.conn.get('SELECT data FROM covers WHERE book=?', (id,), all=False)
if not data:
return None
return(decompress(data))
return decompress(data)
def tags(self, index, index_is_id=False):
'''tags as a comma separated list or None'''

View File

@ -60,7 +60,7 @@ from calibre.utils.filenames import (
from calibre.utils.formatter_functions import load_user_template_functions
from calibre.utils.icu import lower, lower as icu_lower, sort_key, strcmp
from calibre.utils.img import save_cover_data_to
from calibre.utils.localization import calibre_langcode_to_name, canonicalize_lang
from calibre.utils.localization import _, calibre_langcode_to_name, canonicalize_lang
from calibre.utils.recycle_bin import delete_file, delete_tree
from calibre.utils.resources import get_path as P
from calibre.utils.search_query_parser import saved_searches, set_saved_searches

View File

@ -9,7 +9,7 @@ from collections import OrderedDict
from calibre.utils.config_base import tweaks
from calibre.utils.icu import lower as icu_lower
from calibre.utils.localization import ngettext
from calibre.utils.localization import _, ngettext
from polyglot.builtins import iteritems, itervalues
category_icon_map = {

View File

@ -5,17 +5,21 @@ __license__ = 'GPL v3'
__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en'
import re, os, traceback, shutil
from threading import Thread
import os
import re
import shutil
import traceback
from operator import itemgetter
from threading import Thread
from calibre.ptempfile import TemporaryDirectory
from calibre import isbytestring
from calibre.constants import filesystem_encoding
from calibre.ebooks.metadata.opf2 import OPF
from calibre.library.database2 import LibraryDatabase2
from calibre.library.prefs import DBPrefs
from calibre.constants import filesystem_encoding
from calibre.ptempfile import TemporaryDirectory
from calibre.utils.date import utcfromtimestamp
from calibre import isbytestring
from calibre.utils.localization import _
from polyglot.builtins import iteritems
NON_EBOOK_EXTENSIONS = frozenset([

View File

@ -5,19 +5,21 @@ __license__ = 'GPL v3'
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en'
import os, traceback, re, errno
import errno
import os
import re
import traceback
from calibre.constants import DEBUG
from calibre import prints, sanitize_file_name, strftime
from calibre.constants import DEBUG, preferred_encoding
from calibre.db.errors import NoSuchFormat
from calibre.utils.config import Config, StringConfig, tweaks
from calibre.utils.formatter import TemplateFormatter
from calibre.utils.filenames import shorten_components_to, ascii_filename
from calibre.constants import preferred_encoding
from calibre.ebooks.metadata import fmt_sidx
from calibre.ebooks.metadata import title_sort
from calibre.utils.date import as_local_time
from calibre import strftime, prints, sanitize_file_name
from calibre.db.lazy import FormatsList
from calibre.ebooks.metadata import fmt_sidx, title_sort
from calibre.utils.config import Config, StringConfig, tweaks
from calibre.utils.date import as_local_time
from calibre.utils.filenames import ascii_filename, shorten_components_to
from calibre.utils.formatter import TemplateFormatter
from calibre.utils.localization import _
plugboard_any_device_value = 'any device'
plugboard_any_format_value = 'any format'

View File

@ -15,6 +15,7 @@ from calibre import CurrentDir, __appname__, guess_type, prints
from calibre.constants import isbsd, islinux
from calibre.customize.ui import all_input_formats
from calibre.ptempfile import TemporaryDirectory
from calibre.utils.localization import _
from calibre.utils.resources import get_image_path as I, get_path as P
from polyglot.builtins import iteritems

View File

@ -16,7 +16,7 @@ from calibre.constants import config_dir, filesystem_encoding, iswindows
from calibre.spell import parse_lang_code
from calibre.utils.config import JSONConfig
from calibre.utils.icu import capitalize
from calibre.utils.localization import get_lang, get_system_locale
from calibre.utils.localization import _, get_lang, get_system_locale
from calibre.utils.resources import get_path as P
from polyglot.builtins import iteritems, itervalues

View File

@ -5,21 +5,24 @@ __license__ = 'GPL v3'
__copyright__ = '2015, Kovid Goyal <kovid at kovidgoyal.net>'
from functools import partial
from polyglot.builtins import iteritems, itervalues, string_or_bytes
from itertools import cycle
from calibre import force_unicode
from calibre.library.field_metadata import category_icon_map
from calibre.db.view import sanitize_sort_field_name
from calibre.ebooks.metadata import title_sort
from calibre.ebooks.metadata.book.json_codec import JsonCodec
from calibre.srv.errors import HTTPNotFound, BookNotFound
from calibre.srv.routes import endpoint, json
from calibre.library.field_metadata import category_icon_map
from calibre.srv.content import get as get_content, icon as get_icon
from calibre.srv.utils import http_date, custom_fields_to_display, encode_name, decode_name, get_db
from calibre.srv.errors import BookNotFound, HTTPNotFound
from calibre.srv.routes import endpoint, json
from calibre.srv.utils import (
custom_fields_to_display, decode_name, encode_name, get_db, http_date,
)
from calibre.utils.config import prefs, tweaks
from calibre.utils.date import isoformat, timestampfromdt
from calibre.utils.icu import numeric_sort_key as sort_key
from calibre.utils.localization import _
from polyglot.builtins import iteritems, itervalues, string_or_bytes
def ensure_val(x, *allowed):
@ -126,9 +129,10 @@ def book_to_json(ctx, rd, db, book_id,
data['_series_sort_'] = series
if device_for_template:
import posixpath
from calibre.customize.ui import device_plugins
from calibre.devices.utils import create_upload_path
from calibre.utils.filenames import ascii_filename as sanitize
from calibre.customize.ui import device_plugins
for device_class in device_plugins():
if device_class.__class__.__name__ == device_for_template:

View File

@ -21,6 +21,7 @@ from calibre.srv.render_book import RENDER_VERSION
from calibre.srv.routes import endpoint, json
from calibre.srv.utils import get_db, get_library_data
from calibre.utils.filenames import rmtree
from calibre.utils.localization import _
from calibre.utils.resources import get_path as P
from calibre.utils.serialize import json_dumps
from polyglot.builtins import as_unicode, itervalues

View File

@ -27,7 +27,7 @@ from calibre.srv.utils import get_library_data, get_use_roman
from calibre.utils.config import prefs, tweaks
from calibre.utils.icu import numeric_sort_key, sort_key
from calibre.utils.localization import (
get_lang, lang_code_for_user_manual, lang_map_for_ui, localize_website_link,
_, get_lang, lang_code_for_user_manual, lang_map_for_ui, localize_website_link,
)
from calibre.utils.resources import get_path as P
from calibre.utils.search_query_parser import ParseException

View File

@ -28,6 +28,7 @@ from calibre.utils.config_base import tweaks
from calibre.utils.date import timestampfromdt
from calibre.utils.filenames import ascii_filename, atomic_rename
from calibre.utils.img import image_from_data, scale_image
from calibre.utils.localization import _
from calibre.utils.resources import get_image_path as I, get_path as P
from calibre.utils.shared_file import share_open
from polyglot.binary import as_hex_unicode

View File

@ -13,6 +13,7 @@ from calibre.srv.changes import formats_added
from calibre.srv.errors import BookNotFound, HTTPNotFound
from calibre.srv.routes import endpoint, json
from calibre.srv.utils import get_library_data
from calibre.utils.localization import _
from calibre.utils.monotonic import monotonic
from calibre.utils.shared_file import share_open
from polyglot.builtins import iteritems
@ -120,9 +121,9 @@ def convert_book(path_to_ebook, opf_path, cover_path, output_fmt, recs):
def queue_job(ctx, rd, library_id, db, fmt, book_id, conversion_data):
from calibre.ebooks.metadata.opf2 import metadata_to_opf
from calibre.ebooks.conversion.config import GuiRecommendations, save_specifics
from calibre.customize.conversion import OptionRecommendation
from calibre.ebooks.conversion.config import GuiRecommendations, save_specifics
from calibre.ebooks.metadata.opf2 import metadata_to_opf
tdir = tempfile.mkdtemp(dir=rd.tdir)
with tempfile.NamedTemporaryFile(prefix='', suffix=('.' + fmt.lower()), dir=tdir, delete=False) as src_file:
db.copy_format_to(book_id, fmt, src_file)
@ -202,10 +203,12 @@ def conversion_status(ctx, rd, job_id):
def get_conversion_options(input_fmt, output_fmt, book_id, db):
from calibre.ebooks.conversion.plumber import create_dummy_plumber
from calibre.ebooks.conversion.config import (
load_specifics, load_defaults, OPTIONS, options_for_input_fmt, options_for_output_fmt)
from calibre.customize.conversion import OptionRecommendation
from calibre.ebooks.conversion.config import (
OPTIONS, load_defaults, load_specifics, options_for_input_fmt,
options_for_output_fmt,
)
from calibre.ebooks.conversion.plumber import create_dummy_plumber
plumber = create_dummy_plumber(input_fmt, output_fmt)
specifics = load_specifics(db, book_id)
ans = {'options': {}, 'disabled': set(), 'defaults': {}, 'help': {}}
@ -265,7 +268,8 @@ def profiles():
@endpoint('/conversion/book-data/{book_id}', postprocess=json, types={'book_id': int})
def conversion_data(ctx, rd, book_id):
from calibre.ebooks.conversion.config import (
NoSupportedInputFormats, get_input_format_for_book, get_sorted_output_formats)
NoSupportedInputFormats, get_input_format_for_book, get_sorted_output_formats,
)
db = get_library_data(ctx, rd)[0]
if not ctx.has_id(rd, db, book_id):
raise BookNotFound(book_id, db)

View File

@ -3,7 +3,6 @@
from functools import partial
from lxml.html import tostring
from lxml.html.builder import E as E_
@ -17,7 +16,8 @@ from calibre.srv.routes import endpoint
from calibre.srv.utils import get_library_data, http_date
from calibre.utils.cleantext import clean_xml_chars
from calibre.utils.date import dt_as_local, is_date_undefined, timestampfromdt
from polyglot.builtins import iteritems, string_or_bytes, as_bytes
from calibre.utils.localization import _
from polyglot.builtins import as_bytes, iteritems, string_or_bytes
from polyglot.urllib import urlencode
# /mobile {{{

View File

@ -11,7 +11,7 @@ import socket
import ssl
import traceback
from contextlib import suppress
from functools import partial, lru_cache
from functools import lru_cache, partial
from io import BytesIO
from calibre import as_unicode
@ -23,8 +23,9 @@ from calibre.srv.opts import Options
from calibre.srv.pool import PluginPool, ThreadPool
from calibre.srv.utils import (
DESIRED_SEND_BUFFER_SIZE, HandleInterrupt, create_sock_pair, socket_errors_eintr,
socket_errors_nonblocking, socket_errors_socket_closed, start_cork, stop_cork
socket_errors_nonblocking, socket_errors_socket_closed, start_cork, stop_cork,
)
from calibre.utils.localization import _
from calibre.utils.logging import ThreadSafeLog
from calibre.utils.mdns import get_external_ip
from calibre.utils.monotonic import monotonic

View File

@ -7,7 +7,7 @@ from functools import partial
from calibre import prints
from calibre.constants import iswindows, preferred_encoding
from calibre.utils.config import OptionParser
from calibre.utils.localization import ngettext
from calibre.utils.localization import _, ngettext
from polyglot.builtins import iteritems

View File

@ -19,7 +19,7 @@ from calibre.utils.date import UNDEFINED_DATE, isoformat, local_tz
from calibre.utils.file_type_icons import EXT_MAP
from calibre.utils.formatter import EvalFormatter
from calibre.utils.icu import collation_order_for_partitioning, upper as icu_upper
from calibre.utils.localization import calibre_langcode_to_name
from calibre.utils.localization import _, calibre_langcode_to_name
from polyglot.builtins import iteritems, itervalues
from polyglot.urllib import quote

View File

@ -24,7 +24,7 @@ from calibre.srv.utils import Offsets, get_library_data, http_date
from calibre.utils.config import prefs
from calibre.utils.date import as_utc, is_date_undefined, timestampfromdt
from calibre.utils.icu import sort_key
from calibre.utils.localization import ngettext
from calibre.utils.localization import _, ngettext
from calibre.utils.search_query_parser import ParseException
from calibre.utils.xml_parse import safe_xml_fromstring
from polyglot.binary import as_hex_unicode, from_hex_unicode

View File

@ -21,10 +21,10 @@ from calibre.srv.opts import opts_to_parser
from calibre.srv.users import connect
from calibre.srv.utils import HandleInterrupt, RotatingLog
from calibre.utils.config import prefs
from calibre.utils.localization import localize_user_manual_link
from calibre.utils.localization import _, localize_user_manual_link
from calibre.utils.lock import singleinstance
from polyglot.builtins import error_message
from calibre_extensions import speedup
from polyglot.builtins import error_message
def daemonize(): # {{{

View File

@ -12,6 +12,7 @@ from io import BytesIO
from calibre.ebooks.metadata.meta import get_metadata
from calibre.srv.tests.base import LibraryBaseTest
from calibre.utils.localization import _
from polyglot.binary import as_base64_bytes
from polyglot.http_client import FORBIDDEN, NOT_FOUND, OK
from polyglot.urllib import quote, urlencode

View File

@ -12,6 +12,7 @@ from threading import RLock
from calibre import as_unicode
from calibre.constants import config_dir
from calibre.utils.config import from_json, to_json
from calibre.utils.localization import _
from polyglot.builtins import iteritems

View File

@ -8,6 +8,7 @@ from calibre import as_unicode
from calibre.srv.errors import HTTPBadRequest, HTTPForbidden
from calibre.srv.routes import endpoint
from calibre.srv.users import validate_password
from calibre.utils.localization import _
@endpoint('/users/change-pw', methods={'POST'})

View File

@ -11,13 +11,14 @@ import os
from copy import deepcopy
from calibre.constants import (
CONFIG_DIR_MODE, __appname__, __author__, config_dir, get_version, iswindows
CONFIG_DIR_MODE, __appname__, __author__, config_dir, get_version, iswindows,
)
from calibre.utils.config_base import (
Config, ConfigInterface, ConfigProxy, Option, OptionSet, OptionValues,
StringConfig, commit_data, from_json, json_dumps, json_loads, make_config_dir,
plugin_dir, prefs, read_data, to_json, tweaks
Config, ConfigInterface, ConfigProxy, Option, OptionSet, OptionValues, StringConfig,
commit_data, from_json, json_dumps, json_loads, make_config_dir, plugin_dir, prefs,
read_data, to_json, tweaks,
)
from calibre.utils.localization import _
from polyglot.builtins import native_string_type, string_or_bytes
# optparse uses gettext.gettext instead of _ from builtins, so we

View File

@ -17,6 +17,7 @@ from calibre.constants import (
CONFIG_DIR_MODE, config_dir, filesystem_encoding, get_umask, iswindows,
preferred_encoding,
)
from calibre.utils.localization import _
from calibre.utils.resources import get_path as P
from polyglot.builtins import iteritems

View File

@ -2,20 +2,30 @@
# License: GPLv3 Copyright: 2015, Kovid Goyal <kovid at kovidgoyal.net>
import os, json, struct, hashlib, sys, errno, tempfile, time, shutil, uuid
import errno
import hashlib
import json
import os
import shutil
import struct
import sys
import tempfile
import time
import uuid
from collections import Counter
from calibre import prints
from calibre.constants import config_dir, iswindows, filesystem_encoding
from calibre.utils.config_base import prefs, StringConfig, create_global_prefs
from calibre.constants import config_dir, filesystem_encoding, iswindows
from calibre.utils.config import JSONConfig
from calibre.utils.config_base import StringConfig, create_global_prefs, prefs
from calibre.utils.filenames import samefile
from polyglot.builtins import iteritems, error_message
from calibre.utils.localization import _
from polyglot.binary import as_hex_unicode
from polyglot.builtins import error_message, iteritems
# Export {{{
def send_file(from_obj, to_obj, chunksize=1<<20):
m = hashlib.sha1()
while True:
@ -169,8 +179,8 @@ def all_known_libraries():
def export(destdir, library_paths=None, dbmap=None, progress1=None, progress2=None, abort=None):
from calibre.db.cache import Cache
from calibre.db.backend import DB
from calibre.db.cache import Cache
if library_paths is None:
library_paths = all_known_libraries()
dbmap = dbmap or {}

View File

@ -7,14 +7,14 @@ import errno
import os
import shutil
import time
from contextlib import closing, suppress
from math import ceil
from contextlib import suppress, closing
from calibre import force_unicode, isbytestring, prints, sanitize_file_name
from calibre.constants import (
filesystem_encoding, iswindows, preferred_encoding, ismacos
filesystem_encoding, ismacos, iswindows, preferred_encoding,
)
from calibre.utils.localization import get_udc
from calibre.utils.localization import _, get_udc
from polyglot.builtins import iteritems, itervalues
@ -331,6 +331,7 @@ class WindowsAtomicFolderMove:
def __init__(self, path):
from collections import defaultdict
from calibre_extensions import winutil
self.handle_map = {}

View File

@ -2,6 +2,9 @@
# License: GPLv3 Copyright: 2019, Kovid Goyal <kovid at kovidgoyal.net>
from calibre.utils.localization import _
def html2text(html, single_line_break=True):
from html2text import HTML2Text
import re

View File

@ -6,14 +6,15 @@ __copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en'
import time, io
import io
import time
from itertools import count
from calibre import prints
from calibre.constants import DEBUG
from polyglot.queue import Queue, Empty
from calibre.utils.localization import _
from polyglot.builtins import cmp
from polyglot.queue import Empty, Queue
job_counter = count()