mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Delay load the metadata read/write subsystem
This commit is contained in:
parent
f76307f9d5
commit
1206cb3304
@ -25,7 +25,6 @@ from calibre.devices.errors import FreeSpaceError
|
|||||||
from calibre.devices.apple.driver import ITUNES_ASYNC
|
from calibre.devices.apple.driver import ITUNES_ASYNC
|
||||||
from calibre.devices.folder_device.driver import FOLDER_DEVICE
|
from calibre.devices.folder_device.driver import FOLDER_DEVICE
|
||||||
from calibre.devices.bambook.driver import BAMBOOK, BAMBOOKWifi
|
from calibre.devices.bambook.driver import BAMBOOK, BAMBOOKWifi
|
||||||
from calibre.ebooks.metadata.meta import set_metadata
|
|
||||||
from calibre.constants import DEBUG
|
from calibre.constants import DEBUG
|
||||||
from calibre.utils.config import prefs, tweaks
|
from calibre.utils.config import prefs, tweaks
|
||||||
from calibre.utils.magick.draw import thumbnail
|
from calibre.utils.magick.draw import thumbnail
|
||||||
@ -334,6 +333,7 @@ class DeviceManager(Thread): # {{{
|
|||||||
|
|
||||||
def _upload_books(self, files, names, on_card=None, metadata=None, plugboards=None):
|
def _upload_books(self, files, names, on_card=None, metadata=None, plugboards=None):
|
||||||
'''Upload books to device: '''
|
'''Upload books to device: '''
|
||||||
|
from calibre.ebooks.metadata.meta import set_metadata
|
||||||
if hasattr(self.connected_device, 'set_plugboards') and \
|
if hasattr(self.connected_device, 'set_plugboards') and \
|
||||||
callable(self.connected_device.set_plugboards):
|
callable(self.connected_device.set_plugboards):
|
||||||
self.connected_device.set_plugboards(plugboards, find_plugboard)
|
self.connected_device.set_plugboards(plugboards, find_plugboard)
|
||||||
|
@ -13,7 +13,6 @@ from calibre.gui2.dialogs.metadata_bulk_ui import Ui_MetadataBulkDialog
|
|||||||
from calibre.gui2.dialogs.tag_editor import TagEditor
|
from calibre.gui2.dialogs.tag_editor import TagEditor
|
||||||
from calibre.ebooks.metadata import string_to_authors, authors_to_string, title_sort
|
from calibre.ebooks.metadata import string_to_authors, authors_to_string, title_sort
|
||||||
from calibre.ebooks.metadata.book.base import composite_formatter
|
from calibre.ebooks.metadata.book.base import composite_formatter
|
||||||
from calibre.ebooks.metadata.meta import get_metadata
|
|
||||||
from calibre.gui2.custom_column_widgets import populate_metadata_page
|
from calibre.gui2.custom_column_widgets import populate_metadata_page
|
||||||
from calibre.gui2 import error_dialog, ResizableDialog, UNDEFINED_QDATE, \
|
from calibre.gui2 import error_dialog, ResizableDialog, UNDEFINED_QDATE, \
|
||||||
gprefs, question_dialog
|
gprefs, question_dialog
|
||||||
@ -26,6 +25,7 @@ from calibre.utils.magick.draw import identify_data
|
|||||||
from calibre.utils.date import qt_to_dt
|
from calibre.utils.date import qt_to_dt
|
||||||
|
|
||||||
def get_cover_data(path): # {{{
|
def get_cover_data(path): # {{{
|
||||||
|
from calibre.ebooks.metadata.meta import get_metadata
|
||||||
old = prefs['read_file_metadata']
|
old = prefs['read_file_metadata']
|
||||||
if not old:
|
if not old:
|
||||||
prefs['read_file_metadata'] = True
|
prefs['read_file_metadata'] = True
|
||||||
|
@ -25,7 +25,6 @@ from calibre.ebooks import BOOK_EXTENSIONS
|
|||||||
from calibre.ebooks.metadata import string_to_authors, \
|
from calibre.ebooks.metadata import string_to_authors, \
|
||||||
authors_to_string, check_isbn, title_sort
|
authors_to_string, check_isbn, title_sort
|
||||||
from calibre.ebooks.metadata.covers import download_cover
|
from calibre.ebooks.metadata.covers import download_cover
|
||||||
from calibre.ebooks.metadata.meta import get_metadata
|
|
||||||
from calibre.ebooks.metadata import MetaInformation
|
from calibre.ebooks.metadata import MetaInformation
|
||||||
from calibre.utils.config import prefs, tweaks
|
from calibre.utils.config import prefs, tweaks
|
||||||
from calibre.utils.date import qt_to_dt, local_tz, utcfromtimestamp
|
from calibre.utils.date import qt_to_dt, local_tz, utcfromtimestamp
|
||||||
@ -353,6 +352,7 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog):
|
|||||||
self.formats_changed = True
|
self.formats_changed = True
|
||||||
|
|
||||||
def get_selected_format_metadata(self):
|
def get_selected_format_metadata(self):
|
||||||
|
from calibre.ebooks.metadata.meta import get_metadata
|
||||||
old = prefs['read_file_metadata']
|
old = prefs['read_file_metadata']
|
||||||
if not old:
|
if not old:
|
||||||
prefs['read_file_metadata'] = True
|
prefs['read_file_metadata'] = True
|
||||||
|
@ -18,7 +18,6 @@ from calibre.ptempfile import PersistentTemporaryFile
|
|||||||
from calibre.utils.config import tweaks, prefs
|
from calibre.utils.config import tweaks, prefs
|
||||||
from calibre.utils.date import dt_factory, qt_to_dt, isoformat
|
from calibre.utils.date import dt_factory, qt_to_dt, isoformat
|
||||||
from calibre.utils.icu import sort_key
|
from calibre.utils.icu import sort_key
|
||||||
from calibre.ebooks.metadata.meta import set_metadata as _set_metadata
|
|
||||||
from calibre.utils.search_query_parser import SearchQueryParser
|
from calibre.utils.search_query_parser import SearchQueryParser
|
||||||
from calibre.library.caches import _match, CONTAINS_MATCH, EQUALS_MATCH, \
|
from calibre.library.caches import _match, CONTAINS_MATCH, EQUALS_MATCH, \
|
||||||
REGEXP_MATCH, MetadataBackup, force_to_bool
|
REGEXP_MATCH, MetadataBackup, force_to_bool
|
||||||
@ -478,6 +477,7 @@ class BooksModel(QAbstractTableModel): # {{{
|
|||||||
def get_preferred_formats_from_ids(self, ids, formats,
|
def get_preferred_formats_from_ids(self, ids, formats,
|
||||||
set_metadata=False, specific_format=None,
|
set_metadata=False, specific_format=None,
|
||||||
exclude_auto=False, mode='r+b'):
|
exclude_auto=False, mode='r+b'):
|
||||||
|
from calibre.ebooks.metadata.meta import set_metadata as _set_metadata
|
||||||
ans = []
|
ans = []
|
||||||
need_auto = []
|
need_auto = []
|
||||||
if specific_format is not None:
|
if specific_format is not None:
|
||||||
@ -526,6 +526,7 @@ class BooksModel(QAbstractTableModel): # {{{
|
|||||||
def get_preferred_formats(self, rows, formats, paths=False,
|
def get_preferred_formats(self, rows, formats, paths=False,
|
||||||
set_metadata=False, specific_format=None,
|
set_metadata=False, specific_format=None,
|
||||||
exclude_auto=False):
|
exclude_auto=False):
|
||||||
|
from calibre.ebooks.metadata.meta import set_metadata as _set_metadata
|
||||||
ans = []
|
ans = []
|
||||||
need_auto = []
|
need_auto = []
|
||||||
if specific_format is not None:
|
if specific_format is not None:
|
||||||
|
@ -19,7 +19,6 @@ from calibre.gui2 import NONE, error_dialog, pixmap_to_data, gprefs
|
|||||||
from calibre.gui2.filename_pattern_ui import Ui_Form
|
from calibre.gui2.filename_pattern_ui import Ui_Form
|
||||||
from calibre import fit_image
|
from calibre import fit_image
|
||||||
from calibre.ebooks import BOOK_EXTENSIONS
|
from calibre.ebooks import BOOK_EXTENSIONS
|
||||||
from calibre.ebooks.metadata.meta import metadata_from_filename
|
|
||||||
from calibre.utils.config import prefs, XMLConfig, tweaks
|
from calibre.utils.config import prefs, XMLConfig, tweaks
|
||||||
from calibre.gui2.progress_indicator import ProgressIndicator as _ProgressIndicator
|
from calibre.gui2.progress_indicator import ProgressIndicator as _ProgressIndicator
|
||||||
from calibre.gui2.dnd import dnd_has_image, dnd_get_image, dnd_get_files, \
|
from calibre.gui2.dnd import dnd_has_image, dnd_get_image, dnd_get_files, \
|
||||||
@ -95,6 +94,7 @@ class FilenamePattern(QWidget, Ui_Form):
|
|||||||
self.re.setCurrentIndex(0)
|
self.re.setCurrentIndex(0)
|
||||||
|
|
||||||
def do_test(self):
|
def do_test(self):
|
||||||
|
from calibre.ebooks.metadata.meta import metadata_from_filename
|
||||||
try:
|
try:
|
||||||
pat = self.pattern()
|
pat = self.pattern()
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
|
@ -15,7 +15,8 @@ from math import ceil
|
|||||||
from PyQt4.QtGui import QImage
|
from PyQt4.QtGui import QImage
|
||||||
|
|
||||||
from calibre import prints
|
from calibre import prints
|
||||||
from calibre.ebooks.metadata import title_sort, author_to_author_sort
|
from calibre.ebooks.metadata import (title_sort, author_to_author_sort,
|
||||||
|
string_to_authors, authors_to_string)
|
||||||
from calibre.ebooks.metadata.opf2 import metadata_to_opf
|
from calibre.ebooks.metadata.opf2 import metadata_to_opf
|
||||||
from calibre.library.database import LibraryDatabase
|
from calibre.library.database import LibraryDatabase
|
||||||
from calibre.library.field_metadata import FieldMetadata, TagsIcons
|
from calibre.library.field_metadata import FieldMetadata, TagsIcons
|
||||||
@ -24,9 +25,7 @@ from calibre.library.caches import ResultCache
|
|||||||
from calibre.library.custom_columns import CustomColumns
|
from calibre.library.custom_columns import CustomColumns
|
||||||
from calibre.library.sqlite import connect, IntegrityError
|
from calibre.library.sqlite import connect, IntegrityError
|
||||||
from calibre.library.prefs import DBPrefs
|
from calibre.library.prefs import DBPrefs
|
||||||
from calibre.ebooks.metadata import string_to_authors, authors_to_string
|
|
||||||
from calibre.ebooks.metadata.book.base import Metadata
|
from calibre.ebooks.metadata.book.base import Metadata
|
||||||
from calibre.ebooks.metadata.meta import get_metadata, metadata_from_formats
|
|
||||||
from calibre.constants import preferred_encoding, iswindows, isosx, filesystem_encoding
|
from calibre.constants import preferred_encoding, iswindows, isosx, filesystem_encoding
|
||||||
from calibre.ptempfile import PersistentTemporaryFile
|
from calibre.ptempfile import PersistentTemporaryFile
|
||||||
from calibre.customize.ui import run_plugins_on_import
|
from calibre.customize.ui import run_plugins_on_import
|
||||||
@ -2729,6 +2728,8 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
|
|||||||
self.set_identifier(id_, 'isbn', isbn, notify=notify, commit=commit)
|
self.set_identifier(id_, 'isbn', isbn, notify=notify, commit=commit)
|
||||||
|
|
||||||
def add_catalog(self, path, title):
|
def add_catalog(self, path, title):
|
||||||
|
from calibre.ebooks.metadata.meta import get_metadata
|
||||||
|
|
||||||
format = os.path.splitext(path)[1][1:].lower()
|
format = os.path.splitext(path)[1][1:].lower()
|
||||||
with lopen(path, 'rb') as stream:
|
with lopen(path, 'rb') as stream:
|
||||||
matches = self.data.get_matches('title', '='+title)
|
matches = self.data.get_matches('title', '='+title)
|
||||||
@ -2764,6 +2765,8 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
|
|||||||
|
|
||||||
|
|
||||||
def add_news(self, path, arg):
|
def add_news(self, path, arg):
|
||||||
|
from calibre.ebooks.metadata.meta import get_metadata
|
||||||
|
|
||||||
format = os.path.splitext(path)[1][1:].lower()
|
format = os.path.splitext(path)[1][1:].lower()
|
||||||
stream = path if hasattr(path, 'read') else lopen(path, 'rb')
|
stream = path if hasattr(path, 'read') else lopen(path, 'rb')
|
||||||
stream.seek(0)
|
stream.seek(0)
|
||||||
@ -3157,6 +3160,8 @@ books_series_link feeds
|
|||||||
yield formats
|
yield formats
|
||||||
|
|
||||||
def import_book_directory_multiple(self, dirpath, callback=None):
|
def import_book_directory_multiple(self, dirpath, callback=None):
|
||||||
|
from calibre.ebooks.metadata.meta import metadata_from_formats
|
||||||
|
|
||||||
duplicates = []
|
duplicates = []
|
||||||
for formats in self.find_books_in_directory(dirpath, False):
|
for formats in self.find_books_in_directory(dirpath, False):
|
||||||
mi = metadata_from_formats(formats)
|
mi = metadata_from_formats(formats)
|
||||||
@ -3172,6 +3177,7 @@ books_series_link feeds
|
|||||||
return duplicates
|
return duplicates
|
||||||
|
|
||||||
def import_book_directory(self, dirpath, callback=None):
|
def import_book_directory(self, dirpath, callback=None):
|
||||||
|
from calibre.ebooks.metadata.meta import metadata_from_formats
|
||||||
dirpath = os.path.abspath(dirpath)
|
dirpath = os.path.abspath(dirpath)
|
||||||
formats = self.find_books_in_directory(dirpath, True)
|
formats = self.find_books_in_directory(dirpath, True)
|
||||||
formats = list(formats)[0]
|
formats = list(formats)[0]
|
||||||
|
@ -14,7 +14,6 @@ from calibre.utils.formatter import TemplateFormatter
|
|||||||
from calibre.utils.filenames import shorten_components_to, supports_long_names, \
|
from calibre.utils.filenames import shorten_components_to, supports_long_names, \
|
||||||
ascii_filename
|
ascii_filename
|
||||||
from calibre.ebooks.metadata.opf2 import metadata_to_opf
|
from calibre.ebooks.metadata.opf2 import metadata_to_opf
|
||||||
from calibre.ebooks.metadata.meta import set_metadata
|
|
||||||
from calibre.constants import preferred_encoding
|
from calibre.constants import preferred_encoding
|
||||||
from calibre.ebooks.metadata import fmt_sidx
|
from calibre.ebooks.metadata import fmt_sidx
|
||||||
from calibre.ebooks.metadata import title_sort
|
from calibre.ebooks.metadata import title_sort
|
||||||
@ -251,6 +250,7 @@ def save_book_to_disk(id_, db, root, opts, length):
|
|||||||
|
|
||||||
def do_save_book_to_disk(id_, mi, cover, plugboards,
|
def do_save_book_to_disk(id_, mi, cover, plugboards,
|
||||||
format_map, root, opts, length):
|
format_map, root, opts, length):
|
||||||
|
from calibre.ebooks.metadata.meta import set_metadata
|
||||||
available_formats = [x.lower().strip() for x in format_map.keys()]
|
available_formats = [x.lower().strip() for x in format_map.keys()]
|
||||||
if opts.formats == 'all':
|
if opts.formats == 'all':
|
||||||
asked_formats = available_formats
|
asked_formats = available_formats
|
||||||
|
Loading…
x
Reference in New Issue
Block a user