summaryrefslogtreecommitdiff
path: root/numpy/matrixlib/defmatrix.py
diff options
context:
space:
mode:
authorPauli Virtanen <pav@iki.fi>2010-02-21 02:46:46 +0000
committerPauli Virtanen <pav@iki.fi>2010-02-21 02:46:46 +0000
commitae00919e25ec6613685915ef658bb257d3835a2c (patch)
tree06820d4eccc25bcdc778e9e1f10050f0a5e5c43a /numpy/matrixlib/defmatrix.py
parent8b0edd6a11559d904454e2fc72f0c5663ace667f (diff)
downloadnumpy-ae00919e25ec6613685915ef658bb257d3835a2c.tar.gz
3K: matrixlib: adapt to changes in str.translate
Diffstat (limited to 'numpy/matrixlib/defmatrix.py')
-rw-r--r--numpy/matrixlib/defmatrix.py40
1 files changed, 26 insertions, 14 deletions
diff --git a/numpy/matrixlib/defmatrix.py b/numpy/matrixlib/defmatrix.py
index 7728ea229..a6570eedd 100644
--- a/numpy/matrixlib/defmatrix.py
+++ b/numpy/matrixlib/defmatrix.py
@@ -6,21 +6,33 @@ from numpy.core.numeric import concatenate, isscalar, binary_repr, identity, asa
from numpy.core.numerictypes import issubdtype
# make translation table
-_table = [None]*256
-for k in range(256):
- _table[k] = chr(k)
-_table = ''.join(_table)
-
_numchars = '0123456789.-+jeEL'
-_todelete = []
-for k in _table:
- if k not in _numchars:
- _todelete.append(k)
-_todelete = ''.join(_todelete)
-del k
-
-def _eval(astr):
- return eval(astr.translate(_table,_todelete))
+
+if sys.version_info[0] >= 3:
+ class _NumCharTable:
+ def __getitem__(self, i):
+ if chr(i) in _numchars:
+ return chr(i)
+ else:
+ return None
+ _table = _NumCharTable()
+ def _eval(astr):
+ return eval(astr.translate(_table))
+else:
+ _table = [None]*256
+ for k in range(256):
+ _table[k] = chr(k)
+ _table = ''.join(_table)
+
+ _todelete = []
+ for k in _table:
+ if k not in _numchars:
+ _todelete.append(k)
+ _todelete = ''.join(_todelete)
+ del k
+
+ def _eval(astr):
+ return eval(astr.translate(_table,_todelete))
def _convert_from_string(data):
rows = data.split(';')