Skip to content

Commit 7370008

Browse files
committed
Add escapechar to unsupported options
1 parent 7da6613 commit 7370008

File tree

2 files changed

+15
-11
lines changed

2 files changed

+15
-11
lines changed

pandas/io/formats/csvs.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,7 @@ def _save_pyarrow(self, handle: IO[AnyStr]) -> None:
291291
(self.lineterminator, os.linesep, "lineterminator"),
292292
(self.encoding, None, "encoding"),
293293
(self.errors, "strict", "errors"),
294+
(self.escapechar, None, "escapechar"),
294295
]
295296

296297
for opt_val, default, option in unsupported_options:

pandas/tests/io/formats/test_to_csv.py

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -146,20 +146,22 @@ def test_to_csv_doublequote(self):
146146
with pytest.raises(Error, match="escapechar"):
147147
df.to_csv(path, doublequote=False, engine=engine) # no escapechar set
148148

149-
def test_to_csv_escapechar(self, engine=engine):
149+
def test_to_csv_escapechar(self, engine):
150+
raises_if_pyarrow = check_raises_if_pyarrow("escapechar", engine)
150151
df = DataFrame({"col": ['a"a', '"bb"']})
151152
expected = """\
152153
"","col"
153154
"0","a\\"a"
154155
"1","\\"bb\\""
155156
"""
156157

157-
with tm.ensure_clean("test.csv") as path: # QUOTE_ALL
158-
df.to_csv(
159-
path, quoting=1, doublequote=False, escapechar="\\", engine=engine
160-
)
161-
with open(path, encoding="utf-8") as f:
162-
assert f.read() == expected
158+
with raises_if_pyarrow:
159+
with tm.ensure_clean("test.csv") as path: # QUOTE_ALL
160+
df.to_csv(
161+
path, quoting=1, doublequote=False, escapechar="\\", engine=engine
162+
)
163+
with open(path, encoding="utf-8") as f:
164+
assert f.read() == expected
163165

164166
df = DataFrame({"col": ["a,a", ",bb,"]})
165167
expected = """\
@@ -168,10 +170,11 @@ def test_to_csv_escapechar(self, engine=engine):
168170
1,\\,bb\\,
169171
"""
170172

171-
with tm.ensure_clean("test.csv") as path:
172-
df.to_csv(path, quoting=3, escapechar="\\", engine=engine) # QUOTE_NONE
173-
with open(path, encoding="utf-8") as f:
174-
assert f.read() == expected
173+
with raises_if_pyarrow:
174+
with tm.ensure_clean("test.csv") as path:
175+
df.to_csv(path, quoting=3, escapechar="\\", engine=engine) # QUOTE_NONE
176+
with open(path, encoding="utf-8") as f:
177+
assert f.read() == expected
175178

176179
@xfail_pyarrow
177180
def test_csv_to_string(self, engine):

0 commit comments

Comments
 (0)