diff --git a/pandas/io/clipboards.py b/pandas/io/clipboards.py index 2ed241f0b9bca..9a562481f0e98 100644 --- a/pandas/io/clipboards.py +++ b/pandas/io/clipboards.py @@ -7,6 +7,7 @@ import warnings from pandas._libs import lib +from pandas.util._decorators import set_module from pandas.util._exceptions import find_stack_level from pandas.util._validators import check_dtype_backend @@ -21,6 +22,7 @@ from pandas._typing import DtypeBackend +@set_module("pandas") def read_clipboard( sep: str = r"\s+", dtype_backend: DtypeBackend | lib.NoDefault = lib.no_default, diff --git a/pandas/io/excel/_base.py b/pandas/io/excel/_base.py index 84f5cc447513c..48028c54a1773 100644 --- a/pandas/io/excel/_base.py +++ b/pandas/io/excel/_base.py @@ -39,6 +39,7 @@ from pandas.util._decorators import ( Appender, doc, + set_module, ) from pandas.util._exceptions import find_stack_level from pandas.util._validators import check_dtype_backend @@ -434,6 +435,7 @@ def read_excel( ) -> dict[IntStrT, DataFrame]: ... +@set_module("pandas") @doc(storage_options=_shared_docs["storage_options"]) @Appender(_read_excel_doc) def read_excel( @@ -951,6 +953,7 @@ def _parse_sheet( return output +@set_module("pandas") @doc(storage_options=_shared_docs["storage_options"]) class ExcelWriter(Generic[_WorkbookT]): """ @@ -1471,6 +1474,7 @@ def inspect_excel_format( return "zip" +@set_module("pandas") @doc(storage_options=_shared_docs["storage_options"]) class ExcelFile: """ diff --git a/pandas/io/feather_format.py b/pandas/io/feather_format.py index ebb678c26db30..19f1e41f5b22f 100644 --- a/pandas/io/feather_format.py +++ b/pandas/io/feather_format.py @@ -13,7 +13,10 @@ from pandas._libs import lib from pandas.compat._optional import import_optional_dependency from pandas.errors import Pandas4Warning -from pandas.util._decorators import doc +from pandas.util._decorators import ( + doc, + set_module, +) from pandas.util._validators import check_dtype_backend from pandas.core.api import DataFrame @@ -68,6 +71,7 @@ def to_feather( feather.write_feather(df, handles.handle, **kwargs) +@set_module("pandas") @doc(storage_options=_shared_docs["storage_options"]) def read_feather( path: FilePath | ReadBuffer[bytes], diff --git a/pandas/io/formats/format.py b/pandas/io/formats/format.py index 7de26249762bb..d72b6cd89b940 100644 --- a/pandas/io/formats/format.py +++ b/pandas/io/formats/format.py @@ -42,6 +42,7 @@ Timestamp, ) from pandas._libs.tslibs.nattype import NaTType +from pandas.util._decorators import set_module from pandas.core.dtypes.common import ( is_complex_dtype, @@ -1955,6 +1956,7 @@ def __call__(self, num: float) -> str: return formatted +@set_module("pandas") def set_eng_float_format(accuracy: int = 3, use_eng_prefix: bool = False) -> None: """ Format float representation in DataFrame with SI notation. diff --git a/pandas/io/html.py b/pandas/io/html.py index 183af3a03221b..5ca7e8f869433 100644 --- a/pandas/io/html.py +++ b/pandas/io/html.py @@ -24,7 +24,10 @@ AbstractMethodError, EmptyDataError, ) -from pandas.util._decorators import doc +from pandas.util._decorators import ( + doc, + set_module, +) from pandas.util._validators import check_dtype_backend from pandas.core.dtypes.common import is_list_like @@ -1024,6 +1027,7 @@ def _parse( return ret +@set_module("pandas") @doc(storage_options=_shared_docs["storage_options"]) def read_html( io: FilePath | ReadBuffer[str], diff --git a/pandas/io/iceberg.py b/pandas/io/iceberg.py index dcb675271031e..19300384ff845 100644 --- a/pandas/io/iceberg.py +++ b/pandas/io/iceberg.py @@ -3,10 +3,12 @@ ) from pandas.compat._optional import import_optional_dependency +from pandas.util._decorators import set_module from pandas import DataFrame +@set_module("pandas") def read_iceberg( table_identifier: str, catalog_name: str | None = None, diff --git a/pandas/io/json/_json.py b/pandas/io/json/_json.py index 32e932b70e761..481f6a3a0aa61 100644 --- a/pandas/io/json/_json.py +++ b/pandas/io/json/_json.py @@ -29,7 +29,10 @@ from pandas._libs.tslibs import iNaT from pandas.compat._optional import import_optional_dependency from pandas.errors import AbstractMethodError -from pandas.util._decorators import doc +from pandas.util._decorators import ( + doc, + set_module, +) from pandas.util._validators import check_dtype_backend from pandas.core.dtypes.common import ( @@ -496,6 +499,7 @@ def read_json( ) -> DataFrame: ... +@set_module("pandas") @doc( storage_options=_shared_docs["storage_options"], decompression_options=_shared_docs["decompression_options"] % "path_or_buf", diff --git a/pandas/io/json/_normalize.py b/pandas/io/json/_normalize.py index 680f4289fdbff..16ec73ddeb743 100644 --- a/pandas/io/json/_normalize.py +++ b/pandas/io/json/_normalize.py @@ -17,6 +17,7 @@ import numpy as np from pandas._libs.writers import convert_json_to_lines +from pandas.util._decorators import set_module import pandas as pd from pandas import ( @@ -266,6 +267,7 @@ def _simple_json_normalize( return normalized_json_object +@set_module("pandas") def json_normalize( data: dict | list[dict] | Series, record_path: str | list | None = None, diff --git a/pandas/io/orc.py b/pandas/io/orc.py index 02e0ec5247e74..84195df91d49c 100644 --- a/pandas/io/orc.py +++ b/pandas/io/orc.py @@ -11,6 +11,7 @@ from pandas._libs import lib from pandas.compat._optional import import_optional_dependency +from pandas.util._decorators import set_module from pandas.util._validators import check_dtype_backend from pandas.core.indexes.api import default_index @@ -35,6 +36,7 @@ from pandas.core.frame import DataFrame +@set_module("pandas") def read_orc( path: FilePath | ReadBuffer[bytes], columns: list[str] | None = None, diff --git a/pandas/io/parquet.py b/pandas/io/parquet.py index 1a3f8cc046066..09539089b3904 100644 --- a/pandas/io/parquet.py +++ b/pandas/io/parquet.py @@ -21,7 +21,10 @@ AbstractMethodError, Pandas4Warning, ) -from pandas.util._decorators import doc +from pandas.util._decorators import ( + doc, + set_module, +) from pandas.util._validators import check_dtype_backend from pandas import ( @@ -500,6 +503,7 @@ def to_parquet( return None +@set_module("pandas") @doc(storage_options=_shared_docs["storage_options"]) def read_parquet( path: FilePath | ReadBuffer[bytes], diff --git a/pandas/io/pickle.py b/pandas/io/pickle.py index f0441f583bea2..19afa26d88c77 100644 --- a/pandas/io/pickle.py +++ b/pandas/io/pickle.py @@ -10,7 +10,10 @@ import warnings from pandas.compat import pickle_compat -from pandas.util._decorators import doc +from pandas.util._decorators import ( + doc, + set_module, +) from pandas.core.shared_docs import _shared_docs @@ -31,6 +34,7 @@ ) +@set_module("pandas") @doc( storage_options=_shared_docs["storage_options"], compression_options=_shared_docs["compression_options"] % "filepath_or_buffer", @@ -114,6 +118,7 @@ def to_pickle( pickle.dump(obj, handles.handle, protocol=protocol) +@set_module("pandas") @doc( storage_options=_shared_docs["storage_options"], decompression_options=_shared_docs["decompression_options"] % "filepath_or_buffer", diff --git a/pandas/io/pytables.py b/pandas/io/pytables.py index 97e31114ead48..3616a93321358 100644 --- a/pandas/io/pytables.py +++ b/pandas/io/pytables.py @@ -51,7 +51,10 @@ PerformanceWarning, PossibleDataLossError, ) -from pandas.util._decorators import cache_readonly +from pandas.util._decorators import ( + cache_readonly, + set_module, +) from pandas.util._exceptions import find_stack_level from pandas.core.dtypes.common import ( @@ -312,6 +315,7 @@ def to_hdf( f(store) +@set_module("pandas") def read_hdf( path_or_buf: FilePath | HDFStore, key=None, @@ -488,6 +492,7 @@ def _is_metadata_of(group: Node, parent_group: Node) -> bool: return False +@set_module("pandas") class HDFStore: """ Dict-like IO interface for storing pandas objects in PyTables. diff --git a/pandas/io/sas/sasreader.py b/pandas/io/sas/sasreader.py index 1424d43d2a053..46b22310cbfca 100644 --- a/pandas/io/sas/sasreader.py +++ b/pandas/io/sas/sasreader.py @@ -15,7 +15,10 @@ overload, ) -from pandas.util._decorators import doc +from pandas.util._decorators import ( + doc, + set_module, +) from pandas.core.shared_docs import _shared_docs @@ -83,6 +86,7 @@ def read_sas( ) -> DataFrame | SASReader: ... +@set_module("pandas") @doc(decompression_options=_shared_docs["decompression_options"] % "filepath_or_buffer") def read_sas( filepath_or_buffer: FilePath | ReadBuffer[bytes], diff --git a/pandas/io/spss.py b/pandas/io/spss.py index dfada10c719c9..522c7206a2ae5 100644 --- a/pandas/io/spss.py +++ b/pandas/io/spss.py @@ -7,6 +7,7 @@ from pandas._libs import lib from pandas.compat._optional import import_optional_dependency +from pandas.util._decorators import set_module from pandas.util._validators import check_dtype_backend from pandas.core.dtypes.inference import is_list_like @@ -22,6 +23,7 @@ from pandas import DataFrame +@set_module("pandas") def read_spss( path: str | Path, usecols: Sequence[str] | None = None, diff --git a/pandas/io/sql.py b/pandas/io/sql.py index 81adeab0e1907..7a8ba2e146bcf 100644 --- a/pandas/io/sql.py +++ b/pandas/io/sql.py @@ -40,6 +40,7 @@ AbstractMethodError, DatabaseError, ) +from pandas.util._decorators import set_module from pandas.util._exceptions import find_stack_level from pandas.util._validators import check_dtype_backend @@ -263,6 +264,7 @@ def read_sql_table( ) -> Iterator[DataFrame]: ... +@set_module("pandas") def read_sql_table( table_name: str, con, @@ -394,6 +396,7 @@ def read_sql_query( ) -> Iterator[DataFrame]: ... +@set_module("pandas") def read_sql_query( sql, con, @@ -532,6 +535,7 @@ def read_sql( ) -> Iterator[DataFrame]: ... +@set_module("pandas") def read_sql( sql, con, diff --git a/pandas/io/stata.py b/pandas/io/stata.py index 979f00973958b..69205d6bebb65 100644 --- a/pandas/io/stata.py +++ b/pandas/io/stata.py @@ -46,6 +46,7 @@ from pandas.util._decorators import ( Appender, doc, + set_module, ) from pandas.util._exceptions import find_stack_level @@ -2133,6 +2134,7 @@ def value_labels(self) -> dict[str, dict[int, str]]: return self._value_label_dict +@set_module("pandas") @Appender(_read_stata_doc) def read_stata( filepath_or_buffer: FilePath | ReadBuffer[bytes], diff --git a/pandas/io/xml.py b/pandas/io/xml.py index 97259c57bbf33..53c0b07f3d90f 100644 --- a/pandas/io/xml.py +++ b/pandas/io/xml.py @@ -17,7 +17,10 @@ AbstractMethodError, ParserError, ) -from pandas.util._decorators import doc +from pandas.util._decorators import ( + doc, + set_module, +) from pandas.util._validators import check_dtype_backend from pandas.core.dtypes.common import is_list_like @@ -829,6 +832,7 @@ def _parse( ) +@set_module("pandas") @doc( storage_options=_shared_docs["storage_options"], decompression_options=_shared_docs["decompression_options"] % "path_or_buffer", diff --git a/pandas/tests/api/test_api.py b/pandas/tests/api/test_api.py index 849a81eaf56d9..719b655a7c860 100644 --- a/pandas/tests/api/test_api.py +++ b/pandas/tests/api/test_api.py @@ -538,5 +538,28 @@ def test_set_module(): assert pd.pivot.__module__ == "pandas" assert pd.cut.__module__ == "pandas" assert pd.qcut.__module__ == "pandas" + assert pd.read_clipboard.__module__ == "pandas" + assert pd.ExcelFile.__module__ == "pandas" + assert pd.ExcelWriter.__module__ == "pandas" + assert pd.read_excel.__module__ == "pandas" + assert pd.read_feather.__module__ == "pandas" + assert pd.set_eng_float_format.__module__ == "pandas" + assert pd.read_html.__module__ == "pandas" + assert pd.read_iceberg.__module__ == "pandas" + assert pd.read_json.__module__ == "pandas" + assert pd.json_normalize.__module__ == "pandas" + assert pd.read_orc.__module__ == "pandas" + assert pd.read_parquet.__module__ == "pandas" + assert pd.read_pickle.__module__ == "pandas" + assert pd.to_pickle.__module__ == "pandas" + assert pd.HDFStore.__module__ == "pandas" + assert pd.read_hdf.__module__ == "pandas" + assert pd.read_sas.__module__ == "pandas" + assert pd.read_spss.__module__ == "pandas" + assert pd.read_sql.__module__ == "pandas" + assert pd.read_sql_query.__module__ == "pandas" + assert pd.read_sql_table.__module__ == "pandas" + assert pd.read_stata.__module__ == "pandas" + assert pd.read_xml.__module__ == "pandas" assert api.typing.SeriesGroupBy.__module__ == "pandas.api.typing" assert api.typing.DataFrameGroupBy.__module__ == "pandas.api.typing"