[Numpy-discussion] Py3: numpy.rec.array fails with open file
Christoph Gohlke
cgohlke at uci.edu
Wed May 25 21:29:10 EDT 2011
Hello,
the following code raises a ValueError on Python 3, but works as
expected with Python 2:
>>> import sys, numpy
>>> fd = open(sys.executable, 'rb')
>>> numpy.rec.array(fd, dtype=[('_', 'b')])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python32\lib\site-packages\numpy\core\records.py", line 799,
in array
raise ValueError("Unknown input type")
ValueError: Unknown input type
The problem seems to be the test for file objects in numpy/compat/py3k.py:
def isfileobj(f):
return isinstance(f, io.FileIO)
If this is updated to include _io.BufferedReader, the type of `fd`,
numpy.rec.array works with file objects opened in 'rb' mode:
def isfileobj(f):
return isinstance(f, (io.FileIO, io._io.BufferedReader))
Tested with numpy 1.6.0 on Windows.
Christoph
More information about the NumPy-Discussion
mailing list