Message190742
When attempting to detect the presence of CSV headers, delimiters are passed to a regex function without escaping, which causes an exception if a delimiter which has meaning in a regex (e.g. '+', '*' etc.) is used.
Code to reproduce:
import csv
s = csv.Sniffer()
s.has_header('"x"+"y"')
Trace:
Traceback (most recent call last):
File "t.py", line 4, in <module>
s.has_header('"x"+"y"')
File "/usr/lib64/python3.3/csv.py", line 393, in has_header
rdr = reader(StringIO(sample), self.sniff(sample))
File "/usr/lib64/python3.3/csv.py", line 183, in sniff
self._guess_quote_and_delimiter(sample, delimiters)
File "/usr/lib64/python3.3/csv.py", line 268, in _guess_quote_and_delimiter
{'delim':delim, 'quote':quotechar}, re.MULTILINE)
File "/home/dsc/venv/p3compat/lib64/python3.3/re.py", line 214, in compile
return _compile(pattern, flags)
File "/home/dsc/venv/p3compat/lib64/python3.3/re.py", line 281, in _compile
p = sre_compile.compile(pattern, flags)
File "/home/dsc/venv/p3compat/lib64/python3.3/sre_compile.py", line 494, in compile
p = sre_parse.parse(p, flags)
File "/home/dsc/venv/p3compat/lib64/python3.3/sre_parse.py", line 748, in parse
p = _parse_sub(source, pattern, 0)
File "/home/dsc/venv/p3compat/lib64/python3.3/sre_parse.py", line 360, in _parse_sub
itemsappend(_parse(source, state))
File "/home/dsc/venv/p3compat/lib64/python3.3/sre_parse.py", line 696, in _parse
p = _parse_sub(source, state)
File "/home/dsc/venv/p3compat/lib64/python3.3/sre_parse.py", line 360, in _parse_sub
itemsappend(_parse(source, state))
File "/home/dsc/venv/p3compat/lib64/python3.3/sre_parse.py", line 696, in _parse
p = _parse_sub(source, state)
File "/home/dsc/venv/p3compat/lib64/python3.3/sre_parse.py", line 360, in _parse_sub
itemsappend(_parse(source, state))
File "/home/dsc/venv/p3compat/lib64/python3.3/sre_parse.py", line 569, in _parse
raise error("nothing to repeat")
sre_constants.error: nothing to repeat |
|
Date |
User |
Action |
Args |
2013-06-07 11:09:19 | davechallis | set | recipients:
+ davechallis |
2013-06-07 11:09:19 | davechallis | set | messageid: <1370603359.06.0.18660649496.issue18155@psf.upfronthosting.co.za> |
2013-06-07 11:09:19 | davechallis | link | issue18155 messages |
2013-06-07 11:09:18 | davechallis | create | |
|