File tree 3 files changed +14
-0
lines changed
3 files changed +14
-0
lines changed Original file line number Diff line number Diff line change @@ -41,6 +41,9 @@ Bug Fixes
41
41
detecting the terminal size. This fix only applies to python 3 (:issue:`16496`)
42
42
- Bug in using ``pathlib.Path`` or ``py.path.local`` objects with io functions (:issue:`16291`)
43
43
- Bug in ``DataFrame.update()`` with ``overwrite=False`` and ``NaN values`` (:issue:`15593`)
44
+ - Passing an invalid engine to :func:`read_csv` now raises an informative
45
+ ``ValueError`` rather than ``UnboundLocalError``. (:issue:`16511`)
46
+
44
47
45
48
46
49
Original file line number Diff line number Diff line change @@ -969,6 +969,10 @@ def _make_engine(self, engine='c'):
969
969
klass = PythonParser
970
970
elif engine == 'python-fwf' :
971
971
klass = FixedWidthFieldParser
972
+ else :
973
+ raise ValueError ('Unknown engine: {engine} (valid options are'
974
+ ' "c", "python", or' ' "python-fwf")' .format (
975
+ engine = engine ))
972
976
self ._engine = klass (self .f , ** self .options )
973
977
974
978
def _failover_to_python (self ):
Original file line number Diff line number Diff line change @@ -223,3 +223,10 @@ def test_next(self):
223
223
assert next_line .strip () == line .strip ()
224
224
225
225
pytest .raises (StopIteration , next , wrapper )
226
+
227
+ def test_unknown_engine (self ):
228
+ with tm .ensure_clean () as path :
229
+ df = tm .makeDataFrame ()
230
+ df .to_csv (path )
231
+ with tm .assert_raises_regex (ValueError , 'Unknown engine' ):
232
+ read_csv (path , engine = 'pyt' )
You can’t perform that action at this time.
0 commit comments