mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Kobo driver: Use the closing context manager for sqlite connections
This commit is contained in:
parent
75172aa9cb
commit
8a21f74f32
@ -7,6 +7,7 @@ __docformat__ = 'restructuredtext en'
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
import sqlite3 as sqlite
|
import sqlite3 as sqlite
|
||||||
|
from contextlib import closing
|
||||||
|
|
||||||
from calibre.devices.usbms.books import BookList
|
from calibre.devices.usbms.books import BookList
|
||||||
from calibre.devices.kobo.books import Book
|
from calibre.devices.kobo.books import Book
|
||||||
@ -192,7 +193,9 @@ class KOBO(USBMS):
|
|||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
return changed
|
return changed
|
||||||
|
|
||||||
connection = sqlite.connect(self.normalize_path(self._main_prefix + '.kobo/KoboReader.sqlite'))
|
with closing(sqlite.connect(
|
||||||
|
self.normalize_path(self._main_prefix +
|
||||||
|
'.kobo/KoboReader.sqlite'))) as connection:
|
||||||
|
|
||||||
# return bytestrings if the content cannot the decoded as unicode
|
# return bytestrings if the content cannot the decoded as unicode
|
||||||
connection.text_factory = lambda x: unicode(x, "utf-8", "ignore")
|
connection.text_factory = lambda x: unicode(x, "utf-8", "ignore")
|
||||||
@ -262,7 +265,6 @@ class KOBO(USBMS):
|
|||||||
need_sync = True
|
need_sync = True
|
||||||
|
|
||||||
cursor.close()
|
cursor.close()
|
||||||
connection.close()
|
|
||||||
|
|
||||||
# Remove books that are no longer in the filesystem. Cache contains
|
# Remove books that are no longer in the filesystem. Cache contains
|
||||||
# indices into the booklist if book not in filesystem, None otherwise
|
# indices into the booklist if book not in filesystem, None otherwise
|
||||||
@ -292,7 +294,8 @@ class KOBO(USBMS):
|
|||||||
# 2) content
|
# 2) content
|
||||||
|
|
||||||
debug_print('delete_via_sql: ContentID: ', ContentID, 'ContentType: ', ContentType)
|
debug_print('delete_via_sql: ContentID: ', ContentID, 'ContentType: ', ContentType)
|
||||||
connection = sqlite.connect(self.normalize_path(self._main_prefix + '.kobo/KoboReader.sqlite'))
|
with closing(sqlite.connect(self.normalize_path(self._main_prefix +
|
||||||
|
'.kobo/KoboReader.sqlite'))) as connection:
|
||||||
|
|
||||||
# return bytestrings if the content cannot the decoded as unicode
|
# return bytestrings if the content cannot the decoded as unicode
|
||||||
connection.text_factory = lambda x: unicode(x, "utf-8", "ignore")
|
connection.text_factory = lambda x: unicode(x, "utf-8", "ignore")
|
||||||
@ -341,7 +344,6 @@ class KOBO(USBMS):
|
|||||||
print "Error condition ImageID was not found"
|
print "Error condition ImageID was not found"
|
||||||
print "You likely tried to delete a book that the kobo has not yet added to the database"
|
print "You likely tried to delete a book that the kobo has not yet added to the database"
|
||||||
|
|
||||||
connection.close()
|
|
||||||
# If all this succeeds we need to delete the images files via the ImageID
|
# If all this succeeds we need to delete the images files via the ImageID
|
||||||
return ImageID
|
return ImageID
|
||||||
|
|
||||||
@ -668,7 +670,8 @@ class KOBO(USBMS):
|
|||||||
# Needs to be outside books collection as in the case of removing
|
# Needs to be outside books collection as in the case of removing
|
||||||
# the last book from the collection the list of books is empty
|
# the last book from the collection the list of books is empty
|
||||||
# and the removal of the last book would not occur
|
# and the removal of the last book would not occur
|
||||||
connection = sqlite.connect(self.normalize_path(self._main_prefix + '.kobo/KoboReader.sqlite'))
|
with closing(sqlite.connect(self.normalize_path(self._main_prefix +
|
||||||
|
'.kobo/KoboReader.sqlite'))) as connection:
|
||||||
|
|
||||||
# return bytestrings if the content cannot the decoded as unicode
|
# return bytestrings if the content cannot the decoded as unicode
|
||||||
connection.text_factory = lambda x: unicode(x, "utf-8", "ignore")
|
connection.text_factory = lambda x: unicode(x, "utf-8", "ignore")
|
||||||
@ -711,8 +714,6 @@ class KOBO(USBMS):
|
|||||||
debug_print("No Collections - reseting FavouritesIndex")
|
debug_print("No Collections - reseting FavouritesIndex")
|
||||||
self.reset_favouritesindex(connection, oncard)
|
self.reset_favouritesindex(connection, oncard)
|
||||||
|
|
||||||
connection.close()
|
|
||||||
|
|
||||||
# debug_print('Finished update_device_database_collections', collections_attributes)
|
# debug_print('Finished update_device_database_collections', collections_attributes)
|
||||||
|
|
||||||
def sync_booklists(self, booklists, end_session=True):
|
def sync_booklists(self, booklists, end_session=True):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user