Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGonzalo Odiard <godiard@sugarlabs.org>2011-02-24 17:50:53 (GMT)
committer Gonzalo Odiard <godiard@sugarlabs.org>2011-02-24 17:50:53 (GMT)
commit9202daa7d92ada1f1536d812b0e1a62af9366192 (patch)
treefa3f9b52db7c357a1c99f0c5d7eb70669b5d3c75
parenteb8fc24dec0d113c247b7ce333cd07177611857d (diff)
Pep8 corrections for epubview files
-rw-r--r--epubview/epub.py24
-rw-r--r--epubview/epubinfo.py20
-rw-r--r--epubview/epubview.py92
-rw-r--r--epubview/jobs.py18
-rw-r--r--epubview/navmap.py15
-rw-r--r--epubview/widgets.py10
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)