From 8ed3bb621d123b13e434a198a90aa5b1d6452669 Mon Sep 17 00:00:00 2001
From: Ralph Bean <rbean@redhat.com>
Date: Mon, 2 Jul 2012 12:47:20 -0400
Subject: [PATCH 1/2] Py3-support.
---
tablib/packages/xlrd/__init__.py | 6 +++---
tablib/packages/xlrd/biffh.py | 4 ++--
tablib/packages/xlrd/formatting.py | 18 +++++++++---------
tablib/packages/xlrd/formula.py | 4 ++--
tablib/packages/xlrd/sheet.py | 6 +++---
tablib/packages/xlrd/timemachine.py | 6 ------
6 files changed, 19 insertions(+), 25 deletions(-)
diff --git a/tablib/packages/xlrd/__init__.py b/tablib/packages/xlrd/__init__.py
index 9097d9d..00fe65a 100644
--- a/tablib/packages/xlrd/__init__.py
+++ b/tablib/packages/xlrd/__init__.py
@@ -1087,7 +1087,7 @@ class Book(BaseObject):
fprintf(self.logfile, "*** No CODEPAGE record; assuming 1200 (utf_16_le)\n")
else:
codepage = self.codepage
- if encoding_from_codepage.has_key(codepage):
+ if encoding_from_codepage.__contains__(codepage):
encoding = encoding_from_codepage[codepage]
elif 300 <= codepage <= 1999:
encoding = 'cp' + str(codepage)
@@ -1338,7 +1338,7 @@ class Book(BaseObject):
nobj = self.name_obj_list[namex]
name_lcase = nobj.name.lower()
key = (name_lcase, nobj.scope)
- if name_and_scope_map.has_key(key):
+ if name_and_scope_map.__contains__(key):
msg = 'Duplicate entry %r in name_and_scope_map' % (key, )
if 0:
raise XLRDError(msg)
@@ -1346,7 +1346,7 @@ class Book(BaseObject):
if self.verbosity:
print >> f, msg
name_and_scope_map[key] = nobj
- if name_map.has_key(name_lcase):
+ if name_map.__contains__(name_lcase):
name_map[name_lcase].append((nobj.scope, nobj))
else:
name_map[name_lcase] = [(nobj.scope, nobj)]
diff --git a/tablib/packages/xlrd/biffh.py b/tablib/packages/xlrd/biffh.py
index ba3b26c..5602aa9 100644
--- a/tablib/packages/xlrd/biffh.py
+++ b/tablib/packages/xlrd/biffh.py
@@ -222,7 +222,7 @@ _cell_opcode_list = [
_cell_opcode_dict = {}
for _cell_opcode in _cell_opcode_list:
_cell_opcode_dict[_cell_opcode] = 1
-is_cell_opcode = _cell_opcode_dict.has_key
+is_cell_opcode = _cell_opcode_dict.__contains__
# def fprintf(f, fmt, *vargs): f.write(fmt % vargs)
@@ -604,7 +604,7 @@ def biff_count_records(mem, stream_offset, stream_len, fout=sys.stdout):
recname = biff_rec_name_dict.get(rc, None)
if recname is None:
recname = "Unknown_0x%04X" % rc
- if tally.has_key(recname):
+ if tally.__contains__(recname):
tally[recname] += 1
else:
tally[recname] = 1
diff --git a/tablib/packages/xlrd/formatting.py b/tablib/packages/xlrd/formatting.py
index 302764b..b9e2fb5 100644
--- a/tablib/packages/xlrd/formatting.py
+++ b/tablib/packages/xlrd/formatting.py
@@ -470,7 +470,7 @@ def is_date_format_string(book, fmt):
# TODO: u'[h]\\ \\h\\o\\u\\r\\s' ([h] means don't care about hours > 23)
state = 0
s = ''
- ignorable = skip_char_dict.has_key
+ ignorable = skip_char_dict.__contains__
for c in fmt:
if state == 0:
if c == u'"':
@@ -491,16 +491,16 @@ def is_date_format_string(book, fmt):
if book.verbosity >= 4:
print "is_date_format_string: reduced format is %r" % s
s = fmt_bracketed_sub('', s)
- if non_date_formats.has_key(s):
+ if non_date_formats.__contains__(s):
return False
state = 0
separator = ";"
got_sep = 0
date_count = num_count = 0
for c in s:
- if date_char_dict.has_key(c):
+ if date_char_dict.__contains__(c):
date_count += date_char_dict[c]
- elif num_char_dict.has_key(c):
+ elif num_char_dict.__contains__(c):
num_count += num_char_dict[c]
elif c == separator:
got_sep = 1
@@ -618,7 +618,7 @@ def palette_epilogue(book):
cx = font.colour_index
if cx == 0x7fff: # system window text colour
continue
- if book.colour_map.has_key(cx):
+ if book.colour_map.__contains__(cx):
book.colour_indexes_used[cx] = 1
else:
print "Size of colour table:", len(book.colour_map)
@@ -675,7 +675,7 @@ def check_colour_indexes_in_obj(book, obj, orig_index):
if hasattr(nobj, 'dump'):
check_colour_indexes_in_obj(book, nobj, orig_index)
elif attr.find('colour_index') >= 0:
- if book.colour_map.has_key(nobj):
+ if book.colour_map.__contains__(nobj):
book.colour_indexes_used[nobj] = 1
continue
oname = obj.__class__.__name__
@@ -704,7 +704,7 @@ def handle_xf(self, data):
if bv >= 50 and not self.xfcount:
# i.e. do this once before we process the first XF record
for x in std_format_code_types.keys():
- if not self.format_map.has_key(x):
+ if not self.format_map.__contains__(x):
ty = std_format_code_types[x]
fmt_str = std_format_strings[x]
fmtobj = Format(x, ty, fmt_str)
@@ -951,7 +951,7 @@ def handle_xf(self, data):
msg = "WARNING *** XF[%d] is a style XF but parent_style_index is 0x%04x, not 0x0fff\n"
fprintf(self.logfile, msg, xf.xf_index, xf.parent_style_index)
check_colour_indexes_in_obj(self, xf, xf.xf_index)
- if not self.format_map.has_key(xf.format_key):
+ if not self.format_map.__contains__(xf.format_key):
msg = "WARNING *** XF[%d] unknown (raw) format key (%d, 0x%04x)\n"
fprintf(self.logfile, msg,
xf.xf_index, xf.format_key, xf.format_key)
@@ -975,7 +975,7 @@ def xf_epilogue(self):
for xfx in xrange(num_xfs):
xf = self.xf_list[xfx]
- if not self.format_map.has_key(xf.format_key):
+ if not self.format_map.__contains__(xf.format_key):
msg = "ERROR *** XF[%d] unknown format key (%d, 0x%04x)\n"
fprintf(self.logfile, msg,
xf.xf_index, xf.format_key, xf.format_key)
diff --git a/tablib/packages/xlrd/formula.py b/tablib/packages/xlrd/formula.py
index 4edbc29..28c4651 100644
--- a/tablib/packages/xlrd/formula.py
+++ b/tablib/packages/xlrd/formula.py
@@ -328,7 +328,7 @@ tAttrNames = {
_error_opcodes = {}
for _x in [0x07, 0x08, 0x0A, 0x0B, 0x1C, 0x1D, 0x2F]:
_error_opcodes[_x] = 1
-is_error_opcode = _error_opcodes.has_key
+is_error_opcode = _error_opcodes.__contains__
tRangeFuncs = (min, max, min, max, min, max)
tIsectFuncs = (max, min, max, min, max, min)
@@ -672,7 +672,7 @@ binop_rules = {
tAdd: (_arith_argdict, oNUM, opr.add, 30, '+'),
tSub: (_arith_argdict, oNUM, opr.sub, 30, '-'),
tMul: (_arith_argdict, oNUM, opr.mul, 40, '*'),
- tDiv: (_arith_argdict, oNUM, opr.div, 40, '/'),
+ tDiv: (_arith_argdict, oNUM, opr.truediv, 40, '/'),
tPower: (_arith_argdict, oNUM, _opr_pow, 50, '^',),
tConcat:(_strg_argdict, oSTRG, opr.add, 20, '&'),
tLT: (_cmp_argdict, oBOOL, _opr_lt, 10, '<'),
diff --git a/tablib/packages/xlrd/sheet.py b/tablib/packages/xlrd/sheet.py
index 70f7779..a8fc2af 100644
--- a/tablib/packages/xlrd/sheet.py
+++ b/tablib/packages/xlrd/sheet.py
@@ -1162,7 +1162,7 @@ class Sheet(BaseObject):
% (first_colx, last_colx)
continue
for colx in xrange(first_colx, last_colx+1):
- if self.colinfo_map.has_key(colx):
+ if self.colinfo_map.__contains__(colx):
c = self.colinfo_map[colx]
else:
c = Colinfo()
@@ -1194,7 +1194,7 @@ class Sheet(BaseObject):
offset = 4 + 3 * (colx - first_colx)
cell_attr = data[offset:offset+3]
xf_index = self.fixed_BIFF2_xfindex(cell_attr, rowx=-1, colx=colx)
- if self.colinfo_map.has_key(colx):
+ if self.colinfo_map.__contains__(colx):
c = self.colinfo_map[colx]
else:
c = Colinfo()
@@ -1245,7 +1245,7 @@ class Sheet(BaseObject):
book.xf_list.append(xf)
if blah:
xf.dump(self.logfile, header="=== Faked XF %d ===" % xfx, footer="======")
- if not book.format_map.has_key(xf.format_key):
+ if not book.format_map.__contains__(xf.format_key):
msg = "ERROR *** XF[%d] unknown format key (%d, 0x%04x)\n"
fprintf(self.logfile, msg,
xf.xf_index, xf.format_key, xf.format_key)
diff --git a/tablib/packages/xlrd/timemachine.py b/tablib/packages/xlrd/timemachine.py
index 1718c03..2478887 100644
--- a/tablib/packages/xlrd/timemachine.py
+++ b/tablib/packages/xlrd/timemachine.py
@@ -22,12 +22,6 @@ if sys.version.find("IronPython") >= 0:
else:
from array import array as array_array
-if python_version < (2, 2):
- class object:
- pass
- False = 0
- True = 1
-
def int_floor_div(x, y):
return divmod(x, y)[0]
--
1.7.10.4