mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Get rid of more xrange
This commit is contained in:
parent
2d4127f7b9
commit
b4e467ea18
@ -11,12 +11,13 @@ from uuid import uuid4
|
||||
|
||||
from calibre.ebooks.oeb.base import OEB_STYLES
|
||||
from calibre.ebooks.oeb.transforms.subset import find_font_face_rules
|
||||
from polyglot.builtins import range
|
||||
|
||||
|
||||
def obfuscate_font_data(data, key):
|
||||
prefix = bytearray(data[:32])
|
||||
key = bytearray(reversed(key.bytes))
|
||||
prefix = bytes(bytearray(prefix[i]^key[i % len(key)] for i in xrange(len(prefix))))
|
||||
prefix = bytes(bytearray(prefix[i]^key[i % len(key)] for i in range(len(prefix))))
|
||||
return prefix + data[32:]
|
||||
|
||||
|
||||
|
@ -10,6 +10,7 @@ from collections import namedtuple
|
||||
|
||||
from calibre.ebooks.docx.writer.utils import convert_color
|
||||
from calibre.ebooks.docx.writer.styles import read_css_block_borders as rcbb, border_edges
|
||||
from polyglot.builtins import range
|
||||
|
||||
|
||||
class Dummy(object):
|
||||
@ -309,7 +310,7 @@ class Table(object):
|
||||
for cell in tuple(row.cells):
|
||||
idx = row.cells.index(cell)
|
||||
if cell.col_span > 1 and (cell is row.cells[-1] or not isinstance(row.cells[idx+1], SpannedCell)):
|
||||
row.cells[idx:idx+1] = [cell] + [SpannedCell(cell, horizontal=True) for i in xrange(1, cell.col_span)]
|
||||
row.cells[idx:idx+1] = [cell] + [SpannedCell(cell, horizontal=True) for i in range(1, cell.col_span)]
|
||||
|
||||
# Expand vertically
|
||||
for r, row in enumerate(self.rows):
|
||||
@ -322,7 +323,7 @@ class Table(object):
|
||||
except Exception:
|
||||
tcell = None
|
||||
if tcell is None:
|
||||
nrow.cells.extend([SpannedCell(nrow.cells[-1], horizontal=True) for i in xrange(idx - len(nrow.cells))])
|
||||
nrow.cells.extend([SpannedCell(nrow.cells[-1], horizontal=True) for i in range(idx - len(nrow.cells))])
|
||||
nrow.cells.append(sc)
|
||||
else:
|
||||
if isinstance(tcell, SpannedCell):
|
||||
|
@ -7,7 +7,7 @@ from calibre.ebooks.lrf.fonts import get_font
|
||||
from calibre.ebooks.lrf.pylrs.pylrs import TextBlock, Text, CR, Span, \
|
||||
CharButton, Plot, Paragraph, \
|
||||
LrsTextTag
|
||||
from polyglot.builtins import string_or_bytes
|
||||
from polyglot.builtins import string_or_bytes, range
|
||||
|
||||
|
||||
def ceil(num):
|
||||
@ -315,7 +315,7 @@ class Table(object):
|
||||
Return widths of columns + self.colpad
|
||||
'''
|
||||
rows, cols = self.number_or_rows(), self.number_of_columns()
|
||||
widths = range(cols)
|
||||
widths = list(range(cols))
|
||||
for c in range(cols):
|
||||
cellwidths = [0 for i in range(rows)]
|
||||
for r in range(rows):
|
||||
@ -325,8 +325,8 @@ class Table(object):
|
||||
continue
|
||||
widths[c] = max(cellwidths)
|
||||
|
||||
min_widths = [self.minimum_width(i)+10 for i in xrange(cols)]
|
||||
for i in xrange(len(widths)):
|
||||
min_widths = [self.minimum_width(i)+10 for i in range(cols)]
|
||||
for i in range(len(widths)):
|
||||
wp = self.width_percent(i)
|
||||
if wp >= 0.:
|
||||
widths[i] = max(min_widths[i], ceil((wp/100.) * (maxwidth - (cols-1)*self.colpad)))
|
||||
|
@ -5,6 +5,7 @@ __copyright__ = '2009, John Schember <john@nachtimwald.com>'
|
||||
__docformat__ = 'restructuredtext en'
|
||||
|
||||
import os
|
||||
from polyglot.builtins import range
|
||||
|
||||
|
||||
class EreaderError(Exception):
|
||||
@ -21,10 +22,9 @@ def image_name(name, taken_names=[]):
|
||||
name = '%s%s.png' % (names, namee)
|
||||
|
||||
while name in taken_names:
|
||||
for i in xrange(999999999999999999999999999):
|
||||
for i in range(999999999999999999999999999):
|
||||
name = '%s%s.png' % (name[:-len('%s' % i)], i)
|
||||
|
||||
name = name.ljust(32, '\x00')[:32]
|
||||
|
||||
return name
|
||||
|
||||
|
@ -11,6 +11,7 @@ __docformat__ = 'restructuredtext en'
|
||||
|
||||
from calibre.ebooks.pdb.formatreader import FormatReader
|
||||
from calibre.ptempfile import PersistentTemporaryFile
|
||||
from polyglot.builtins import range
|
||||
|
||||
|
||||
class Reader(FormatReader):
|
||||
@ -27,7 +28,7 @@ class Reader(FormatReader):
|
||||
pdf = PersistentTemporaryFile('.pdf')
|
||||
pdf.close()
|
||||
pdf = open(pdf, 'wb')
|
||||
for x in xrange(self.header.section_count()):
|
||||
for x in range(self.header.section_count()):
|
||||
pdf.write(self.header.section_data(x))
|
||||
pdf.close()
|
||||
|
||||
|
@ -17,7 +17,7 @@ from calibre.ebooks.pdb.formatreader import FormatReader
|
||||
from calibre.ebooks.compression.palmdoc import decompress_doc
|
||||
from calibre.utils.imghdr import identify
|
||||
from calibre.utils.img import save_cover_data_to, Canvas, image_from_data
|
||||
from polyglot.builtins import codepoint_to_chr
|
||||
from polyglot.builtins import codepoint_to_chr, range
|
||||
|
||||
DATATYPE_PHTML = 0
|
||||
DATATYPE_PHTML_COMPRESSED = 1
|
||||
@ -129,7 +129,7 @@ class HeaderRecord(object):
|
||||
self.home_html = None
|
||||
|
||||
self.reserved = {}
|
||||
for i in xrange(self.records):
|
||||
for i in range(self.records):
|
||||
adv = 4*i
|
||||
name, = struct.unpack('>H', raw[6+adv:8+adv])
|
||||
id, = struct.unpack('>H', raw[8+adv:10+adv])
|
||||
@ -166,7 +166,7 @@ class SectionHeaderText(object):
|
||||
# Paragraph attributes.
|
||||
self.attributes = []
|
||||
|
||||
for i in xrange(section_header.paragraphs):
|
||||
for i in range(section_header.paragraphs):
|
||||
adv = 4*i
|
||||
self.sizes.append(struct.unpack('>H', raw[adv:2+adv])[0])
|
||||
self.attributes.append(struct.unpack('>H', raw[2+adv:4+adv])[0])
|
||||
@ -200,7 +200,7 @@ class SectionMetadata(object):
|
||||
record_count, = struct.unpack('>H', raw[0:2])
|
||||
|
||||
adv = 0
|
||||
for i in xrange(record_count):
|
||||
for i in range(record_count):
|
||||
try:
|
||||
type, length = struct.unpack_from('>HH', raw, 2 + adv)
|
||||
except struct.error:
|
||||
@ -213,7 +213,7 @@ class SectionMetadata(object):
|
||||
# ExceptionalCharSets
|
||||
elif type == 2:
|
||||
ii_adv = 0
|
||||
for ii in xrange(length / 2):
|
||||
for ii in range(length / 2):
|
||||
uid, = struct.unpack('>H', raw[6+adv+ii_adv:8+adv+ii_adv])
|
||||
mib, = struct.unpack('>H', raw[8+adv+ii_adv:10+adv+ii_adv])
|
||||
self.exceptional_uid_encodings[uid] = MIBNUM_TO_NAME.get(mib, 'latin-1')
|
||||
@ -270,9 +270,9 @@ class SectionCompositeImage(object):
|
||||
# to an image record.
|
||||
self.layout = []
|
||||
offset = 4
|
||||
for i in xrange(self.rows):
|
||||
for i in range(self.rows):
|
||||
col = []
|
||||
for j in xrange(self.columns):
|
||||
for j in range(self.columns):
|
||||
col.append(struct.unpack('>H', raw[offset:offset+2])[0])
|
||||
offset += 2
|
||||
self.layout.append(col)
|
||||
|
@ -8,7 +8,7 @@ __copyright__ = '2013, Kovid Goyal <kovid at kovidgoyal.net>'
|
||||
__docformat__ = 'restructuredtext en'
|
||||
|
||||
import sys, copy
|
||||
from polyglot.builtins import map
|
||||
from polyglot.builtins import map, range
|
||||
from collections import namedtuple
|
||||
|
||||
from PyQt5.Qt import QLinearGradient, QPointF
|
||||
@ -111,7 +111,7 @@ class LinearGradientPattern(Dictionary):
|
||||
do_reflect = spread == gradient.ReflectSpread
|
||||
totl = abs(stops[-1][0] - stops[0][0])
|
||||
intervals = [abs(stops[i+1][0] - stops[i][0])/totl
|
||||
for i in xrange(len(stops)-1)]
|
||||
for i in range(len(stops)-1)]
|
||||
|
||||
while in_page(llimit):
|
||||
reflect ^= True
|
||||
@ -139,14 +139,14 @@ class LinearGradientPattern(Dictionary):
|
||||
intervals = [i*rlen for i in intervals]
|
||||
rintervals = list(reversed(intervals))
|
||||
|
||||
for i in xrange(num):
|
||||
for i in range(num):
|
||||
reflect ^= True
|
||||
pos = i * len(base_stops)
|
||||
tvals = [t]
|
||||
for ival in (rintervals if reflect and do_reflect else
|
||||
intervals):
|
||||
tvals.append(tvals[-1] + ival)
|
||||
for j in xrange(len(base_stops)):
|
||||
for j in range(len(base_stops)):
|
||||
stops[pos+j][0] = tvals[j]
|
||||
t = tvals[-1]
|
||||
|
||||
|
@ -15,6 +15,7 @@ from PyQt5.Qt import (QBrush, QColor, QPoint, QPixmap, QPainterPath, QRectF,
|
||||
QBrush, QColor, QPoint, QPixmap, QPainterPath, QRectF, Qt, QPointF
|
||||
|
||||
from calibre.ebooks.pdf.render.engine import PdfDevice
|
||||
from polyglot.builtins import range
|
||||
|
||||
|
||||
def full(p, xmax, ymax):
|
||||
@ -25,7 +26,7 @@ def full(p, xmax, ymax):
|
||||
pp.addRect(0, 0, xmax, ymax)
|
||||
p.drawPath(pp)
|
||||
p.save()
|
||||
for i in xrange(3):
|
||||
for i in range(3):
|
||||
col = [0, 0, 0, 200]
|
||||
col[i] = 255
|
||||
p.setOpacity(0.3)
|
||||
|
@ -10,6 +10,7 @@ import os
|
||||
|
||||
from lxml.html import tostring
|
||||
from lxml.html.builder import (HTML, HEAD, BODY, TABLE, TR, TD, H2, STYLE)
|
||||
from polyglot.builtins import range
|
||||
|
||||
|
||||
def calculate_page_number(num, map_expression, evaljs):
|
||||
@ -49,7 +50,7 @@ def process_children(toc, table, level, pdf, pdf_page_number_map, evaljs):
|
||||
def toc_as_html(toc, pdf, opts, evaljs):
|
||||
pdf = pdf.engine.pdf
|
||||
indents = []
|
||||
for i in xrange(1, 7):
|
||||
for i in range(1, 7):
|
||||
indents.extend((i, 1.4*i))
|
||||
html = HTML(
|
||||
HEAD(
|
||||
|
@ -21,6 +21,8 @@
|
||||
# *
|
||||
# */
|
||||
|
||||
from polyglot.builtins import range
|
||||
|
||||
|
||||
class H2a (object):
|
||||
|
||||
@ -79,7 +81,7 @@ class H2a (object):
|
||||
u"\u3063\u3058\u3085":"jju", u"\u3063\u3058\u3087":"jjo",
|
||||
u"\u3063\u3059":"ssu", u"\u3063\u305a":"zzu",
|
||||
u"\u3063\u305b":"sse", u"\u3063\u305e":"zze",
|
||||
u"\u3063\u305d":"sso", u"\u3063\u305e":"zzo",
|
||||
u"\u3063\u305d":"sso", u"\u3063\u305c":"zzo",
|
||||
u"\u3063\u305f":"tta", u"\u3063\u3060":"dda",
|
||||
u"\u3063\u3061":"tchi", u"\u3063\u3061\u3083":"tcha",
|
||||
u"\u3063\u3061\u3085":"tchu", u"\u3063\u3061\u3087":"tcho",
|
||||
@ -173,10 +175,9 @@ class H2a (object):
|
||||
Hstr = ""
|
||||
max_len = -1
|
||||
r = min(4, len(text)+1)
|
||||
for x in xrange(r):
|
||||
for x in range(r):
|
||||
if text[:x] in self.H2a_table:
|
||||
if max_len < x:
|
||||
max_len = x
|
||||
Hstr = self.H2a_table[text[:x]]
|
||||
return (Hstr, max_len)
|
||||
|
||||
|
@ -22,6 +22,7 @@
|
||||
# */
|
||||
|
||||
from calibre.ebooks.unihandecode.pykakasi.jisyo import jisyo
|
||||
from polyglot.builtins import range
|
||||
|
||||
|
||||
class K2a (object):
|
||||
@ -38,10 +39,9 @@ class K2a (object):
|
||||
Hstr = ""
|
||||
max_len = -1
|
||||
r = min(10, len(text)+1)
|
||||
for x in xrange(r):
|
||||
for x in range(r):
|
||||
if text[:x] in self.kanwa.kanadict:
|
||||
if max_len < x:
|
||||
max_len = x
|
||||
Hstr = self.kanwa.kanadict[text[:x]]
|
||||
return (Hstr, max_len)
|
||||
|
||||
|
@ -25,7 +25,7 @@ from calibre.gui2.actions import InterfaceAction
|
||||
from calibre.gui2 import question_dialog
|
||||
from calibre.ebooks.metadata import MetaInformation
|
||||
from calibre.ptempfile import PersistentTemporaryFile
|
||||
from polyglot.builtins import string_or_bytes
|
||||
from polyglot.builtins import string_or_bytes, range
|
||||
|
||||
|
||||
def get_filters():
|
||||
@ -311,7 +311,7 @@ class AddAction(InterfaceAction):
|
||||
book_id = db.id(index.row())
|
||||
orig_fmts = tuple(db.new_api.format(book_id, fmt, as_path=True) for fmt in db.new_api.formats(book_id))
|
||||
|
||||
for x in xrange(num):
|
||||
for x in range(num):
|
||||
if dlg.duplicate_current_book:
|
||||
mi = origmi
|
||||
else:
|
||||
|
@ -12,6 +12,7 @@ from calibre.gui2 import error_dialog
|
||||
from calibre.gui2.actions import InterfaceAction
|
||||
from calibre.devices.usbms.device import Device
|
||||
from calibre.gui2.dialogs.progress import ProgressDialog
|
||||
from polyglot.builtins import range
|
||||
|
||||
|
||||
class Updater(QThread): # {{{
|
||||
@ -74,7 +75,7 @@ class FetchAnnotationsAction(InterfaceAction):
|
||||
def get_ids_from_selected_rows():
|
||||
rows = self.gui.library_view.selectionModel().selectedRows()
|
||||
if not rows or len(rows) < 2:
|
||||
rows = xrange(self.gui.library_view.model().rowCount(QModelIndex()))
|
||||
rows = range(self.gui.library_view.model().rowCount(QModelIndex()))
|
||||
ids = map(self.gui.library_view.model().id, rows)
|
||||
return ids
|
||||
|
||||
@ -160,5 +161,3 @@ class FetchAnnotationsAction(InterfaceAction):
|
||||
_('Could not fetch annotations for some books. Click '
|
||||
'show details to see which ones.'),
|
||||
det_msg='\n'.join(entries), show=True)
|
||||
|
||||
|
||||
|
@ -8,6 +8,7 @@ from polyglot.builtins import map
|
||||
|
||||
from calibre.gui2 import gprefs
|
||||
from calibre.gui2.actions import InterfaceAction
|
||||
from polyglot.builtins import range
|
||||
|
||||
|
||||
class AuthorMapAction(InterfaceAction):
|
||||
@ -24,7 +25,7 @@ class AuthorMapAction(InterfaceAction):
|
||||
selected = True
|
||||
if not rows or len(rows) < 2:
|
||||
selected = False
|
||||
rows = xrange(self.gui.library_view.model().rowCount(None))
|
||||
rows = range(self.gui.library_view.model().rowCount(None))
|
||||
ids = set(map(self.gui.library_view.model().id, rows))
|
||||
self.do_map(ids, selected)
|
||||
|
||||
|
@ -20,7 +20,7 @@ from calibre.utils.icu import sort_key
|
||||
from calibre.gui2 import (gprefs, warning_dialog, Dispatcher, error_dialog,
|
||||
question_dialog, info_dialog, open_local_file, choose_dir)
|
||||
from calibre.gui2.actions import InterfaceAction
|
||||
from polyglot.builtins import unicode_type
|
||||
from polyglot.builtins import unicode_type, range
|
||||
|
||||
|
||||
def db_class():
|
||||
@ -593,7 +593,7 @@ class ChooseLibraryAction(InterfaceAction):
|
||||
import gc
|
||||
from calibre.utils.mem import memory
|
||||
ref = self.dbref
|
||||
for i in xrange(3):
|
||||
for i in range(3):
|
||||
gc.collect()
|
||||
if ref() is not None:
|
||||
print('DB object alive:', ref())
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
from __future__ import (unicode_literals, division, absolute_import,
|
||||
print_function)
|
||||
from polyglot.builtins import map
|
||||
from polyglot.builtins import map, range
|
||||
|
||||
from calibre.gui2 import gprefs
|
||||
from calibre.gui2.actions import InterfaceAction
|
||||
@ -24,7 +24,7 @@ class TagMapAction(InterfaceAction):
|
||||
selected = True
|
||||
if not rows or len(rows) < 2:
|
||||
selected = False
|
||||
rows = xrange(self.gui.library_view.model().rowCount(None))
|
||||
rows = range(self.gui.library_view.model().rowCount(None))
|
||||
ids = set(map(self.gui.library_view.model().id, rows))
|
||||
self.do_map(ids, selected)
|
||||
|
||||
|
@ -30,7 +30,7 @@ from calibre.gui2 import gprefs, config, rating_font, empty_index
|
||||
from calibre.gui2.gestures import GestureManager
|
||||
from calibre.gui2.library.caches import CoverCache, ThumbnailCache
|
||||
from calibre.utils.config import prefs, tweaks
|
||||
from polyglot.builtins import unicode_type
|
||||
from polyglot.builtins import unicode_type, range
|
||||
|
||||
CM_TO_INCH = 0.393701
|
||||
CACHE_FORMAT = 'PPM'
|
||||
@ -740,8 +740,8 @@ class GridView(QListView):
|
||||
@property
|
||||
def first_visible_row(self):
|
||||
geom = self.viewport().geometry()
|
||||
for y in xrange(geom.top(), (self.spacing()*2) + geom.top(), 5):
|
||||
for x in xrange(geom.left(), (self.spacing()*2) + geom.left(), 5):
|
||||
for y in range(geom.top(), (self.spacing()*2) + geom.top(), 5):
|
||||
for x in range(geom.left(), (self.spacing()*2) + geom.left(), 5):
|
||||
ans = self.indexAt(QPoint(x, y)).row()
|
||||
if ans > -1:
|
||||
return ans
|
||||
@ -749,8 +749,8 @@ class GridView(QListView):
|
||||
@property
|
||||
def last_visible_row(self):
|
||||
geom = self.viewport().geometry()
|
||||
for y in xrange(geom.bottom(), geom.bottom() - 2 * self.spacing(), -5):
|
||||
for x in xrange(geom.left(), (self.spacing()*2) + geom.left(), 5):
|
||||
for y in range(geom.bottom(), geom.bottom() - 2 * self.spacing(), -5):
|
||||
for x in range(geom.left(), (self.spacing()*2) + geom.left(), 5):
|
||||
ans = self.indexAt(QPoint(x, y)).row()
|
||||
if ans > -1:
|
||||
item_width = self.delegate.item_size.width() + 2*self.spacing()
|
||||
@ -760,7 +760,7 @@ class GridView(QListView):
|
||||
self.ignore_render_requests.clear()
|
||||
self.update_timer.stop()
|
||||
m = self.model()
|
||||
for r in xrange(self.first_visible_row or 0, self.last_visible_row or (m.count() - 1)):
|
||||
for r in range(self.first_visible_row or 0, self.last_visible_row or (m.count() - 1)):
|
||||
self.update(m.index(r, 0))
|
||||
|
||||
def start_view_animation(self, index):
|
||||
|
@ -30,7 +30,7 @@ from calibre.constants import filesystem_encoding, DEBUG, config_dir
|
||||
from calibre.gui2.library import DEFAULT_SORT
|
||||
from calibre.utils.localization import calibre_langcode_to_name
|
||||
from calibre.library.coloring import color_row_key
|
||||
from polyglot.builtins import unicode_type, string_or_bytes
|
||||
from polyglot.builtins import unicode_type, string_or_bytes, range
|
||||
|
||||
Counts = namedtuple('Counts', 'library_total total current')
|
||||
|
||||
@ -263,7 +263,7 @@ class BooksModel(QAbstractTableModel): # {{{
|
||||
if alignment != 'left':
|
||||
self.alignment_map[colname] = alignment
|
||||
col = self.column_map.index(colname)
|
||||
for row in xrange(self.rowCount(QModelIndex())):
|
||||
for row in range(self.rowCount(QModelIndex())):
|
||||
self.dataChanged.emit(self.index(row, col), self.index(row,
|
||||
col))
|
||||
|
||||
@ -278,7 +278,7 @@ class BooksModel(QAbstractTableModel): # {{{
|
||||
old[colname] = font_type
|
||||
self.db.new_api.set_pref('styled_columns', old)
|
||||
col = self.column_map.index(colname)
|
||||
for row in xrange(self.rowCount(QModelIndex())):
|
||||
for row in range(self.rowCount(QModelIndex())):
|
||||
self.dataChanged.emit(self.index(row, col), self.index(row,
|
||||
col))
|
||||
|
||||
|
@ -8,7 +8,7 @@ __docformat__ = 'restructuredtext en'
|
||||
|
||||
import itertools, operator
|
||||
from functools import partial
|
||||
from polyglot.builtins import map, unicode_type
|
||||
from polyglot.builtins import map, unicode_type, range
|
||||
from collections import OrderedDict
|
||||
|
||||
from PyQt5.Qt import (
|
||||
@ -688,7 +688,7 @@ class BooksView(QTableView): # {{{
|
||||
# Because of a bug in Qt 5 we have to ensure that the header is actually
|
||||
# relaid out by changing this value, without this sometimes ghost
|
||||
# columns remain visible when changing libraries
|
||||
for i in xrange(h.count()):
|
||||
for i in range(h.count()):
|
||||
val = h.isSectionHidden(i)
|
||||
h.setSectionHidden(i, not val)
|
||||
h.setSectionHidden(i, val)
|
||||
@ -967,7 +967,7 @@ class BooksView(QTableView): # {{{
|
||||
@property
|
||||
def visible_columns(self):
|
||||
h = self.horizontalHeader()
|
||||
logical_indices = (x for x in xrange(h.count()) if not h.isSectionHidden(x))
|
||||
logical_indices = (x for x in range(h.count()) if not h.isSectionHidden(x))
|
||||
rmap = {i:x for i, x in enumerate(self.column_map)}
|
||||
return (rmap[h.visualIndex(x)] for x in logical_indices if h.visualIndex(x) > -1)
|
||||
|
||||
@ -1108,7 +1108,7 @@ class BooksView(QTableView): # {{{
|
||||
row_map = OrderedDict()
|
||||
ids = frozenset(ids)
|
||||
m = self.model()
|
||||
for row in xrange(m.rowCount(QModelIndex())):
|
||||
for row in range(m.rowCount(QModelIndex())):
|
||||
if len(row_map) >= len(ids):
|
||||
break
|
||||
c = m.id(row)
|
||||
@ -1128,7 +1128,7 @@ class BooksView(QTableView): # {{{
|
||||
rows = set([])
|
||||
identifiers = set(identifiers)
|
||||
m = self.model()
|
||||
for row in xrange(m.rowCount(QModelIndex())):
|
||||
for row in range(m.rowCount(QModelIndex())):
|
||||
if m.id(row) in identifiers:
|
||||
rows.add(row)
|
||||
rows = list(sorted(rows))
|
||||
@ -1174,7 +1174,7 @@ class BooksView(QTableView): # {{{
|
||||
if val is None:
|
||||
return
|
||||
m = self.model()
|
||||
for row in xrange(m.rowCount(QModelIndex())):
|
||||
for row in range(m.rowCount(QModelIndex())):
|
||||
if m.id(row) == val:
|
||||
self.set_current_row(row, select=False)
|
||||
break
|
||||
@ -1193,7 +1193,7 @@ class BooksView(QTableView): # {{{
|
||||
i.isValid()])
|
||||
column = ci.column()
|
||||
|
||||
for i in xrange(ci.row()+1, self.row_count()):
|
||||
for i in range(ci.row()+1, self.row_count()):
|
||||
if i in selected_rows:
|
||||
continue
|
||||
try:
|
||||
@ -1202,7 +1202,7 @@ class BooksView(QTableView): # {{{
|
||||
pass
|
||||
|
||||
# No unselected rows after the current row, look before
|
||||
for i in xrange(ci.row()-1, -1, -1):
|
||||
for i in range(ci.row()-1, -1, -1):
|
||||
if i in selected_rows:
|
||||
continue
|
||||
try:
|
||||
|
@ -12,6 +12,7 @@ from PyQt5.Qt import (QLabel, QVBoxLayout, QListWidget, QListWidgetItem, Qt,
|
||||
|
||||
from calibre.customize.ui import enable_plugin
|
||||
from calibre.gui2.preferences import ConfigWidgetBase, test_widget
|
||||
from polyglot.builtins import range
|
||||
|
||||
|
||||
class ConfigWidget(ConfigWidgetBase):
|
||||
@ -78,7 +79,7 @@ class ConfigWidget(ConfigWidgetBase):
|
||||
|
||||
def commit(self):
|
||||
devs = {}
|
||||
for i in xrange(0, self.devices.count()):
|
||||
for i in range(0, self.devices.count()):
|
||||
e = self.devices.item(i)
|
||||
dev, uid = e.data(Qt.UserRole)
|
||||
if dev not in devs:
|
||||
@ -89,7 +90,7 @@ class ConfigWidget(ConfigWidgetBase):
|
||||
for dev, bl in devs.iteritems():
|
||||
dev.set_user_blacklisted_devices(bl)
|
||||
|
||||
for i in xrange(self.device_plugins.count()):
|
||||
for i in range(self.device_plugins.count()):
|
||||
e = self.device_plugins.item(i)
|
||||
dev = e.data(Qt.UserRole)
|
||||
if e.checkState() == Qt.Unchecked:
|
||||
@ -97,8 +98,8 @@ class ConfigWidget(ConfigWidgetBase):
|
||||
|
||||
return True # Restart required
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
from PyQt5.Qt import QApplication
|
||||
app = QApplication([])
|
||||
test_widget('Sharing', 'Ignored Devices')
|
||||
|
||||
|
@ -15,7 +15,7 @@ from PyQt5.Qt import (
|
||||
from calibre.constants import config_dir
|
||||
from calibre.gui2 import choose_files, error_dialog
|
||||
from calibre.utils.icu import sort_key
|
||||
from polyglot.builtins import unicode_type
|
||||
from polyglot.builtins import unicode_type, range
|
||||
|
||||
|
||||
def texture_dir():
|
||||
@ -85,7 +85,7 @@ class TextureChooser(QDialog):
|
||||
self.update_remove_state()
|
||||
|
||||
if initial:
|
||||
existing = {unicode_type(i.data(Qt.UserRole) or ''):i for i in (self.images.item(c) for c in xrange(self.images.count()))}
|
||||
existing = {unicode_type(i.data(Qt.UserRole) or ''):i for i in (self.images.item(c) for c in range(self.images.count()))}
|
||||
item = existing.get(initial, None)
|
||||
if item is not None:
|
||||
item.setSelected(True)
|
||||
@ -116,7 +116,7 @@ class TextureChooser(QDialog):
|
||||
path = path[0]
|
||||
fname = os.path.basename(path)
|
||||
name = fname.rpartition('.')[0]
|
||||
existing = {unicode_type(i.data(Qt.UserRole) or ''):i for i in (self.images.item(c) for c in xrange(self.images.count()))}
|
||||
existing = {unicode_type(i.data(Qt.UserRole) or ''):i for i in (self.images.item(c) for c in range(self.images.count()))}
|
||||
dest = os.path.join(self.tdir, fname)
|
||||
with open(path, 'rb') as s, open(dest, 'wb') as f:
|
||||
shutil.copyfileobj(s, f)
|
||||
|
@ -19,7 +19,7 @@ from calibre import isbytestring
|
||||
from calibre.utils.icu import lower
|
||||
from calibre.utils.search_query_parser import (ParseException,
|
||||
SearchQueryParser)
|
||||
from polyglot.builtins import unicode_type
|
||||
from polyglot.builtins import unicode_type, range
|
||||
|
||||
from PyQt5.Qt import (
|
||||
QAbstractListModel, Qt, QStyledItemDelegate, QStyle, QStyleOptionViewItem,
|
||||
@ -282,7 +282,7 @@ class Tweaks(QAbstractListModel, AdaptSQP): # {{{
|
||||
self.plugin_tweaks = d
|
||||
|
||||
def universal_set(self):
|
||||
return set(xrange(self.rowCount()))
|
||||
return set(range(self.rowCount()))
|
||||
|
||||
def get_matches(self, location, query, candidates=None):
|
||||
if candidates is None:
|
||||
|
@ -23,6 +23,7 @@ from calibre.utils.icu import sort_key, lower, strcmp, collation_order, primary_
|
||||
from calibre.library.field_metadata import category_icon_map
|
||||
from calibre.gui2.dialogs.confirm_delete import confirm
|
||||
from calibre.utils.formatter import EvalFormatter
|
||||
from polyglot.builtins import range
|
||||
|
||||
TAG_SEARCH_STATES = {'clear': 0, 'mark_plus': 1, 'mark_plusplus': 2,
|
||||
'mark_minus': 3, 'mark_minusminus': 4}
|
||||
@ -1492,7 +1493,7 @@ class TagsModel(QAbstractItemModel): # {{{
|
||||
if path[depth] > start_path[depth]:
|
||||
start_path = path
|
||||
my_key = self.get_node(category_index).category_key
|
||||
for j in xrange(self.rowCount(category_index)):
|
||||
for j in range(self.rowCount(category_index)):
|
||||
tag_index = self.index(j, 0, category_index)
|
||||
tag_item = self.get_node(tag_index)
|
||||
if tag_item.type == TagTreeItem.CATEGORY:
|
||||
@ -1503,7 +1504,7 @@ class TagsModel(QAbstractItemModel): # {{{
|
||||
return True
|
||||
return False
|
||||
|
||||
for i in xrange(self.rowCount(QModelIndex())):
|
||||
for i in range(self.rowCount(QModelIndex())):
|
||||
if process_level(0, self.index(i, 0, QModelIndex()), start_path):
|
||||
break
|
||||
return self.path_found
|
||||
@ -1517,7 +1518,7 @@ class TagsModel(QAbstractItemModel): # {{{
|
||||
if not key:
|
||||
return None
|
||||
|
||||
for i in xrange(self.rowCount(parent)):
|
||||
for i in range(self.rowCount(parent)):
|
||||
idx = self.index(i, 0, parent)
|
||||
node = self.get_node(idx)
|
||||
if node.type == TagTreeItem.CATEGORY:
|
||||
@ -1547,7 +1548,7 @@ class TagsModel(QAbstractItemModel): # {{{
|
||||
process_tag(self.index(i, 0, tag_index), c)
|
||||
|
||||
def process_level(category_index):
|
||||
for j in xrange(self.rowCount(category_index)):
|
||||
for j in range(self.rowCount(category_index)):
|
||||
tag_index = self.index(j, 0, category_index)
|
||||
tag_item = self.get_node(tag_index)
|
||||
if tag_item.boxed:
|
||||
@ -1558,7 +1559,7 @@ class TagsModel(QAbstractItemModel): # {{{
|
||||
else:
|
||||
process_tag(tag_index, tag_item)
|
||||
|
||||
for i in xrange(self.rowCount(QModelIndex())):
|
||||
for i in range(self.rowCount(QModelIndex())):
|
||||
process_level(self.index(i, 0, QModelIndex()))
|
||||
|
||||
# }}}
|
||||
|
@ -24,7 +24,7 @@ from calibre.gui2.tag_browser.model import (TagTreeItem, TAG_SEARCH_STATES,
|
||||
TagsModel, DRAG_IMAGE_ROLE, COUNT_ROLE)
|
||||
from calibre.gui2 import config, gprefs, choose_files, pixmap_to_data, rating_font, empty_index
|
||||
from calibre.utils.icu import sort_key
|
||||
from polyglot.builtins import unicode_type
|
||||
from polyglot.builtins import unicode_type, range
|
||||
|
||||
|
||||
class TagDelegate(QStyledItemDelegate): # {{{
|
||||
@ -723,7 +723,7 @@ class TagsView(QTreeView): # {{{
|
||||
if not index.isValid():
|
||||
return
|
||||
self.expand(index)
|
||||
for r in xrange(self.model().rowCount(index)):
|
||||
for r in range(self.model().rowCount(index)):
|
||||
self.expand_node_and_descendants(index.child(r, 0))
|
||||
|
||||
def collapse_menu_hovered(self, action):
|
||||
|
Loading…
x
Reference in New Issue
Block a user