diff --git a/pandas/__init__.py b/pandas/__init__.py index 01ff2e1e1f181..eb5ce71141f46 100644 --- a/pandas/__init__.py +++ b/pandas/__init__.py @@ -1,4 +1,3 @@ -# flake8: noqa from __future__ import annotations __docformat__ = "restructuredtext" @@ -20,7 +19,7 @@ del _hard_dependencies, _dependency, _missing_dependencies # numpy compat -from pandas.compat import is_numpy_dev as _is_numpy_dev +from pandas.compat import is_numpy_dev as _is_numpy_dev # pyright: ignore # noqa:F401 try: from pandas._libs import hashtable as _hashtable, lib as _lib, tslib as _tslib @@ -44,7 +43,7 @@ ) # let init-time option registration happen -import pandas.core.config_init +import pandas.core.config_init # pyright: ignore # noqa:F401 from pandas.core.api import ( # dtype @@ -134,7 +133,8 @@ qcut, ) -from pandas import api, arrays, errors, io, plotting, testing, tseries +from pandas import api, arrays, errors, io, plotting, tseries +from pandas import testing # noqa:PDF015 from pandas.util._print_versions import show_versions from pandas.io.api import ( diff --git a/pandas/_config/__init__.py b/pandas/_config/__init__.py index 65936a9fcdbf3..929f8a5af6b3f 100644 --- a/pandas/_config/__init__.py +++ b/pandas/_config/__init__.py @@ -16,7 +16,7 @@ "options", ] from pandas._config import config -from pandas._config import dates # noqa:F401 +from pandas._config import dates # pyright: ignore # noqa:F401 from pandas._config.config import ( describe_option, get_option, diff --git a/pandas/_testing/__init__.py b/pandas/_testing/__init__.py index 5e90eae27f981..1035fd08a1a36 100644 --- a/pandas/_testing/__init__.py +++ b/pandas/_testing/__init__.py @@ -19,7 +19,7 @@ import numpy as np -from pandas._config.localization import ( # noqa:F401 +from pandas._config.localization import ( can_set_locale, get_locales, set_locale, @@ -49,7 +49,7 @@ Series, bdate_range, ) -from pandas._testing._io import ( # noqa:F401 +from pandas._testing._io import ( close, network, round_trip_localpath, @@ -57,16 +57,16 @@ round_trip_pickle, write_to_compressed, ) -from pandas._testing._random import ( # noqa:F401 +from pandas._testing._random import ( randbool, rands, rands_array, ) -from pandas._testing._warnings import ( # noqa:F401 +from pandas._testing._warnings import ( assert_produces_warning, maybe_produces_warning, ) -from pandas._testing.asserters import ( # noqa:F401 +from pandas._testing.asserters import ( assert_almost_equal, assert_attr_equal, assert_categorical_equal, @@ -91,11 +91,11 @@ assert_timedelta_array_equal, raise_assert_detail, ) -from pandas._testing.compat import ( # noqa:F401 +from pandas._testing.compat import ( get_dtype, get_obj, ) -from pandas._testing.contexts import ( # noqa:F401 +from pandas._testing.contexts import ( RNGContext, decompress_file, ensure_clean, @@ -1033,3 +1033,128 @@ def shares_memory(left, right) -> bool: return shares_memory(arr, right) raise NotImplementedError(type(left), type(right)) + + +__all__ = [ + "ALL_INT_EA_DTYPES", + "ALL_INT_NUMPY_DTYPES", + "ALL_NUMPY_DTYPES", + "ALL_REAL_NUMPY_DTYPES", + "all_timeseries_index_generator", + "assert_almost_equal", + "assert_attr_equal", + "assert_categorical_equal", + "assert_class_equal", + "assert_contains_all", + "assert_copy", + "assert_datetime_array_equal", + "assert_dict_equal", + "assert_equal", + "assert_extension_array_equal", + "assert_frame_equal", + "assert_index_equal", + "assert_indexing_slices_equivalent", + "assert_interval_array_equal", + "assert_is_sorted", + "assert_is_valid_plot_return_object", + "assert_metadata_equivalent", + "assert_numpy_array_equal", + "assert_period_array_equal", + "assert_produces_warning", + "assert_series_equal", + "assert_sp_array_equal", + "assert_timedelta_array_equal", + "at", + "BOOL_DTYPES", + "box_expected", + "BYTES_DTYPES", + "can_set_locale", + "close", + "COMPLEX_DTYPES", + "convert_rows_list_to_csv_str", + "DATETIME64_DTYPES", + "decompress_file", + "EMPTY_STRING_PATTERN", + "ENDIAN", + "ensure_clean", + "ensure_clean_dir", + "ensure_safe_environment_variables", + "equalContents", + "external_error_raised", + "FLOAT_EA_DTYPES", + "FLOAT_NUMPY_DTYPES", + "getCols", + "get_cython_table_params", + "get_dtype", + "getitem", + "get_locales", + "getMixedTypeDict", + "get_obj", + "get_op_from_name", + "getPeriodData", + "getSeriesData", + "getTimeSeriesData", + "iat", + "iloc", + "index_subclass_makers_generator", + "loc", + "makeBoolIndex", + "makeCategoricalIndex", + "makeCustomDataframe", + "makeCustomIndex", + "makeDataFrame", + "makeDateIndex", + "makeFloatIndex", + "makeFloatSeries", + "makeIntervalIndex", + "makeIntIndex", + "makeMissingDataframe", + "makeMixedDataFrame", + "makeMultiIndex", + "makeNumericIndex", + "makeObjectSeries", + "makePeriodFrame", + "makePeriodIndex", + "makePeriodSeries", + "make_rand_series", + "makeRangeIndex", + "makeStringIndex", + "makeStringSeries", + "makeTimeDataFrame", + "makeTimedeltaIndex", + "makeTimeSeries", + "makeUIntIndex", + "maybe_produces_warning", + "NARROW_NP_DTYPES", + "network", + "NP_NAT_OBJECTS", + "NULL_OBJECTS", + "OBJECT_DTYPES", + "raise_assert_detail", + "randbool", + "rands", + "reset_display_options", + "reset_testing_mode", + "RNGContext", + "round_trip_localpath", + "round_trip_pathlib", + "round_trip_pickle", + "setitem", + "set_locale", + "set_testing_mode", + "set_timezone", + "shares_memory", + "SIGNED_INT_EA_DTYPES", + "SIGNED_INT_NUMPY_DTYPES", + "STRING_DTYPES", + "SubclassedCategorical", + "SubclassedDataFrame", + "SubclassedSeries", + "TIMEDELTA64_DTYPES", + "to_array", + "UNSIGNED_INT_EA_DTYPES", + "UNSIGNED_INT_NUMPY_DTYPES", + "use_numexpr", + "with_csv_dialect", + "write_to_compressed", +] diff --git a/pandas/api/__init__.py b/pandas/api/__init__.py index 67fd722c9198b..22a09ed61d694 100644 --- a/pandas/api/__init__.py +++ b/pandas/api/__init__.py @@ -1,7 +1,14 @@ """ public toolkit API """ -from pandas.api import ( # noqa:F401 +from pandas.api import ( exchange, extensions, indexers, types, ) + +__all__ = [ + "exchange", + "extensions", + "indexers", + "types", +] diff --git a/pandas/conftest.py b/pandas/conftest.py index eb17aac99a904..e176707d8a8f1 100644 --- a/pandas/conftest.py +++ b/pandas/conftest.py @@ -1734,7 +1734,7 @@ def spmatrix(request): params=[ getattr(pd.offsets, o) for o in pd.offsets.__all__ - if issubclass(getattr(pd.offsets, o), pd.offsets.Tick) + if issubclass(getattr(pd.offsets, o), pd.offsets.Tick) and o != "Tick" ] ) def tick_classes(request): diff --git a/pandas/core/api.py b/pandas/core/api.py index cf082d2013d3b..c2bedb032d479 100644 --- a/pandas/core/api.py +++ b/pandas/core/api.py @@ -1,5 +1,3 @@ -# flake8: noqa:F401 - from pandas._libs import ( NaT, Period, @@ -84,3 +82,65 @@ # DataFrame needs to be imported after NamedAgg to avoid a circular import from pandas.core.frame import DataFrame # isort:skip + +__all__ = [ + "array", + "bdate_range", + "BooleanDtype", + "Categorical", + "CategoricalDtype", + "CategoricalIndex", + "DataFrame", + "DateOffset", + "date_range", + "DatetimeIndex", + "DatetimeTZDtype", + "factorize", + "Flags", + "Float32Dtype", + "Float64Dtype", + "Float64Index", + "Grouper", + "Index", + "IndexSlice", + "Int16Dtype", + "Int32Dtype", + "Int64Dtype", + "Int64Index", + "Int8Dtype", + "Interval", + "IntervalDtype", + "IntervalIndex", + "interval_range", + "isna", + "isnull", + "MultiIndex", + "NA", + "NamedAgg", + "NaT", + "notna", + "notnull", + "NumericIndex", + "Period", + "PeriodDtype", + "PeriodIndex", + "period_range", + "RangeIndex", + "Series", + "set_eng_float_format", + "StringDtype", + "Timedelta", + "TimedeltaIndex", + "timedelta_range", + "Timestamp", + "to_datetime", + "to_numeric", + "to_timedelta", + "UInt16Dtype", + "UInt32Dtype", + "UInt64Dtype", + "UInt64Index", + "UInt8Dtype", + "unique", + "value_counts", +] diff --git a/pandas/core/arrays/arrow/__init__.py b/pandas/core/arrays/arrow/__init__.py index 6bdf29e38ac62..58b268cbdd221 100644 --- a/pandas/core/arrays/arrow/__init__.py +++ b/pandas/core/arrays/arrow/__init__.py @@ -1,3 +1,3 @@ -# flake8: noqa: F401 - from pandas.core.arrays.arrow.array import ArrowExtensionArray + +__all__ = ["ArrowExtensionArray"] diff --git a/pandas/core/arrays/sparse/__init__.py b/pandas/core/arrays/sparse/__init__.py index 18294ead0329d..56dbc6df54fc9 100644 --- a/pandas/core/arrays/sparse/__init__.py +++ b/pandas/core/arrays/sparse/__init__.py @@ -1,5 +1,3 @@ -# flake8: noqa: F401 - from pandas.core.arrays.sparse.accessor import ( SparseAccessor, SparseFrameAccessor, @@ -11,3 +9,13 @@ make_sparse_index, ) from pandas.core.arrays.sparse.dtype import SparseDtype + +__all__ = [ + "BlockIndex", + "IntIndex", + "make_sparse_index", + "SparseAccessor", + "SparseArray", + "SparseDtype", + "SparseFrameAccessor", +] diff --git a/pandas/core/dtypes/api.py b/pandas/core/dtypes/api.py index bb6bfda183802..e6a59bf12d7cc 100644 --- a/pandas/core/dtypes/api.py +++ b/pandas/core/dtypes/api.py @@ -1,5 +1,3 @@ -# flake8: noqa:F401 - from pandas.core.dtypes.common import ( is_array_like, is_bool, @@ -43,3 +41,47 @@ is_unsigned_integer_dtype, pandas_dtype, ) + +__all__ = [ + "is_array_like", + "is_bool", + "is_bool_dtype", + "is_categorical", + "is_categorical_dtype", + "is_complex", + "is_complex_dtype", + "is_datetime64_any_dtype", + "is_datetime64_dtype", + "is_datetime64_ns_dtype", + "is_datetime64tz_dtype", + "is_dict_like", + "is_dtype_equal", + "is_extension_array_dtype", + "is_extension_type", + "is_file_like", + "is_float", + "is_float_dtype", + "is_hashable", + "is_int64_dtype", + "is_integer", + "is_integer_dtype", + "is_interval", + "is_interval_dtype", + "is_iterator", + "is_list_like", + "is_named_tuple", + "is_number", + "is_numeric_dtype", + "is_object_dtype", + "is_period_dtype", + "is_re", + "is_re_compilable", + "is_scalar", + "is_signed_integer_dtype", + "is_sparse", + "is_string_dtype", + "is_timedelta64_dtype", + "is_timedelta64_ns_dtype", + "is_unsigned_integer_dtype", + "pandas_dtype", +] diff --git a/pandas/core/dtypes/common.py b/pandas/core/dtypes/common.py index 378f33e2b65ac..c10461b2fc7f8 100644 --- a/pandas/core/dtypes/common.py +++ b/pandas/core/dtypes/common.py @@ -36,7 +36,7 @@ ABCCategorical, ABCIndex, ) -from pandas.core.dtypes.inference import ( # noqa:F401 +from pandas.core.dtypes.inference import ( is_array_like, is_bool, is_complex, @@ -1814,3 +1814,70 @@ def is_all_strings(value: ArrayLike) -> bool: elif isinstance(dtype, CategoricalDtype): return dtype.categories.inferred_type == "string" return dtype == "string" + + +__all__ = [ + "classes", + "classes_and_not_datetimelike", + "DT64NS_DTYPE", + "ensure_float", + "ensure_float64", + "ensure_python_int", + "ensure_str", + "get_dtype", + "infer_dtype_from_object", + "INT64_DTYPE", + "is_1d_only_ea_dtype", + "is_1d_only_ea_obj", + "is_all_strings", + "is_any_int_dtype", + "is_array_like", + "is_bool", + "is_bool_dtype", + "is_categorical", + "is_categorical_dtype", + "is_complex", + "is_complex_dtype", + "is_dataclass", + "is_datetime64_any_dtype", + "is_datetime64_dtype", + "is_datetime64_ns_dtype", + "is_datetime64tz_dtype", + "is_datetimelike_v_numeric", + "is_datetime_or_timedelta_dtype", + "is_decimal", + "is_dict_like", + "is_dtype_equal", + "is_ea_or_datetimelike_dtype", + "is_extension_array_dtype", + "is_extension_type", + "is_file_like", + "is_float_dtype", + "is_int64_dtype", + "is_integer_dtype", + "is_interval", + "is_interval_dtype", + "is_iterator", + "is_named_tuple", + "is_nested_list_like", + "is_number", + "is_numeric_dtype", + "is_numeric_v_string_like", + "is_object_dtype", + "is_period_dtype", + "is_re", + "is_re_compilable", + "is_scipy_sparse", + "is_sequence", + "is_signed_integer_dtype", + "is_sparse", + "is_string_dtype", + "is_string_or_object_np_dtype", + "is_timedelta64_dtype", + "is_timedelta64_ns_dtype", + "is_unsigned_integer_dtype", + "needs_i8_conversion", + "pandas_dtype", + "TD64NS_DTYPE", + "validate_all_hashable", +] diff --git a/pandas/core/index.py b/pandas/core/index.py index 00ca6f9048a40..19e9c6b27e4e7 100644 --- a/pandas/core/index.py +++ b/pandas/core/index.py @@ -1,3 +1,6 @@ +# pyright: reportUnusedImport = false +from __future__ import annotations + import warnings from pandas.util._exceptions import find_stack_level @@ -30,3 +33,5 @@ FutureWarning, stacklevel=find_stack_level(), ) + +__all__: list[str] = [] diff --git a/pandas/core/internals/__init__.py b/pandas/core/internals/__init__.py index 75715bdc90003..ea69b567611e4 100644 --- a/pandas/core/internals/__init__.py +++ b/pandas/core/internals/__init__.py @@ -23,7 +23,6 @@ __all__ = [ "Block", - "CategoricalBlock", "NumericBlock", "DatetimeTZBlock", "ExtensionBlock", diff --git a/pandas/core/ops/__init__.py b/pandas/core/ops/__init__.py index 540a557f7c7cc..e9fefd9268870 100644 --- a/pandas/core/ops/__init__.py +++ b/pandas/core/ops/__init__.py @@ -11,7 +11,7 @@ import numpy as np -from pandas._libs.ops_dispatch import maybe_dispatch_ufunc_to_dunder_op # noqa:F401 +from pandas._libs.ops_dispatch import maybe_dispatch_ufunc_to_dunder_op from pandas._typing import Level from pandas.util._decorators import Appender from pandas.util._exceptions import find_stack_level @@ -30,7 +30,7 @@ algorithms, roperator, ) -from pandas.core.ops.array_ops import ( # noqa:F401 +from pandas.core.ops.array_ops import ( arithmetic_op, comp_method_OBJECT_ARRAY, comparison_op, @@ -38,7 +38,7 @@ logical_op, maybe_prepare_scalar_for_op, ) -from pandas.core.ops.common import ( # noqa:F401 +from pandas.core.ops.common import ( get_op_result_name, unpack_zerodim_and_defer, ) @@ -47,14 +47,14 @@ _op_descriptions, make_flex_doc, ) -from pandas.core.ops.invalid import invalid_comparison # noqa:F401 -from pandas.core.ops.mask_ops import ( # noqa: F401 +from pandas.core.ops.invalid import invalid_comparison +from pandas.core.ops.mask_ops import ( kleene_and, kleene_or, kleene_xor, ) -from pandas.core.ops.methods import add_flex_arithmetic_methods # noqa:F401 -from pandas.core.roperator import ( # noqa:F401 +from pandas.core.ops.methods import add_flex_arithmetic_methods +from pandas.core.roperator import ( radd, rand_, rdiv, @@ -473,3 +473,40 @@ def f(self, other, axis=default_axis, level=None): f.__name__ = op_name return f + + +__all__ = [ + "add_flex_arithmetic_methods", + "align_method_FRAME", + "align_method_SERIES", + "ARITHMETIC_BINOPS", + "arithmetic_op", + "COMPARISON_BINOPS", + "comparison_op", + "comp_method_OBJECT_ARRAY", + "fill_binop", + "flex_arith_method_FRAME", + "flex_comp_method_FRAME", + "flex_method_SERIES", + "frame_arith_method_with_reindex", + "invalid_comparison", + "kleene_and", + "kleene_or", + "kleene_xor", + "logical_op", + "maybe_dispatch_ufunc_to_dunder_op", + "radd", + "rand_", + "rdiv", + "rdivmod", + "rfloordiv", + "rmod", + "rmul", + "ror_", + "rpow", + "rsub", + "rtruediv", + "rxor", + "should_reindex_frame_op", + "unpack_zerodim_and_defer", +] diff --git a/pandas/core/reshape/api.py b/pandas/core/reshape/api.py index f100cca5c7615..b1884c497f0ad 100644 --- a/pandas/core/reshape/api.py +++ b/pandas/core/reshape/api.py @@ -1,5 +1,3 @@ -# flake8: noqa:F401 - from pandas.core.reshape.concat import concat from pandas.core.reshape.encoding import ( from_dummies, @@ -24,3 +22,20 @@ cut, qcut, ) + +__all__ = [ + "concat", + "crosstab", + "cut", + "from_dummies", + "get_dummies", + "lreshape", + "melt", + "merge", + "merge_asof", + "merge_ordered", + "pivot", + "pivot_table", + "qcut", + "wide_to_long", +] diff --git a/pandas/core/tools/datetimes.py b/pandas/core/tools/datetimes.py index 7de34c04a31ed..1ec0e6ca83d8f 100644 --- a/pandas/core/tools/datetimes.py +++ b/pandas/core/tools/datetimes.py @@ -29,7 +29,7 @@ parsing, timezones, ) -from pandas._libs.tslibs.parsing import ( # noqa:F401 +from pandas._libs.tslibs.parsing import ( DateParseError, format_is_iso, guess_datetime_format, @@ -1289,3 +1289,11 @@ def to_time(arg, format=None, infer_time_format=False, errors="raise"): from pandas.core.tools.times import to_time return to_time(arg, format, infer_time_format, errors) + + +__all__ = [ + "DateParseError", + "should_cache", + "to_datetime", + "to_time", +] diff --git a/pandas/core/window/__init__.py b/pandas/core/window/__init__.py index 8f42cd782c67f..857e12e5467a6 100644 --- a/pandas/core/window/__init__.py +++ b/pandas/core/window/__init__.py @@ -1,13 +1,23 @@ -from pandas.core.window.ewm import ( # noqa:F401 +from pandas.core.window.ewm import ( ExponentialMovingWindow, ExponentialMovingWindowGroupby, ) -from pandas.core.window.expanding import ( # noqa:F401 +from pandas.core.window.expanding import ( Expanding, ExpandingGroupby, ) -from pandas.core.window.rolling import ( # noqa:F401 +from pandas.core.window.rolling import ( Rolling, RollingGroupby, Window, ) + +__all__ = [ + "Expanding", + "ExpandingGroupby", + "ExponentialMovingWindow", + "ExponentialMovingWindowGroupby", + "Rolling", + "RollingGroupby", + "Window", +] diff --git a/pandas/core/window/rolling.py b/pandas/core/window/rolling.py index 6e47c46cc7203..93f07c5d75625 100644 --- a/pandas/core/window/rolling.py +++ b/pandas/core/window/rolling.py @@ -108,7 +108,6 @@ ) from pandas.core.generic import NDFrame from pandas.core.groupby.ops import BaseGrouper - from pandas.core.internals import Block # noqa:F401 class BaseWindow(SelectionMixin): diff --git a/pandas/errors/__init__.py b/pandas/errors/__init__.py index 98a9d2b35f09d..47819ae5fad23 100644 --- a/pandas/errors/__init__.py +++ b/pandas/errors/__init__.py @@ -5,9 +5,9 @@ import ctypes -from pandas._config.config import OptionError # noqa:F401 +from pandas._config.config import OptionError -from pandas._libs.tslibs import ( # noqa:F401 +from pandas._libs.tslibs import ( OutOfBoundsDatetime, OutOfBoundsTimedelta, ) @@ -413,3 +413,35 @@ class CSSWarning(UserWarning): ... .to_excel('styled.xlsx') # doctest: +SKIP ... # CSSWarning: Too many tokens provided to "border" (expected 1-3) """ + + +__all__ = [ + "AbstractMethodError", + "AccessorRegistrationWarning", + "CSSWarning", + "DataError", + "DtypeWarning", + "DuplicateLabelError", + "EmptyDataError", + "IntCastingNaNError", + "InvalidIndexError", + "IndexingError", + "MergeError", + "NullFrequencyError", + "NumbaUtilError", + "NumExprClobberingError", + "OptionError", + "OutOfBoundsDatetime", + "OutOfBoundsTimedelta", + "ParserError", + "ParserWarning", + "PerformanceWarning", + "PyperclipException", + "PyperclipWindowsException", + "SettingWithCopyError", + "SettingWithCopyWarning", + "SpecificationError", + "UndefinedVariableError", + "UnsortedIndexError", + "UnsupportedFunctionCall", +] diff --git a/pandas/io/api.py b/pandas/io/api.py index 5926f2166ee9d..4e8b34a61dfc6 100644 --- a/pandas/io/api.py +++ b/pandas/io/api.py @@ -2,8 +2,6 @@ Data IO api """ -# flake8: noqa - from pandas.io.clipboards import read_clipboard from pandas.io.excel import ( ExcelFile, @@ -38,3 +36,30 @@ ) from pandas.io.stata import read_stata from pandas.io.xml import read_xml + +__all__ = [ + "ExcelFile", + "ExcelWriter", + "HDFStore", + "read_clipboard", + "read_csv", + "read_excel", + "read_feather", + "read_fwf", + "read_gbq", + "read_hdf", + "read_html", + "read_json", + "read_orc", + "read_parquet", + "read_pickle", + "read_sas", + "read_spss", + "read_sql", + "read_sql_query", + "read_sql_table", + "read_stata", + "read_table", + "read_xml", + "to_pickle", +] diff --git a/pandas/io/parquet.py b/pandas/io/parquet.py index d28309cda6788..ed0e0a99ec43b 100644 --- a/pandas/io/parquet.py +++ b/pandas/io/parquet.py @@ -151,7 +151,7 @@ def __init__(self) -> None: import pyarrow.parquet # import utils to register the pyarrow extension types - import pandas.core.arrays.arrow._arrow_utils # noqa:F401 + import pandas.core.arrays.arrow._arrow_utils # pyright: ignore # noqa:F401 self.api = pyarrow diff --git a/pandas/io/sas/__init__.py b/pandas/io/sas/__init__.py index 71027fd064f3d..317730745b6e3 100644 --- a/pandas/io/sas/__init__.py +++ b/pandas/io/sas/__init__.py @@ -1 +1,3 @@ -from pandas.io.sas.sasreader import read_sas # noqa:F401 +from pandas.io.sas.sasreader import read_sas + +__all__ = ["read_sas"] diff --git a/pandas/tests/tseries/offsets/conftest.py b/pandas/tests/tseries/offsets/conftest.py index df68c98dca43f..72f5c4a519a3a 100644 --- a/pandas/tests/tseries/offsets/conftest.py +++ b/pandas/tests/tseries/offsets/conftest.py @@ -5,7 +5,11 @@ import pandas.tseries.offsets as offsets -@pytest.fixture(params=[getattr(offsets, o) for o in offsets.__all__]) +@pytest.fixture( + params=[ + getattr(offsets, o) for o in offsets.__all__ if o not in ("Tick", "BaseOffset") + ] +) def offset_types(request): """ Fixture for all the datetime offsets available for a time series. diff --git a/pandas/tseries/api.py b/pandas/tseries/api.py index 59666fa0048dd..e274838d45b27 100644 --- a/pandas/tseries/api.py +++ b/pandas/tseries/api.py @@ -2,7 +2,7 @@ Timeseries API """ -# flake8: noqa:F401 - from pandas.tseries.frequencies import infer_freq import pandas.tseries.offsets as offsets + +__all__ = ["infer_freq", "offsets"] diff --git a/pandas/tseries/frequencies.py b/pandas/tseries/frequencies.py index a4fe2161983b6..b2fbc022b2708 100644 --- a/pandas/tseries/frequencies.py +++ b/pandas/tseries/frequencies.py @@ -22,7 +22,7 @@ build_field_sarray, month_position_check, ) -from pandas._libs.tslibs.offsets import ( # noqa:F401 +from pandas._libs.tslibs.offsets import ( BaseOffset, DateOffset, Day, @@ -647,3 +647,14 @@ def _is_monthly(rule: str) -> bool: def _is_weekly(rule: str) -> bool: rule = rule.upper() return rule == "W" or rule.startswith("W-") + + +__all__ = [ + "Day", + "get_offset", + "get_period_alias", + "infer_freq", + "is_subperiod", + "is_superperiod", + "to_offset", +] diff --git a/pandas/tseries/holiday.py b/pandas/tseries/holiday.py index 6fd49e2340e30..6426dbcd54489 100644 --- a/pandas/tseries/holiday.py +++ b/pandas/tseries/holiday.py @@ -6,7 +6,7 @@ ) import warnings -from dateutil.relativedelta import ( # noqa:F401 +from dateutil.relativedelta import ( FR, MO, SA, @@ -582,3 +582,27 @@ def HolidayCalendarFactory(name, base, other, base_class=AbstractHolidayCalendar rules = AbstractHolidayCalendar.merge_class(base, other) calendar_class = type(name, (base_class,), {"rules": rules, "name": name}) return calendar_class + + +__all__ = [ + "after_nearest_workday", + "before_nearest_workday", + "FR", + "get_calendar", + "HolidayCalendarFactory", + "MO", + "nearest_workday", + "next_monday", + "next_monday_or_tuesday", + "next_workday", + "previous_friday", + "previous_workday", + "register", + "SA", + "SU", + "sunday_to_monday", + "TH", + "TU", + "WE", + "weekend_to_monday", +] diff --git a/pandas/tseries/offsets.py b/pandas/tseries/offsets.py index cee99d23f8d90..b995c6ac78b80 100644 --- a/pandas/tseries/offsets.py +++ b/pandas/tseries/offsets.py @@ -1,4 +1,4 @@ -from pandas._libs.tslibs.offsets import ( # noqa:F401 +from pandas._libs.tslibs.offsets import ( FY5253, BaseOffset, BDay, @@ -45,9 +45,14 @@ __all__ = [ "Day", + "BaseOffset", "BusinessDay", + "BusinessMonthBegin", + "BusinessMonthEnd", "BDay", "CustomBusinessDay", + "CustomBusinessMonthBegin", + "CustomBusinessMonthEnd", "CDay", "CBMonthEnd", "CBMonthBegin", @@ -73,6 +78,7 @@ "Week", "WeekOfMonth", "Easter", + "Tick", "Hour", "Minute", "Second", diff --git a/pandas/util/__init__.py b/pandas/util/__init__.py index 7adfca73c2f1e..6e6006dd28165 100644 --- a/pandas/util/__init__.py +++ b/pandas/util/__init__.py @@ -1,3 +1,4 @@ +# pyright: reportUnusedImport = false from pandas.util._decorators import ( # noqa:F401 Appender, Substitution, diff --git a/pandas/util/_decorators.py b/pandas/util/_decorators.py index 978f2982e6d18..cec4ee40a8c7a 100644 --- a/pandas/util/_decorators.py +++ b/pandas/util/_decorators.py @@ -11,7 +11,7 @@ ) import warnings -from pandas._libs.properties import cache_readonly # noqa:F401 +from pandas._libs.properties import cache_readonly from pandas._typing import F from pandas.util._exceptions import find_stack_level @@ -498,3 +498,16 @@ def indent(text: str | None, indents: int = 1) -> str: return "" jointext = "".join(["\n"] + [" "] * indents) return jointext.join(text.split("\n")) + + +__all__ = [ + "Appender", + "cache_readonly", + "deprecate", + "deprecate_kwarg", + "deprecate_nonkeyword_arguments", + "doc", + "future_version_msg", + "rewrite_axis_style_signature", + "Substitution", +] diff --git a/pyproject.toml b/pyproject.toml index 0e2e41fba461c..6ca37581b03f0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -166,6 +166,7 @@ reportPropertyTypeMismatch = true reportUntypedClassDecorator = true reportUntypedFunctionDecorator = true reportUntypedNamedTuple = true +reportUnusedImport = true # disable subset of "basic" reportGeneralTypeIssues = false reportMissingModuleSource = false @@ -176,4 +177,3 @@ reportOptionalOperand = false reportOptionalSubscript = false reportPrivateImportUsage = false reportUnboundVariable = false -reportUnsupportedDunderAll = false