Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions Lib/csv.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,19 +87,20 @@ class Dialect:

This must be subclassed (see csv.excel). Valid attributes are:
delimiter, quotechar, escapechar, doublequote, skipinitialspace,
lineterminator, quoting.
lineterminator, quoting, strict.

"""
_name = ""
_valid = False
# placeholders
delimiter = None
quotechar = None
delimiter = ','
quotechar = '"'
escapechar = None
doublequote = None
skipinitialspace = None
lineterminator = None
quoting = None
doublequote = True
skipinitialspace = False
lineterminator = '\r\n'
quoting = QUOTE_MINIMAL
strict = False

def __init__(self):
if self.__class__ != Dialect:
Expand Down
13 changes: 13 additions & 0 deletions Lib/test/test_csv.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,18 @@ def _test_kw_attrs(self, ctor, *args):
self.assertIs(obj.dialect.skipinitialspace, True)
self.assertIs(obj.dialect.strict, True)

def test_default_attrs(self):
class dialect(csv.Dialect):
pass
self.assertEqual(dialect.delimiter, ',')
self.assertEqual(dialect.doublequote, True)
self.assertEqual(dialect.escapechar, None)
self.assertEqual(dialect.lineterminator, '\r\n')
self.assertEqual(dialect.quotechar, '"')
self.assertEqual(dialect.quoting, csv.QUOTE_MINIMAL)
self.assertEqual(dialect.skipinitialspace, False)
self.assertEqual(dialect.strict, False)

def test_reader_kw_attrs(self):
self._test_kw_attrs(csv.reader, [])

Expand Down Expand Up @@ -648,6 +660,7 @@ class mydialect(csv.Dialect):
def test_incomplete_dialect(self):
class myexceltsv(csv.Dialect):
delimiter = "\t"
quoting = None
self.assertRaises(csv.Error, myexceltsv)

def test_space_dialect(self):
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add missing :attr:`Dialect.strict` attribute to :class:`csv.Dialect`.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Set the attribute values of :class:`csv.Dialect` to their documented
defaults, see :ref:`csv-fmt-params`.
Loading