|
1 | 1 | """
|
2 | 2 | Read SAS sas7bdat or xport files.
|
3 | 3 | """
|
| 4 | +from typing import TYPE_CHECKING, AnyStr, Optional, Union |
| 5 | + |
| 6 | +from pandas._typing import FilePathOrBuffer |
| 7 | + |
4 | 8 | from pandas.io.common import _stringify_path
|
5 | 9 |
|
| 10 | +if TYPE_CHECKING: |
| 11 | + from pandas.io.sas.sas_xport import XportReader # noqa: F401 |
| 12 | + from pandas.io.sas.sas7bdat import SAS7BDATReader # noqa: F401 |
| 13 | + |
6 | 14 |
|
7 | 15 | def read_sas(
|
8 |
| - filepath_or_buffer, |
9 |
| - format=None, |
| 16 | + filepath_or_buffer: FilePathOrBuffer[AnyStr], |
| 17 | + format: Optional[str] = None, |
10 | 18 | index=None,
|
11 |
| - encoding=None, |
12 |
| - chunksize=None, |
13 |
| - iterator=False, |
| 19 | + encoding: Optional[str] = None, |
| 20 | + chunksize: Optional[int] = None, |
| 21 | + iterator: bool = False, |
14 | 22 | ):
|
15 | 23 | """
|
16 | 24 | Read SAS files stored as either XPORT or SAS7BDAT format files.
|
@@ -63,14 +71,15 @@ def read_sas(
|
63 | 71 | else:
|
64 | 72 | raise ValueError("unable to infer format of SAS file")
|
65 | 73 |
|
| 74 | + reader: Union["XportReader", "SAS7BDATReader"] |
66 | 75 | if format.lower() == "xport":
|
67 |
| - from pandas.io.sas.sas_xport import XportReader |
| 76 | + from pandas.io.sas.sas_xport import XportReader # noqa: F811 |
68 | 77 |
|
69 | 78 | reader = XportReader(
|
70 | 79 | filepath_or_buffer, index=index, encoding=encoding, chunksize=chunksize
|
71 | 80 | )
|
72 | 81 | elif format.lower() == "sas7bdat":
|
73 |
| - from pandas.io.sas.sas7bdat import SAS7BDATReader |
| 82 | + from pandas.io.sas.sas7bdat import SAS7BDATReader # noqa: F811 |
74 | 83 |
|
75 | 84 | reader = SAS7BDATReader(
|
76 | 85 | filepath_or_buffer, index=index, encoding=encoding, chunksize=chunksize
|
|
0 commit comments