diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 09912bfb6c34945f2b2bed54f2af4c7e93e3e96c..b7b9b1818c122ceb6e8420c674bd9fc6586e3b7d 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -19,7 +19,7 @@ ci:
     skip: [pyright, mypy]
 repos:
 -   repo: https://github.com/astral-sh/ruff-pre-commit
-    rev: v0.7.2
+    rev: v0.8.1
     hooks:
     -   id: ruff
         args: [--exit-non-zero-on-fix]
@@ -47,7 +47,7 @@ repos:
         types_or: [python, rst, markdown, cython, c]
         additional_dependencies: [tomli]
 -   repo: https://github.com/MarcoGorelli/cython-lint
-    rev: v0.16.2
+    rev: v0.16.6
     hooks:
     -   id: cython-lint
     -   id: double-quote-cython-strings
@@ -95,7 +95,7 @@ repos:
     - id: sphinx-lint
       args: ["--enable", "all", "--disable", "line-too-long"]
 -   repo: https://github.com/pre-commit/mirrors-clang-format
-    rev: v19.1.3
+    rev: v19.1.4
     hooks:
     - id: clang-format
       files: ^pandas/_libs/src|^pandas/_libs/include
diff --git a/asv_bench/benchmarks/groupby.py b/asv_bench/benchmarks/groupby.py
index abffa1f702b9c76e53d7ce93946ec8da859f29ed..19c556dfe9d1f6df1ff13ecb1d111a01f13412cb 100644
--- a/asv_bench/benchmarks/groupby.py
+++ b/asv_bench/benchmarks/groupby.py
@@ -511,8 +511,7 @@ class GroupByMethods:
         # grouping on multiple columns
         # and we lack kernels for a bunch of methods
         if (
-            engine == "numba"
-            and method in _numba_unsupported_methods
+            (engine == "numba" and method in _numba_unsupported_methods)
             or ncols > 1
             or application == "transformation"
             or dtype == "datetime"
diff --git a/pandas/__init__.py b/pandas/__init__.py
index 6c97baa89077733af212528cbbb177bde0e69d6e..c570fb8d7020401dc5f71eda9e474bb4c5bd89ec 100644
--- a/pandas/__init__.py
+++ b/pandas/__init__.py
@@ -235,6 +235,7 @@ Here are just a few of the things that pandas does well:
 # Pandas is not (yet) a py.typed library: the public API is determined
 # based on the documentation.
 __all__ = [
+    "NA",
     "ArrowDtype",
     "BooleanDtype",
     "Categorical",
@@ -253,15 +254,14 @@ __all__ = [
     "HDFStore",
     "Index",
     "IndexSlice",
+    "Int8Dtype",
     "Int16Dtype",
     "Int32Dtype",
     "Int64Dtype",
-    "Int8Dtype",
     "Interval",
     "IntervalDtype",
     "IntervalIndex",
     "MultiIndex",
-    "NA",
     "NaT",
     "NamedAgg",
     "Period",
@@ -274,10 +274,10 @@ __all__ = [
     "Timedelta",
     "TimedeltaIndex",
     "Timestamp",
+    "UInt8Dtype",
     "UInt16Dtype",
     "UInt32Dtype",
     "UInt64Dtype",
-    "UInt8Dtype",
     "api",
     "array",
     "arrays",
@@ -290,8 +290,8 @@ __all__ = [
     "errors",
     "eval",
     "factorize",
-    "get_dummies",
     "from_dummies",
+    "get_dummies",
     "get_option",
     "infer_freq",
     "interval_range",
diff --git a/pandas/_config/__init__.py b/pandas/_config/__init__.py
index 80d9ea1b364f36deb2584666a71eb82dd0333705..463e8af7cc56103fa48f5a1842225444deaf5fc5 100644
--- a/pandas/_config/__init__.py
+++ b/pandas/_config/__init__.py
@@ -8,13 +8,13 @@ are initialized.
 
 __all__ = [
     "config",
+    "describe_option",
     "detect_console_encoding",
     "get_option",
-    "set_option",
-    "reset_option",
-    "describe_option",
     "option_context",
     "options",
+    "reset_option",
+    "set_option",
 ]
 from pandas._config import config
 from pandas._config import dates  # pyright: ignore[reportUnusedImport]  # noqa: F401
diff --git a/pandas/_libs/__init__.py b/pandas/_libs/__init__.py
index 26a872a90e4934c929d168228125f2e43936c774..d499f9a6cd75e53dc63a4a83c073449025caac94 100644
--- a/pandas/_libs/__init__.py
+++ b/pandas/_libs/__init__.py
@@ -1,4 +1,5 @@
 __all__ = [
+    "Interval",
     "NaT",
     "NaTType",
     "OutOfBoundsDatetime",
@@ -6,7 +7,6 @@ __all__ = [
     "Timedelta",
     "Timestamp",
     "iNaT",
-    "Interval",
 ]
 
 
diff --git a/pandas/_libs/tslibs/__init__.py b/pandas/_libs/tslibs/__init__.py
index 31979b293a940a852244b4c861184a13b33d3f5e..f433a3acf356f0a509006c3784296ae6235a77a0 100644
--- a/pandas/_libs/tslibs/__init__.py
+++ b/pandas/_libs/tslibs/__init__.py
@@ -1,39 +1,39 @@
 __all__ = [
-    "dtypes",
-    "localize_pydatetime",
+    "BaseOffset",
+    "IncompatibleFrequency",
     "NaT",
     "NaTType",
-    "iNaT",
-    "nat_strings",
     "OutOfBoundsDatetime",
     "OutOfBoundsTimedelta",
-    "IncompatibleFrequency",
     "Period",
     "Resolution",
+    "Tick",
     "Timedelta",
-    "normalize_i8_timestamps",
-    "is_date_array_normalized",
-    "dt64arr_to_periodarr",
+    "Timestamp",
+    "add_overflowsafe",
+    "astype_overflowsafe",
     "delta_to_nanoseconds",
+    "dt64arr_to_periodarr",
+    "dtypes",
+    "get_resolution",
+    "get_supported_dtype",
+    "get_unit_from_dtype",
+    "guess_datetime_format",
+    "iNaT",
     "ints_to_pydatetime",
     "ints_to_pytimedelta",
-    "get_resolution",
-    "Timestamp",
-    "tz_convert_from_utc_single",
-    "tz_convert_from_utc",
-    "to_offset",
-    "Tick",
-    "BaseOffset",
-    "tz_compare",
+    "is_date_array_normalized",
+    "is_supported_dtype",
     "is_unitless",
-    "astype_overflowsafe",
-    "get_unit_from_dtype",
+    "localize_pydatetime",
+    "nat_strings",
+    "normalize_i8_timestamps",
     "periods_per_day",
     "periods_per_second",
-    "guess_datetime_format",
-    "add_overflowsafe",
-    "get_supported_dtype",
-    "is_supported_dtype",
+    "to_offset",
+    "tz_compare",
+    "tz_convert_from_utc",
+    "tz_convert_from_utc_single",
 ]
 
 from pandas._libs.tslibs import dtypes
diff --git a/pandas/_testing/__init__.py b/pandas/_testing/__init__.py
index e092d65f08dd468e0e01bd50ea37cafc078d40b3..ec9b5098c97c9e80e13e7ee2487bc283105c457f 100644
--- a/pandas/_testing/__init__.py
+++ b/pandas/_testing/__init__.py
@@ -540,6 +540,25 @@ __all__ = [
     "ALL_INT_NUMPY_DTYPES",
     "ALL_NUMPY_DTYPES",
     "ALL_REAL_NUMPY_DTYPES",
+    "BOOL_DTYPES",
+    "BYTES_DTYPES",
+    "COMPLEX_DTYPES",
+    "DATETIME64_DTYPES",
+    "ENDIAN",
+    "FLOAT_EA_DTYPES",
+    "FLOAT_NUMPY_DTYPES",
+    "NARROW_NP_DTYPES",
+    "NP_NAT_OBJECTS",
+    "NULL_OBJECTS",
+    "OBJECT_DTYPES",
+    "SIGNED_INT_EA_DTYPES",
+    "SIGNED_INT_NUMPY_DTYPES",
+    "STRING_DTYPES",
+    "TIMEDELTA64_DTYPES",
+    "UNSIGNED_INT_EA_DTYPES",
+    "UNSIGNED_INT_NUMPY_DTYPES",
+    "SubclassedDataFrame",
+    "SubclassedSeries",
     "assert_almost_equal",
     "assert_attr_equal",
     "assert_categorical_equal",
@@ -563,51 +582,32 @@ __all__ = [
     "assert_sp_array_equal",
     "assert_timedelta_array_equal",
     "at",
-    "BOOL_DTYPES",
     "box_expected",
-    "BYTES_DTYPES",
     "can_set_locale",
-    "COMPLEX_DTYPES",
     "convert_rows_list_to_csv_str",
-    "DATETIME64_DTYPES",
     "decompress_file",
-    "ENDIAN",
     "ensure_clean",
     "external_error_raised",
-    "FLOAT_EA_DTYPES",
-    "FLOAT_NUMPY_DTYPES",
     "get_cython_table_params",
     "get_dtype",
-    "getitem",
-    "get_locales",
     "get_finest_unit",
+    "get_locales",
     "get_obj",
     "get_op_from_name",
+    "getitem",
     "iat",
     "iloc",
     "loc",
     "maybe_produces_warning",
-    "NARROW_NP_DTYPES",
-    "NP_NAT_OBJECTS",
-    "NULL_OBJECTS",
-    "OBJECT_DTYPES",
     "raise_assert_detail",
     "raises_chained_assignment_error",
     "round_trip_pathlib",
     "round_trip_pickle",
-    "setitem",
     "set_locale",
     "set_timezone",
+    "setitem",
     "shares_memory",
-    "SIGNED_INT_EA_DTYPES",
-    "SIGNED_INT_NUMPY_DTYPES",
-    "STRING_DTYPES",
-    "SubclassedDataFrame",
-    "SubclassedSeries",
-    "TIMEDELTA64_DTYPES",
     "to_array",
-    "UNSIGNED_INT_EA_DTYPES",
-    "UNSIGNED_INT_NUMPY_DTYPES",
     "with_csv_dialect",
     "write_to_compressed",
 ]
diff --git a/pandas/_testing/asserters.py b/pandas/_testing/asserters.py
index 01c4dcd92ee40143d6a8e708176fd9f5126896bc..daa5187cdb636f7ea9da9ccf207cfa6b986484b4 100644
--- a/pandas/_testing/asserters.py
+++ b/pandas/_testing/asserters.py
@@ -755,11 +755,8 @@ def assert_extension_array_equal(
         and atol is lib.no_default
     ):
         check_exact = (
-            is_numeric_dtype(left.dtype)
-            and not is_float_dtype(left.dtype)
-            or is_numeric_dtype(right.dtype)
-            and not is_float_dtype(right.dtype)
-        )
+            is_numeric_dtype(left.dtype) and not is_float_dtype(left.dtype)
+        ) or (is_numeric_dtype(right.dtype) and not is_float_dtype(right.dtype))
     elif check_exact is lib.no_default:
         check_exact = False
 
@@ -944,11 +941,8 @@ def assert_series_equal(
         and atol is lib.no_default
     ):
         check_exact = (
-            is_numeric_dtype(left.dtype)
-            and not is_float_dtype(left.dtype)
-            or is_numeric_dtype(right.dtype)
-            and not is_float_dtype(right.dtype)
-        )
+            is_numeric_dtype(left.dtype) and not is_float_dtype(left.dtype)
+        ) or (is_numeric_dtype(right.dtype) and not is_float_dtype(right.dtype))
         left_index_dtypes = (
             [left.index.dtype] if left.index.nlevels == 1 else left.index.dtypes
         )
diff --git a/pandas/_typing.py b/pandas/_typing.py
index c1769126a5776984b24d2eae629e4fcd22bd260b..b515305fb6903d7cc4fb8891f402475f7b2f9b05 100644
--- a/pandas/_typing.py
+++ b/pandas/_typing.py
@@ -273,7 +273,7 @@ class BaseBuffer(Protocol):
         # for _get_filepath_or_buffer
         ...
 
-    def seek(self, __offset: int, __whence: int = ...) -> int:
+    def seek(self, offset: int, whence: int = ..., /) -> int:
         # with one argument: gzip.GzipFile, bz2.BZ2File
         # with two arguments: zip.ZipFile, read_sas
         ...
@@ -288,13 +288,13 @@ class BaseBuffer(Protocol):
 
 
 class ReadBuffer(BaseBuffer, Protocol[AnyStr_co]):
-    def read(self, __n: int = ...) -> AnyStr_co:
+    def read(self, n: int = ..., /) -> AnyStr_co:
         # for BytesIOWrapper, gzip.GzipFile, bz2.BZ2File
         ...
 
 
 class WriteBuffer(BaseBuffer, Protocol[AnyStr_contra]):
-    def write(self, __b: AnyStr_contra) -> Any:
+    def write(self, b: AnyStr_contra, /) -> Any:
         # for gzip.GzipFile, bz2.BZ2File
         ...
 
diff --git a/pandas/api/__init__.py b/pandas/api/__init__.py
index 9b007e8fe8da4ad0157a7d3c98b8836310909445..8f659e3cd14c861fcd5362b873eb5c27f58114bf 100644
--- a/pandas/api/__init__.py
+++ b/pandas/api/__init__.py
@@ -9,9 +9,9 @@ from pandas.api import (
 )
 
 __all__ = [
-    "interchange",
     "extensions",
     "indexers",
+    "interchange",
     "types",
     "typing",
 ]
diff --git a/pandas/api/extensions/__init__.py b/pandas/api/extensions/__init__.py
index ea5f1ba926899f9d11e34e70181ed77cae7ead1d..1c88c0d35b4d70270e2bb7b4a1a6e77f03555592 100644
--- a/pandas/api/extensions/__init__.py
+++ b/pandas/api/extensions/__init__.py
@@ -21,13 +21,13 @@ from pandas.core.arrays import (
 )
 
 __all__ = [
-    "no_default",
+    "ExtensionArray",
     "ExtensionDtype",
-    "register_extension_dtype",
+    "ExtensionScalarOpsMixin",
+    "no_default",
     "register_dataframe_accessor",
+    "register_extension_dtype",
     "register_index_accessor",
     "register_series_accessor",
     "take",
-    "ExtensionArray",
-    "ExtensionScalarOpsMixin",
 ]
diff --git a/pandas/api/indexers/__init__.py b/pandas/api/indexers/__init__.py
index 78357f11dc3b79f13490b91c69ef5457fbfa9768..f3c6546218de4ce8ddc3b044fc26b6946065b07e 100644
--- a/pandas/api/indexers/__init__.py
+++ b/pandas/api/indexers/__init__.py
@@ -10,8 +10,8 @@ from pandas.core.indexers.objects import (
 )
 
 __all__ = [
-    "check_array_indexer",
     "BaseIndexer",
     "FixedForwardWindowIndexer",
     "VariableOffsetWindowIndexer",
+    "check_array_indexer",
 ]
diff --git a/pandas/api/interchange/__init__.py b/pandas/api/interchange/__init__.py
index 2f3a73bc46b3109c3c13e1a3468a69aed2ffb2e8..aded37abc7224a6b24180beba2f52be60d7ae25d 100644
--- a/pandas/api/interchange/__init__.py
+++ b/pandas/api/interchange/__init__.py
@@ -5,4 +5,4 @@ Public API for DataFrame interchange protocol.
 from pandas.core.interchange.dataframe_protocol import DataFrame
 from pandas.core.interchange.from_dataframe import from_dataframe
 
-__all__ = ["from_dataframe", "DataFrame"]
+__all__ = ["DataFrame", "from_dataframe"]
diff --git a/pandas/api/types/__init__.py b/pandas/api/types/__init__.py
index c601086bb9f86a633d6a3f2245779fea9428bf95..4a5c742b1628b797e1015247b1a2b52e0bda4470 100644
--- a/pandas/api/types/__init__.py
+++ b/pandas/api/types/__init__.py
@@ -14,10 +14,10 @@ from pandas.core.dtypes.dtypes import (
 )
 
 __all__ = [
-    "infer_dtype",
-    "union_categoricals",
     "CategoricalDtype",
     "DatetimeTZDtype",
     "IntervalDtype",
     "PeriodDtype",
+    "infer_dtype",
+    "union_categoricals",
 ]
diff --git a/pandas/api/typing/__init__.py b/pandas/api/typing/__init__.py
index c58fa0f08526604d94b9af261da77f7a3c45236c..a18a1e9d5cbb79dad06d518988c6b855350b51d8 100644
--- a/pandas/api/typing/__init__.py
+++ b/pandas/api/typing/__init__.py
@@ -42,18 +42,16 @@ __all__ = [
     "ExponentialMovingWindowGroupby",
     "FrozenList",
     "JsonReader",
-    "NaTType",
     "NAType",
+    "NaTType",
     "PeriodIndexResamplerGroupby",
     "Resampler",
     "Rolling",
     "RollingGroupby",
+    "SASReader",
     "SeriesGroupBy",
     "StataReader",
-    "SASReader",
-    # See TODO above
-    # "Styler",
-    "TimedeltaIndexResamplerGroupby",
     "TimeGrouper",
+    "TimedeltaIndexResamplerGroupby",
     "Window",
 ]
diff --git a/pandas/compat/__init__.py b/pandas/compat/__init__.py
index 756c209661fbbf0648c8b4f34f998def2a133b4f..e7674386408f76ad951d26ac4e996429a008a9c0 100644
--- a/pandas/compat/__init__.py
+++ b/pandas/compat/__init__.py
@@ -150,6 +150,13 @@ def is_ci_environment() -> bool:
 
 
 __all__ = [
+    "HAS_PYARROW",
+    "IS64",
+    "ISMUSL",
+    "PY311",
+    "PY312",
+    "PYPY",
+    "WASM",
     "is_numpy_dev",
     "pa_version_under10p1",
     "pa_version_under11p0",
@@ -159,11 +166,4 @@ __all__ = [
     "pa_version_under16p0",
     "pa_version_under17p0",
     "pa_version_under18p0",
-    "HAS_PYARROW",
-    "IS64",
-    "ISMUSL",
-    "PY311",
-    "PY312",
-    "PYPY",
-    "WASM",
 ]
diff --git a/pandas/compat/numpy/__init__.py b/pandas/compat/numpy/__init__.py
index 2fab8f32b8e713a13715128a815e76112c8be845..3306b36d718065ffa87be8917ea3000f86637cca 100644
--- a/pandas/compat/numpy/__init__.py
+++ b/pandas/compat/numpy/__init__.py
@@ -47,7 +47,7 @@ else:
 
 
 __all__ = [
-    "np",
     "_np_version",
     "is_numpy_dev",
+    "np",
 ]
diff --git a/pandas/core/_numba/kernels/__init__.py b/pandas/core/_numba/kernels/__init__.py
index 1116c61c4ca8e48d94a6c9c6222aaf545d989e86..6983711480455244c4e99ad06717e541d4cb16d2 100644
--- a/pandas/core/_numba/kernels/__init__.py
+++ b/pandas/core/_numba/kernels/__init__.py
@@ -16,12 +16,12 @@ from pandas.core._numba.kernels.var_ import (
 )
 
 __all__ = [
-    "sliding_mean",
     "grouped_mean",
-    "sliding_sum",
+    "grouped_min_max",
     "grouped_sum",
-    "sliding_var",
     "grouped_var",
+    "sliding_mean",
     "sliding_min_max",
-    "grouped_min_max",
+    "sliding_sum",
+    "sliding_var",
 ]
diff --git a/pandas/core/api.py b/pandas/core/api.py
index c8a4e9d8a23b2c7e014bc8abce39946b99c6add8..ec12d543d8389afa38c7c84a658dcaeee960690c 100644
--- a/pandas/core/api.py
+++ b/pandas/core/api.py
@@ -80,59 +80,59 @@ from pandas.tseries.offsets import DateOffset
 from pandas.core.frame import DataFrame  # isort:skip
 
 __all__ = [
-    "array",
+    "NA",
     "ArrowDtype",
-    "bdate_range",
     "BooleanDtype",
     "Categorical",
     "CategoricalDtype",
     "CategoricalIndex",
     "DataFrame",
     "DateOffset",
-    "date_range",
     "DatetimeIndex",
     "DatetimeTZDtype",
-    "factorize",
     "Flags",
     "Float32Dtype",
     "Float64Dtype",
     "Grouper",
     "Index",
     "IndexSlice",
+    "Int8Dtype",
     "Int16Dtype",
     "Int32Dtype",
     "Int64Dtype",
-    "Int8Dtype",
     "Interval",
     "IntervalDtype",
     "IntervalIndex",
-    "interval_range",
-    "isna",
-    "isnull",
     "MultiIndex",
-    "NA",
-    "NamedAgg",
     "NaT",
-    "notna",
-    "notnull",
+    "NamedAgg",
     "Period",
     "PeriodDtype",
     "PeriodIndex",
-    "period_range",
     "RangeIndex",
     "Series",
-    "set_eng_float_format",
     "StringDtype",
     "Timedelta",
     "TimedeltaIndex",
-    "timedelta_range",
     "Timestamp",
-    "to_datetime",
-    "to_numeric",
-    "to_timedelta",
+    "UInt8Dtype",
     "UInt16Dtype",
     "UInt32Dtype",
     "UInt64Dtype",
-    "UInt8Dtype",
+    "array",
+    "bdate_range",
+    "date_range",
+    "factorize",
+    "interval_range",
+    "isna",
+    "isnull",
+    "notna",
+    "notnull",
+    "period_range",
+    "set_eng_float_format",
+    "timedelta_range",
+    "to_datetime",
+    "to_numeric",
+    "to_timedelta",
     "unique",
 ]
diff --git a/pandas/core/arrays/__init__.py b/pandas/core/arrays/__init__.py
index 245a171fea74bc9409a315b64d157a37b3da6eaa..f183e9236471e4b426be97e654f144d81e31a941 100644
--- a/pandas/core/arrays/__init__.py
+++ b/pandas/core/arrays/__init__.py
@@ -23,21 +23,21 @@ from pandas.core.arrays.timedeltas import TimedeltaArray
 
 __all__ = [
     "ArrowExtensionArray",
-    "ExtensionArray",
-    "ExtensionOpsMixin",
-    "ExtensionScalarOpsMixin",
     "ArrowStringArray",
     "BaseMaskedArray",
     "BooleanArray",
     "Categorical",
     "DatetimeArray",
+    "ExtensionArray",
+    "ExtensionOpsMixin",
+    "ExtensionScalarOpsMixin",
     "FloatingArray",
     "IntegerArray",
     "IntervalArray",
     "NumpyExtensionArray",
     "PeriodArray",
-    "period_array",
     "SparseArray",
     "StringArray",
     "TimedeltaArray",
+    "period_array",
 ]
diff --git a/pandas/core/arrays/arrow/__init__.py b/pandas/core/arrays/arrow/__init__.py
index 5fc50f786fc6a6c51f78ef9ebd4ee6ed26a2bab3..50274a2de2cc1e34dedece512bc53ad50a3d9ccf 100644
--- a/pandas/core/arrays/arrow/__init__.py
+++ b/pandas/core/arrays/arrow/__init__.py
@@ -4,4 +4,4 @@ from pandas.core.arrays.arrow.accessors import (
 )
 from pandas.core.arrays.arrow.array import ArrowExtensionArray
 
-__all__ = ["ArrowExtensionArray", "StructAccessor", "ListAccessor"]
+__all__ = ["ArrowExtensionArray", "ListAccessor", "StructAccessor"]
diff --git a/pandas/core/arrays/arrow/array.py b/pandas/core/arrays/arrow/array.py
index e0c93db0afb07a8dcb12bcf6cd47afc9956f9c8a..afa219f611992517bf89db09d846abb53b9b2474 100644
--- a/pandas/core/arrays/arrow/array.py
+++ b/pandas/core/arrays/arrow/array.py
@@ -1446,8 +1446,7 @@ class ArrowExtensionArray(
             pa.types.is_floating(pa_type)
             and (
                 na_value is np.nan
-                or original_na_value is lib.no_default
-                and is_float_dtype(dtype)
+                or (original_na_value is lib.no_default and is_float_dtype(dtype))
             )
         ):
             result = data._pa_array.to_numpy()
diff --git a/pandas/core/arrays/sparse/__init__.py b/pandas/core/arrays/sparse/__init__.py
index adf83963aca39e7d2ec2da55d21fc69aaca48977..93d5cb8cc335a4c8d59f6a367a8061dd16623524 100644
--- a/pandas/core/arrays/sparse/__init__.py
+++ b/pandas/core/arrays/sparse/__init__.py
@@ -12,8 +12,8 @@ from pandas.core.arrays.sparse.array import (
 __all__ = [
     "BlockIndex",
     "IntIndex",
-    "make_sparse_index",
     "SparseAccessor",
     "SparseArray",
     "SparseFrameAccessor",
+    "make_sparse_index",
 ]
diff --git a/pandas/core/computation/eval.py b/pandas/core/computation/eval.py
index 4ccfbd71d9ce8b735e24a7d86a330161f5e05294..86f83489e71ae3809987cae90599d2d0efa64a00 100644
--- a/pandas/core/computation/eval.py
+++ b/pandas/core/computation/eval.py
@@ -371,10 +371,12 @@ def eval(
                 is_extension_array_dtype(parsed_expr.terms.return_type)
                 and not is_string_dtype(parsed_expr.terms.return_type)
             )
-            or getattr(parsed_expr.terms, "operand_types", None) is not None
-            and any(
-                (is_extension_array_dtype(elem) and not is_string_dtype(elem))
-                for elem in parsed_expr.terms.operand_types
+            or (
+                getattr(parsed_expr.terms, "operand_types", None) is not None
+                and any(
+                    (is_extension_array_dtype(elem) and not is_string_dtype(elem))
+                    for elem in parsed_expr.terms.operand_types
+                )
             )
         ):
             warnings.warn(
diff --git a/pandas/core/computation/expr.py b/pandas/core/computation/expr.py
index 7025d8a72e5617dc6ec8e838a520273553424691..010fad1bbf0b66334c34eea1079bde838905b7d2 100644
--- a/pandas/core/computation/expr.py
+++ b/pandas/core/computation/expr.py
@@ -512,8 +512,7 @@ class BaseExprVisitor(ast.NodeVisitor):
             )
 
         if self.engine != "pytables" and (
-            res.op in CMP_OPS_SYMS
-            and getattr(lhs, "is_datetime", False)
+            (res.op in CMP_OPS_SYMS and getattr(lhs, "is_datetime", False))
             or getattr(rhs, "is_datetime", False)
         ):
             # all date ops must be done in python bc numexpr doesn't work
diff --git a/pandas/core/computation/pytables.py b/pandas/core/computation/pytables.py
index 39511048abf492a7168934b4403d5da3494d407d..fe7e27f537b0173cfd487193270beedad150870e 100644
--- a/pandas/core/computation/pytables.py
+++ b/pandas/core/computation/pytables.py
@@ -408,11 +408,12 @@ class UnaryOp(ops.UnaryOp):
         operand = operand.prune(klass)
 
         if operand is not None and (
-            issubclass(klass, ConditionBinOp)
-            and operand.condition is not None
-            or not issubclass(klass, ConditionBinOp)
-            and issubclass(klass, FilterBinOp)
-            and operand.filter is not None
+            (issubclass(klass, ConditionBinOp) and operand.condition is not None)
+            or (
+                not issubclass(klass, ConditionBinOp)
+                and issubclass(klass, FilterBinOp)
+                and operand.filter is not None
+            )
         ):
             return operand.invert()
         return None
diff --git a/pandas/core/computation/scope.py b/pandas/core/computation/scope.py
index 7b31e03e58b4ba932f602e519064e7fe732819c6..336d62b9d9579dc0b016c0b19ac400d416899676 100644
--- a/pandas/core/computation/scope.py
+++ b/pandas/core/computation/scope.py
@@ -140,7 +140,7 @@ class Scope:
     temps : dict
     """
 
-    __slots__ = ["level", "scope", "target", "resolvers", "temps"]
+    __slots__ = ["level", "resolvers", "scope", "target", "temps"]
     level: int
     scope: DeepChainMap
     resolvers: DeepChainMap
diff --git a/pandas/core/dtypes/common.py b/pandas/core/dtypes/common.py
index 8f93b1a397c1fc3f25d2835a02e21014be3a7d7f..6fa21d9410187b5ea35783ab1a15fc477fe07408 100644
--- a/pandas/core/dtypes/common.py
+++ b/pandas/core/dtypes/common.py
@@ -1889,13 +1889,14 @@ def is_all_strings(value: ArrayLike) -> bool:
 
 
 __all__ = [
-    "classes",
     "DT64NS_DTYPE",
+    "INT64_DTYPE",
+    "TD64NS_DTYPE",
+    "classes",
     "ensure_float64",
     "ensure_python_int",
     "ensure_str",
     "infer_dtype_from_object",
-    "INT64_DTYPE",
     "is_1d_only_ea_dtype",
     "is_all_strings",
     "is_any_real_numeric_dtype",
@@ -1940,6 +1941,5 @@ __all__ = [
     "is_unsigned_integer_dtype",
     "needs_i8_conversion",
     "pandas_dtype",
-    "TD64NS_DTYPE",
     "validate_all_hashable",
 ]
diff --git a/pandas/core/dtypes/dtypes.py b/pandas/core/dtypes/dtypes.py
index e5d1033de4457f283bb17f490dd11885fafd0a78..1dd1b12d6ae959f2ce1761e3545fa6b1a95718e2 100644
--- a/pandas/core/dtypes/dtypes.py
+++ b/pandas/core/dtypes/dtypes.py
@@ -73,7 +73,7 @@ if TYPE_CHECKING:
     from collections.abc import MutableMapping
     from datetime import tzinfo
 
-    import pyarrow as pa  # noqa: TCH004
+    import pyarrow as pa  # noqa: TC004
 
     from pandas._typing import (
         Dtype,
@@ -1115,10 +1115,8 @@ class PeriodDtype(PeriodDtypeBase, PandasExtensionDtype):
         possible
         """
         if (
-            isinstance(string, str)
-            and (string.startswith(("period[", "Period[")))
-            or isinstance(string, BaseOffset)
-        ):
+            isinstance(string, str) and (string.startswith(("period[", "Period[")))
+        ) or isinstance(string, BaseOffset):
             # do not parse string like U as period[U]
             # avoid tuple to be regarded as freq
             try:
diff --git a/pandas/core/frame.py b/pandas/core/frame.py
index d1450537dd7402f6dc1d01906b9ed32e4436f0d6..33a419925f70ce9e62ca52ec37a0fcf34d7759a3 100644
--- a/pandas/core/frame.py
+++ b/pandas/core/frame.py
@@ -3929,8 +3929,7 @@ class DataFrame(NDFrame, OpsMixin):
             # GH#45316 Return view if key is not duplicated
             # Only use drop_duplicates with duplicates for performance
             if not is_mi and (
-                self.columns.is_unique
-                and key in self.columns
+                (self.columns.is_unique and key in self.columns)
                 or key in self.columns.drop_duplicates(keep=False)
             ):
                 return self._get_item(key)
@@ -6776,8 +6775,7 @@ class DataFrame(NDFrame, OpsMixin):
         elif (
             not np.iterable(subset)
             or isinstance(subset, str)
-            or isinstance(subset, tuple)
-            and subset in self.columns
+            or (isinstance(subset, tuple) and subset in self.columns)
         ):
             subset = (subset,)
 
diff --git a/pandas/core/groupby/__init__.py b/pandas/core/groupby/__init__.py
index 8248f378e2c1acea37bdc2d41065c591360b902a..ec477626a098f89a2eacacaeafa728fc4973ab5d 100644
--- a/pandas/core/groupby/__init__.py
+++ b/pandas/core/groupby/__init__.py
@@ -8,8 +8,8 @@ from pandas.core.groupby.grouper import Grouper
 
 __all__ = [
     "DataFrameGroupBy",
-    "NamedAgg",
-    "SeriesGroupBy",
     "GroupBy",
     "Grouper",
+    "NamedAgg",
+    "SeriesGroupBy",
 ]
diff --git a/pandas/core/indexers/__init__.py b/pandas/core/indexers/__init__.py
index ba8a4f1d0ee7adb668c6b0ac49b2360d3c0dc356..036b32b3feac26e4870a433c0702c03a2da84284 100644
--- a/pandas/core/indexers/__init__.py
+++ b/pandas/core/indexers/__init__.py
@@ -15,17 +15,17 @@ from pandas.core.indexers.utils import (
 )
 
 __all__ = [
-    "is_valid_positional_slice",
+    "check_array_indexer",
+    "check_key_length",
+    "check_setitem_lengths",
+    "disallow_ndim_indexing",
+    "is_empty_indexer",
     "is_list_like_indexer",
     "is_scalar_indexer",
-    "is_empty_indexer",
-    "check_setitem_lengths",
-    "validate_indices",
-    "maybe_convert_indices",
+    "is_valid_positional_slice",
     "length_of_indexer",
-    "disallow_ndim_indexing",
+    "maybe_convert_indices",
     "unpack_1tuple",
-    "check_key_length",
-    "check_array_indexer",
     "unpack_tuple_and_ellipses",
+    "validate_indices",
 ]
diff --git a/pandas/core/indexes/api.py b/pandas/core/indexes/api.py
index 5144e647e73b4b5118b8852bbc4e8879b6de7695..058e58433690554a370926266e6609aa1ae4cfd8 100644
--- a/pandas/core/indexes/api.py
+++ b/pandas/core/indexes/api.py
@@ -37,26 +37,26 @@ if TYPE_CHECKING:
 
 
 __all__ = [
-    "Index",
-    "MultiIndex",
     "CategoricalIndex",
+    "DatetimeIndex",
+    "Index",
     "IntervalIndex",
-    "RangeIndex",
     "InvalidIndexError",
-    "TimedeltaIndex",
+    "MultiIndex",
+    "NaT",
     "PeriodIndex",
-    "DatetimeIndex",
+    "RangeIndex",
+    "TimedeltaIndex",
     "_new_Index",
-    "NaT",
+    "all_indexes_same",
+    "default_index",
     "ensure_index",
     "ensure_index_from_sequences",
     "get_objs_combined_axis",
-    "union_indexes",
     "get_unanimous_names",
-    "all_indexes_same",
-    "default_index",
-    "safe_sort_index",
     "maybe_sequence_to_range",
+    "safe_sort_index",
+    "union_indexes",
 ]
 
 
diff --git a/pandas/core/indexes/range.py b/pandas/core/indexes/range.py
index 7eeaab3b0443f1e7c7e53fa51ef8fdbdd5480833..935762d0455c5d93ceb8a0b93205116cf37fb93a 100644
--- a/pandas/core/indexes/range.py
+++ b/pandas/core/indexes/range.py
@@ -1195,7 +1195,7 @@ class RangeIndex(Index):
     @unpack_zerodim_and_defer("__floordiv__")
     def __floordiv__(self, other):
         if is_integer(other) and other != 0:
-            if len(self) == 0 or self.start % other == 0 and self.step % other == 0:
+            if len(self) == 0 or (self.start % other == 0 and self.step % other == 0):
                 start = self.start // other
                 step = self.step // other
                 stop = start + len(self) * step
diff --git a/pandas/core/indexing.py b/pandas/core/indexing.py
index 0d6d7e68f58a45ff6d38b04b85ae987255201016..e0bc0a23acd9f99064f3e00ad254f2cc9de5e7b5 100644
--- a/pandas/core/indexing.py
+++ b/pandas/core/indexing.py
@@ -1239,8 +1239,10 @@ class _LocIndexer(_LocationIndexer):
         if isinstance(key, bool) and not (
             is_bool_dtype(ax.dtype)
             or ax.dtype.name == "boolean"
-            or isinstance(ax, MultiIndex)
-            and is_bool_dtype(ax.get_level_values(0).dtype)
+            or (
+                isinstance(ax, MultiIndex)
+                and is_bool_dtype(ax.get_level_values(0).dtype)
+            )
         ):
             raise KeyError(
                 f"{key}: boolean label can not be used without a boolean index"
@@ -2120,7 +2122,7 @@ class _iLocIndexer(_LocationIndexer):
 
         is_full_setter = com.is_null_slice(pi) or com.is_full_slice(pi, len(self.obj))
 
-        is_null_setter = com.is_empty_slice(pi) or is_array_like(pi) and len(pi) == 0
+        is_null_setter = com.is_empty_slice(pi) or (is_array_like(pi) and len(pi) == 0)
 
         if is_null_setter:
             # no-op, don't cast dtype later
@@ -2744,19 +2746,15 @@ def check_dict_or_set_indexers(key) -> None:
     """
     Check if the indexer is or contains a dict or set, which is no longer allowed.
     """
-    if (
-        isinstance(key, set)
-        or isinstance(key, tuple)
-        and any(isinstance(x, set) for x in key)
+    if isinstance(key, set) or (
+        isinstance(key, tuple) and any(isinstance(x, set) for x in key)
     ):
         raise TypeError(
             "Passing a set as an indexer is not supported. Use a list instead."
         )
 
-    if (
-        isinstance(key, dict)
-        or isinstance(key, tuple)
-        and any(isinstance(x, dict) for x in key)
+    if isinstance(key, dict) or (
+        isinstance(key, tuple) and any(isinstance(x, dict) for x in key)
     ):
         raise TypeError(
             "Passing a dict as an indexer is not supported. Use a list instead."
diff --git a/pandas/core/internals/__init__.py b/pandas/core/internals/__init__.py
index 5ab70ba38f9c22508e9525d803ae43f2b71efd0c..202bebde88c2ce29226f04232204e901bff7a88a 100644
--- a/pandas/core/internals/__init__.py
+++ b/pandas/core/internals/__init__.py
@@ -7,11 +7,11 @@ from pandas.core.internals.managers import (
 
 __all__ = [
     "Block",
-    "ExtensionBlock",
-    "make_block",
     "BlockManager",
+    "ExtensionBlock",
     "SingleBlockManager",
     "concatenate_managers",
+    "make_block",
 ]
 
 
diff --git a/pandas/core/internals/blocks.py b/pandas/core/internals/blocks.py
index 54273ff89f1aff02edd8994b5e75c5175eac7dfb..f44ad926dda5cdc8f61714533ec7353fdf59f96f 100644
--- a/pandas/core/internals/blocks.py
+++ b/pandas/core/internals/blocks.py
@@ -514,9 +514,8 @@ class Block(PandasObject, libinternals.Block):
             convert_non_numeric=True,
         )
         refs = None
-        if (
-            res_values is values
-            or isinstance(res_values, NumpyExtensionArray)
+        if res_values is values or (
+            isinstance(res_values, NumpyExtensionArray)
             and res_values._ndarray is values
         ):
             refs = self.refs
diff --git a/pandas/core/internals/construction.py b/pandas/core/internals/construction.py
index f357a53a10be838441933dac459df23d69b2551c..dfff34656f82b9f2869a192252b5f45bf18f7a77 100644
--- a/pandas/core/internals/construction.py
+++ b/pandas/core/internals/construction.py
@@ -417,8 +417,7 @@ def dict_to_mgr(
             else x.copy(deep=True)
             if (
                 isinstance(x, Index)
-                or isinstance(x, ABCSeries)
-                and is_1d_only_ea_dtype(x.dtype)
+                or (isinstance(x, ABCSeries) and is_1d_only_ea_dtype(x.dtype))
             )
             else x
             for x in arrays
diff --git a/pandas/core/ops/__init__.py b/pandas/core/ops/__init__.py
index 34a0bb1f45e2ccdb8a942b467090f2b6533804de..9f9d69a182f72c9ea01a621eca69d040b203119f 100644
--- a/pandas/core/ops/__init__.py
+++ b/pandas/core/ops/__init__.py
@@ -66,15 +66,18 @@ ARITHMETIC_BINOPS: set[str] = {
 __all__ = [
     "ARITHMETIC_BINOPS",
     "arithmetic_op",
-    "comparison_op",
     "comp_method_OBJECT_ARRAY",
-    "invalid_comparison",
+    "comparison_op",
     "fill_binop",
+    "get_array_op",
+    "get_op_result_name",
+    "invalid_comparison",
     "kleene_and",
     "kleene_or",
     "kleene_xor",
     "logical_op",
     "make_flex_doc",
+    "maybe_prepare_scalar_for_op",
     "radd",
     "rand_",
     "rdiv",
@@ -88,7 +91,4 @@ __all__ = [
     "rtruediv",
     "rxor",
     "unpack_zerodim_and_defer",
-    "get_op_result_name",
-    "maybe_prepare_scalar_for_op",
-    "get_array_op",
 ]
diff --git a/pandas/core/resample.py b/pandas/core/resample.py
index ca4d3fc768efb42ed1323441b8ebc3ee0c466cc6..fdfb9f21bdb9f8821646b5254e11aaed3a008817 100644
--- a/pandas/core/resample.py
+++ b/pandas/core/resample.py
@@ -2002,9 +2002,7 @@ class TimeGrouper(Grouper):
             raise ValueError(f"Unsupported value {convention} for `convention`")
 
         if (
-            key is None
-            and obj is not None
-            and isinstance(obj.index, PeriodIndex)  # type: ignore[attr-defined]
+            (key is None and obj is not None and isinstance(obj.index, PeriodIndex))  # type: ignore[attr-defined]
             or (
                 key is not None
                 and obj is not None
diff --git a/pandas/core/reshape/merge.py b/pandas/core/reshape/merge.py
index 6f9bb8cb24f438ee19b429b8de7f74cba76d7a8f..5fddd9f9aca5b60ce8f096f26e3c73369dd3bba7 100644
--- a/pandas/core/reshape/merge.py
+++ b/pandas/core/reshape/merge.py
@@ -2746,8 +2746,7 @@ def _factorize_keys(
             isinstance(lk.dtype, ArrowDtype)
             and (
                 is_numeric_dtype(lk.dtype.numpy_dtype)
-                or is_string_dtype(lk.dtype)
-                and not sort
+                or (is_string_dtype(lk.dtype) and not sort)
             )
         ):
             lk, _ = lk._values_for_factorize()
diff --git a/pandas/core/tools/numeric.py b/pandas/core/tools/numeric.py
index f159babb7e018e5687e74f27a643daa2a9035671..bc45343d6e2d3b42ce6d0739cd3025e655fc8fe1 100644
--- a/pandas/core/tools/numeric.py
+++ b/pandas/core/tools/numeric.py
@@ -226,19 +226,18 @@ def to_numeric(
             set(),
             coerce_numeric=coerce_numeric,
             convert_to_masked_nullable=dtype_backend is not lib.no_default
-            or isinstance(values_dtype, StringDtype)
-            and values_dtype.na_value is libmissing.NA,
+            or (
+                isinstance(values_dtype, StringDtype)
+                and values_dtype.na_value is libmissing.NA
+            ),
         )
 
     if new_mask is not None:
         # Remove unnecessary values, is expected later anyway and enables
         # downcasting
         values = values[~new_mask]
-    elif (
-        dtype_backend is not lib.no_default
-        and new_mask is None
-        or isinstance(values_dtype, StringDtype)
-        and values_dtype.na_value is libmissing.NA
+    elif (dtype_backend is not lib.no_default and new_mask is None) or (
+        isinstance(values_dtype, StringDtype) and values_dtype.na_value is libmissing.NA
     ):
         new_mask = np.zeros(values.shape, dtype=np.bool_)
 
diff --git a/pandas/errors/__init__.py b/pandas/errors/__init__.py
index b1a338893fe0aae3174179cf0ecf984a7d3163a8..1de6f06ef316c58744d7e779ff31a6f7f7f4dbdf 100644
--- a/pandas/errors/__init__.py
+++ b/pandas/errors/__init__.py
@@ -865,28 +865,28 @@ class InvalidComparison(Exception):
 __all__ = [
     "AbstractMethodError",
     "AttributeConflictWarning",
+    "CSSWarning",
     "CategoricalConversionWarning",
     "ChainedAssignmentError",
     "ClosedFileError",
-    "CSSWarning",
-    "DatabaseError",
     "DataError",
+    "DatabaseError",
     "DtypeWarning",
     "DuplicateLabelError",
     "EmptyDataError",
     "IncompatibilityWarning",
+    "IndexingError",
     "IntCastingNaNError",
     "InvalidColumnName",
     "InvalidComparison",
     "InvalidIndexError",
     "InvalidVersion",
-    "IndexingError",
     "LossySetitemError",
     "MergeError",
     "NoBufferPresent",
     "NullFrequencyError",
-    "NumbaUtilError",
     "NumExprClobberingError",
+    "NumbaUtilError",
     "OptionError",
     "OutOfBoundsDatetime",
     "OutOfBoundsTimedelta",
diff --git a/pandas/io/__init__.py b/pandas/io/__init__.py
index c804b81c49e7c8abb406f2132909df6036df1c09..1c7e531debb1426624186453b622cfccd11d44ef 100644
--- a/pandas/io/__init__.py
+++ b/pandas/io/__init__.py
@@ -1,4 +1,4 @@
-# ruff: noqa: TCH004
+# ruff: noqa: TC004
 from typing import TYPE_CHECKING
 
 if TYPE_CHECKING:
diff --git a/pandas/io/excel/__init__.py b/pandas/io/excel/__init__.py
index 275cbf0148f944eb04ca6c40c624cc5df77aa626..f13d7afa63d8445d9ec16f8b109bc241802517e5 100644
--- a/pandas/io/excel/__init__.py
+++ b/pandas/io/excel/__init__.py
@@ -8,7 +8,7 @@ from pandas.io.excel._openpyxl import OpenpyxlWriter as _OpenpyxlWriter
 from pandas.io.excel._util import register_writer
 from pandas.io.excel._xlsxwriter import XlsxWriter as _XlsxWriter
 
-__all__ = ["read_excel", "ExcelWriter", "ExcelFile"]
+__all__ = ["ExcelFile", "ExcelWriter", "read_excel"]
 
 
 register_writer(_OpenpyxlWriter)
diff --git a/pandas/io/formats/__init__.py b/pandas/io/formats/__init__.py
index 5e56b1bc7ba4377cc5de9d68a1424524aef21cb5..895669c342f97777caf368429689b8499e3adb92 100644
--- a/pandas/io/formats/__init__.py
+++ b/pandas/io/formats/__init__.py
@@ -1,4 +1,4 @@
-# ruff: noqa: TCH004
+# ruff: noqa: TC004
 from typing import TYPE_CHECKING
 
 if TYPE_CHECKING:
diff --git a/pandas/io/json/__init__.py b/pandas/io/json/__init__.py
index 8f4e7a62834b57c151189cdd2994a55d1ad9f7de..39f78e26d60417d324fdb65ec29f60c0586c3512 100644
--- a/pandas/io/json/__init__.py
+++ b/pandas/io/json/__init__.py
@@ -7,9 +7,9 @@ from pandas.io.json._json import (
 from pandas.io.json._table_schema import build_table_schema
 
 __all__ = [
-    "ujson_dumps",
-    "ujson_loads",
+    "build_table_schema",
     "read_json",
     "to_json",
-    "build_table_schema",
+    "ujson_dumps",
+    "ujson_loads",
 ]
diff --git a/pandas/io/json/_json.py b/pandas/io/json/_json.py
index 983780f81043fcfa65a58ec8e61959c5bbab4ef8..237518b3c8d926492db018d76e79a3f7b2a6db8e 100644
--- a/pandas/io/json/_json.py
+++ b/pandas/io/json/_json.py
@@ -364,10 +364,8 @@ class JSONTableWriter(FrameWriter):
             )
 
         # TODO: Do this timedelta properly in objToJSON.c See GH #15137
-        if (
-            (obj.ndim == 1)
-            and (obj.name in set(obj.index.names))
-            or len(obj.columns.intersection(obj.index.names))
+        if ((obj.ndim == 1) and (obj.name in set(obj.index.names))) or len(
+            obj.columns.intersection(obj.index.names)
         ):
             msg = "Overlapping names between the index and columns"
             raise ValueError(msg)
diff --git a/pandas/io/parsers/base_parser.py b/pandas/io/parsers/base_parser.py
index 7294efe843cce1d5f58c70be4d81920de61fdf9b..e263c69376d0545dd3c68ce9cff2b5fd7d5366c3 100644
--- a/pandas/io/parsers/base_parser.py
+++ b/pandas/io/parsers/base_parser.py
@@ -368,7 +368,7 @@ class ParserBase:
                     index_converter = converters.get(self.index_names[i]) is not None
 
             try_num_bool = not (
-                cast_type and is_string_dtype(cast_type) or index_converter
+                (cast_type and is_string_dtype(cast_type)) or index_converter
             )
 
             arr, _ = self._infer_types(
diff --git a/pandas/io/parsers/python_parser.py b/pandas/io/parsers/python_parser.py
index 99d584db61755793a6e361e59feb4accc2b80f80..db9547a18b600c727a605697dea5cb71f18ce85e 100644
--- a/pandas/io/parsers/python_parser.py
+++ b/pandas/io/parsers/python_parser.py
@@ -1052,8 +1052,9 @@ class PythonParser(ParserBase):
             for line in lines
             if (
                 len(line) > 1
-                or len(line) == 1
-                and (not isinstance(line[0], str) or line[0].strip())
+                or (
+                    len(line) == 1 and (not isinstance(line[0], str) or line[0].strip())
+                )
             )
         ]
         return ret
diff --git a/pandas/io/stata.py b/pandas/io/stata.py
index 63f729c8347b15291a739fdd15d8bd2515b999b5..053e331925b6f57e3bcc18cdf376de95287a1238 100644
--- a/pandas/io/stata.py
+++ b/pandas/io/stata.py
@@ -2206,15 +2206,15 @@ def _convert_datetime_to_stata_type(fmt: str) -> np.dtype:
 
 def _maybe_convert_to_int_keys(convert_dates: dict, varlist: list[Hashable]) -> dict:
     new_dict = {}
-    for key in convert_dates:
-        if not convert_dates[key].startswith("%"):  # make sure proper fmts
-            convert_dates[key] = "%" + convert_dates[key]
+    for key, value in convert_dates.items():
+        if not value.startswith("%"):  # make sure proper fmts
+            convert_dates[key] = "%" + value
         if key in varlist:
-            new_dict.update({varlist.index(key): convert_dates[key]})
+            new_dict[varlist.index(key)] = value
         else:
             if not isinstance(key, int):
                 raise ValueError("convert_dates key must be a column or an integer")
-            new_dict.update({key: convert_dates[key]})
+            new_dict[key] = value
     return new_dict
 
 
@@ -2879,7 +2879,7 @@ supported types."""
         # ds_format - just use 114
         self._write_bytes(struct.pack("b", 114))
         # byteorder
-        self._write(byteorder == ">" and "\x01" or "\x02")
+        self._write((byteorder == ">" and "\x01") or "\x02")
         # filetype
         self._write("\x01")
         # unused
@@ -3425,7 +3425,7 @@ class StataWriter117(StataWriter):
         # ds_format - 117
         bio.write(self._tag(bytes(str(self._dta_version), "utf-8"), "release"))
         # byteorder
-        bio.write(self._tag(byteorder == ">" and "MSF" or "LSF", "byteorder"))
+        bio.write(self._tag((byteorder == ">" and "MSF") or "LSF", "byteorder"))
         # number of vars, 2 bytes in 117 and 118, 4 byte in 119
         nvar_type = "H" if self._dta_version <= 118 else "I"
         bio.write(self._tag(struct.pack(byteorder + nvar_type, self.nvar), "K"))
diff --git a/pandas/plotting/__init__.py b/pandas/plotting/__init__.py
index c7a4c1eacfcaec2954e4eefe8488cba89dbd61df..837bfaf82ca272672cb6bd91adb83154e66a508e 100644
--- a/pandas/plotting/__init__.py
+++ b/pandas/plotting/__init__.py
@@ -80,20 +80,20 @@ from pandas.plotting._misc import (
 
 __all__ = [
     "PlotAccessor",
+    "andrews_curves",
+    "autocorrelation_plot",
+    "bootstrap_plot",
     "boxplot",
     "boxplot_frame",
     "boxplot_frame_groupby",
+    "deregister_matplotlib_converters",
     "hist_frame",
     "hist_series",
-    "scatter_matrix",
-    "radviz",
-    "andrews_curves",
-    "bootstrap_plot",
-    "parallel_coordinates",
     "lag_plot",
-    "autocorrelation_plot",
-    "table",
+    "parallel_coordinates",
     "plot_params",
+    "radviz",
     "register_matplotlib_converters",
-    "deregister_matplotlib_converters",
+    "scatter_matrix",
+    "table",
 ]
diff --git a/pandas/plotting/_matplotlib/__init__.py b/pandas/plotting/_matplotlib/__init__.py
index 87f3ca09ad346cc04ece5af2ce0bab6814b2ee46..ff28868aa003326355f0e3e4b5b7914edb63121c 100644
--- a/pandas/plotting/_matplotlib/__init__.py
+++ b/pandas/plotting/_matplotlib/__init__.py
@@ -74,20 +74,20 @@ def plot(data, kind, **kwargs):
 
 
 __all__ = [
-    "plot",
-    "hist_series",
-    "hist_frame",
-    "boxplot",
-    "boxplot_frame",
-    "boxplot_frame_groupby",
-    "table",
     "andrews_curves",
     "autocorrelation_plot",
     "bootstrap_plot",
+    "boxplot",
+    "boxplot_frame",
+    "boxplot_frame_groupby",
+    "deregister",
+    "hist_frame",
+    "hist_series",
     "lag_plot",
     "parallel_coordinates",
+    "plot",
     "radviz",
-    "scatter_matrix",
     "register",
-    "deregister",
+    "scatter_matrix",
+    "table",
 ]
diff --git a/pandas/testing.py b/pandas/testing.py
index 0445fa5b5efc0a7f7002b7ea0cac8547324e8015..433b22bf1107e1d199c3070fa5c7aef45df6758c 100644
--- a/pandas/testing.py
+++ b/pandas/testing.py
@@ -12,6 +12,6 @@ from pandas._testing import (
 __all__ = [
     "assert_extension_array_equal",
     "assert_frame_equal",
-    "assert_series_equal",
     "assert_index_equal",
+    "assert_series_equal",
 ]
diff --git a/pandas/tests/extension/decimal/__init__.py b/pandas/tests/extension/decimal/__init__.py
index 34727b43a7b0fb325143dfedee4db25c4b56f5db..47b1c7c57a47a5c59c5711cf8ca7de1a65013103 100644
--- a/pandas/tests/extension/decimal/__init__.py
+++ b/pandas/tests/extension/decimal/__init__.py
@@ -5,4 +5,4 @@ from pandas.tests.extension.decimal.array import (
     to_decimal,
 )
 
-__all__ = ["DecimalArray", "DecimalDtype", "to_decimal", "make_data"]
+__all__ = ["DecimalArray", "DecimalDtype", "make_data", "to_decimal"]
diff --git a/pandas/tests/extension/test_arrow.py b/pandas/tests/extension/test_arrow.py
index 9defb97394635d600d0c7cbd294e38b684a4a674..c6ac6368f2770da0b27bf21b57e8df982b6e6122 100644
--- a/pandas/tests/extension/test_arrow.py
+++ b/pandas/tests/extension/test_arrow.py
@@ -896,9 +896,7 @@ class TestArrowArray(base.ExtensionTests):
                 )
             )
             and pa.types.is_duration(pa_dtype)
-            or opname in ("__sub__", "__rsub__")
-            and pa.types.is_temporal(pa_dtype)
-        )
+        ) or (opname in ("__sub__", "__rsub__") and pa.types.is_temporal(pa_dtype))
 
     def _get_expected_exception(
         self, op_name: str, obj, other
diff --git a/pandas/tests/extension/test_string.py b/pandas/tests/extension/test_string.py
index 27621193a9b8d6ae139313ec1ec201f5f85eb158..e19351b2ad0584b65a943de06de9bc8c92232085 100644
--- a/pandas/tests/extension/test_string.py
+++ b/pandas/tests/extension/test_string.py
@@ -187,9 +187,8 @@ class TestStringArray(base.ExtensionTests):
         return None
 
     def _supports_reduction(self, ser: pd.Series, op_name: str) -> bool:
-        return (
-            op_name in ["min", "max", "sum"]
-            or ser.dtype.na_value is np.nan  # type: ignore[union-attr]
+        return op_name in ["min", "max", "sum"] or (
+            ser.dtype.na_value is np.nan  # type: ignore[union-attr]
             and op_name in ("any", "all")
         )
 
diff --git a/pandas/tests/frame/methods/test_nlargest.py b/pandas/tests/frame/methods/test_nlargest.py
index 52e871cc795b421c0e8fb6565a575631c384f4ef..c6e5304ae3cb400ce979d25fad03801ce410b93b 100644
--- a/pandas/tests/frame/methods/test_nlargest.py
+++ b/pandas/tests/frame/methods/test_nlargest.py
@@ -159,7 +159,7 @@ class TestNLargestNSmallest:
         result = df.nlargest(n, order)
         expected = df.sort_values(order, ascending=False).head(n)
         if Version(np.__version__) >= Version("1.25") and (
-            (order == ["a"] and n in (1, 2, 3, 4)) or (order == ["a", "b"]) and n == 5
+            (order == ["a"] and n in (1, 2, 3, 4)) or ((order == ["a", "b"]) and n == 5)
         ):
             request.applymarker(
                 pytest.mark.xfail(
diff --git a/pandas/tests/test_nanops.py b/pandas/tests/test_nanops.py
index ce41f1e76de7974acc7345326971971c10bfcbe0..e7ed8e855a7625beb025e193be77c51278920826 100644
--- a/pandas/tests/test_nanops.py
+++ b/pandas/tests/test_nanops.py
@@ -537,11 +537,8 @@ class TestnanopsDataFrame:
         nullnan = isna(nans)
         if res.ndim:
             res[nullnan] = -1
-        elif (
-            hasattr(nullnan, "all")
-            and nullnan.all()
-            or not hasattr(nullnan, "all")
-            and nullnan
+        elif (hasattr(nullnan, "all") and nullnan.all()) or (
+            not hasattr(nullnan, "all") and nullnan
         ):
             res = -1
         return res
diff --git a/pandas/tseries/__init__.py b/pandas/tseries/__init__.py
index e361726dc6f80d41cb4975641b44624427b489d6..c00843ecac418a41b01470db93388f6c5568ea6b 100644
--- a/pandas/tseries/__init__.py
+++ b/pandas/tseries/__init__.py
@@ -1,4 +1,4 @@
-# ruff: noqa: TCH004
+# ruff: noqa: TC004
 from typing import TYPE_CHECKING
 
 if TYPE_CHECKING:
diff --git a/pandas/tseries/api.py b/pandas/tseries/api.py
index ec2d7d230483947d78f737af42684effa3e60514..5ea899f1610a7ef223f1c069552bedf4c502a8b4 100644
--- a/pandas/tseries/api.py
+++ b/pandas/tseries/api.py
@@ -7,4 +7,4 @@ from pandas._libs.tslibs.parsing import guess_datetime_format
 from pandas.tseries import offsets
 from pandas.tseries.frequencies import infer_freq
 
-__all__ = ["infer_freq", "offsets", "guess_datetime_format"]
+__all__ = ["guess_datetime_format", "infer_freq", "offsets"]
diff --git a/pandas/tseries/holiday.py b/pandas/tseries/holiday.py
index bf4ec2e551f01c9aa06b3239858d1534c2f09256..2d195fbbc4e8435e5c7b7037680a4660734610f8 100644
--- a/pandas/tseries/holiday.py
+++ b/pandas/tseries/holiday.py
@@ -636,12 +636,17 @@ def HolidayCalendarFactory(name: str, base, other, base_class=AbstractHolidayCal
 
 
 __all__ = [
+    "FR",
+    "MO",
+    "SA",
+    "SU",
+    "TH",
+    "TU",
+    "WE",
+    "HolidayCalendarFactory",
     "after_nearest_workday",
     "before_nearest_workday",
-    "FR",
     "get_calendar",
-    "HolidayCalendarFactory",
-    "MO",
     "nearest_workday",
     "next_monday",
     "next_monday_or_tuesday",
@@ -649,11 +654,6 @@ __all__ = [
     "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 169c9cc18a7fde6289a112ba5932cbb634eb3714..a065137e6971c3e193b6a1c56c002dc5c5753a83 100644
--- a/pandas/tseries/offsets.py
+++ b/pandas/tseries/offsets.py
@@ -46,46 +46,46 @@ from pandas._libs.tslibs.offsets import (
 )
 
 __all__ = [
-    "Day",
+    "FY5253",
+    "BDay",
+    "BMonthBegin",
+    "BMonthEnd",
+    "BQuarterBegin",
+    "BQuarterEnd",
+    "BYearBegin",
+    "BYearEnd",
     "BaseOffset",
     "BusinessDay",
+    "BusinessHour",
     "BusinessMonthBegin",
     "BusinessMonthEnd",
-    "BDay",
+    "CBMonthBegin",
+    "CBMonthEnd",
+    "CDay",
     "CustomBusinessDay",
+    "CustomBusinessHour",
     "CustomBusinessMonthBegin",
     "CustomBusinessMonthEnd",
-    "CDay",
-    "CBMonthEnd",
-    "CBMonthBegin",
+    "DateOffset",
+    "Day",
+    "Easter",
+    "FY5253Quarter",
+    "Hour",
+    "LastWeekOfMonth",
+    "Micro",
+    "Milli",
+    "Minute",
     "MonthBegin",
-    "BMonthBegin",
     "MonthEnd",
-    "BMonthEnd",
-    "SemiMonthEnd",
-    "SemiMonthBegin",
-    "BusinessHour",
-    "CustomBusinessHour",
-    "YearBegin",
-    "BYearBegin",
-    "YearEnd",
-    "BYearEnd",
+    "Nano",
     "QuarterBegin",
-    "BQuarterBegin",
     "QuarterEnd",
-    "BQuarterEnd",
-    "LastWeekOfMonth",
-    "FY5253Quarter",
-    "FY5253",
+    "Second",
+    "SemiMonthBegin",
+    "SemiMonthEnd",
+    "Tick",
     "Week",
     "WeekOfMonth",
-    "Easter",
-    "Tick",
-    "Hour",
-    "Minute",
-    "Second",
-    "Milli",
-    "Micro",
-    "Nano",
-    "DateOffset",
+    "YearBegin",
+    "YearEnd",
 ]
diff --git a/pandas/util/_decorators.py b/pandas/util/_decorators.py
index 165824bec131f840734e3b4edcd88dc0694cfed8..a1a0d51a7c72b29da0d534cb76109dc1e305f60a 100644
--- a/pandas/util/_decorators.py
+++ b/pandas/util/_decorators.py
@@ -83,7 +83,7 @@ def deprecate(
         if alternative.__doc__.count("\n") < 3:
             raise AssertionError(doc_error_msg)
         empty1, summary, empty2, doc_string = alternative.__doc__.split("\n", 3)
-        if empty1 or empty2 and not summary:
+        if empty1 or (empty2 and not summary):
             raise AssertionError(doc_error_msg)
         wrapper.__doc__ = dedent(
             f"""
@@ -497,13 +497,13 @@ def indent(text: str | None, indents: int = 1) -> str:
 
 __all__ = [
     "Appender",
+    "Substitution",
     "cache_readonly",
     "deprecate",
     "deprecate_kwarg",
     "deprecate_nonkeyword_arguments",
     "doc",
     "future_version_msg",
-    "Substitution",
 ]
 
 
diff --git a/pyproject.toml b/pyproject.toml
index 0c76ecd0b15b4c55b7d366f13550b781c7af1a90..7ab9cd2c176692b5a49fe5d02279df3665b079f0 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -304,10 +304,6 @@ ignore = [
   "PERF102",
   # try-except-in-loop, becomes useless in Python 3.11
   "PERF203",
-  # pytest-missing-fixture-name-underscore
-  "PT004",
-  # pytest-incorrect-fixture-name-underscore
-  "PT005",
   # pytest-parametrize-names-wrong-type
   "PT006",
   # pytest-parametrize-values-wrong-type
diff --git a/scripts/validate_unwanted_patterns.py b/scripts/validate_unwanted_patterns.py
index 076acc359f9332cb7108421f076ea75ba1952d8d..d804e15f6d48f0afd2960cd858742f54023233fe 100755
--- a/scripts/validate_unwanted_patterns.py
+++ b/scripts/validate_unwanted_patterns.py
@@ -319,10 +319,10 @@ def nodefault_used_not_only_for_typing(file_obj: IO[str]) -> Iterable[tuple[int,
     while nodes:
         in_annotation, node = nodes.pop()
         if not in_annotation and (
-            isinstance(node, ast.Name)  # Case `NoDefault`
-            and node.id == "NoDefault"
-            or isinstance(node, ast.Attribute)  # Cases e.g. `lib.NoDefault`
-            and node.attr == "NoDefault"
+            (isinstance(node, ast.Name)  # Case `NoDefault`
+            and node.id == "NoDefault")
+            or (isinstance(node, ast.Attribute)  # Cases e.g. `lib.NoDefault`
+            and node.attr == "NoDefault")
         ):
             yield (node.lineno, "NoDefault is used not only for typing")