diff options
author | Raunak Shah <32986603+raunaks13@users.noreply.github.com> | 2018-04-17 05:12:01 +0000 |
---|---|---|
committer | Eric Wieser <wieser.eric@gmail.com> | 2018-04-16 22:12:01 -0700 |
commit | 8323be1bc44c2811fc36f5b99c1a30ebcee8edbd (patch) | |
tree | ce7a026aa95f62b2fc557d6573367b8022d9bb42 /numpy/lib | |
parent | 3b79c4405690227087022a943fd78217b700a3f5 (diff) | |
download | numpy-8323be1bc44c2811fc36f5b99c1a30ebcee8edbd.tar.gz |
BUG: fix crash in numpy.genfromtxt(..., names=True, comments=None) (#10822)
Fixes gh-10780
Diffstat (limited to 'numpy/lib')
-rw-r--r-- | numpy/lib/npyio.py | 7 | ||||
-rw-r--r-- | numpy/lib/tests/test_io.py | 7 |
2 files changed, 11 insertions, 3 deletions
diff --git a/numpy/lib/npyio.py b/numpy/lib/npyio.py index 197562818..29688f73d 100644 --- a/numpy/lib/npyio.py +++ b/numpy/lib/npyio.py @@ -1720,7 +1720,7 @@ def genfromtxt(fname, dtype=float, comments='#', delimiter=None, try: while not first_values: first_line = _decode_line(next(fhd), encoding) - if names is True: + if (names is True) and (comments is not None): if comments in first_line: first_line = ( ''.join(first_line.split(comments)[1:])) @@ -1734,8 +1734,9 @@ def genfromtxt(fname, dtype=float, comments='#', delimiter=None, # Should we take the first values as names ? if names is True: fval = first_values[0].strip() - if fval in comments: - del first_values[0] + if comments is not None: + if fval in comments: + del first_values[0] # Check the columns to use: make sure `usecols` is a list if usecols is not None: diff --git a/numpy/lib/tests/test_io.py b/numpy/lib/tests/test_io.py index 7dcefe80d..84aca9915 100644 --- a/numpy/lib/tests/test_io.py +++ b/numpy/lib/tests/test_io.py @@ -1317,6 +1317,13 @@ M 33 21.99 assert_(w[0].category is np.VisibleDeprecationWarning) assert_equal(test, ctrl) + def test_names_and_comments_none(self): + # Tests case when names is true but comments is None (gh-10780) + data = TextIO('col1 col2\n 1 2\n 3 4') + test = np.genfromtxt(data, dtype=(int, int), comments=None, names=True) + control = np.array([(1, 2), (3, 4)], dtype=[('col1', int), ('col2', int)]) + assert_equal(test, control) + def test_autonames_and_usecols(self): # Tests names and usecols data = TextIO('A B C D\n aaaa 121 45 9.1') |