[3.12] gh-98820: Fix quadratic time in csv.Sniffer for quoted fields … · python/cpython@063d455 · GitHub
Skip to content

Commit 063d455

Browse files
[3.12] gh-98820: Fix quadratic time in csv.Sniffer for quoted fields (GH-154867) (#155166)
(cherry picked from commit b30c7fa) Co-authored-by: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
1 parent d9d98e0 commit 063d455

3 files changed

Lines changed: 18 additions & 5 deletions

File tree

Lib/csv.py

Lines changed: 9 additions & 5 deletions

Lib/test/test_csv.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1415,6 +1415,13 @@ def test_sniff_space_delimiter(self):
14151415
self.assertEqual(dialect.delimiter, ' ')
14161416
self.assertIs(dialect.doublequote, False)
14171417

1418+
def test_sniff_quoted_single_column(self):
1419+
# gh-98820: this sample used to take minutes.
1420+
sniffer = csv.Sniffer()
1421+
sample = '"abcdefghijklmnopqrstuvwxyz"\n' * 10000
1422+
with self.assertRaisesRegex(csv.Error, "Could not determine delimiter"):
1423+
sniffer.sniff(sample, delimiters=',:|\t')
1424+
14181425

14191426
class NUL:
14201427
def write(s, *args):
Lines changed: 2 additions & 0 deletions

0 commit comments

Comments
 (0)