[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