[Python-checkins] python/dist/src/Lib csv.py,1.3,1.4
montanaro@users.sourceforge.net
montanaro@users.sourceforge.net
Mon, 19 May 2003 08:33:38 -0700
Update of /cvsroot/python/python/dist/src/Lib
In directory sc8-pr-cvs1:/tmp/cvs-serv25989/Lib
Modified Files:
csv.py
Log Message:
* Correct Sniffer doc to correspond to the implementation.
* Add optional delimiters arg to Sniffer.sniff() which restricts the set of
candidate field delimiters.
Index: csv.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/csv.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** csv.py 25 Apr 2003 14:47:16 -0000 1.3
--- csv.py 19 May 2003 15:33:36 -0000 1.4
***************
*** 160,164 ****
! def sniff(self, sample):
"""
Returns a dialect (or None) corresponding to the sample
--- 160,164 ----
! def sniff(self, sample, delimiters=None):
"""
Returns a dialect (or None) corresponding to the sample
***************
*** 166,172 ****
quotechar, delimiter, skipinitialspace = \
! self._guess_quote_and_delimiter(sample)
if delimiter is None:
! delimiter, skipinitialspace = self._guess_delimiter(sample)
class dialect(Dialect):
--- 166,173 ----
quotechar, delimiter, skipinitialspace = \
! self._guess_quote_and_delimiter(sample, delimiters)
if delimiter is None:
! delimiter, skipinitialspace = self._guess_delimiter(sample,
! delimiters)
class dialect(Dialect):
***************
*** 185,189 ****
! def _guess_quote_and_delimiter(self, data):
"""
Looks for text enclosed between two identical quotes
--- 186,190 ----
! def _guess_quote_and_delimiter(self, data, delimiters):
"""
Looks for text enclosed between two identical quotes
***************
*** 223,227 ****
except KeyError:
continue
! if key:
delims[key] = delims.get(key, 0) + 1
try:
--- 224,228 ----
except KeyError:
continue
! if key and (delimiters is None or key in delimiters):
delims[key] = delims.get(key, 0) + 1
try:
***************
*** 249,253 ****
! def _guess_delimiter(self, data):
"""
The delimiter /should/ occur the same number of times on
--- 250,254 ----
! def _guess_delimiter(self, data, delimiters):
"""
The delimiter /should/ occur the same number of times on
***************
*** 317,321 ****
for k, v in modeList:
if v[0] > 0 and v[1] > 0:
! if (v[1]/total) >= consistency:
delims[k] = v
consistency -= 0.01
--- 318,323 ----
for k, v in modeList:
if v[0] > 0 and v[1] > 0:
! if ((v[1]/total) >= consistency and
! (delimiters is None or k in delimiters)):
delims[k] = v
consistency -= 0.01