diff --git a/pandas/io/sas/sasreader.py b/pandas/io/sas/sasreader.py index 2a395f790a5b5..6c43f0f7c0179 100644 --- a/pandas/io/sas/sasreader.py +++ b/pandas/io/sas/sasreader.py @@ -3,10 +3,13 @@ """ from __future__ import annotations +from abc import ( + ABCMeta, + abstractmethod, +) from typing import ( TYPE_CHECKING, Hashable, - Protocol, overload, ) @@ -28,16 +31,19 @@ from pandas import DataFrame -class ReaderBase(Protocol): +# TODO(PY38): replace with Protocol in Python 3.8 +class ReaderBase(metaclass=ABCMeta): """ Protocol for XportReader and SAS7BDATReader classes. """ + @abstractmethod def read(self, nrows: int | None = None) -> DataFrame: - ... + pass + @abstractmethod def close(self) -> None: - ... + pass def __enter__(self) -> ReaderBase: return self @@ -173,4 +179,4 @@ def read_sas( return reader with reader: - return reader.read() + return reader.read() \ No newline at end of file