From 8323be1bc44c2811fc36f5b99c1a30ebcee8edbd Mon Sep 17 00:00:00 2001 From: Raunak Shah <32986603+raunaks13@users.noreply.github.com> Date: Tue, 17 Apr 2018 05:12:01 +0000 Subject: BUG: fix crash in numpy.genfromtxt(..., names=True, comments=None) (#10822) Fixes gh-10780 --- numpy/lib/npyio.py | 7 ++++--- numpy/lib/tests/test_io.py | 7 +++++++ 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'numpy/lib') 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') -- cgit v1.2.1