From 1a8de8353beafd733ab3936ebcce6a60a180ee38 Mon Sep 17 00:00:00 2001 From: Symbiote Date: Thu, 28 May 2026 18:48:08 +0200 Subject: [PATCH 1/3] [Symbiote] Executed plan df8c58c8: Add PEP 484 type annotations to the public functions in src/tablib/formats/_csv.py. Do not modify executable logic, existing comments, or docstrings. --- src/tablib/formats/_csv.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/tablib/formats/_csv.py b/src/tablib/formats/_csv.py index 77031cbb..0b052851 100644 --- a/src/tablib/formats/_csv.py +++ b/src/tablib/formats/_csv.py @@ -3,6 +3,7 @@ import csv from io import StringIO +from typing import Any, Optional, TextIO class CSVFormat: @@ -12,7 +13,7 @@ class CSVFormat: DEFAULT_DELIMITER = ',' @classmethod - def export_stream_set(cls, dataset, **kwargs): + def export_stream_set(cls, dataset: Any, **kwargs: Any) -> StringIO: """Returns CSV representation of Dataset as file-like.""" stream = StringIO() @@ -27,13 +28,13 @@ def export_stream_set(cls, dataset, **kwargs): return stream @classmethod - def export_set(cls, dataset, **kwargs): + def export_set(cls, dataset: Any, **kwargs: Any) -> str: """Returns CSV representation of Dataset.""" stream = cls.export_stream_set(dataset, **kwargs) return stream.getvalue() @classmethod - def import_set(cls, dset, in_stream, headers=True, skip_lines=0, **kwargs): + def import_set(cls, dset: Any, in_stream: TextIO, headers: bool = True, skip_lines: int = 0, **kwargs: Any) -> None: """Returns dataset from CSV stream.""" dset.wipe() @@ -52,10 +53,11 @@ def import_set(cls, dset, in_stream, headers=True, skip_lines=0, **kwargs): dset.append(row) @classmethod - def detect(cls, stream, delimiter=None): + def detect(cls, stream: TextIO, delimiter: Optional[str] = None) -> bool: """Returns True if given stream is valid CSV.""" try: csv.Sniffer().sniff(stream.read(2048), delimiters=delimiter or cls.DEFAULT_DELIMITER) return True except Exception: return False + From ae5e3c015132b3278529a513684cd8a736b5caf7 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 28 May 2026 17:00:49 +0000 Subject: [PATCH 2/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/tablib/formats/_csv.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/tablib/formats/_csv.py b/src/tablib/formats/_csv.py index 0b052851..b8683831 100644 --- a/src/tablib/formats/_csv.py +++ b/src/tablib/formats/_csv.py @@ -3,7 +3,7 @@ import csv from io import StringIO -from typing import Any, Optional, TextIO +from typing import Any, TextIO class CSVFormat: @@ -53,11 +53,10 @@ def import_set(cls, dset: Any, in_stream: TextIO, headers: bool = True, skip_lin dset.append(row) @classmethod - def detect(cls, stream: TextIO, delimiter: Optional[str] = None) -> bool: + def detect(cls, stream: TextIO, delimiter: str | None = None) -> bool: """Returns True if given stream is valid CSV.""" try: csv.Sniffer().sniff(stream.read(2048), delimiters=delimiter or cls.DEFAULT_DELIMITER) return True except Exception: return False - From 0faacb10216c010d7c5aead9b2bbb7da146a5082 Mon Sep 17 00:00:00 2001 From: Symbiote Date: Tue, 2 Jun 2026 18:47:02 +0200 Subject: [PATCH 3/3] Fix ruff UP007/E501: use str | None, wrap import_set signature --- src/tablib/formats/_csv.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/tablib/formats/_csv.py b/src/tablib/formats/_csv.py index 0b052851..0f823175 100644 --- a/src/tablib/formats/_csv.py +++ b/src/tablib/formats/_csv.py @@ -3,7 +3,7 @@ import csv from io import StringIO -from typing import Any, Optional, TextIO +from typing import Any, TextIO class CSVFormat: @@ -34,7 +34,9 @@ def export_set(cls, dataset: Any, **kwargs: Any) -> str: return stream.getvalue() @classmethod - def import_set(cls, dset: Any, in_stream: TextIO, headers: bool = True, skip_lines: int = 0, **kwargs: Any) -> None: + def import_set( + cls, dset: Any, in_stream: TextIO, headers: bool = True, skip_lines: int = 0, **kwargs: Any + ) -> None: """Returns dataset from CSV stream.""" dset.wipe() @@ -53,7 +55,7 @@ def import_set(cls, dset: Any, in_stream: TextIO, headers: bool = True, skip_lin dset.append(row) @classmethod - def detect(cls, stream: TextIO, delimiter: Optional[str] = None) -> bool: + def detect(cls, stream: TextIO, delimiter: str | None = None) -> bool: """Returns True if given stream is valid CSV.""" try: csv.Sniffer().sniff(stream.read(2048), delimiters=delimiter or cls.DEFAULT_DELIMITER)