summaryrefslogtreecommitdiff
path: root/Lib/csv.py
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2003-04-25 14:27:00 +0000
committerFred Drake <fdrake@acm.org>2003-04-25 14:27:00 +0000
commitc6c85d32c4bf3abc40822204913b093668a1d3f0 (patch)
treee3d5c59e0a62f4320a2ac110e9f34c2712514387 /Lib/csv.py
parent01ba22f8b72c78733f638eb50bd2777571906c77 (diff)
downloadcpython-c6c85d32c4bf3abc40822204913b093668a1d3f0.tar.gz
Attempt to deal with some obvious errors in the code. These were all
due to using a single module-level namespace where multiple namespaces were used before. There *really* need to be tests for the sniffer stuff. This could have been avoided. Skip, please review, and add sniffer tests!
Diffstat (limited to 'Lib/csv.py')
-rw-r--r--Lib/csv.py29
1 files changed, 14 insertions, 15 deletions
diff --git a/Lib/csv.py b/Lib/csv.py
index c510c704b6..89d86d6ce0 100644
--- a/Lib/csv.py
+++ b/Lib/csv.py
@@ -161,7 +161,6 @@ class Sniffer:
"""
Takes a file-like object and returns a dialect (or None)
"""
-
self.fileobj = fileobj
data = fileobj.read(self.sample)
@@ -171,17 +170,17 @@ class Sniffer:
if delimiter is None:
delimiter, skipinitialspace = self._guessDelimiter(data)
- class Dialect(csv.Dialect):
+ class SniffedDialect(Dialect):
_name = "sniffed"
lineterminator = '\r\n'
- quoting = csv.QUOTE_MINIMAL
+ quoting = QUOTE_MINIMAL
# escapechar = ''
doublequote = False
- Dialect.delimiter = delimiter
- Dialect.quotechar = quotechar
- Dialect.skipinitialspace = skipinitialspace
+ SniffedDialect.delimiter = delimiter
+ SniffedDialect.quotechar = quotechar
+ SniffedDialect.skipinitialspace = skipinitialspace
- self.dialect = Dialect
+ self.dialect = SniffedDialect
return self.dialect
@@ -189,8 +188,8 @@ class Sniffer:
return self._hasHeaders(self.fileobj, self.dialect)
- def register_dialect(self, name = 'sniffed'):
- csv.register_dialect(name, self.dialect)
+ def register_dialect(self, name='sniffed'):
+ register_dialect(name, self.dialect)
def _guessQuoteAndDelimiter(self, data):
@@ -378,19 +377,19 @@ class Sniffer:
# objects...
fileobj.seek(0)
- reader = csv.reader(fileobj,
- delimiter = dialect.delimiter,
- quotechar = dialect.quotechar,
- skipinitialspace = dialect.skipinitialspace)
+ r = csv.reader(fileobj,
+ delimiter=dialect.delimiter,
+ quotechar=dialect.quotechar,
+ skipinitialspace=dialect.skipinitialspace)
- header = reader.next() # assume first row is header
+ header = r.next() # assume first row is header
columns = len(header)
columnTypes = {}
for i in range(columns): columnTypes[i] = None
checked = 0
- for row in reader:
+ for row in r:
# arbitrary number of rows to check, to keep it sane
if checked > 20:
break