From 443bc4d66937a81a73e7d22ed0ba4d80c64dafe7 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Thu, 13 Aug 2026 13:00:30 +0300 Subject: [PATCH] gh-80678: Document the preferred attribute of csv.Sniffer (GH-155068) It can be modified to change the order in which the delimiters are preferred for breaking ties. (cherry picked from commit 1370f8a8a19a1201b2cc27a301a3f8f1d4478764) Co-authored-by: Serhiy Storchaka --- Doc/library/csv.rst | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Doc/library/csv.rst b/Doc/library/csv.rst index 64065a75917af83..159530937c20ca0 100644 --- a/Doc/library/csv.rst +++ b/Doc/library/csv.rst @@ -316,8 +316,8 @@ The :mod:`!csv` module defines the following classes: If several delimiters fit the sample equally well --- for example if both ``','`` and ``';'`` split every row consistently --- - the delimiters ``','``, ``'\t'``, ``';'``, ``' '`` and ``':'`` - are preferred, in this order, + the delimiters listed in the :attr:`~Sniffer.preferred` attribute + are preferred, in that order, no matter how many times each of them occurs. .. method:: has_header(sample) @@ -339,6 +339,15 @@ The :mod:`!csv` module defines the following classes: This method is a rough heuristic and may produce both false positives and negatives. + The :class:`Sniffer` class has the following attribute: + + .. attribute:: preferred + + The list of the delimiters preferred for breaking ties, + in the order of preference. + It can be modified. + Its initial value is ``[',', '\t', ';', ' ', ':']``. + An example for :class:`Sniffer` use:: with open('example.csv', newline='') as csvfile: