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






_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to