[Python-checkins] python/nondist/sandbox/csv/util sniffer.py,1.5,1.6

cliffwells18@users.sourceforge.net cliffwells18@users.sourceforge.net
Fri, 14 Mar 2003 17:15:05 -0800


Update of /cvsroot/python/python/nondist/sandbox/csv/util
In directory sc8-pr-cvs1:/tmp/cvs-serv27901

Modified Files:
	sniffer.py 
Log Message:
Added arbitrary limit to hasHeaders().



Index: sniffer.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/csv/util/sniffer.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** sniffer.py	15 Mar 2003 01:08:21 -0000	1.5
--- sniffer.py	15 Mar 2003 01:15:03 -0000	1.6
***************
*** 214,219 ****
          Strips parens from item prior to calling eval in an attempt to make it safer
          """
!         item = item.replace('(', '').replace(')', '')
!         return eval(item)
  
      reader = csv.reader(fileObj,
--- 214,218 ----
          Strips parens from item prior to calling eval in an attempt to make it safer
          """
!         return eval(item.replace('(', '').replace(')', ''))
  
      reader = csv.reader(fileObj,
***************
*** 227,234 ****
      columnTypes = {}
      for i in range(columns): columnTypes[i] = None
!     
      for row in reader:
          if len(row) != columns:
              continue # skip rows that have irregular number of columns
          for col in columnTypes.keys():
              try:
--- 226,239 ----
      columnTypes = {}
      for i in range(columns): columnTypes[i] = None
! 
!     checked = 0
      for row in reader:
+         if checked > 20: # arbitrary number of rows to check, to keep it sane
+             break
+         checked += 1
+         
          if len(row) != columns:
              continue # skip rows that have irregular number of columns
+         
          for col in columnTypes.keys():
              try: