diff --git a/Lib/csv.py b/Lib/csv.py index c66717dc1ee59e7..773806f2145a13f 100644 --- a/Lib/csv.py +++ b/Lib/csv.py @@ -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: diff --git a/Lib/test/test_csv.py b/Lib/test/test_csv.py index 91170cc16b3ac95..ca99769d4bf1b15 100644 --- a/Lib/test/test_csv.py +++ b/Lib/test/test_csv.py @@ -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, []) @@ -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): diff --git a/Misc/NEWS.d/next/Library/2022-12-18-21-24-48.gh-issue-73138.9TOxub.rst b/Misc/NEWS.d/next/Library/2022-12-18-21-24-48.gh-issue-73138.9TOxub.rst new file mode 100644 index 000000000000000..dd86309410bb220 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-12-18-21-24-48.gh-issue-73138.9TOxub.rst @@ -0,0 +1 @@ +Add missing :attr:`Dialect.strict` attribute to :class:`csv.Dialect`. diff --git a/Misc/NEWS.d/next/Library/2022-12-18-21-57-36.gh-issue-100335.89i6HX.rst b/Misc/NEWS.d/next/Library/2022-12-18-21-57-36.gh-issue-100335.89i6HX.rst new file mode 100644 index 000000000000000..6b74135ed76323a --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-12-18-21-57-36.gh-issue-100335.89i6HX.rst @@ -0,0 +1,2 @@ +Set the attribute values of :class:`csv.Dialect` to their documented +defaults, see :ref:`csv-fmt-params`.