diff --git a/pandas/io/sas/sasreader.py b/pandas/io/sas/sasreader.py index d56f4c7ebc695..2a395f790a5b5 100644 --- a/pandas/io/sas/sasreader.py +++ b/pandas/io/sas/sasreader.py @@ -3,13 +3,10 @@ """ from __future__ import annotations -from abc import ( - ABCMeta, - abstractmethod, -) from typing import ( TYPE_CHECKING, Hashable, + Protocol, overload, ) @@ -31,19 +28,16 @@ from pandas import DataFrame -# TODO(PY38): replace with Protocol in Python 3.8 -class ReaderBase(metaclass=ABCMeta): +class ReaderBase(Protocol): """ 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