diff options
author | Gonzalo Odiard <godiard@sugarlabs.org> | 2011-02-24 17:50:53 (GMT) |
---|---|---|
committer | Gonzalo Odiard <godiard@sugarlabs.org> | 2011-02-24 17:50:53 (GMT) |
commit | 9202daa7d92ada1f1536d812b0e1a62af9366192 (patch) | |
tree | fa3f9b52db7c357a1c99f0c5d7eb70669b5d3c75 | |
parent | eb8fc24dec0d113c247b7ce333cd07177611857d (diff) |
Pep8 corrections for epubview files
-rw-r--r-- | epubview/epub.py | 24 | ||||
-rw-r--r-- | epubview/epubinfo.py | 20 | ||||
-rw-r--r-- | epubview/epubview.py | 92 | ||||
-rw-r--r-- | epubview/jobs.py | 18 | ||||
-rw-r--r-- | epubview/navmap.py | 15 | ||||
-rw-r--r-- | epubview/widgets.py | 10 |
6 files changed, 117 insertions, 62 deletions
diff --git a/epubview/epub.py b/epubview/epub.py index 560c20a..063a982 100644 --- a/epubview/epub.py +++ b/epubview/epub.py @@ -17,11 +17,12 @@ import zipfile import tempfile -import os, os.path +import os from lxml import etree import shutil -import navmap, epubinfo +import navmap +import epubinfo class _Epub(object): @@ -49,11 +50,14 @@ class _Epub(object): self._unzip() def _unzip(self): - #self._zobject.extractall(path = self._tempdir) # This is broken upto python 2.7 + # This is broken upto python 2.7 + #self._zobject.extractall(path = self._tempdir) orig_cwd = os.getcwd() os.chdir(self._tempdir) for name in self._zobject.namelist(): - if name.startswith(os.path.sep): # Some weird zip file entries start with a slash, and we don't want to write to the root directory + # Some weird zip file entries start with a slash, + # and we don't want to write to the root directory + if name.startswith(os.path.sep): name = name[1:] if name.endswith(os.path.sep) or name.endswith('\\'): os.makedirs(name) @@ -67,7 +71,8 @@ class _Epub(object): tree = etree.parse(containerfile) root = tree.getroot() - for element in root.iterfind('.//{urn:oasis:names:tc:opendocument:xmlns:container}rootfile'): + for element in root.iterfind( + './/{urn:oasis:names:tc:opendocument:xmlns:container}rootfile'): if element.get('media-type') == 'application/oebps-package+xml': self._opfpath = element.get('full-path') @@ -109,7 +114,8 @@ class _Epub(object): mtypefile = self._zobject.open('mimetype') mimetype = mtypefile.readline() - if not mimetype.startswith('application/epub+zip'): # Some files seem to have trailing characters + # Some files seem to have trailing characters + if not mimetype.startswith('application/epub+zip'): return False return True @@ -143,8 +149,10 @@ class _Epub(object): def close(self): ''' - Cleans up (closes open zip files and deletes uncompressed content of Epub. - Please call this when a file is being closed or during application exit. + Cleans up (closes open zip files and deletes + uncompressed content of Epub. + Please call this when a file is being closed or during + application exit. ''' self._zobject.close() shutil.rmtree(self._tempdir) diff --git a/epubview/epubinfo.py b/epubview/epubinfo.py index f781c25..b4e5c22 100644 --- a/epubview/epubinfo.py +++ b/epubview/epubinfo.py @@ -2,11 +2,15 @@ import os from lxml import etree -class EpubInfo(): #TODO: Cover the entire DC range +class EpubInfo(): + + #TODO: Cover the entire DC range + def __init__(self, opffile): self._tree = etree.parse(opffile) self._root = self._tree.getroot() - self._e_metadata = self._root.find('{http://www.idpf.org/2007/opf}metadata') + self._e_metadata = self._root.find( + '{http://www.idpf.org/2007/opf}metadata') self.title = self._get_title() self.creator = self._get_creator() @@ -31,7 +35,8 @@ class EpubInfo(): #TODO: Cover the entire DC range def _get_creator(self): try: - ret = self._get_data('.//{http://purl.org/dc/elements/1.1/}creator') + ret = self._get_data( + './/{http://purl.org/dc/elements/1.1/}creator') except AttributeError: return None return ret @@ -63,7 +68,8 @@ class EpubInfo(): #TODO: Cover the entire DC range def _get_identifier(self): #TODO: iter - element = self._e_metadata.find('.//{http://purl.org/dc/elements/1.1/}identifier') + element = self._e_metadata.find( + './/{http://purl.org/dc/elements/1.1/}identifier') if element is not None: return {'id': element.get('id'), 'value': element.text} @@ -72,7 +78,8 @@ class EpubInfo(): #TODO: Cover the entire DC range def _get_language(self): try: - ret = self._get_data('.//{http://purl.org/dc/elements/1.1/}language') + ret = self._get_data( + './/{http://purl.org/dc/elements/1.1/}language') except AttributeError: return None @@ -81,7 +88,8 @@ class EpubInfo(): #TODO: Cover the entire DC range def _get_subject(self): try: subjectlist = [] - for element in self._e_metadata.iterfind('.//{http://purl.org/dc/elements/1.1/}subject'): + for element in self._e_metadata.iterfind( + './/{http://purl.org/dc/elements/1.1/}subject'): subjectlist.append(element.text) except AttributeError: return None diff --git a/epubview/epubview.py b/epubview/epubview.py index 6159374..9ebb319 100644 --- a/epubview/epubview.py +++ b/epubview/epubview.py @@ -15,7 +15,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -import gtk, gtk.gdk +import gtk import gobject import widgets @@ -37,7 +37,7 @@ LOADING_HTML = ''' class _View(gtk.HBox): __gproperties__ = { - 'scale' : (gobject.TYPE_FLOAT, 'the zoom level', + 'scale': (gobject.TYPE_FLOAT, 'the zoom level', 'the zoom level of the widget', 0.5, 4.0, 1.0, gobject.PARAM_READWRITE), } @@ -80,19 +80,24 @@ class _View(gtk.HBox): self._view.connect('load-finished', self._view_load_finished_cb) self._view.connect('scroll-event', self._view_scroll_event_cb) self._view.connect('key-press-event', self._view_keypress_event_cb) - self._view.connect('button-release-event', self._view_buttonrelease_event_cb) - self._view.connect('selection-changed', self._view_selection_changed_cb) - self._view.connect_after('populate-popup', self._view_populate_popup_cb) + self._view.connect('button-release-event', + self._view_buttonrelease_event_cb) + self._view.connect('selection-changed', + self._view_selection_changed_cb) + self._view.connect_after('populate-popup', + self._view_populate_popup_cb) self._sw.add(self._view) self._sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_NEVER) self._v_vscrollbar = self._sw.get_vscrollbar() - self._v_scrollbar_value_changed_cb_id = self._v_vscrollbar.connect('value-changed', \ - self._v_scrollbar_value_changed_cb) + self._v_scrollbar_value_changed_cb_id = \ + self._v_vscrollbar.connect('value-changed', \ + self._v_scrollbar_value_changed_cb) self._scrollbar = gtk.VScrollbar() self._scrollbar.set_update_policy(gtk.UPDATE_DISCONTINUOUS) - self._scrollbar_change_value_cb_id = self._scrollbar.connect('change-value', \ - self._scrollbar_change_value_cb) + self._scrollbar_change_value_cb_id = \ + self._scrollbar.connect('change-value', \ + self._scrollbar_change_value_cb) self.pack_start(self._sw, expand=True, fill=True) self.pack_start(self._scrollbar, expand=False, fill=False) @@ -111,13 +116,13 @@ class _View(gtk.HBox): elif property.name == 'scale': return self.scale else: - raise AttributeError, 'unknown property %s' % property.name + raise AttributeError('unknown property %s' % property.name) def do_set_property(self, property, value): if property.name == 'scale': self.__set_zoom(value) else: - raise AttributeError, 'unknown property %s' % property.name + raise AttributeError('unknown property %s' % property.name) def get_has_selection(self): ''' @@ -242,7 +247,8 @@ class _View(gtk.HBox): ''' Scrolls through the pages. Scrolling is horizontal if horizontal is set to True - Valid scrolltypes are: gtk.SCROLL_PAGE_BACKWARD and gtk.SCROLL_PAGE_FORWARD + Valid scrolltypes are: + gtk.SCROLL_PAGE_BACKWARD and gtk.SCROLL_PAGE_FORWARD ''' if scrolltype == gtk.SCROLL_PAGE_BACKWARD: self.__going_back = True @@ -270,11 +276,13 @@ class _View(gtk.HBox): self._view.grab_focus() self._view.grab_default() - if self._view.search_text(self._findjob.get_search_text(), \ - self._findjob.get_case_sensitive(), True, False): + if self._view.search_text(self._findjob.get_search_text(), + self._findjob.get_case_sensitive(), + True, False): return else: - path = os.path.join(self._epub.get_basedir(), self._findjob.get_next_file()) + path = os.path.join(self._epub.get_basedir(), + self._findjob.get_next_file()) self.__in_search = True self.__search_fwd = True self._load_file(path) @@ -286,11 +294,13 @@ class _View(gtk.HBox): self._view.grab_focus() self._view.grab_default() - if self._view.search_text(self._findjob.get_search_text(), \ - self._findjob.get_case_sensitive(), False, False): + if self._view.search_text(self._findjob.get_search_text(), + self._findjob.get_case_sensitive(), + False, False): return else: - path = os.path.join(self._epub.get_basedir(), self._findjob.get_prev_file()) + path = os.path.join(self._epub.get_basedir(), + self._findjob.get_prev_file()) self.__in_search = True self.__search_fwd = False self._load_file(path) @@ -299,8 +309,6 @@ class _View(gtk.HBox): self._view.grab_focus() self._view.grab_default() self._findjob = job - #self._view.search_text(self._findjob.get_search_text(), \ - # self._findjob.get_case_sensitive(), True, False) self.find_next() def __set_zoom(self, value): @@ -313,7 +321,7 @@ class _View(gtk.HBox): self.emit('selection-changed') def _view_populate_popup_cb(self, view, menu): - menu.destroy() #HACK + menu.destroy() # HACK return def _view_selection_changed_cb(self, view): @@ -358,7 +366,8 @@ class _View(gtk.HBox): self._load_next_file() return True elif self.__going_back: - if self._v_vscrollbar.get_value() == self._v_vscrollbar.props.adjustment.props.lower: + if self._v_vscrollbar.get_value() == \ + self._v_vscrollbar.props.adjustment.props.lower: self._load_prev_file() return True @@ -371,9 +380,10 @@ class _View(gtk.HBox): filename = self._view.props.uri.replace('file://', '') if os.path.exists(filename.replace('xhtml', 'xml')): - filename = filename.replace('xhtml', 'xml') # Hack for making javascript work + # Hack for making javascript work + filename = filename.replace('xhtml', 'xml') - filename = filename.split('#')[0] # Get rid of anchors + filename = filename.split('#')[0] # Get rid of anchors if self._loaded_page < 1 or filename == None: return False @@ -382,7 +392,8 @@ class _View(gtk.HBox): remfactor = self._paginator.get_remfactor_for_file(filename) pages = self._paginator.get_pagecount_for_file(filename) - extra = int(math.ceil(remfactor * self._view.get_page_height() / (pages - remfactor))) + extra = int(math.ceil(remfactor * + self._view.get_page_height() / (pages - remfactor))) if extra > 0: self._view.add_bottom_padding(extra) @@ -402,10 +413,11 @@ class _View(gtk.HBox): scrollval = self._v_vscrollbar.get_value() scroll_upper = self._v_vscrollbar.props.adjustment.props.upper - if scroll_upper == 0: # This is a one page file + if scroll_upper == 0: # This is a one page file pageno = base_pageno else: - offset = (scrollval / scroll_upper) * self._paginator.get_pagecount_for_file(filename) + offset = (scrollval / scroll_upper) * \ + self._paginator.get_pagecount_for_file(filename) pageno = math.floor(base_pageno + offset) if pageno != self._loaded_page: @@ -446,12 +458,16 @@ class _View(gtk.HBox): scroll_upper = self._v_vscrollbar.props.adjustment.props.upper scroll_page_size = self._v_vscrollbar.props.adjustment.props.page_size - if self.__going_fwd == True and not self._loaded_page == self._pagecount: + if self.__going_fwd == True and \ + not self._loaded_page == self._pagecount: if self._paginator.get_file_for_pageno(self._loaded_page) != \ self._paginator.get_file_for_pageno(self._loaded_page + 1): - return # We don't need this if the next page is in another file + # We don't need this if the next page is in another file + return - scrollfactor_next = self._paginator.get_scrollfactor_pos_for_pageno(self._loaded_page + 1) + scrollfactor_next = \ + self._paginator.get_scrollfactor_pos_for_pageno( + self._loaded_page + 1) if scrollval > 0: scrollfactor = scrollval / (scroll_upper - scroll_page_size) else: @@ -460,10 +476,13 @@ class _View(gtk.HBox): self._on_page_changed(self._loaded_page, self._loaded_page + 1) elif self.__going_back == True and self._loaded_page > 1: if self._paginator.get_file_for_pageno(self._loaded_page) != \ - self._paginator.get_file_for_pageno(self._loaded_page - 1): + self._paginator.get_file_for_pageno( + self._loaded_page - 1): return - scrollfactor_cur = self._paginator.get_scrollfactor_pos_for_pageno(self._loaded_page) + scrollfactor_cur = \ + self._paginator.get_scrollfactor_pos_for_pageno( + self._loaded_page) if scrollval > 0: scrollfactor = scrollval / (scroll_upper - scroll_page_size) else: @@ -491,7 +510,8 @@ class _View(gtk.HBox): #self._loaded_filename = filename if filename.endswith('xml'): dest = filename.replace('xml', 'xhtml') - shutil.copy(filename.replace('file://', ''), dest.replace('file://', '')) + shutil.copy(filename.replace('file://', ''), + dest.replace('file://', '')) self._view.open(dest) else: self._view.open(filename) @@ -549,9 +569,11 @@ class _View(gtk.HBox): else: self._load_page(round(value)) else: - print 'Warning: unknown scrolltype %s with value %f' % (str(scrolltype), value) + print 'Warning: unknown scrolltype %s with value %f' \ + % (str(scrolltype), value) - self._scrollbar.set_value(self._loaded_page) #FIXME: This should not be needed here + #FIXME: This should not be needed here + self._scrollbar.set_value(self._loaded_page) if self.__page_changed == True: self.__page_changed = False diff --git a/epubview/jobs.py b/epubview/jobs.py index bfd751d..a0b6771 100644 --- a/epubview/jobs.py +++ b/epubview/jobs.py @@ -120,7 +120,8 @@ class _JobPaginator(gobject.GObject): settings.props.serif_font_family = 'DejaVu LGC Serif' settings.props.monospace_font_family = 'DejaVu LGC Sans Mono' settings.props.enforce_96_dpi = True - #settings.props.auto_shrink_images = False #FIXME: This does not seem to work + #FIXME: This does not seem to work + #settings.props.auto_shrink_images = False settings.props.enable_plugins = False settings.props.default_font_size = 12 settings.props.default_monospace_font_size = 10 @@ -129,7 +130,8 @@ class _JobPaginator(gobject.GObject): sw = gtk.ScrolledWindow() sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_NEVER) self._dpi = 96 - sw.set_size_request(_mm_to_pixel(PAGE_WIDTH, self._dpi), _mm_to_pixel(PAGE_HEIGHT, self._dpi)) + sw.set_size_request(_mm_to_pixel(PAGE_WIDTH, self._dpi), + _mm_to_pixel(PAGE_HEIGHT, self._dpi)) sw.add(self._temp_view) self._temp_win.add(sw) self._temp_view.connect('load-finished', self._page_load_finished_cb) @@ -152,10 +154,12 @@ class _JobPaginator(gobject.GObject): pagelen = (pages - math.floor(pages)) / pages else: pagelen = 1 / pages - self._pagemap[float(self._pagecount + i)] = (f.props.uri, (i - 1) / math.ceil(pages), pagelen) + self._pagemap[float(self._pagecount + i)] = \ + (f.props.uri, (i - 1) / math.ceil(pages), pagelen) self._pagecount += int(math.ceil(pages)) - self._filedict[f.props.uri.replace('file://', '')] = (math.ceil(pages), math.ceil(pages) - pages) + self._filedict[f.props.uri.replace('file://', '')] = \ + (math.ceil(pages), math.ceil(pages) - pages) self._bookheight += pageheight if self._count + 1 >= len(self._filelist): @@ -202,7 +206,8 @@ class _JobPaginator(gobject.GObject): def get_remfactor_for_file(self, filename): ''' - Returns the remainder factor (1 - fraction length of last page in file) + Returns the remainder + factor (1 - fraction length of last page in file) ''' return self._filedict[filename][1] @@ -224,7 +229,8 @@ class _JobFind(gobject.GObject): 'updated': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])), } - def __init__(self, document, start_page, n_pages, text, case_sensitive=False): + def __init__(self, document, start_page, n_pages, text, + case_sensitive=False): gobject.GObject.__init__(self) gtk.gdk.threads_init() diff --git a/epubview/navmap.py b/epubview/navmap.py index ac479cd..612f2d1 100644 --- a/epubview/navmap.py +++ b/epubview/navmap.py @@ -49,16 +49,20 @@ class NavMap(object): self._opffile.close() def _populate_toc(self): - navmap = self._root.find('{http://www.daisy.org/z3986/2005/ncx/}navMap') - for navpoint in navmap.iterfind('./{http://www.daisy.org/z3986/2005/ncx/}navPoint'): + navmap = self._root.find( + '{http://www.daisy.org/z3986/2005/ncx/}navMap') + for navpoint in navmap.iterfind( + './{http://www.daisy.org/z3986/2005/ncx/}navPoint'): self._process_navpoint(navpoint) def _gettitle(self, navpoint): - text = navpoint.find('./{http://www.daisy.org/z3986/2005/ncx/}navLabel/{http://www.daisy.org/z3986/2005/ncx/}text') + text = navpoint.find('./{http://www.daisy.org/z3986/2005/ncx/}' + + 'navLabel/{http://www.daisy.org/z3986/2005/ncx/}text') return text.text def _getcontent(self, navpoint): - text = navpoint.find('./{http://www.daisy.org/z3986/2005/ncx/}content/') + text = navpoint.find( + './{http://www.daisy.org/z3986/2005/ncx/}content/') return self._basepath + text.get('src') def _process_navpoint(self, navpoint, parent=None): @@ -70,7 +74,8 @@ class NavMap(object): iter = self._gtktreestore.append(parent, [title, content]) #self._flattoc.append((title, content)) - childnavpointlist = list(navpoint.iterfind('./{http://www.daisy.org/z3986/2005/ncx/}navPoint')) + childnavpointlist = list(navpoint.iterfind( + './{http://www.daisy.org/z3986/2005/ncx/}navPoint')) if len(childnavpointlist): for childnavpoint in childnavpointlist: diff --git a/epubview/widgets.py b/epubview/widgets.py index 7ab1585..078ae3b 100644 --- a/epubview/widgets.py +++ b/epubview/widgets.py @@ -12,7 +12,11 @@ class _WebView(webkit.WebView): This is done via javascript at the moment ''' #TODO: Need to check status of page load - js = 'oldtitle=document.title;document.title=Math.max(document.body.scrollHeight, document.body.offsetHeight,document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight);' + js = 'oldtitle=document.title;' + \ + 'document.title=Math.max(document.body.scrollHeight, ' + \ + 'document.body.offsetHeight,document.documentElement.clientHeight,' + \ + 'document.documentElement.scrollHeight, ' + \ + 'document.documentElement.offsetHeight);' self.execute_script(js) ret = self.get_main_frame().get_title() js = 'document.title=oldtitle;' @@ -26,5 +30,7 @@ class _WebView(webkit.WebView): Adds incr pixels of padding to the end of the loaded (X)HTML page. This is done via javascript at the moment ''' - js = ('var newdiv = document.createElement("div");newdiv.style.height = "%dpx";document.body.appendChild(newdiv);' % incr) + js = ('var newdiv = document.createElement("div");' + \ + 'newdiv.style.height = "%dpx";document.body.appendChild(newdiv);' \ + % incr) self.execute_script(js) |