diff options
author | Pauli Virtanen <pav@iki.fi> | 2010-02-21 02:46:46 +0000 |
---|---|---|
committer | Pauli Virtanen <pav@iki.fi> | 2010-02-21 02:46:46 +0000 |
commit | ae00919e25ec6613685915ef658bb257d3835a2c (patch) | |
tree | 06820d4eccc25bcdc778e9e1f10050f0a5e5c43a /numpy/matrixlib/defmatrix.py | |
parent | 8b0edd6a11559d904454e2fc72f0c5663ace667f (diff) | |
download | numpy-ae00919e25ec6613685915ef658bb257d3835a2c.tar.gz |
3K: matrixlib: adapt to changes in str.translate
Diffstat (limited to 'numpy/matrixlib/defmatrix.py')
-rw-r--r-- | numpy/matrixlib/defmatrix.py | 40 |
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(';') |