diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 576c929c26b9b..a785607eca3fc 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -409,9 +409,9 @@ repos: - flake8-pyi==22.8.1 - id: future-annotations name: import annotations from __future__ - entry: 'from __future__ import annotations' + entry: 'from __future__ import \(\n annotations' language: pygrep - args: [--negate] + args: [--negate, --multiline] files: ^pandas/ types: [python] exclude: | diff --git a/asv_bench/benchmarks/algorithms.py b/asv_bench/benchmarks/algorithms.py index eef81242abc7c..53c549e77bf4b 100644 --- a/asv_bench/benchmarks/algorithms.py +++ b/asv_bench/benchmarks/algorithms.py @@ -1,10 +1,14 @@ -from importlib import import_module +from importlib import ( + import_module, +) import numpy as np import pandas as pd -from .pandas_vb_common import tm +from .pandas_vb_common import ( + tm, +) for imp in ["pandas.util", "pandas.tools.hashing"]: try: diff --git a/asv_bench/benchmarks/algos/isin.py b/asv_bench/benchmarks/algos/isin.py index ac79ab65cea81..8b3b7abc610b2 100644 --- a/asv_bench/benchmarks/algos/isin.py +++ b/asv_bench/benchmarks/algos/isin.py @@ -8,7 +8,9 @@ date_range, ) -from ..pandas_vb_common import tm +from ..pandas_vb_common import ( + tm, +) class IsIn: diff --git a/asv_bench/benchmarks/arithmetic.py b/asv_bench/benchmarks/arithmetic.py index ab3b38fee1b06..211ad8fd93741 100644 --- a/asv_bench/benchmarks/arithmetic.py +++ b/asv_bench/benchmarks/arithmetic.py @@ -12,9 +12,13 @@ to_timedelta, ) import pandas._testing as tm -from pandas.core.algorithms import checked_add_with_arr +from pandas.core.algorithms import ( + checked_add_with_arr, +) -from .pandas_vb_common import numeric_dtypes +from .pandas_vb_common import ( + numeric_dtypes, +) try: import pandas.core.computation.expressions as expr diff --git a/asv_bench/benchmarks/array.py b/asv_bench/benchmarks/array.py index ecd8c26ba6ca5..0b8c17f6f386b 100644 --- a/asv_bench/benchmarks/array.py +++ b/asv_bench/benchmarks/array.py @@ -2,7 +2,9 @@ import pandas as pd -from .pandas_vb_common import tm +from .pandas_vb_common import ( + tm, +) class BooleanArray: diff --git a/asv_bench/benchmarks/attrs_caching.py b/asv_bench/benchmarks/attrs_caching.py index 2a004113d1b91..bc9f85062a4bd 100644 --- a/asv_bench/benchmarks/attrs_caching.py +++ b/asv_bench/benchmarks/attrs_caching.py @@ -1,10 +1,14 @@ import numpy as np import pandas as pd -from pandas import DataFrame +from pandas import ( + DataFrame, +) try: - from pandas.core.construction import extract_array + from pandas.core.construction import ( + extract_array, + ) except ImportError: extract_array = None diff --git a/asv_bench/benchmarks/categoricals.py b/asv_bench/benchmarks/categoricals.py index 02747911d2226..99c250d48c69a 100644 --- a/asv_bench/benchmarks/categoricals.py +++ b/asv_bench/benchmarks/categoricals.py @@ -6,13 +6,19 @@ import pandas as pd -from .pandas_vb_common import tm +from .pandas_vb_common import ( + tm, +) try: - from pandas.api.types import union_categoricals + from pandas.api.types import ( + union_categoricals, + ) except ImportError: try: - from pandas.types.concat import union_categoricals + from pandas.types.concat import ( + union_categoricals, + ) except ImportError: pass diff --git a/asv_bench/benchmarks/ctors.py b/asv_bench/benchmarks/ctors.py index 2db00cc7f2ad9..57ce7993fb663 100644 --- a/asv_bench/benchmarks/ctors.py +++ b/asv_bench/benchmarks/ctors.py @@ -9,7 +9,9 @@ date_range, ) -from .pandas_vb_common import tm +from .pandas_vb_common import ( + tm, +) def no_change(arr): diff --git a/asv_bench/benchmarks/dtypes.py b/asv_bench/benchmarks/dtypes.py index 52c87455b12b3..c96c61398fe0d 100644 --- a/asv_bench/benchmarks/dtypes.py +++ b/asv_bench/benchmarks/dtypes.py @@ -3,7 +3,9 @@ import numpy as np import pandas as pd -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm from pandas.api.types import ( is_extension_array_dtype, diff --git a/asv_bench/benchmarks/frame_ctor.py b/asv_bench/benchmarks/frame_ctor.py index 7092a679b8cf0..77e167e29561f 100644 --- a/asv_bench/benchmarks/frame_ctor.py +++ b/asv_bench/benchmarks/frame_ctor.py @@ -12,7 +12,9 @@ date_range, ) -from .pandas_vb_common import tm +from .pandas_vb_common import ( + tm, +) try: from pandas.tseries.offsets import ( diff --git a/asv_bench/benchmarks/frame_methods.py b/asv_bench/benchmarks/frame_methods.py index f7da4882b0d3f..cf73817e7b6be 100644 --- a/asv_bench/benchmarks/frame_methods.py +++ b/asv_bench/benchmarks/frame_methods.py @@ -14,7 +14,9 @@ timedelta_range, ) -from .pandas_vb_common import tm +from .pandas_vb_common import ( + tm, +) class Clip: diff --git a/asv_bench/benchmarks/gil.py b/asv_bench/benchmarks/gil.py index 4d5c31d2dddf8..209c4a81aeca2 100644 --- a/asv_bench/benchmarks/gil.py +++ b/asv_bench/benchmarks/gil.py @@ -1,4 +1,6 @@ -from functools import wraps +from functools import ( + wraps, +) import threading import numpy as np @@ -10,9 +12,13 @@ factorize, read_csv, ) -from pandas.core.algorithms import take_nd +from pandas.core.algorithms import ( + take_nd, +) -from .pandas_vb_common import tm +from .pandas_vb_common import ( + tm, +) try: from pandas import ( @@ -30,11 +36,12 @@ except ImportError: have_rolling_methods = False try: - from pandas._libs import algos + from pandas._libs import ( + algos, + ) except ImportError: from pandas import algos - from .pandas_vb_common import BaseIO # isort:skip diff --git a/asv_bench/benchmarks/groupby.py b/asv_bench/benchmarks/groupby.py index 4c0f3ddd826b7..0486a6bc741ba 100644 --- a/asv_bench/benchmarks/groupby.py +++ b/asv_bench/benchmarks/groupby.py @@ -1,6 +1,12 @@ -from functools import partial -from itertools import product -from string import ascii_letters +from functools import ( + partial, +) +from itertools import ( + product, +) +from string import ( + ascii_letters, +) import numpy as np @@ -17,7 +23,9 @@ to_timedelta, ) -from .pandas_vb_common import tm +from .pandas_vb_common import ( + tm, +) method_blocklist = { "object": { diff --git a/asv_bench/benchmarks/index_object.py b/asv_bench/benchmarks/index_object.py index bdc8a6a7aa1df..9e93d86c27e76 100644 --- a/asv_bench/benchmarks/index_object.py +++ b/asv_bench/benchmarks/index_object.py @@ -12,7 +12,9 @@ date_range, ) -from .pandas_vb_common import tm +from .pandas_vb_common import ( + tm, +) class SetOperations: diff --git a/asv_bench/benchmarks/indexing.py b/asv_bench/benchmarks/indexing.py index 53827cfcf64fb..04f10546e37f8 100644 --- a/asv_bench/benchmarks/indexing.py +++ b/asv_bench/benchmarks/indexing.py @@ -21,7 +21,9 @@ period_range, ) -from .pandas_vb_common import tm +from .pandas_vb_common import ( + tm, +) class NumericSeriesIndexing: diff --git a/asv_bench/benchmarks/indexing_engines.py b/asv_bench/benchmarks/indexing_engines.py index 6585a4be78dc6..f9e9d98c77cf6 100644 --- a/asv_bench/benchmarks/indexing_engines.py +++ b/asv_bench/benchmarks/indexing_engines.py @@ -10,9 +10,13 @@ import numpy as np -from pandas._libs import index as libindex +from pandas._libs import ( + index as libindex, +) -from pandas.core.arrays import BaseMaskedArray +from pandas.core.arrays import ( + BaseMaskedArray, +) def _get_numeric_engines(): diff --git a/asv_bench/benchmarks/io/excel.py b/asv_bench/benchmarks/io/excel.py index 093a35a20dc5a..735102ce49cfc 100644 --- a/asv_bench/benchmarks/io/excel.py +++ b/asv_bench/benchmarks/io/excel.py @@ -1,13 +1,19 @@ -from io import BytesIO +from io import ( + BytesIO, +) import numpy as np -from odf.opendocument import OpenDocumentSpreadsheet +from odf.opendocument import ( + OpenDocumentSpreadsheet, +) from odf.table import ( Table, TableCell, TableRow, ) -from odf.text import P +from odf.text import ( + P, +) from pandas import ( DataFrame, @@ -16,7 +22,9 @@ read_excel, ) -from ..pandas_vb_common import tm +from ..pandas_vb_common import ( + tm, +) def _generate_dataframe(): diff --git a/asv_bench/benchmarks/io/sas.py b/asv_bench/benchmarks/io/sas.py index 411e5b6099f76..83343f8b2ede2 100644 --- a/asv_bench/benchmarks/io/sas.py +++ b/asv_bench/benchmarks/io/sas.py @@ -1,6 +1,10 @@ -from pathlib import Path +from pathlib import ( + Path, +) -from pandas import read_sas +from pandas import ( + read_sas, +) ROOT = Path(__file__).parents[3] / "pandas" / "tests" / "io" / "sas" / "data" diff --git a/asv_bench/benchmarks/io/sql.py b/asv_bench/benchmarks/io/sql.py index 6f893ee72d918..b1cc40674e77c 100644 --- a/asv_bench/benchmarks/io/sql.py +++ b/asv_bench/benchmarks/io/sql.py @@ -1,7 +1,9 @@ import sqlite3 import numpy as np -from sqlalchemy import create_engine +from sqlalchemy import ( + create_engine, +) from pandas import ( DataFrame, @@ -10,7 +12,9 @@ read_sql_table, ) -from ..pandas_vb_common import tm +from ..pandas_vb_common import ( + tm, +) class SQL: diff --git a/asv_bench/benchmarks/join_merge.py b/asv_bench/benchmarks/join_merge.py index eaa51730477cc..e27c846b75b17 100644 --- a/asv_bench/benchmarks/join_merge.py +++ b/asv_bench/benchmarks/join_merge.py @@ -14,12 +14,18 @@ merge_asof, ) -from .pandas_vb_common import tm +from .pandas_vb_common import ( + tm, +) try: - from pandas import merge_ordered + from pandas import ( + merge_ordered, + ) except ImportError: - from pandas import ordered_merge as merge_ordered + from pandas import ( + ordered_merge as merge_ordered, + ) class Concat: diff --git a/asv_bench/benchmarks/libs.py b/asv_bench/benchmarks/libs.py index f041499c9c622..41a1fa05f1ba9 100644 --- a/asv_bench/benchmarks/libs.py +++ b/asv_bench/benchmarks/libs.py @@ -24,9 +24,13 @@ ) try: - from pandas.util import cache_readonly + from pandas.util import ( + cache_readonly, + ) except ImportError: - from pandas.util.decorators import cache_readonly + from pandas.util.decorators import ( + cache_readonly, + ) # TODO: share with something in pd._testing? diff --git a/asv_bench/benchmarks/multiindex_object.py b/asv_bench/benchmarks/multiindex_object.py index 9c997b5386eaa..4c7e562943fee 100644 --- a/asv_bench/benchmarks/multiindex_object.py +++ b/asv_bench/benchmarks/multiindex_object.py @@ -12,7 +12,9 @@ date_range, ) -from .pandas_vb_common import tm +from .pandas_vb_common import ( + tm, +) class GetLoc: diff --git a/asv_bench/benchmarks/pandas_vb_common.py b/asv_bench/benchmarks/pandas_vb_common.py index 97d91111e833a..61a57e5b2b74d 100644 --- a/asv_bench/benchmarks/pandas_vb_common.py +++ b/asv_bench/benchmarks/pandas_vb_common.py @@ -1,4 +1,6 @@ -from importlib import import_module +from importlib import ( + import_module, +) import os import numpy as np diff --git a/asv_bench/benchmarks/period.py b/asv_bench/benchmarks/period.py index 501fe198d41d8..0f5bf4c816bf2 100644 --- a/asv_bench/benchmarks/period.py +++ b/asv_bench/benchmarks/period.py @@ -11,7 +11,9 @@ period_range, ) -from pandas.tseries.frequencies import to_offset +from pandas.tseries.frequencies import ( + to_offset, +) class PeriodIndexConstructor: diff --git a/asv_bench/benchmarks/plotting.py b/asv_bench/benchmarks/plotting.py index 789bb8d8533b1..28be80166afa1 100644 --- a/asv_bench/benchmarks/plotting.py +++ b/asv_bench/benchmarks/plotting.py @@ -5,7 +5,9 @@ import pathlib import sys import tempfile -from unittest import mock +from unittest import ( + mock, +) import matplotlib import numpy as np @@ -18,11 +20,15 @@ ) try: - from pandas.plotting import andrews_curves + from pandas.plotting import ( + andrews_curves, + ) except ImportError: from pandas.tools.plotting import andrews_curves -from pandas.plotting._core import _get_plot_backend +from pandas.plotting._core import ( + _get_plot_backend, +) matplotlib.use("Agg") diff --git a/asv_bench/benchmarks/reindex.py b/asv_bench/benchmarks/reindex.py index eac4bb38eb18f..206bada870f11 100644 --- a/asv_bench/benchmarks/reindex.py +++ b/asv_bench/benchmarks/reindex.py @@ -9,7 +9,9 @@ period_range, ) -from .pandas_vb_common import tm +from .pandas_vb_common import ( + tm, +) class Reindex: diff --git a/asv_bench/benchmarks/reshape.py b/asv_bench/benchmarks/reshape.py index 551af7ccb40bc..749a231998660 100644 --- a/asv_bench/benchmarks/reshape.py +++ b/asv_bench/benchmarks/reshape.py @@ -1,4 +1,6 @@ -from itertools import product +from itertools import ( + product, +) import string import numpy as np @@ -11,7 +13,9 @@ melt, wide_to_long, ) -from pandas.api.types import CategoricalDtype +from pandas.api.types import ( + CategoricalDtype, +) class Melt: diff --git a/asv_bench/benchmarks/series_methods.py b/asv_bench/benchmarks/series_methods.py index 06c4589297cda..d80028b971edd 100644 --- a/asv_bench/benchmarks/series_methods.py +++ b/asv_bench/benchmarks/series_methods.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np @@ -10,7 +12,9 @@ date_range, ) -from .pandas_vb_common import tm +from .pandas_vb_common import ( + tm, +) class SeriesConstructor: diff --git a/asv_bench/benchmarks/sparse.py b/asv_bench/benchmarks/sparse.py index c8a9a9e6e9176..92ff7049e1427 100644 --- a/asv_bench/benchmarks/sparse.py +++ b/asv_bench/benchmarks/sparse.py @@ -7,7 +7,9 @@ Series, date_range, ) -from pandas.arrays import SparseArray +from pandas.arrays import ( + SparseArray, +) def make_array(size, dense_proportion, fill_value, dtype): diff --git a/asv_bench/benchmarks/strftime.py b/asv_bench/benchmarks/strftime.py index ac1b7f65d2d90..6ebdafdf19700 100644 --- a/asv_bench/benchmarks/strftime.py +++ b/asv_bench/benchmarks/strftime.py @@ -1,7 +1,9 @@ import numpy as np import pandas as pd -from pandas import offsets +from pandas import ( + offsets, +) class DatetimeStrftime: diff --git a/asv_bench/benchmarks/strings.py b/asv_bench/benchmarks/strings.py index 59b7cd2accf88..3a565dcca2583 100644 --- a/asv_bench/benchmarks/strings.py +++ b/asv_bench/benchmarks/strings.py @@ -8,9 +8,13 @@ DataFrame, Series, ) -from pandas.arrays import StringArray +from pandas.arrays import ( + StringArray, +) -from .pandas_vb_common import tm +from .pandas_vb_common import ( + tm, +) class Dtypes: diff --git a/asv_bench/benchmarks/timeseries.py b/asv_bench/benchmarks/timeseries.py index 1253fefde2d5f..cc959e1eeaeb5 100644 --- a/asv_bench/benchmarks/timeseries.py +++ b/asv_bench/benchmarks/timeseries.py @@ -1,4 +1,6 @@ -from datetime import timedelta +from datetime import ( + timedelta, +) import dateutil import numpy as np @@ -11,12 +13,18 @@ timedelta_range, ) -from pandas.tseries.frequencies import infer_freq +from pandas.tseries.frequencies import ( + infer_freq, +) try: - from pandas.plotting._matplotlib.converter import DatetimeConverter + from pandas.plotting._matplotlib.converter import ( + DatetimeConverter, + ) except ImportError: - from pandas.tseries.converter import DatetimeConverter + from pandas.tseries.converter import ( + DatetimeConverter, + ) class DatetimeIndex: diff --git a/asv_bench/benchmarks/tslibs/fields.py b/asv_bench/benchmarks/tslibs/fields.py index 23ae73811204c..a26dc3b5e9017 100644 --- a/asv_bench/benchmarks/tslibs/fields.py +++ b/asv_bench/benchmarks/tslibs/fields.py @@ -6,7 +6,9 @@ get_timedelta_field, ) -from .tslib import _sizes +from .tslib import ( + _sizes, +) class TimeGetTimedeltaField: diff --git a/asv_bench/benchmarks/tslibs/offsets.py b/asv_bench/benchmarks/tslibs/offsets.py index 1f48ec504acf1..2559204539b41 100644 --- a/asv_bench/benchmarks/tslibs/offsets.py +++ b/asv_bench/benchmarks/tslibs/offsets.py @@ -2,11 +2,15 @@ offsets benchmarks that rely only on tslibs. See benchmarks.offset for offsets benchmarks that rely on other parts of pandas. """ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np -from pandas import offsets +from pandas import ( + offsets, +) try: import pandas.tseries.holiday diff --git a/asv_bench/benchmarks/tslibs/period.py b/asv_bench/benchmarks/tslibs/period.py index 2d192889c39f3..d8c9467cf5c3c 100644 --- a/asv_bench/benchmarks/tslibs/period.py +++ b/asv_bench/benchmarks/tslibs/period.py @@ -10,7 +10,9 @@ periodarr_to_dt64arr, ) -from pandas.tseries.frequencies import to_offset +from pandas.tseries.frequencies import ( + to_offset, +) from .tslib import ( _sizes, @@ -19,9 +21,13 @@ ) try: - from pandas._libs.tslibs.vectorized import dt64arr_to_periodarr + from pandas._libs.tslibs.vectorized import ( + dt64arr_to_periodarr, + ) except ImportError: - from pandas._libs.tslibs.period import dt64arr_to_periodarr + from pandas._libs.tslibs.period import ( + dt64arr_to_periodarr, + ) class PeriodProperties: diff --git a/asv_bench/benchmarks/tslibs/resolution.py b/asv_bench/benchmarks/tslibs/resolution.py index 44f288c7de216..0381046cd73bd 100644 --- a/asv_bench/benchmarks/tslibs/resolution.py +++ b/asv_bench/benchmarks/tslibs/resolution.py @@ -20,7 +20,9 @@ import numpy as np try: - from pandas._libs.tslibs import get_resolution + from pandas._libs.tslibs import ( + get_resolution, + ) except ImportError: from pandas._libs.tslibs.resolution import get_resolution diff --git a/asv_bench/benchmarks/tslibs/timedelta.py b/asv_bench/benchmarks/tslibs/timedelta.py index 2daf1861eb80a..c1f0b40139ebe 100644 --- a/asv_bench/benchmarks/tslibs/timedelta.py +++ b/asv_bench/benchmarks/tslibs/timedelta.py @@ -6,7 +6,9 @@ import numpy as np -from pandas import Timedelta +from pandas import ( + Timedelta, +) class TimedeltaConstructor: diff --git a/asv_bench/benchmarks/tslibs/timestamp.py b/asv_bench/benchmarks/tslibs/timestamp.py index d7706a39dfae5..9b5152de2543d 100644 --- a/asv_bench/benchmarks/tslibs/timestamp.py +++ b/asv_bench/benchmarks/tslibs/timestamp.py @@ -1,11 +1,17 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytz -from pandas import Timestamp +from pandas import ( + Timestamp, +) -from .tslib import _tzs +from .tslib import ( + _tzs, +) class TimestampConstruction: diff --git a/asv_bench/benchmarks/tslibs/tslib.py b/asv_bench/benchmarks/tslibs/tslib.py index 97ec80201dd16..6ea7e3ae21d37 100644 --- a/asv_bench/benchmarks/tslibs/tslib.py +++ b/asv_bench/benchmarks/tslibs/tslib.py @@ -28,9 +28,13 @@ import pytz try: - from pandas._libs.tslibs import ints_to_pydatetime + from pandas._libs.tslibs import ( + ints_to_pydatetime, + ) except ImportError: - from pandas._libs.tslib import ints_to_pydatetime + from pandas._libs.tslib import ( + ints_to_pydatetime, + ) tzlocal_obj = tzlocal() _tzs = [ diff --git a/asv_bench/benchmarks/tslibs/tz_convert.py b/asv_bench/benchmarks/tslibs/tz_convert.py index c6b510efdca69..e66c54281a214 100644 --- a/asv_bench/benchmarks/tslibs/tz_convert.py +++ b/asv_bench/benchmarks/tslibs/tz_convert.py @@ -1,7 +1,11 @@ import numpy as np -from pytz import UTC +from pytz import ( + UTC, +) -from pandas._libs.tslibs.tzconversion import tz_localize_to_utc +from pandas._libs.tslibs.tzconversion import ( + tz_localize_to_utc, +) from .tslib import ( _sizes, @@ -11,14 +15,20 @@ try: old_sig = False - from pandas._libs.tslibs import tz_convert_from_utc + from pandas._libs.tslibs import ( + tz_convert_from_utc, + ) except ImportError: try: old_sig = False - from pandas._libs.tslibs.tzconversion import tz_convert_from_utc + from pandas._libs.tslibs.tzconversion import ( + tz_convert_from_utc, + ) except ImportError: old_sig = True - from pandas._libs.tslibs.tzconversion import tz_convert as tz_convert_from_utc + from pandas._libs.tslibs.tzconversion import ( + tz_convert as tz_convert_from_utc, + ) class TimeTZConvert: diff --git a/doc/scripts/eval_performance.py b/doc/scripts/eval_performance.py index 559689ef5915b..4c3fac3dfdfa4 100644 --- a/doc/scripts/eval_performance.py +++ b/doc/scripts/eval_performance.py @@ -1,9 +1,13 @@ -from timeit import repeat as timeit +from timeit import ( + repeat as timeit, +) import numpy as np import seaborn as sns -from pandas import DataFrame +from pandas import ( + DataFrame, +) setup_common = """from pandas import DataFrame import numpy as np @@ -65,7 +69,9 @@ def bench(mn=3, mx=7, num=100, engines=("python", "numexpr"), verbose=False): def plot_perf(df, engines, title, filename=None): - from matplotlib.pyplot import figure + from matplotlib.pyplot import ( + figure, + ) sns.set() sns.set_palette("Set2") diff --git a/doc/source/conf.py b/doc/source/conf.py index 6671cefae9073..97ea27d09f69b 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -9,7 +9,9 @@ # # All configuration values have a default; values that are commented out # serve to show the default. -from datetime import datetime +from datetime import ( + datetime, +) import importlib import inspect import logging @@ -18,8 +20,12 @@ import warnings import jinja2 -from numpydoc.docscrape import NumpyDocString -from sphinx.ext.autosummary import _import_by_name +from numpydoc.docscrape import ( + NumpyDocString, +) +from sphinx.ext.autosummary import ( + _import_by_name, +) logger = logging.getLogger(__name__) @@ -586,7 +592,9 @@ def format_name(self): if sys.version_info < (3, 9): # NOTE pyupgrade will remove this when we run it with --py39-plus # so don't remove the unnecessary `else` statement below - from pandas.util._str_methods import removesuffix + from pandas.util._str_methods import ( + removesuffix, + ) return removesuffix(MethodDocumenter.format_name(self), ".__call__") else: diff --git a/doc/sphinxext/announce.py b/doc/sphinxext/announce.py index 1c45c03f36d64..dbf3ff48eb307 100755 --- a/doc/sphinxext/announce.py +++ b/doc/sphinxext/announce.py @@ -37,7 +37,9 @@ import re import textwrap -from git import Repo +from git import ( + Repo, +) UTF8Writer = codecs.getwriter("utf8") this_repo = Repo(os.path.join(os.path.dirname(__file__), "..", "..")) @@ -153,7 +155,9 @@ def main(revision_range): if __name__ == "__main__": - from argparse import ArgumentParser + from argparse import ( + ArgumentParser, + ) parser = ArgumentParser(description="Generate author lists for release") parser.add_argument("revision_range", help="..") diff --git a/doc/sphinxext/contributors.py b/doc/sphinxext/contributors.py index c2b21e40cadad..4f79436cb8317 100644 --- a/doc/sphinxext/contributors.py +++ b/doc/sphinxext/contributors.py @@ -14,9 +14,15 @@ While the v0.23.1 tag does not exist, that will use the HEAD of the branch as the end of the revision range. """ -from announce import build_components -from docutils import nodes -from docutils.parsers.rst import Directive +from announce import ( + build_components, +) +from docutils import ( + nodes, +) +from docutils.parsers.rst import ( + Directive, +) import git diff --git a/pandas/_config/__init__.py b/pandas/_config/__init__.py index d12dd3b4cb8aa..05074e14890a5 100644 --- a/pandas/_config/__init__.py +++ b/pandas/_config/__init__.py @@ -16,7 +16,9 @@ "options", "using_copy_on_write", ] -from pandas._config import config +from pandas._config import ( + config, +) from pandas._config import dates # pyright: ignore # noqa:F401 from pandas._config.config import ( _global_config, @@ -27,7 +29,9 @@ reset_option, set_option, ) -from pandas._config.display import detect_console_encoding +from pandas._config.display import ( + detect_console_encoding, +) def using_copy_on_write(): diff --git a/pandas/_config/config.py b/pandas/_config/config.py index 4d87e8dca6d16..0e3e734ddcdc8 100644 --- a/pandas/_config/config.py +++ b/pandas/_config/config.py @@ -48,7 +48,9 @@ """ -from __future__ import annotations +from __future__ import ( + annotations, +) from contextlib import ( ContextDecorator, @@ -70,7 +72,9 @@ F, T, ) -from pandas.util._exceptions import find_stack_level +from pandas.util._exceptions import ( + find_stack_level, +) class DeprecatedOption(NamedTuple): @@ -702,8 +706,12 @@ def _build_option_description(k: str) -> str: def pp_options_list(keys: Iterable[str], width: int = 80, _print: bool = False): """Builds a concise listing of available options, grouped by prefix""" - from itertools import groupby - from textwrap import wrap + from itertools import ( + groupby, + ) + from textwrap import ( + wrap, + ) def pp(name: str, ks: Iterable[str]) -> list[str]: pfx = "- " + name + ".[" if name else "" diff --git a/pandas/_config/dates.py b/pandas/_config/dates.py index b37831f96eb73..18c92ced2bd6a 100644 --- a/pandas/_config/dates.py +++ b/pandas/_config/dates.py @@ -1,9 +1,13 @@ """ config for datetime formatting """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from pandas._config import config as cf +from pandas._config import ( + config as cf, +) pc_date_dayfirst_doc = """ : boolean diff --git a/pandas/_config/display.py b/pandas/_config/display.py index df2c3ad36c855..3d4da0abac124 100644 --- a/pandas/_config/display.py +++ b/pandas/_config/display.py @@ -2,12 +2,16 @@ Unopinionated display configuration. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import locale import sys -from pandas._config import config as cf +from pandas._config import ( + config as cf, +) # ----------------------------------------------------------------------------- # Global formatting options diff --git a/pandas/_config/localization.py b/pandas/_config/localization.py index 4e9a0142af3a4..5e77c2c96052c 100644 --- a/pandas/_config/localization.py +++ b/pandas/_config/localization.py @@ -3,16 +3,24 @@ Name `localization` is chosen to avoid overlap with builtin `locale` module. """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from contextlib import contextmanager +from contextlib import ( + contextmanager, +) import locale import platform import re import subprocess -from typing import Generator +from typing import ( + Generator, +) -from pandas._config.config import options +from pandas._config.config import ( + options, +) @contextmanager diff --git a/pandas/_libs/__init__.py b/pandas/_libs/__init__.py index f119e280f5867..1054e209b4255 100644 --- a/pandas/_libs/__init__.py +++ b/pandas/_libs/__init__.py @@ -10,7 +10,9 @@ ] -from pandas._libs.interval import Interval +from pandas._libs.interval import ( + Interval, +) from pandas._libs.tslibs import ( NaT, NaTType, diff --git a/pandas/_libs/algos.pyi b/pandas/_libs/algos.pyi index 20a805533e8cc..570222f63a5cf 100644 --- a/pandas/_libs/algos.pyi +++ b/pandas/_libs/algos.pyi @@ -1,8 +1,12 @@ -from typing import Any +from typing import ( + Any, +) import numpy as np -from pandas._typing import npt +from pandas._typing import ( + npt, +) class Infinity: """ diff --git a/pandas/_libs/algos.pyx b/pandas/_libs/algos.pyx index 81fd5792ee9e5..140da2f0b6ac8 100644 --- a/pandas/_libs/algos.pyx +++ b/pandas/_libs/algos.pyx @@ -1,5 +1,7 @@ cimport cython -from cython cimport Py_ssize_t +from cython cimport ( + Py_ssize_t, +) from libc.math cimport ( fabs, sqrt, @@ -8,7 +10,9 @@ from libc.stdlib cimport ( free, malloc, ) -from libc.string cimport memmove +from libc.string cimport ( + memmove, +) import numpy as np @@ -51,7 +55,9 @@ from pandas._libs.khash cimport ( kh_resize_int64, khiter_t, ) -from pandas._libs.util cimport get_nat +from pandas._libs.util cimport ( + get_nat, +) import pandas._libs.missing as missing diff --git a/pandas/_libs/arrays.pxd b/pandas/_libs/arrays.pxd index 737da29da46a4..9dc065cc55599 100644 --- a/pandas/_libs/arrays.pxd +++ b/pandas/_libs/arrays.pxd @@ -1,5 +1,7 @@ -from numpy cimport ndarray +from numpy cimport ( + ndarray, +) cdef class NDArrayBacked: diff --git a/pandas/_libs/arrays.pyi b/pandas/_libs/arrays.pyi index c9350ed9b8a75..458f0d79087fa 100644 --- a/pandas/_libs/arrays.pyi +++ b/pandas/_libs/arrays.pyi @@ -1,4 +1,6 @@ -from typing import Sequence +from typing import ( + Sequence, +) import numpy as np diff --git a/pandas/_libs/arrays.pyx b/pandas/_libs/arrays.pyx index f63d16e819c92..0fd95a95a34d1 100644 --- a/pandas/_libs/arrays.pyx +++ b/pandas/_libs/arrays.pyx @@ -6,8 +6,12 @@ cimport cython import numpy as np cimport numpy as cnp -from cpython cimport PyErr_Clear -from numpy cimport ndarray +from cpython cimport ( + PyErr_Clear, +) +from numpy cimport ( + ndarray, +) cnp.import_array() diff --git a/pandas/_libs/groupby.pyi b/pandas/_libs/groupby.pyi index e3ca9c44d5664..fa7610fffe6d4 100644 --- a/pandas/_libs/groupby.pyi +++ b/pandas/_libs/groupby.pyi @@ -1,8 +1,12 @@ -from typing import Literal +from typing import ( + Literal, +) import numpy as np -from pandas._typing import npt +from pandas._typing import ( + npt, +) def group_median_float64( out: np.ndarray, # ndarray[float64_t, ndim=2] diff --git a/pandas/_libs/groupby.pyx b/pandas/_libs/groupby.pyx index 0c378acbc6dc3..cca9311ade4e5 100644 --- a/pandas/_libs/groupby.pyx +++ b/pandas/_libs/groupby.pyx @@ -23,11 +23,15 @@ from numpy cimport ( uint8_t, uint64_t, ) -from numpy.math cimport NAN +from numpy.math cimport ( + NAN, +) cnp.import_array() -from pandas._libs cimport util +from pandas._libs cimport ( + util, +) from pandas._libs.algos cimport ( get_rank_nan_fill_val, kth_smallest_c, @@ -44,7 +48,9 @@ from pandas._libs.dtypes cimport ( numeric_object_t, numeric_t, ) -from pandas._libs.missing cimport checknull +from pandas._libs.missing cimport ( + checknull, +) cdef int64_t NPY_NAT = util.get_nat() diff --git a/pandas/_libs/hashing.pyi b/pandas/_libs/hashing.pyi index 8361026e4a87d..7d3fb7edf1cd0 100644 --- a/pandas/_libs/hashing.pyi +++ b/pandas/_libs/hashing.pyi @@ -1,6 +1,8 @@ import numpy as np -from pandas._typing import npt +from pandas._typing import ( + npt, +) def hash_object_array( arr: npt.NDArray[np.object_], diff --git a/pandas/_libs/hashing.pyx b/pandas/_libs/hashing.pyx index 197ec99247b4a..945ed69b0e242 100644 --- a/pandas/_libs/hashing.pyx +++ b/pandas/_libs/hashing.pyx @@ -18,7 +18,9 @@ from numpy cimport ( import_array() -from pandas._libs.util cimport is_nan +from pandas._libs.util cimport ( + is_nan, +) @cython.boundscheck(False) diff --git a/pandas/_libs/hashtable.pyi b/pandas/_libs/hashtable.pyi index 2bc6d74fe6aee..c49f7f3d392d0 100644 --- a/pandas/_libs/hashtable.pyi +++ b/pandas/_libs/hashtable.pyi @@ -6,7 +6,9 @@ from typing import ( import numpy as np -from pandas._typing import npt +from pandas._typing import ( + npt, +) def unique_label_indices( labels: np.ndarray, # const int64_t[:] diff --git a/pandas/_libs/hashtable.pyx b/pandas/_libs/hashtable.pyx index ccac3d0b50d45..81d3dc4af9657 100644 --- a/pandas/_libs/hashtable.pyx +++ b/pandas/_libs/hashtable.pyx @@ -15,13 +15,19 @@ from libc.stdlib cimport ( import numpy as np cimport numpy as cnp -from numpy cimport ndarray +from numpy cimport ( + ndarray, +) cnp.import_array() -from pandas._libs cimport util -from pandas._libs.dtypes cimport numeric_object_t +from pandas._libs cimport ( + util, +) +from pandas._libs.dtypes cimport ( + numeric_object_t, +) from pandas._libs.khash cimport ( KHASH_TRACE_DOMAIN, are_equivalent_float32_t, @@ -33,7 +39,9 @@ from pandas._libs.khash cimport ( kh_python_hash_func, khiter_t, ) -from pandas._libs.missing cimport checknull +from pandas._libs.missing cimport ( + checknull, +) def get_hashtable_trace_domain(): diff --git a/pandas/_libs/index.pyi b/pandas/_libs/index.pyi index e08faaaa03139..e5081152173ea 100644 --- a/pandas/_libs/index.pyi +++ b/pandas/_libs/index.pyi @@ -1,9 +1,15 @@ import numpy as np -from pandas._typing import npt +from pandas._typing import ( + npt, +) -from pandas import MultiIndex -from pandas.core.arrays import ExtensionArray +from pandas import ( + MultiIndex, +) +from pandas.core.arrays import ( + ExtensionArray, +) class IndexEngine: over_size_threshold: bool diff --git a/pandas/_libs/index.pyx b/pandas/_libs/index.pyx index 1b42ad1c0fda7..46fdf8b110a0d 100644 --- a/pandas/_libs/index.pyx +++ b/pandas/_libs/index.pyx @@ -14,23 +14,37 @@ from numpy cimport ( cnp.import_array() -from pandas._libs cimport util -from pandas._libs.hashtable cimport HashTable -from pandas._libs.tslibs.nattype cimport c_NaT as NaT +from pandas._libs cimport ( + util, +) +from pandas._libs.hashtable cimport ( + HashTable, +) +from pandas._libs.tslibs.nattype cimport ( + c_NaT as NaT, +) from pandas._libs.tslibs.np_datetime cimport ( NPY_DATETIMEUNIT, get_unit_from_dtype, ) -from pandas._libs.tslibs.period cimport is_period_object -from pandas._libs.tslibs.timedeltas cimport _Timedelta -from pandas._libs.tslibs.timestamps cimport _Timestamp +from pandas._libs.tslibs.period cimport ( + is_period_object, +) +from pandas._libs.tslibs.timedeltas cimport ( + _Timedelta, +) +from pandas._libs.tslibs.timestamps cimport ( + _Timestamp, +) from pandas._libs import ( algos, hashtable as _hash, ) -from pandas._libs.lib cimport eq_NA_compat +from pandas._libs.lib cimport ( + eq_NA_compat, +) from pandas._libs.missing cimport ( C_NA, checknull, diff --git a/pandas/_libs/indexing.pyi b/pandas/_libs/indexing.pyi index 3ae5c5044a2f7..8b9862af45934 100644 --- a/pandas/_libs/indexing.pyi +++ b/pandas/_libs/indexing.pyi @@ -3,7 +3,9 @@ from typing import ( TypeVar, ) -from pandas.core.indexing import IndexingMixin +from pandas.core.indexing import ( + IndexingMixin, +) _IndexingMixinT = TypeVar("_IndexingMixinT", bound=IndexingMixin) diff --git a/pandas/_libs/internals.pyi b/pandas/_libs/internals.pyi index 5dfcc3726c84f..fe9a5859f15b7 100644 --- a/pandas/_libs/internals.pyi +++ b/pandas/_libs/internals.pyi @@ -14,9 +14,15 @@ from pandas._typing import ( npt, ) -from pandas import Index -from pandas.core.arrays._mixins import NDArrayBackedExtensionArray -from pandas.core.internals.blocks import Block as B +from pandas import ( + Index, +) +from pandas.core.arrays._mixins import ( + NDArrayBackedExtensionArray, +) +from pandas.core.internals.blocks import ( + Block as B, +) def slice_len(slc: slice, objlen: int = ...) -> int: ... def get_blkno_indexers( diff --git a/pandas/_libs/internals.pyx b/pandas/_libs/internals.pyx index 277243d72c536..446c5f74543e3 100644 --- a/pandas/_libs/internals.pyx +++ b/pandas/_libs/internals.pyx @@ -1,9 +1,15 @@ -from collections import defaultdict +from collections import ( + defaultdict, +) import weakref cimport cython -from cpython.slice cimport PySlice_GetIndicesEx -from cython cimport Py_ssize_t +from cpython.slice cimport ( + PySlice_GetIndicesEx, +) +from cython cimport ( + Py_ssize_t, +) cdef extern from "Python.h": @@ -22,9 +28,13 @@ from numpy cimport ( cnp.import_array() -from pandas._libs.algos import ensure_int64 +from pandas._libs.algos import ( + ensure_int64, +) -from pandas._libs.arrays cimport NDArrayBacked +from pandas._libs.arrays cimport ( + NDArrayBacked, +) from pandas._libs.util cimport ( is_array, is_integer_object, @@ -569,7 +579,9 @@ cpdef update_blklocs_and_blknos( def _unpickle_block(values, placement, ndim): # We have to do some gymnastics b/c "ndim" is keyword-only - from pandas.core.internals.blocks import new_block + from pandas.core.internals.blocks import ( + new_block, + ) return new_block(values, placement, ndim=ndim) @@ -621,7 +633,9 @@ cdef class SharedBlock: return _unpickle_block, args cpdef __setstate__(self, state): - from pandas.core.construction import extract_array + from pandas.core.construction import ( + extract_array, + ) self.mgr_locs = BlockPlacement(state[0]) self.values = extract_array(state[1], extract_numpy=True) @@ -630,7 +644,9 @@ cdef class SharedBlock: self.ndim = state[2] else: # older pickle - from pandas.core.internals.api import maybe_infer_ndim + from pandas.core.internals.api import ( + maybe_infer_ndim, + ) ndim = maybe_infer_ndim(self.values, self.mgr_locs) self.ndim = ndim @@ -792,12 +808,16 @@ cdef class BlockManager: return type(self), args cpdef __setstate__(self, state): - from pandas.core.construction import extract_array + from pandas.core.construction import ( + extract_array, + ) from pandas.core.internals.blocks import ( ensure_block_shape, new_block, ) - from pandas.core.internals.managers import ensure_index + from pandas.core.internals.managers import ( + ensure_index, + ) if isinstance(state, tuple) and len(state) >= 4 and "0.14.1" in state[3]: state = state[3]["0.14.1"] diff --git a/pandas/_libs/interval.pyx b/pandas/_libs/interval.pyx index 14b7baf7f5a08..19811c7cf1ccf 100644 --- a/pandas/_libs/interval.pyx +++ b/pandas/_libs/interval.pyx @@ -12,8 +12,12 @@ from cpython.datetime cimport ( import_datetime() cimport cython -from cpython.object cimport PyObject_RichCompare -from cython cimport Py_ssize_t +from cpython.object cimport ( + PyObject_RichCompare, +) +from cython cimport ( + Py_ssize_t, +) import numpy as np @@ -31,11 +35,21 @@ from numpy cimport ( cnp.import_array() -from pandas._libs cimport util -from pandas._libs.hashtable cimport Int64Vector -from pandas._libs.tslibs.timedeltas cimport _Timedelta -from pandas._libs.tslibs.timestamps cimport _Timestamp -from pandas._libs.tslibs.timezones cimport tz_compare +from pandas._libs cimport ( + util, +) +from pandas._libs.hashtable cimport ( + Int64Vector, +) +from pandas._libs.tslibs.timedeltas cimport ( + _Timedelta, +) +from pandas._libs.tslibs.timestamps cimport ( + _Timestamp, +) +from pandas._libs.tslibs.timezones cimport ( + tz_compare, +) from pandas._libs.tslibs.util cimport ( is_float_object, is_integer_object, diff --git a/pandas/_libs/join.pyi b/pandas/_libs/join.pyi index 11b65b859095f..259e37595dcfc 100644 --- a/pandas/_libs/join.pyi +++ b/pandas/_libs/join.pyi @@ -1,6 +1,8 @@ import numpy as np -from pandas._typing import npt +from pandas._typing import ( + npt, +) def inner_join( left: np.ndarray, # const intp_t[:] diff --git a/pandas/_libs/join.pyx b/pandas/_libs/join.pyx index 667eda1b1f1da..4a8b7229ae943 100644 --- a/pandas/_libs/join.pyx +++ b/pandas/_libs/join.pyx @@ -1,5 +1,8 @@ cimport cython -from cython cimport Py_ssize_t +from cython cimport ( + Py_ssize_t, +) + import numpy as np cimport numpy as cnp @@ -12,7 +15,9 @@ from numpy cimport ( cnp.import_array() -from pandas._libs.algos import groupsort_indexer +from pandas._libs.algos import ( + groupsort_indexer, +) from pandas._libs.dtypes cimport ( numeric_object_t, diff --git a/pandas/_libs/khash.pxd b/pandas/_libs/khash.pxd index a9f819e5e16db..d4f870701e52b 100644 --- a/pandas/_libs/khash.pxd +++ b/pandas/_libs/khash.pxd @@ -1,4 +1,6 @@ -from cpython.object cimport PyObject +from cpython.object cimport ( + PyObject, +) from numpy cimport ( complex64_t, complex128_t, diff --git a/pandas/_libs/lib.pxd b/pandas/_libs/lib.pxd index 46a339f2e7cbb..378b23d659347 100644 --- a/pandas/_libs/lib.pxd +++ b/pandas/_libs/lib.pxd @@ -1,4 +1,6 @@ -from numpy cimport ndarray +from numpy cimport ( + ndarray, +) cdef bint c_is_list_like(object, bint) except -1 diff --git a/pandas/_libs/lib.pyi b/pandas/_libs/lib.pyi index fbc577712d294..156733374ab8d 100644 --- a/pandas/_libs/lib.pyi +++ b/pandas/_libs/lib.pyi @@ -22,7 +22,9 @@ from pandas._typing import ( # placeholder until we can specify np.ndarray[object, ndim=2] ndarray_obj_2d = np.ndarray -from enum import Enum +from enum import ( + Enum, +) class _NoDefault(Enum): no_default = ... diff --git a/pandas/_libs/lib.pyx b/pandas/_libs/lib.pyx index d20f87ec91d1b..9ee3531b83a66 100644 --- a/pandas/_libs/lib.pyx +++ b/pandas/_libs/lib.pyx @@ -1,6 +1,12 @@ -from collections import abc -from decimal import Decimal -from enum import Enum +from collections import ( + abc, +) +from decimal import ( + Decimal, +) +from enum import ( + Enum, +) from typing import ( Literal, _GenericAlias, @@ -14,16 +20,24 @@ from cpython.datetime cimport ( PyTime_Check, import_datetime, ) -from cpython.iterator cimport PyIter_Check -from cpython.number cimport PyNumber_Check +from cpython.iterator cimport ( + PyIter_Check, +) +from cpython.number cimport ( + PyNumber_Check, +) from cpython.object cimport ( Py_EQ, PyObject, PyObject_RichCompareBool, PyTypeObject, ) -from cpython.ref cimport Py_INCREF -from cpython.sequence cimport PySequence_Check +from cpython.ref cimport ( + Py_INCREF, +) +from cpython.sequence cimport ( + PySequence_Check, +) from cpython.tuple cimport ( PyTuple_New, PyTuple_SET_ITEM, @@ -33,7 +47,9 @@ from cython cimport ( floating, ) -from pandas._libs.missing import check_na_tuples_nonequal +from pandas._libs.missing import ( + check_na_tuples_nonequal, +) import_datetime() @@ -92,7 +108,9 @@ cdef extern from "numpy/ndarrayobject.h": cdef extern from "src/parse_helper.h": int floatify(object, float64_t *result, int *maybe_int) except -1 -from pandas._libs cimport util +from pandas._libs cimport ( + util, +) from pandas._libs.util cimport ( INT64_MAX, INT64_MIN, @@ -104,7 +122,9 @@ from pandas._libs.tslibs import ( OutOfBoundsDatetime, OutOfBoundsTimedelta, ) -from pandas._libs.tslibs.period import Period +from pandas._libs.tslibs.period import ( + Period, +) from pandas._libs.missing cimport ( C_NA, @@ -122,11 +142,21 @@ from pandas._libs.tslibs.nattype cimport ( c_NaT as NaT, checknull_with_nat, ) -from pandas._libs.tslibs.np_datetime cimport NPY_FR_ns -from pandas._libs.tslibs.offsets cimport is_offset_object -from pandas._libs.tslibs.period cimport is_period_object -from pandas._libs.tslibs.timedeltas cimport convert_to_timedelta64 -from pandas._libs.tslibs.timezones cimport tz_compare +from pandas._libs.tslibs.np_datetime cimport ( + NPY_FR_ns, +) +from pandas._libs.tslibs.offsets cimport ( + is_offset_object, +) +from pandas._libs.tslibs.period cimport ( + is_period_object, +) +from pandas._libs.tslibs.timedeltas cimport ( + convert_to_timedelta64, +) +from pandas._libs.tslibs.timezones cimport ( + tz_compare, +) # constants that will be compared to potentially arbitrarily large # python int @@ -612,7 +642,9 @@ def array_equivalent_object(ndarray left, ndarray right) -> bool: else: # Circular import isn't great, but so it goes. # TODO: could use np.array_equal? - from pandas.core.dtypes.missing import array_equivalent + from pandas.core.dtypes.missing import ( + array_equivalent, + ) if not array_equivalent(x, y): return False @@ -1498,7 +1530,9 @@ def infer_dtype(value: object, skipna: bool = True) -> str: if not value: return "empty" - from pandas.core.dtypes.cast import construct_1d_object_array_from_listlike + from pandas.core.dtypes.cast import ( + construct_1d_object_array_from_listlike, + ) values = construct_1d_object_array_from_listlike(value) inferred = _try_infer_map(values.dtype) @@ -2560,7 +2594,9 @@ def maybe_convert_objects(ndarray[object] objects, # we try to coerce datetime w/tz but must all have the same tz if seen.datetimetz_: if is_datetime_with_singletz_array(objects): - from pandas import DatetimeIndex + from pandas import ( + DatetimeIndex, + ) try: dti = DatetimeIndex(objects) @@ -2574,7 +2610,9 @@ def maybe_convert_objects(ndarray[object] objects, elif seen.datetime_: if is_datetime_or_datetime64_array(objects): - from pandas import DatetimeIndex + from pandas import ( + DatetimeIndex, + ) try: dti = DatetimeIndex(objects) @@ -2587,7 +2625,9 @@ def maybe_convert_objects(ndarray[object] objects, elif seen.timedelta_: if is_timedelta_or_timedelta64_array(objects): - from pandas import TimedeltaIndex + from pandas import ( + TimedeltaIndex, + ) try: tdi = TimedeltaIndex(objects) @@ -2600,7 +2640,9 @@ def maybe_convert_objects(ndarray[object] objects, if seen.period_: if is_period_array(objects): - from pandas import PeriodIndex + from pandas import ( + PeriodIndex, + ) pi = PeriodIndex(objects) # unbox to PeriodArray @@ -2609,7 +2651,9 @@ def maybe_convert_objects(ndarray[object] objects, if seen.interval_: if is_interval_array(objects): - from pandas import IntervalIndex + from pandas import ( + IntervalIndex, + ) ii = IntervalIndex(objects) # unbox to IntervalArray @@ -2660,7 +2704,9 @@ def maybe_convert_objects(ndarray[object] objects, # is_bool property rules out everything else return bools.view(np.bool_) elif convert_to_nullable_dtype and seen.is_bool_or_na: - from pandas.core.arrays import BooleanArray + from pandas.core.arrays import ( + BooleanArray, + ) return BooleanArray(bools.view(np.bool_), mask) seen.object_ = True @@ -2674,7 +2720,9 @@ def maybe_convert_objects(ndarray[object] objects, result = floats elif seen.int_ or seen.uint_: if convert_to_nullable_dtype: - from pandas.core.arrays import IntegerArray + from pandas.core.arrays import ( + IntegerArray, + ) if seen.uint_: result = IntegerArray(uints, mask) else: diff --git a/pandas/_libs/missing.pyi b/pandas/_libs/missing.pyi index d5c9f1342a089..add9d16545f05 100644 --- a/pandas/_libs/missing.pyi +++ b/pandas/_libs/missing.pyi @@ -1,5 +1,7 @@ import numpy as np -from numpy import typing as npt +from numpy import ( + typing as npt, +) class NAType: def __new__(cls, *args, **kwargs): ... diff --git a/pandas/_libs/missing.pyx b/pandas/_libs/missing.pyx index 9b5bd196b40b9..b0e06f94c0f74 100644 --- a/pandas/_libs/missing.pyx +++ b/pandas/_libs/missing.pyx @@ -1,6 +1,10 @@ -from decimal import Decimal +from decimal import ( + Decimal, +) import numbers -from sys import maxsize +from sys import ( + maxsize, +) cimport cython from cpython.datetime cimport ( @@ -8,7 +12,9 @@ from cpython.datetime cimport ( time, timedelta, ) -from cython cimport Py_ssize_t +from cython cimport ( + Py_ssize_t, +) import numpy as np @@ -23,7 +29,9 @@ from numpy cimport ( cnp.import_array() -from pandas._libs cimport util +from pandas._libs cimport ( + util, +) from pandas._libs.tslibs.nattype cimport ( c_NaT as NaT, checknull_with_nat, @@ -36,7 +44,9 @@ from pandas._libs.tslibs.np_datetime cimport ( get_timedelta64_value, ) -from pandas._libs.ops_dispatch import maybe_dispatch_ufunc_to_dunder_op +from pandas._libs.ops_dispatch import ( + maybe_dispatch_ufunc_to_dunder_op, +) cdef: float64_t INF = np.inf diff --git a/pandas/_libs/ops.pyi b/pandas/_libs/ops.pyi index 74a6ad87cd279..6d2a74c087c84 100644 --- a/pandas/_libs/ops.pyi +++ b/pandas/_libs/ops.pyi @@ -8,7 +8,9 @@ from typing import ( import numpy as np -from pandas._typing import npt +from pandas._typing import ( + npt, +) _BinOp = Callable[[Any, Any], Any] _BoolOp = Callable[[Any, Any], bool] diff --git a/pandas/_libs/ops.pyx b/pandas/_libs/ops.pyx index 9154e836b3477..485cf4a29b462 100644 --- a/pandas/_libs/ops.pyx +++ b/pandas/_libs/ops.pyx @@ -10,7 +10,9 @@ from cpython.object cimport ( Py_NE, PyObject_RichCompareBool, ) -from cython cimport Py_ssize_t +from cython cimport ( + Py_ssize_t, +) import numpy as np @@ -23,8 +25,12 @@ from numpy cimport ( import_array() -from pandas._libs.missing cimport checknull -from pandas._libs.util cimport is_nan +from pandas._libs.missing cimport ( + checknull, +) +from pandas._libs.util cimport ( + is_nan, +) @cython.wraparound(False) diff --git a/pandas/_libs/parsers.pyx b/pandas/_libs/parsers.pyx index 5bddaa61d3196..00284fa8afae2 100644 --- a/pandas/_libs/parsers.pyx +++ b/pandas/_libs/parsers.pyx @@ -1,6 +1,8 @@ # Copyright (c) 2012, Lambda Foundry, Inc. # See LICENSE for the license -from collections import defaultdict +from collections import ( + defaultdict, +) from csv import ( QUOTE_MINIMAL, QUOTE_NONE, @@ -10,10 +12,16 @@ import sys import time import warnings -from pandas.errors import ParserError -from pandas.util._exceptions import find_stack_level +from pandas.errors import ( + ParserError, +) +from pandas.util._exceptions import ( + find_stack_level, +) -from pandas import StringDtype +from pandas import ( + StringDtype, +) from pandas.core.arrays import ( ArrowExtensionArray, BooleanArray, @@ -22,12 +30,16 @@ from pandas.core.arrays import ( ) cimport cython -from cpython.bytes cimport PyBytes_AsString +from cpython.bytes cimport ( + PyBytes_AsString, +) from cpython.exc cimport ( PyErr_Fetch, PyErr_Occurred, ) -from cpython.object cimport PyObject +from cpython.object cimport ( + PyObject, +) from cpython.ref cimport ( Py_INCREF, Py_XDECREF, @@ -37,8 +49,12 @@ from cpython.unicode cimport ( PyUnicode_Decode, PyUnicode_DecodeUTF8, ) -from cython cimport Py_ssize_t -from libc.stdlib cimport free +from cython cimport ( + Py_ssize_t, +) +from libc.stdlib cimport ( + free, +) from libc.string cimport ( strcasecmp, strlen, @@ -64,14 +80,18 @@ from numpy cimport ( cnp.import_array() -from pandas._libs cimport util +from pandas._libs cimport ( + util, +) from pandas._libs.util cimport ( INT64_MAX, INT64_MIN, UINT64_MAX, ) -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._libs.khash cimport ( kh_destroy_float64, @@ -114,8 +134,12 @@ from pandas.core.dtypes.common import ( is_integer_dtype, is_object_dtype, ) -from pandas.core.dtypes.dtypes import CategoricalDtype -from pandas.core.dtypes.inference import is_dict_like +from pandas.core.dtypes.dtypes import ( + CategoricalDtype, +) +from pandas.core.dtypes.inference import ( + is_dict_like, +) cdef: float64_t INF = np.inf diff --git a/pandas/_libs/properties.pyx b/pandas/_libs/properties.pyx index 33cd2ef27a995..f36339e306148 100644 --- a/pandas/_libs/properties.pyx +++ b/pandas/_libs/properties.pyx @@ -3,7 +3,9 @@ from cpython.dict cimport ( PyDict_GetItem, PyDict_SetItem, ) -from cython cimport Py_ssize_t +from cython cimport ( + Py_ssize_t, +) cdef class CachedProperty: diff --git a/pandas/_libs/reduction.pyi b/pandas/_libs/reduction.pyi index 525546f26c854..e06d2afb93d8f 100644 --- a/pandas/_libs/reduction.pyi +++ b/pandas/_libs/reduction.pyi @@ -1,6 +1,10 @@ -from typing import Any +from typing import ( + Any, +) -from pandas._typing import DtypeObj +from pandas._typing import ( + DtypeObj, +) def check_result_array(obj: object, dtype: DtypeObj) -> None: ... def extract_result(res: object) -> Any: ... diff --git a/pandas/_libs/reduction.pyx b/pandas/_libs/reduction.pyx index 7ff0842678d7f..53b78545fa071 100644 --- a/pandas/_libs/reduction.pyx +++ b/pandas/_libs/reduction.pyx @@ -4,7 +4,9 @@ cimport numpy as cnp cnp.import_array() -from pandas._libs.util cimport is_array +from pandas._libs.util cimport ( + is_array, +) cdef cnp.dtype _dtype_obj = np.dtype("object") diff --git a/pandas/_libs/reshape.pyi b/pandas/_libs/reshape.pyi index 110687fcd0c31..fe11288bb8519 100644 --- a/pandas/_libs/reshape.pyi +++ b/pandas/_libs/reshape.pyi @@ -1,6 +1,8 @@ import numpy as np -from pandas._typing import npt +from pandas._typing import ( + npt, +) def unstack( values: np.ndarray, # reshape_t[:, :] diff --git a/pandas/_libs/reshape.pyx b/pandas/_libs/reshape.pyx index 946ba5ddaa248..445584ccf4c59 100644 --- a/pandas/_libs/reshape.pyx +++ b/pandas/_libs/reshape.pyx @@ -1,5 +1,7 @@ cimport cython -from cython cimport Py_ssize_t +from cython cimport ( + Py_ssize_t, +) from numpy cimport ( int64_t, ndarray, @@ -12,8 +14,12 @@ cimport numpy as cnp cnp.import_array() -from pandas._libs.dtypes cimport numeric_object_t -from pandas._libs.lib cimport c_is_list_like +from pandas._libs.dtypes cimport ( + numeric_object_t, +) +from pandas._libs.lib cimport ( + c_is_list_like, +) @cython.wraparound(False) diff --git a/pandas/_libs/sparse.pyi b/pandas/_libs/sparse.pyi index 8c3989b818a71..717072420b177 100644 --- a/pandas/_libs/sparse.pyi +++ b/pandas/_libs/sparse.pyi @@ -5,7 +5,9 @@ from typing import ( import numpy as np -from pandas._typing import npt +from pandas._typing import ( + npt, +) _SparseIndexT = TypeVar("_SparseIndexT", bound=SparseIndex) diff --git a/pandas/_libs/testing.pyx b/pandas/_libs/testing.pyx index 733879154b9d6..0b85de340a51f 100644 --- a/pandas/_libs/testing.pyx +++ b/pandas/_libs/testing.pyx @@ -3,7 +3,9 @@ import math import numpy as np -from numpy cimport import_array +from numpy cimport ( + import_array, +) import_array() @@ -13,7 +15,9 @@ from pandas._libs.util cimport ( is_real_number_object, ) -from pandas.core.dtypes.common import is_dtype_equal +from pandas.core.dtypes.common import ( + is_dtype_equal, +) from pandas.core.dtypes.missing import ( array_equivalent, isna, @@ -117,7 +121,9 @@ cpdef assert_almost_equal(a, b, if isiterable(a): if not isiterable(b): - from pandas._testing import assert_class_equal + from pandas._testing import ( + assert_class_equal, + ) # classes can't be the same, to raise error assert_class_equal(a, b, obj=obj) @@ -129,12 +135,16 @@ cpdef assert_almost_equal(a, b, if a_is_ndarray and b_is_ndarray: na, nb = a.size, b.size if a.shape != b.shape: - from pandas._testing import raise_assert_detail + from pandas._testing import ( + raise_assert_detail, + ) raise_assert_detail( obj, f"{obj} shapes are different", a.shape, b.shape) if check_dtype and not is_dtype_equal(a.dtype, b.dtype): - from pandas._testing import assert_attr_equal + from pandas._testing import ( + assert_attr_equal, + ) assert_attr_equal("dtype", a, b, obj=obj) if array_equivalent(a, b, strict_nan=True): @@ -144,7 +154,9 @@ cpdef assert_almost_equal(a, b, na, nb = len(a), len(b) if na != nb: - from pandas._testing import raise_assert_detail + from pandas._testing import ( + raise_assert_detail, + ) # if we have a small diff set, print it if abs(na - nb) < 10: @@ -166,7 +178,9 @@ cpdef assert_almost_equal(a, b, ) if is_unequal: - from pandas._testing import raise_assert_detail + from pandas._testing import ( + raise_assert_detail, + ) msg = (f"{obj} values are different " f"({np.round(diff * 100.0 / na, 5)} %)") raise_assert_detail( @@ -176,7 +190,9 @@ cpdef assert_almost_equal(a, b, return True elif isiterable(b): - from pandas._testing import assert_class_equal + from pandas._testing import ( + assert_class_equal, + ) # classes can't be the same, to raise error assert_class_equal(a, b, obj=obj) diff --git a/pandas/_libs/tslib.pyi b/pandas/_libs/tslib.pyi index 9819b5173db56..4e0438ed2e6ad 100644 --- a/pandas/_libs/tslib.pyi +++ b/pandas/_libs/tslib.pyi @@ -1,8 +1,12 @@ -from datetime import tzinfo +from datetime import ( + tzinfo, +) import numpy as np -from pandas._typing import npt +from pandas._typing import ( + npt, +) def format_array_from_datetime( values: npt.NDArray[np.int64], diff --git a/pandas/_libs/tslib.pyx b/pandas/_libs/tslib.pyx index d828ea424c5a0..e726a4f3a9b9d 100644 --- a/pandas/_libs/tslib.pyx +++ b/pandas/_libs/tslib.pyx @@ -1,10 +1,14 @@ import warnings -from pandas.util._exceptions import find_stack_level +from pandas.util._exceptions import ( + find_stack_level, +) cimport cython -from datetime import timezone +from datetime import ( + timezone, +) from cpython.datetime cimport ( PyDate_Check, @@ -14,7 +18,9 @@ from cpython.datetime cimport ( timedelta, tzinfo, ) -from cpython.object cimport PyObject +from cpython.object cimport ( + PyObject, +) # import datetime C API import_datetime() @@ -40,14 +46,18 @@ from pandas._libs.tslibs.np_datetime cimport ( pydate_to_dt64, string_to_dts, ) -from pandas._libs.tslibs.strptime cimport parse_today_now +from pandas._libs.tslibs.strptime cimport ( + parse_today_now, +) from pandas._libs.util cimport ( is_datetime64_object, is_float_object, is_integer_object, ) -from pandas._libs.tslibs.np_datetime import OutOfBoundsDatetime +from pandas._libs.tslibs.np_datetime import ( + OutOfBoundsDatetime, +) from pandas._libs.tslibs.conversion cimport ( _TSObject, @@ -62,18 +72,26 @@ from pandas._libs.tslibs.nattype cimport ( c_NaT as NaT, c_nat_strings as nat_strings, ) -from pandas._libs.tslibs.timestamps cimport _Timestamp +from pandas._libs.tslibs.timestamps cimport ( + _Timestamp, +) from pandas._libs.tslibs import ( Resolution, get_resolution, ) -from pandas._libs.tslibs.timestamps import Timestamp +from pandas._libs.tslibs.timestamps import ( + Timestamp, +) # Note: this is the only non-tslibs intra-pandas dependency here -from pandas._libs.missing cimport checknull_with_nat_and_na -from pandas._libs.tslibs.tzconversion cimport tz_localize_to_utc_single +from pandas._libs.missing cimport ( + checknull_with_nat_and_na, +) +from pandas._libs.tslibs.tzconversion cimport ( + tz_localize_to_utc_single, +) def _test_parse_iso8601(ts: str): diff --git a/pandas/_libs/tslibs/__init__.py b/pandas/_libs/tslibs/__init__.py index 42f84619ddbe5..1e8947a0da334 100644 --- a/pandas/_libs/tslibs/__init__.py +++ b/pandas/_libs/tslibs/__init__.py @@ -35,8 +35,12 @@ "get_supported_reso", ] -from pandas._libs.tslibs import dtypes -from pandas._libs.tslibs.conversion import localize_pydatetime +from pandas._libs.tslibs import ( + dtypes, +) +from pandas._libs.tslibs.conversion import ( + localize_pydatetime, +) from pandas._libs.tslibs.dtypes import ( Resolution, get_supported_reso, @@ -72,9 +76,15 @@ delta_to_nanoseconds, ints_to_pytimedelta, ) -from pandas._libs.tslibs.timestamps import Timestamp -from pandas._libs.tslibs.timezones import tz_compare -from pandas._libs.tslibs.tzconversion import tz_convert_from_utc_single +from pandas._libs.tslibs.timestamps import ( + Timestamp, +) +from pandas._libs.tslibs.timezones import ( + tz_compare, +) +from pandas._libs.tslibs.tzconversion import ( + tz_convert_from_utc_single, +) from pandas._libs.tslibs.vectorized import ( dt64arr_to_periodarr, get_resolution, diff --git a/pandas/_libs/tslibs/base.pxd b/pandas/_libs/tslibs/base.pxd index 3bffff7aca43e..765b7ec2b6a15 100644 --- a/pandas/_libs/tslibs/base.pxd +++ b/pandas/_libs/tslibs/base.pxd @@ -1,4 +1,6 @@ -from cpython.datetime cimport datetime +from cpython.datetime cimport ( + datetime, +) cdef class ABCTimestamp(datetime): diff --git a/pandas/_libs/tslibs/base.pyx b/pandas/_libs/tslibs/base.pyx index 1677a8b0be1ec..69075bb92b79a 100644 --- a/pandas/_libs/tslibs/base.pyx +++ b/pandas/_libs/tslibs/base.pyx @@ -5,7 +5,9 @@ in order to allow for fast isinstance checks without circular dependency issues. This is analogous to core.dtypes.generic. """ -from cpython.datetime cimport datetime +from cpython.datetime cimport ( + datetime, +) cdef class ABCTimestamp(datetime): diff --git a/pandas/_libs/tslibs/ccalendar.pxd b/pandas/_libs/tslibs/ccalendar.pxd index 341f2176f5eb4..fce5651761295 100644 --- a/pandas/_libs/tslibs/ccalendar.pxd +++ b/pandas/_libs/tslibs/ccalendar.pxd @@ -1,4 +1,6 @@ -from cython cimport Py_ssize_t +from cython cimport ( + Py_ssize_t, +) from numpy cimport ( int32_t, int64_t, diff --git a/pandas/_libs/tslibs/conversion.pxd b/pandas/_libs/tslibs/conversion.pxd index 1b3214605582a..cc858916af4ad 100644 --- a/pandas/_libs/tslibs/conversion.pxd +++ b/pandas/_libs/tslibs/conversion.pxd @@ -12,8 +12,12 @@ from pandas._libs.tslibs.np_datetime cimport ( NPY_DATETIMEUNIT, npy_datetimestruct, ) -from pandas._libs.tslibs.timestamps cimport _Timestamp -from pandas._libs.tslibs.timezones cimport tz_compare +from pandas._libs.tslibs.timestamps cimport ( + _Timestamp, +) +from pandas._libs.tslibs.timezones cimport ( + tz_compare, +) cdef class _TSObject: diff --git a/pandas/_libs/tslibs/conversion.pyx b/pandas/_libs/tslibs/conversion.pyx index b2c0ec1c1ffc6..e883aa29ccb24 100644 --- a/pandas/_libs/tslibs/conversion.pyx +++ b/pandas/_libs/tslibs/conversion.pyx @@ -1,7 +1,9 @@ import numpy as np cimport numpy as cnp -from libc.math cimport log10 +from libc.math cimport ( + log10, +) from numpy cimport ( int32_t, int64_t, @@ -11,7 +13,9 @@ cnp.import_array() # stdlib datetime imports -from datetime import timezone +from datetime import ( + timezone, +) from cpython.datetime cimport ( PyDate_Check, @@ -25,7 +29,9 @@ from cpython.datetime cimport ( import_datetime() -from pandas._libs.tslibs.base cimport ABCTimestamp +from pandas._libs.tslibs.base cimport ( + ABCTimestamp, +) from pandas._libs.tslibs.dtypes cimport ( abbrev_to_npy_unit, get_supported_reso, @@ -50,15 +56,21 @@ from pandas._libs.tslibs.np_datetime cimport ( string_to_dts, ) -from pandas._libs.tslibs.np_datetime import OutOfBoundsDatetime +from pandas._libs.tslibs.np_datetime import ( + OutOfBoundsDatetime, +) from pandas._libs.tslibs.nattype cimport ( NPY_NAT, c_NaT as NaT, c_nat_strings as nat_strings, ) -from pandas._libs.tslibs.parsing cimport parse_datetime_string -from pandas._libs.tslibs.timestamps cimport _Timestamp +from pandas._libs.tslibs.parsing cimport ( + parse_datetime_string, +) +from pandas._libs.tslibs.timestamps cimport ( + _Timestamp, +) from pandas._libs.tslibs.timezones cimport ( get_utcoffset, is_utc, @@ -313,7 +325,9 @@ cdef _TSObject convert_to_tsobject(object ts, tzinfo tz, str unit, ts, tz, nanos=0, reso=NPY_DATETIMEUNIT.NPY_FR_s ) else: - from .period import Period + from .period import ( + Period, + ) if isinstance(ts, Period): raise ValueError("Cannot convert Period to Timestamp " "unambiguously. Use to_timestamp") @@ -572,7 +586,9 @@ cdef check_overflows(_TSObject obj, NPY_DATETIMEUNIT reso=NPY_FR_ns): if obj.dts.year == lb.year: if not (obj.value < 0): - from pandas._libs.tslibs.timestamps import Timestamp + from pandas._libs.tslibs.timestamps import ( + Timestamp, + ) fmt = (f"{obj.dts.year}-{obj.dts.month:02d}-{obj.dts.day:02d} " f"{obj.dts.hour:02d}:{obj.dts.min:02d}:{obj.dts.sec:02d}") raise OutOfBoundsDatetime( @@ -580,7 +596,9 @@ cdef check_overflows(_TSObject obj, NPY_DATETIMEUNIT reso=NPY_FR_ns): ) elif obj.dts.year == ub.year: if not (obj.value > 0): - from pandas._libs.tslibs.timestamps import Timestamp + from pandas._libs.tslibs.timestamps import ( + Timestamp, + ) fmt = (f"{obj.dts.year}-{obj.dts.month:02d}-{obj.dts.day:02d} " f"{obj.dts.hour:02d}:{obj.dts.min:02d}:{obj.dts.sec:02d}") raise OutOfBoundsDatetime( diff --git a/pandas/_libs/tslibs/dtypes.pxd b/pandas/_libs/tslibs/dtypes.pxd index 6c2871cd746b8..dd9c8441fd84b 100644 --- a/pandas/_libs/tslibs/dtypes.pxd +++ b/pandas/_libs/tslibs/dtypes.pxd @@ -1,6 +1,10 @@ -from numpy cimport int64_t +from numpy cimport ( + int64_t, +) -from pandas._libs.tslibs.np_datetime cimport NPY_DATETIMEUNIT +from pandas._libs.tslibs.np_datetime cimport ( + NPY_DATETIMEUNIT, +) cpdef str npy_unit_to_abbrev(NPY_DATETIMEUNIT unit) diff --git a/pandas/_libs/tslibs/dtypes.pyi b/pandas/_libs/tslibs/dtypes.pyi index b872241d79a54..1dfd0401cc6c1 100644 --- a/pandas/_libs/tslibs/dtypes.pyi +++ b/pandas/_libs/tslibs/dtypes.pyi @@ -1,4 +1,6 @@ -from enum import Enum +from enum import ( + Enum, +) # These are not public API, but are exposed in the .pyi file because they # are imported in tests. diff --git a/pandas/_libs/tslibs/dtypes.pyx b/pandas/_libs/tslibs/dtypes.pyx index 699e8aba76dd6..b0c524a3992b6 100644 --- a/pandas/_libs/tslibs/dtypes.pyx +++ b/pandas/_libs/tslibs/dtypes.pyx @@ -1,6 +1,8 @@ # period frequency constants corresponding to scikits timeseries # originals -from enum import Enum +from enum import ( + Enum, +) from pandas._libs.tslibs.np_datetime cimport ( NPY_DATETIMEUNIT, diff --git a/pandas/_libs/tslibs/fields.pyi b/pandas/_libs/tslibs/fields.pyi index 8b4bc1a31a1aa..1d796a65f9232 100644 --- a/pandas/_libs/tslibs/fields.pyi +++ b/pandas/_libs/tslibs/fields.pyi @@ -1,6 +1,8 @@ import numpy as np -from pandas._typing import npt +from pandas._typing import ( + npt, +) def build_field_sarray( dtindex: npt.NDArray[np.int64], # const int64_t[:] diff --git a/pandas/_libs/tslibs/fields.pyx b/pandas/_libs/tslibs/fields.pyx index 2f1fb7fc44b2f..18450b815c013 100644 --- a/pandas/_libs/tslibs/fields.pyx +++ b/pandas/_libs/tslibs/fields.pyx @@ -2,12 +2,18 @@ Functions for accessing attributes of Timestamp/datetime64/datetime-like objects and arrays """ -from locale import LC_TIME +from locale import ( + LC_TIME, +) -from _strptime import LocaleTime +from _strptime import ( + LocaleTime, +) cimport cython -from cython cimport Py_ssize_t +from cython cimport ( + Py_ssize_t, +) import numpy as np @@ -22,7 +28,9 @@ from numpy cimport ( cnp.import_array() -from pandas._config.localization import set_locale +from pandas._config.localization import ( + set_locale, +) from pandas._libs.tslibs.ccalendar import ( DAYS_FULL, @@ -39,7 +47,9 @@ from pandas._libs.tslibs.ccalendar cimport ( get_week_of_year, iso_calendar_t, ) -from pandas._libs.tslibs.nattype cimport NPY_NAT +from pandas._libs.tslibs.nattype cimport ( + NPY_NAT, +) from pandas._libs.tslibs.np_datetime cimport ( NPY_DATETIMEUNIT, NPY_FR_ns, diff --git a/pandas/_libs/tslibs/nattype.pxd b/pandas/_libs/tslibs/nattype.pxd index 32705aa633135..3d97593537828 100644 --- a/pandas/_libs/tslibs/nattype.pxd +++ b/pandas/_libs/tslibs/nattype.pxd @@ -1,5 +1,9 @@ -from cpython.datetime cimport datetime -from numpy cimport int64_t +from cpython.datetime cimport ( + datetime, +) +from numpy cimport ( + int64_t, +) cdef int64_t NPY_NAT diff --git a/pandas/_libs/tslibs/nattype.pyi b/pandas/_libs/tslibs/nattype.pyi index 04f8943710416..4afb3c645ae45 100644 --- a/pandas/_libs/tslibs/nattype.pyi +++ b/pandas/_libs/tslibs/nattype.pyi @@ -6,7 +6,9 @@ from datetime import ( import numpy as np -from pandas._libs.tslibs.period import Period +from pandas._libs.tslibs.period import ( + Period, +) NaT: NaTType iNaT: int diff --git a/pandas/_libs/tslibs/nattype.pyx b/pandas/_libs/tslibs/nattype.pyx index ff07f5d799339..8de306502bbe8 100644 --- a/pandas/_libs/tslibs/nattype.pyx +++ b/pandas/_libs/tslibs/nattype.pyx @@ -17,7 +17,9 @@ from cpython.object cimport ( import numpy as np cimport numpy as cnp -from numpy cimport int64_t +from numpy cimport ( + int64_t, +) cnp.import_array() diff --git a/pandas/_libs/tslibs/np_datetime.pyi b/pandas/_libs/tslibs/np_datetime.pyi index 0cb0e3b0237d7..4990ffd19f53d 100644 --- a/pandas/_libs/tslibs/np_datetime.pyi +++ b/pandas/_libs/tslibs/np_datetime.pyi @@ -1,6 +1,8 @@ import numpy as np -from pandas._typing import npt +from pandas._typing import ( + npt, +) class OutOfBoundsDatetime(ValueError): ... class OutOfBoundsTimedelta(ValueError): ... diff --git a/pandas/_libs/tslibs/np_datetime.pyx b/pandas/_libs/tslibs/np_datetime.pyx index d9aac87384952..52ce28bf8d894 100644 --- a/pandas/_libs/tslibs/np_datetime.pyx +++ b/pandas/_libs/tslibs/np_datetime.pyx @@ -32,7 +32,9 @@ from numpy cimport ( uint8_t, ) -from pandas._libs.tslibs.util cimport get_c_string_buf_and_size +from pandas._libs.tslibs.util cimport ( + get_c_string_buf_and_size, +) cdef extern from "src/datetime/np_datetime.h": @@ -517,7 +519,9 @@ cdef ndarray astype_round_check( new_value, mod = divmod(value, mult) if mod != 0: # TODO: avoid runtime import - from pandas._libs.tslibs.dtypes import npy_unit_to_abbrev + from pandas._libs.tslibs.dtypes import ( + npy_unit_to_abbrev, + ) from_abbrev = npy_unit_to_abbrev(from_unit) to_abbrev = npy_unit_to_abbrev(to_unit) raise ValueError( diff --git a/pandas/_libs/tslibs/offsets.pxd b/pandas/_libs/tslibs/offsets.pxd index 215c3f849281f..6f24ec2e4d336 100644 --- a/pandas/_libs/tslibs/offsets.pxd +++ b/pandas/_libs/tslibs/offsets.pxd @@ -1,4 +1,6 @@ -from numpy cimport int64_t +from numpy cimport ( + int64_t, +) cpdef to_offset(object obj) diff --git a/pandas/_libs/tslibs/offsets.pyi b/pandas/_libs/tslibs/offsets.pyi index f1aca4717665c..1608f5b96c550 100644 --- a/pandas/_libs/tslibs/offsets.pyi +++ b/pandas/_libs/tslibs/offsets.pyi @@ -12,10 +12,16 @@ from typing import ( import numpy as np -from pandas._libs.tslibs.nattype import NaTType -from pandas._typing import npt +from pandas._libs.tslibs.nattype import ( + NaTType, +) +from pandas._typing import ( + npt, +) -from .timedeltas import Timedelta +from .timedeltas import ( + Timedelta, +) _BaseOffsetT = TypeVar("_BaseOffsetT", bound=BaseOffset) _DatetimeT = TypeVar("_DatetimeT", bound=datetime) diff --git a/pandas/_libs/tslibs/offsets.pyx b/pandas/_libs/tslibs/offsets.pyx index c21b47d53e669..1507b688b0e24 100644 --- a/pandas/_libs/tslibs/offsets.pyx +++ b/pandas/_libs/tslibs/offsets.pyx @@ -15,8 +15,12 @@ from cpython.datetime cimport ( import_datetime() -from dateutil.easter import easter -from dateutil.relativedelta import relativedelta +from dateutil.easter import ( + easter, +) +from dateutil.relativedelta import ( + relativedelta, +) import numpy as np cimport numpy as cnp @@ -29,9 +33,13 @@ cnp.import_array() # TODO: formalize having _libs.properties "above" tslibs in the dependency structure -from pandas._libs.properties import cache_readonly +from pandas._libs.properties import ( + cache_readonly, +) -from pandas._libs.tslibs cimport util +from pandas._libs.tslibs cimport ( + util, +) from pandas._libs.tslibs.util cimport ( is_datetime64_object, is_float_object, @@ -51,8 +59,12 @@ from pandas._libs.tslibs.ccalendar cimport ( get_firstbday, get_lastbday, ) -from pandas._libs.tslibs.conversion cimport localize_pydatetime -from pandas._libs.tslibs.dtypes cimport periods_per_day +from pandas._libs.tslibs.conversion cimport ( + localize_pydatetime, +) +from pandas._libs.tslibs.dtypes cimport ( + periods_per_day, +) from pandas._libs.tslibs.nattype cimport ( NPY_NAT, c_NaT as NaT, @@ -66,18 +78,26 @@ from pandas._libs.tslibs.np_datetime cimport ( pydate_to_dtstruct, ) -from .dtypes cimport PeriodDtypeCode +from .dtypes cimport ( + PeriodDtypeCode, +) from .timedeltas cimport ( _Timedelta, delta_to_nanoseconds, is_any_td_scalar, ) -from .timedeltas import Timedelta +from .timedeltas import ( + Timedelta, +) -from .timestamps cimport _Timestamp +from .timestamps cimport ( + _Timestamp, +) -from .timestamps import Timestamp +from .timestamps import ( + Timestamp, +) # --------------------------------------------------------------------- # Misc Helpers @@ -111,7 +131,9 @@ def apply_wrapper_core(func, self, other) -> ndarray: if self.normalize: # TODO: Avoid circular/runtime import - from .vectorized import normalize_i8_timestamps + from .vectorized import ( + normalize_i8_timestamps, + ) reso = get_unit_from_dtype(other.dtype) result = normalize_i8_timestamps(result.view("i8"), None, reso=reso) diff --git a/pandas/_libs/tslibs/parsing.pxd b/pandas/_libs/tslibs/parsing.pxd index 8809c81b530d0..4700a09d1ba6b 100644 --- a/pandas/_libs/tslibs/parsing.pxd +++ b/pandas/_libs/tslibs/parsing.pxd @@ -1,6 +1,10 @@ -from cpython.datetime cimport datetime +from cpython.datetime cimport ( + datetime, +) -from pandas._libs.tslibs.np_datetime cimport NPY_DATETIMEUNIT +from pandas._libs.tslibs.np_datetime cimport ( + NPY_DATETIMEUNIT, +) cpdef str get_rule_month(str source) diff --git a/pandas/_libs/tslibs/parsing.pyi b/pandas/_libs/tslibs/parsing.pyi index 83a5b0085f0b4..658fa682c7b33 100644 --- a/pandas/_libs/tslibs/parsing.pyi +++ b/pandas/_libs/tslibs/parsing.pyi @@ -1,8 +1,12 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np -from pandas._typing import npt +from pandas._typing import ( + npt, +) class DateParseError(ValueError): ... diff --git a/pandas/_libs/tslibs/parsing.pyx b/pandas/_libs/tslibs/parsing.pyx index 445683968c58f..edfb547f0ea61 100644 --- a/pandas/_libs/tslibs/parsing.pyx +++ b/pandas/_libs/tslibs/parsing.pyx @@ -5,7 +5,9 @@ import re import time import warnings -from pandas.util._exceptions import find_stack_level +from pandas.util._exceptions import ( + find_stack_level, +) cimport cython from cpython.datetime cimport ( @@ -16,11 +18,19 @@ from cpython.datetime cimport ( tzinfo, ) -from datetime import timezone +from datetime import ( + timezone, +) -from cpython.object cimport PyObject_Str -from cython cimport Py_ssize_t -from libc.string cimport strchr +from cpython.object cimport ( + PyObject_Str, +) +from cython cimport ( + Py_ssize_t, +) +from libc.string cimport ( + strchr, +) import_datetime() @@ -40,22 +50,30 @@ cnp.import_array() # dateutil compat -from decimal import InvalidOperation +from decimal import ( + InvalidOperation, +) from dateutil.parser import ( DEFAULTPARSER, parse as du_parse, ) -from dateutil.relativedelta import relativedelta +from dateutil.relativedelta import ( + relativedelta, +) from dateutil.tz import ( tzlocal as _dateutil_tzlocal, tzoffset, tzutc as _dateutil_tzutc, ) -from pandas._config import get_option +from pandas._config import ( + get_option, +) -from pandas._libs.tslibs.ccalendar cimport c_MONTH_NUMBERS +from pandas._libs.tslibs.ccalendar cimport ( + c_MONTH_NUMBERS, +) from pandas._libs.tslibs.dtypes cimport ( attrname_to_npy_unit, npy_unit_to_attrname, @@ -65,7 +83,9 @@ from pandas._libs.tslibs.nattype cimport ( c_nat_strings as nat_strings, ) -from pandas._libs.tslibs.np_datetime import OutOfBoundsDatetime +from pandas._libs.tslibs.np_datetime import ( + OutOfBoundsDatetime, +) from pandas._libs.tslibs.np_datetime cimport ( NPY_DATETIMEUNIT, @@ -73,7 +93,9 @@ from pandas._libs.tslibs.np_datetime cimport ( string_to_dts, ) -from pandas._libs.tslibs.strptime import array_strptime +from pandas._libs.tslibs.strptime import ( + array_strptime, +) from pandas._libs.tslibs.util cimport ( get_c_string_buf_and_size, @@ -398,7 +420,9 @@ def parse_datetime_string_with_reso( if out_bestunit == NPY_DATETIMEUNIT.NPY_FR_ns: # TODO: avoid circular import - from pandas import Timestamp + from pandas import ( + Timestamp, + ) parsed = Timestamp(date_string) else: if out_local: diff --git a/pandas/_libs/tslibs/period.pxd b/pandas/_libs/tslibs/period.pxd index 46c6e52cb9156..4a5cf59804457 100644 --- a/pandas/_libs/tslibs/period.pxd +++ b/pandas/_libs/tslibs/period.pxd @@ -1,6 +1,10 @@ -from numpy cimport int64_t +from numpy cimport ( + int64_t, +) -from .np_datetime cimport npy_datetimestruct +from .np_datetime cimport ( + npy_datetimestruct, +) cdef bint is_period_object(object obj) diff --git a/pandas/_libs/tslibs/period.pyi b/pandas/_libs/tslibs/period.pyi index 946ae1215f1e3..2ebadbcc83d7a 100644 --- a/pandas/_libs/tslibs/period.pyi +++ b/pandas/_libs/tslibs/period.pyi @@ -1,11 +1,21 @@ -from datetime import timedelta -from typing import Literal +from datetime import ( + timedelta, +) +from typing import ( + Literal, +) import numpy as np -from pandas._libs.tslibs.nattype import NaTType -from pandas._libs.tslibs.offsets import BaseOffset -from pandas._libs.tslibs.timestamps import Timestamp +from pandas._libs.tslibs.nattype import ( + NaTType, +) +from pandas._libs.tslibs.offsets import ( + BaseOffset, +) +from pandas._libs.tslibs.timestamps import ( + Timestamp, +) from pandas._typing import ( Frequency, npt, diff --git a/pandas/_libs/tslibs/period.pyx b/pandas/_libs/tslibs/period.pyx index f44178700503d..74c403a222ee0 100644 --- a/pandas/_libs/tslibs/period.pyx +++ b/pandas/_libs/tslibs/period.pyx @@ -42,7 +42,9 @@ from libc.time cimport ( import_datetime() cimport pandas._libs.tslibs.util as util -from pandas._libs.missing cimport C_NA +from pandas._libs.missing cimport ( + C_NA, +) from pandas._libs.tslibs.np_datetime cimport ( NPY_DATETIMEUNIT, NPY_FR_D, @@ -54,7 +56,9 @@ from pandas._libs.tslibs.np_datetime cimport ( pandas_datetime_to_datetimestruct, ) -from pandas._libs.tslibs.timestamps import Timestamp +from pandas._libs.tslibs.timestamps import ( + Timestamp, +) from pandas._libs.tslibs.ccalendar cimport ( dayofweek, @@ -68,7 +72,9 @@ from pandas._libs.tslibs.timedeltas cimport ( is_any_td_scalar, ) -from pandas._libs.tslibs.conversion import DT64NS_DTYPE +from pandas._libs.tslibs.conversion import ( + DT64NS_DTYPE, +) from pandas._libs.tslibs.dtypes cimport ( FR_ANN, @@ -88,9 +94,13 @@ from pandas._libs.tslibs.dtypes cimport ( attrname_to_abbrevs, freq_group_code_to_npy_unit, ) -from pandas._libs.tslibs.parsing cimport quarter_to_myear +from pandas._libs.tslibs.parsing cimport ( + quarter_to_myear, +) -from pandas._libs.tslibs.parsing import parse_datetime_string_with_reso +from pandas._libs.tslibs.parsing import ( + parse_datetime_string_with_reso, +) from pandas._libs.tslibs.nattype cimport ( NPY_NAT, @@ -105,7 +115,9 @@ from pandas._libs.tslibs.offsets cimport ( to_offset, ) -from pandas._libs.tslibs.offsets import INVALID_FREQ_ERR_MSG +from pandas._libs.tslibs.offsets import ( + INVALID_FREQ_ERR_MSG, +) cdef: enum: diff --git a/pandas/_libs/tslibs/strptime.pxd b/pandas/_libs/tslibs/strptime.pxd index 175195d4362e4..1f6f2166e82fc 100644 --- a/pandas/_libs/tslibs/strptime.pxd +++ b/pandas/_libs/tslibs/strptime.pxd @@ -1,4 +1,6 @@ -from numpy cimport int64_t +from numpy cimport ( + int64_t, +) cdef bint parse_today_now(str val, int64_t* iresult, bint utc) diff --git a/pandas/_libs/tslibs/strptime.pyi b/pandas/_libs/tslibs/strptime.pyi index 4565bb7ecf959..7b0d5ae90a10e 100644 --- a/pandas/_libs/tslibs/strptime.pyi +++ b/pandas/_libs/tslibs/strptime.pyi @@ -1,6 +1,8 @@ import numpy as np -from pandas._typing import npt +from pandas._typing import ( + npt, +) def array_strptime( values: npt.NDArray[np.object_], diff --git a/pandas/_libs/tslibs/strptime.pyx b/pandas/_libs/tslibs/strptime.pyx index cf847746f16cd..7ebde7a1a28ac 100644 --- a/pandas/_libs/tslibs/strptime.pyx +++ b/pandas/_libs/tslibs/strptime.pyx @@ -14,7 +14,9 @@ FUNCTIONS: _getlang -- Figure out what language is being used for the locale strptime -- Calculates the time struct represented by the passed-in string """ -from datetime import timezone +from datetime import ( + timezone, +) from cpython.datetime cimport ( PyDate_Check, @@ -24,6 +26,7 @@ from cpython.datetime cimport ( timedelta, tzinfo, ) + from _strptime import ( TimeRE as _TimeRE, _getlang, @@ -32,7 +35,9 @@ from _strptime import LocaleTime # no-cython-lint import_datetime() -from _thread import allocate_lock as _thread_allocate_lock +from _thread import ( + allocate_lock as _thread_allocate_lock, +) import re import numpy as np @@ -44,7 +49,9 @@ from numpy cimport ( ndarray, ) -from pandas._libs.missing cimport checknull_with_nat_and_na +from pandas._libs.missing cimport ( + checknull_with_nat_and_na, +) from pandas._libs.tslibs.conversion cimport ( convert_timezone, get_datetime64_nanos, @@ -63,15 +70,23 @@ from pandas._libs.tslibs.np_datetime cimport ( pydatetime_to_dt64, string_to_dts, ) -from pandas._libs.tslibs.np_datetime import OutOfBoundsDatetime -from pandas._libs.tslibs.timestamps cimport _Timestamp + +from pandas._libs.tslibs.np_datetime import ( + OutOfBoundsDatetime, +) + +from pandas._libs.tslibs.timestamps cimport ( + _Timestamp, +) from pandas._libs.util cimport ( is_datetime64_object, is_float_object, is_integer_object, ) -from pandas._libs.tslibs.timestamps import Timestamp +from pandas._libs.tslibs.timestamps import ( + Timestamp, +) cnp.import_array() diff --git a/pandas/_libs/tslibs/timedeltas.pxd b/pandas/_libs/tslibs/timedeltas.pxd index fb6e29a8932a1..0d3679644914e 100644 --- a/pandas/_libs/tslibs/timedeltas.pxd +++ b/pandas/_libs/tslibs/timedeltas.pxd @@ -1,7 +1,13 @@ -from cpython.datetime cimport timedelta -from numpy cimport int64_t +from cpython.datetime cimport ( + timedelta, +) +from numpy cimport ( + int64_t, +) -from .np_datetime cimport NPY_DATETIMEUNIT +from .np_datetime cimport ( + NPY_DATETIMEUNIT, +) # Exposed for tslib, not intended for outside use. diff --git a/pandas/_libs/tslibs/timedeltas.pyi b/pandas/_libs/tslibs/timedeltas.pyi index d67a330e0b0c2..f3aba5dc45ab0 100644 --- a/pandas/_libs/tslibs/timedeltas.pyi +++ b/pandas/_libs/tslibs/timedeltas.pyi @@ -1,4 +1,6 @@ -from datetime import timedelta +from datetime import ( + timedelta, +) from typing import ( ClassVar, Literal, @@ -12,7 +14,9 @@ from pandas._libs.tslibs import ( NaTType, Tick, ) -from pandas._typing import npt +from pandas._typing import ( + npt, +) # This should be kept consistent with the keys in the dict timedelta_abbrevs # in pandas/_libs/tslibs/timedeltas.pyx diff --git a/pandas/_libs/tslibs/timedeltas.pyx b/pandas/_libs/tslibs/timedeltas.pyx index d68fea7d08b2a..0aa67fc1b49f1 100644 --- a/pandas/_libs/tslibs/timedeltas.pyx +++ b/pandas/_libs/tslibs/timedeltas.pyx @@ -30,7 +30,9 @@ import_datetime() cimport pandas._libs.tslibs.util as util -from pandas._libs.tslibs.base cimport ABCTimestamp +from pandas._libs.tslibs.base cimport ( + ABCTimestamp, +) from pandas._libs.tslibs.conversion cimport ( cast_from_unit, precision_from_unit, @@ -65,7 +67,9 @@ from pandas._libs.tslibs.np_datetime import ( OutOfBoundsTimedelta, ) -from pandas._libs.tslibs.offsets cimport is_tick_object +from pandas._libs.tslibs.offsets cimport ( + is_tick_object, +) from pandas._libs.tslibs.util cimport ( is_array, is_datetime64_object, @@ -756,7 +760,9 @@ def _binary_op_method_timedeltalike(op, name): # this case is for a datetime object that is specifically # *not* a Timestamp, as the Timestamp case will be # handled after `_validate_ops_compat` returns False below - from pandas._libs.tslibs.timestamps import Timestamp + from pandas._libs.tslibs.timestamps import ( + Timestamp, + ) return op(self, Timestamp(other)) # We are implicitly requiring the canonical behavior to be # defined by Timestamp methods. @@ -1818,7 +1824,9 @@ class Timedelta(_Timedelta): int64_t result, unit ndarray[int64_t] arr - from pandas._libs.tslibs.offsets import to_offset + from pandas._libs.tslibs.offsets import ( + to_offset, + ) to_offset(freq).nanos # raises on non-fixed freq unit = delta_to_nanoseconds(to_offset(freq), self._creso) diff --git a/pandas/_libs/tslibs/timestamps.pxd b/pandas/_libs/tslibs/timestamps.pxd index 26018cd904249..2a4ead3027c2e 100644 --- a/pandas/_libs/tslibs/timestamps.pxd +++ b/pandas/_libs/tslibs/timestamps.pxd @@ -2,14 +2,20 @@ from cpython.datetime cimport ( datetime, tzinfo, ) -from numpy cimport int64_t +from numpy cimport ( + int64_t, +) -from pandas._libs.tslibs.base cimport ABCTimestamp +from pandas._libs.tslibs.base cimport ( + ABCTimestamp, +) from pandas._libs.tslibs.np_datetime cimport ( NPY_DATETIMEUNIT, npy_datetimestruct, ) -from pandas._libs.tslibs.offsets cimport BaseOffset +from pandas._libs.tslibs.offsets cimport ( + BaseOffset, +) cdef _Timestamp create_timestamp_from_ts(int64_t value, diff --git a/pandas/_libs/tslibs/timestamps.pyi b/pandas/_libs/tslibs/timestamps.pyi index 26b0c9170aaa0..6e591fe500992 100644 --- a/pandas/_libs/tslibs/timestamps.pyi +++ b/pandas/_libs/tslibs/timestamps.pyi @@ -5,7 +5,9 @@ from datetime import ( timedelta, tzinfo as _tzinfo, ) -from time import struct_time +from time import ( + struct_time, +) from typing import ( ClassVar, TypeVar, diff --git a/pandas/_libs/tslibs/timestamps.pyx b/pandas/_libs/tslibs/timestamps.pyx index 59fdad40dc9c6..0bffb5192d333 100644 --- a/pandas/_libs/tslibs/timestamps.pyx +++ b/pandas/_libs/tslibs/timestamps.pyx @@ -45,10 +45,16 @@ from cpython.object cimport ( import_datetime() -from pandas._libs.tslibs cimport ccalendar -from pandas._libs.tslibs.base cimport ABCTimestamp +from pandas._libs.tslibs cimport ( + ccalendar, +) +from pandas._libs.tslibs.base cimport ( + ABCTimestamp, +) -from pandas.util._exceptions import find_stack_level +from pandas.util._exceptions import ( + find_stack_level, +) from pandas._libs.tslibs.conversion cimport ( _TSObject, @@ -99,14 +105,18 @@ from pandas._libs.tslibs.np_datetime import ( OutOfBoundsTimedelta, ) -from pandas._libs.tslibs.offsets cimport to_offset +from pandas._libs.tslibs.offsets cimport ( + to_offset, +) from pandas._libs.tslibs.timedeltas cimport ( _Timedelta, delta_to_nanoseconds, is_any_td_scalar, ) -from pandas._libs.tslibs.timedeltas import Timedelta +from pandas._libs.tslibs.timedeltas import ( + Timedelta, +) from pandas._libs.tslibs.timezones cimport ( get_timezone, @@ -1248,7 +1258,9 @@ cdef class _Timestamp(ABCTimestamp): >>> ts.to_period(freq='Q') Period('2020Q1', 'Q-DEC') """ - from pandas import Period + from pandas import ( + Period, + ) if self.tz is not None: # GH#21333 diff --git a/pandas/_libs/tslibs/timezones.pyi b/pandas/_libs/tslibs/timezones.pyi index 4e9f0c6ae6c33..394572b3c6662 100644 --- a/pandas/_libs/tslibs/timezones.pyi +++ b/pandas/_libs/tslibs/timezones.pyi @@ -2,7 +2,9 @@ from datetime import ( datetime, tzinfo, ) -from typing import Callable +from typing import ( + Callable, +) import numpy as np diff --git a/pandas/_libs/tslibs/timezones.pyx b/pandas/_libs/tslibs/timezones.pyx index 6105f96a3b1b8..f495f1194206c 100644 --- a/pandas/_libs/tslibs/timezones.pyx +++ b/pandas/_libs/tslibs/timezones.pyx @@ -3,12 +3,16 @@ from datetime import ( timezone, ) -from pandas.compat._optional import import_optional_dependency +from pandas.compat._optional import ( + import_optional_dependency, +) try: # py39+ import zoneinfo - from zoneinfo import ZoneInfo + from zoneinfo import ( + ZoneInfo, + ) except ImportError: zoneinfo = None ZoneInfo = None @@ -29,10 +33,14 @@ from dateutil.tz import ( ) import numpy as np import pytz -from pytz.tzinfo import BaseTzInfo as _pytz_BaseTzInfo +from pytz.tzinfo import ( + BaseTzInfo as _pytz_BaseTzInfo, +) cimport numpy as cnp -from numpy cimport int64_t +from numpy cimport ( + int64_t, +) cnp.import_array() diff --git a/pandas/_libs/tslibs/tzconversion.pxd b/pandas/_libs/tslibs/tzconversion.pxd index 7c1dd04e2b2cc..eb3407976b381 100644 --- a/pandas/_libs/tslibs/tzconversion.pxd +++ b/pandas/_libs/tslibs/tzconversion.pxd @@ -1,11 +1,15 @@ -from cpython.datetime cimport tzinfo +from cpython.datetime cimport ( + tzinfo, +) from numpy cimport ( int64_t, intp_t, ndarray, ) -from pandas._libs.tslibs.np_datetime cimport NPY_DATETIMEUNIT +from pandas._libs.tslibs.np_datetime cimport ( + NPY_DATETIMEUNIT, +) cpdef int64_t tz_convert_from_utc_single( diff --git a/pandas/_libs/tslibs/tzconversion.pyi b/pandas/_libs/tslibs/tzconversion.pyi index a354765a348ec..2fd162dcf492c 100644 --- a/pandas/_libs/tslibs/tzconversion.pyi +++ b/pandas/_libs/tslibs/tzconversion.pyi @@ -2,11 +2,15 @@ from datetime import ( timedelta, tzinfo, ) -from typing import Iterable +from typing import ( + Iterable, +) import numpy as np -from pandas._typing import npt +from pandas._typing import ( + npt, +) # tz_convert_from_utc_single exposed for testing def tz_convert_from_utc_single( diff --git a/pandas/_libs/tslibs/tzconversion.pyx b/pandas/_libs/tslibs/tzconversion.pyx index c5f3b0ab7154f..40f8aa466600c 100644 --- a/pandas/_libs/tslibs/tzconversion.pyx +++ b/pandas/_libs/tslibs/tzconversion.pyx @@ -10,7 +10,9 @@ from cpython.datetime cimport ( timedelta, tzinfo, ) -from cython cimport Py_ssize_t +from cython cimport ( + Py_ssize_t, +) import_datetime() @@ -31,7 +33,9 @@ from pandas._libs.tslibs.dtypes cimport ( periods_per_day, periods_per_second, ) -from pandas._libs.tslibs.nattype cimport NPY_NAT +from pandas._libs.tslibs.nattype cimport ( + NPY_NAT, +) from pandas._libs.tslibs.np_datetime cimport ( NPY_DATETIMEUNIT, npy_datetimestruct, @@ -274,7 +278,9 @@ timedelta-like} elif nonexistent == "shift_backward": shift_backward = True elif PyDelta_Check(nonexistent): - from .timedeltas import delta_to_nanoseconds + from .timedeltas import ( + delta_to_nanoseconds, + ) shift_delta = delta_to_nanoseconds(nonexistent, reso=creso) elif nonexistent not in ("raise", None): msg = ("nonexistent must be one of {'NaT', 'raise', 'shift_forward', " @@ -450,7 +456,9 @@ cdef Py_ssize_t bisect_right_i8(int64_t *data, int64_t val, Py_ssize_t n): cdef str _render_tstamp(int64_t val, NPY_DATETIMEUNIT creso): """ Helper function to render exception messages""" - from pandas._libs.tslibs.timestamps import Timestamp + from pandas._libs.tslibs.timestamps import ( + Timestamp, + ) ts = Timestamp._from_value_and_reso(val, creso, None) return str(ts) diff --git a/pandas/_libs/tslibs/util.pxd b/pandas/_libs/tslibs/util.pxd index 4e55bc1c48fd0..f38db805ee240 100644 --- a/pandas/_libs/tslibs/util.pxd +++ b/pandas/_libs/tslibs/util.pxd @@ -1,5 +1,7 @@ -from cpython.object cimport PyTypeObject +from cpython.object cimport ( + PyTypeObject, +) cdef extern from "Python.h": diff --git a/pandas/_libs/tslibs/vectorized.pyi b/pandas/_libs/tslibs/vectorized.pyi index 3fd9e2501e611..0959f81c73fa4 100644 --- a/pandas/_libs/tslibs/vectorized.pyi +++ b/pandas/_libs/tslibs/vectorized.pyi @@ -2,12 +2,18 @@ For cython types that cannot be represented precisely, closest-available python equivalents are used, and the precise types kept as adjacent comments. """ -from datetime import tzinfo +from datetime import ( + tzinfo, +) import numpy as np -from pandas._libs.tslibs.dtypes import Resolution -from pandas._typing import npt +from pandas._libs.tslibs.dtypes import ( + Resolution, +) +from pandas._typing import ( + npt, +) def dt64arr_to_periodarr( stamps: npt.NDArray[np.int64], diff --git a/pandas/_libs/tslibs/vectorized.pyx b/pandas/_libs/tslibs/vectorized.pyx index 06e09d890de69..0d23ed0a7a099 100644 --- a/pandas/_libs/tslibs/vectorized.pyx +++ b/pandas/_libs/tslibs/vectorized.pyx @@ -16,7 +16,9 @@ from numpy cimport ( cnp.import_array() -from .dtypes import Resolution +from .dtypes import ( + Resolution, +) from .dtypes cimport ( c_Resolution, @@ -32,10 +34,18 @@ from .np_datetime cimport ( npy_datetimestruct, pandas_datetime_to_datetimestruct, ) -from .period cimport get_period_ordinal -from .timestamps cimport create_timestamp_from_ts -from .timezones cimport is_utc -from .tzconversion cimport Localizer +from .period cimport ( + get_period_ordinal, +) +from .timestamps cimport ( + create_timestamp_from_ts, +) +from .timezones cimport ( + is_utc, +) +from .tzconversion cimport ( + Localizer, +) @cython.boundscheck(False) diff --git a/pandas/_libs/window/aggregations.pyx b/pandas/_libs/window/aggregations.pyx index 3055b8ff48cc9..11d2e0d8835fc 100644 --- a/pandas/_libs/window/aggregations.pyx +++ b/pandas/_libs/window/aggregations.pyx @@ -5,9 +5,13 @@ from libc.math cimport ( signbit, sqrt, ) -from libcpp.deque cimport deque +from libcpp.deque cimport ( + deque, +) -from pandas._libs.algos cimport TiebreakEnumType +from pandas._libs.algos cimport ( + TiebreakEnumType, +) import numpy as np @@ -21,7 +25,9 @@ from numpy cimport ( cnp.import_array() -from pandas._libs.algos import is_monotonic +from pandas._libs.algos import ( + is_monotonic, +) cdef extern from "../src/skiplist.h": diff --git a/pandas/_libs/window/indexers.pyi b/pandas/_libs/window/indexers.pyi index c9bc64be34ac9..89f70e96320b4 100644 --- a/pandas/_libs/window/indexers.pyi +++ b/pandas/_libs/window/indexers.pyi @@ -1,6 +1,8 @@ import numpy as np -from pandas._typing import npt +from pandas._typing import ( + npt, +) def calculate_variable_window_bounds( num_values: int, # int64_t diff --git a/pandas/_libs/writers.pyi b/pandas/_libs/writers.pyi index 7b41856525dad..33a5a7d462e11 100644 --- a/pandas/_libs/writers.pyi +++ b/pandas/_libs/writers.pyi @@ -1,6 +1,8 @@ import numpy as np -from pandas._typing import ArrayLike +from pandas._typing import ( + ArrayLike, +) def write_csv_rows( data: list[ArrayLike], diff --git a/pandas/_testing/__init__.py b/pandas/_testing/__init__.py index 69ca809e4f498..fdc74fbdee73e 100644 --- a/pandas/_testing/__init__.py +++ b/pandas/_testing/__init__.py @@ -1,13 +1,21 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import collections -from datetime import datetime -from decimal import Decimal +from datetime import ( + datetime, +) +from decimal import ( + Decimal, +) import operator import os import re import string -from sys import byteorder +from sys import ( + byteorder, +) from typing import ( TYPE_CHECKING, Callable, @@ -30,7 +38,9 @@ Frequency, NpDtype, ) -from pandas.compat import pa_version_under7p0 +from pandas.compat import ( + pa_version_under7p0, +) from pandas.core.dtypes.common import ( is_float_dtype, @@ -114,15 +124,21 @@ ExtensionArray, PandasArray, ) -from pandas.core.arrays._mixins import NDArrayBackedExtensionArray -from pandas.core.construction import extract_array +from pandas.core.arrays._mixins import ( + NDArrayBackedExtensionArray, +) +from pandas.core.construction import ( + extract_array, +) if TYPE_CHECKING: from pandas import ( PeriodIndex, TimedeltaIndex, ) - from pandas.core.arrays import ArrowExtensionArray + from pandas.core.arrays import ( + ArrowExtensionArray, + ) _N = 30 _K = 4 diff --git a/pandas/_testing/_hypothesis.py b/pandas/_testing/_hypothesis.py index 5256a303de34e..f4f79f5ff0b1f 100644 --- a/pandas/_testing/_hypothesis.py +++ b/pandas/_testing/_hypothesis.py @@ -1,13 +1,23 @@ """ Hypothesis data generator helpers. """ -from datetime import datetime +from datetime import ( + datetime, +) -from hypothesis import strategies as st -from hypothesis.extra.dateutil import timezones as dateutil_timezones -from hypothesis.extra.pytz import timezones as pytz_timezones +from hypothesis import ( + strategies as st, +) +from hypothesis.extra.dateutil import ( + timezones as dateutil_timezones, +) +from hypothesis.extra.pytz import ( + timezones as pytz_timezones, +) -from pandas.compat import is_platform_windows +from pandas.compat import ( + is_platform_windows, +) import pandas as pd diff --git a/pandas/_testing/_io.py b/pandas/_testing/_io.py index 29618bdd64912..c5665ff6ce007 100644 --- a/pandas/_testing/_io.py +++ b/pandas/_testing/_io.py @@ -1,7 +1,11 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import bz2 -from functools import wraps +from functools import ( + wraps, +) import gzip import io import socket @@ -17,14 +21,24 @@ FilePath, ReadPickleBuffer, ) -from pandas.compat import get_lzma_file -from pandas.compat._optional import import_optional_dependency +from pandas.compat import ( + get_lzma_file, +) +from pandas.compat._optional import ( + import_optional_dependency, +) import pandas as pd -from pandas._testing._random import rands -from pandas._testing.contexts import ensure_clean +from pandas._testing._random import ( + rands, +) +from pandas._testing.contexts import ( + ensure_clean, +) -from pandas.io.common import urlopen +from pandas.io.common import ( + urlopen, +) if TYPE_CHECKING: from pandas import ( diff --git a/pandas/_testing/_random.py b/pandas/_testing/_random.py index 7cfd92efb5d5f..cf4041ed2aba3 100644 --- a/pandas/_testing/_random.py +++ b/pandas/_testing/_random.py @@ -2,7 +2,9 @@ import numpy as np -from pandas._typing import NpDtype +from pandas._typing import ( + NpDtype, +) RANDS_CHARS = np.array(list(string.ascii_letters + string.digits), dtype=(np.str_, 1)) diff --git a/pandas/_testing/_warnings.py b/pandas/_testing/_warnings.py index 201aa81183301..e43cbe2bc212b 100644 --- a/pandas/_testing/_warnings.py +++ b/pandas/_testing/_warnings.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from contextlib import ( contextmanager, diff --git a/pandas/_testing/asserters.py b/pandas/_testing/asserters.py index 1544550c1995f..99cbe384c7608 100644 --- a/pandas/_testing/asserters.py +++ b/pandas/_testing/asserters.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( Literal, @@ -7,8 +9,12 @@ import numpy as np -from pandas._libs.missing import is_matching_na -from pandas._libs.sparse import SparseIndex +from pandas._libs.missing import ( + is_matching_na, +) +from pandas._libs.sparse import ( + SparseIndex, +) import pandas._libs.testing as _testing from pandas.core.dtypes.common import ( @@ -25,7 +31,9 @@ CategoricalDtype, PandasDtype, ) -from pandas.core.dtypes.missing import array_equivalent +from pandas.core.dtypes.missing import ( + array_equivalent, +) import pandas as pd from pandas import ( @@ -40,7 +48,9 @@ Series, TimedeltaIndex, ) -from pandas.core.algorithms import take_nd +from pandas.core.algorithms import ( + take_nd, +) from pandas.core.arrays import ( DatetimeArray, ExtensionArray, @@ -48,11 +58,19 @@ PeriodArray, TimedeltaArray, ) -from pandas.core.arrays.datetimelike import DatetimeLikeArrayMixin -from pandas.core.arrays.string_ import StringDtype -from pandas.core.indexes.api import safe_sort_index +from pandas.core.arrays.datetimelike import ( + DatetimeLikeArrayMixin, +) +from pandas.core.arrays.string_ import ( + StringDtype, +) +from pandas.core.indexes.api import ( + safe_sort_index, +) -from pandas.io.formats.printing import pprint_thing +from pandas.io.formats.printing import ( + pprint_thing, +) def assert_almost_equal( diff --git a/pandas/_testing/compat.py b/pandas/_testing/compat.py index bb3bb99a4c6e4..bbf84d56e1c4b 100644 --- a/pandas/_testing/compat.py +++ b/pandas/_testing/compat.py @@ -1,9 +1,13 @@ """ Helpers for sharing tests between DataFrame/Series """ -from pandas._typing import DtypeObj +from pandas._typing import ( + DtypeObj, +) -from pandas import DataFrame +from pandas import ( + DataFrame, +) def get_dtype(obj) -> DtypeObj: diff --git a/pandas/_testing/contexts.py b/pandas/_testing/contexts.py index bf625a086b9ad..ffcddd8eaf373 100644 --- a/pandas/_testing/contexts.py +++ b/pandas/_testing/contexts.py @@ -1,8 +1,14 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from contextlib import contextmanager +from contextlib import ( + contextmanager, +) import os -from pathlib import Path +from pathlib import ( + Path, +) import tempfile from typing import ( IO, @@ -16,12 +22,20 @@ CompressionOptions, FilePath, ) -from pandas.compat import PYPY -from pandas.errors import ChainedAssignmentError +from pandas.compat import ( + PYPY, +) +from pandas.errors import ( + ChainedAssignmentError, +) -from pandas import set_option +from pandas import ( + set_option, +) -from pandas.io.common import get_handle +from pandas.io.common import ( + get_handle, +) @contextmanager @@ -186,7 +200,9 @@ def with_csv_dialect(name, **kwargs) -> Generator[None, None, None]: @contextmanager def use_numexpr(use, min_elements=None) -> Generator[None, None, None]: - from pandas.core.computation import expressions as expr + from pandas.core.computation import ( + expressions as expr, + ) if min_elements is None: min_elements = expr._MIN_ELEMENTS @@ -204,7 +220,9 @@ def use_numexpr(use, min_elements=None) -> Generator[None, None, None]: def raises_chained_assignment_error(): if PYPY: - from contextlib import nullcontext + from contextlib import ( + nullcontext, + ) return nullcontext() else: diff --git a/pandas/_typing.py b/pandas/_typing.py index 6059bced4a7d4..5f10745987cd8 100644 --- a/pandas/_typing.py +++ b/pandas/_typing.py @@ -1,11 +1,15 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from datetime import ( datetime, timedelta, tzinfo, ) -from os import PathLike +from os import ( + PathLike, +) from typing import ( TYPE_CHECKING, Any, @@ -39,35 +43,57 @@ Timedelta, Timestamp, ) - from pandas._libs.tslibs import BaseOffset + from pandas._libs.tslibs import ( + BaseOffset, + ) - from pandas.core.dtypes.dtypes import ExtensionDtype + from pandas.core.dtypes.dtypes import ( + ExtensionDtype, + ) - from pandas import Interval + from pandas import ( + Interval, + ) from pandas.arrays import ( DatetimeArray, TimedeltaArray, ) - from pandas.core.arrays.base import ExtensionArray - from pandas.core.frame import DataFrame - from pandas.core.generic import NDFrame + from pandas.core.arrays.base import ( + ExtensionArray, + ) + from pandas.core.frame import ( + DataFrame, + ) + from pandas.core.generic import ( + NDFrame, + ) from pandas.core.groupby.generic import ( DataFrameGroupBy, GroupBy, SeriesGroupBy, ) - from pandas.core.indexes.base import Index + from pandas.core.indexes.base import ( + Index, + ) from pandas.core.internals import ( ArrayManager, BlockManager, SingleArrayManager, SingleBlockManager, ) - from pandas.core.resample import Resampler - from pandas.core.series import Series - from pandas.core.window.rolling import BaseWindow + from pandas.core.resample import ( + Resampler, + ) + from pandas.core.series import ( + Series, + ) + from pandas.core.window.rolling import ( + BaseWindow, + ) - from pandas.io.formats.format import EngFormatter + from pandas.io.formats.format import ( + EngFormatter, + ) ScalarLike_co = Union[ int, diff --git a/pandas/api/extensions/__init__.py b/pandas/api/extensions/__init__.py index ea5f1ba926899..2e480474a74a7 100644 --- a/pandas/api/extensions/__init__.py +++ b/pandas/api/extensions/__init__.py @@ -2,7 +2,9 @@ Public API for extending pandas objects. """ -from pandas._libs.lib import no_default +from pandas._libs.lib import ( + no_default, +) from pandas.core.dtypes.base import ( ExtensionDtype, @@ -14,7 +16,9 @@ register_index_accessor, register_series_accessor, ) -from pandas.core.algorithms import take +from pandas.core.algorithms import ( + take, +) from pandas.core.arrays import ( ExtensionArray, ExtensionScalarOpsMixin, diff --git a/pandas/api/indexers/__init__.py b/pandas/api/indexers/__init__.py index 78357f11dc3b7..1043327de718f 100644 --- a/pandas/api/indexers/__init__.py +++ b/pandas/api/indexers/__init__.py @@ -2,7 +2,9 @@ Public API for Rolling Window Indexers. """ -from pandas.core.indexers import check_array_indexer +from pandas.core.indexers import ( + check_array_indexer, +) from pandas.core.indexers.objects import ( BaseIndexer, FixedForwardWindowIndexer, diff --git a/pandas/api/interchange/__init__.py b/pandas/api/interchange/__init__.py index 2f3a73bc46b31..1d79982675ed3 100644 --- a/pandas/api/interchange/__init__.py +++ b/pandas/api/interchange/__init__.py @@ -2,7 +2,11 @@ Public API for DataFrame interchange protocol. """ -from pandas.core.interchange.dataframe_protocol import DataFrame -from pandas.core.interchange.from_dataframe import from_dataframe +from pandas.core.interchange.dataframe_protocol import ( + DataFrame, +) +from pandas.core.interchange.from_dataframe import ( + from_dataframe, +) __all__ = ["from_dataframe", "DataFrame"] diff --git a/pandas/api/types/__init__.py b/pandas/api/types/__init__.py index fb1abdd5b18ec..bbf6c77a021a9 100644 --- a/pandas/api/types/__init__.py +++ b/pandas/api/types/__init__.py @@ -2,10 +2,14 @@ Public toolkit API. """ -from pandas._libs.lib import infer_dtype +from pandas._libs.lib import ( + infer_dtype, +) from pandas.core.dtypes.api import * # noqa: F401, F403 -from pandas.core.dtypes.concat import union_categoricals +from pandas.core.dtypes.concat import ( + union_categoricals, +) from pandas.core.dtypes.dtypes import ( CategoricalDtype, DatetimeTZDtype, diff --git a/pandas/compat/__init__.py b/pandas/compat/__init__.py index 60a9b3d4fd30e..be398613a1b7c 100644 --- a/pandas/compat/__init__.py +++ b/pandas/compat/__init__.py @@ -7,13 +7,17 @@ Other items: * platform checker """ -from __future__ import annotations +from __future__ import ( + annotations, +) import os import platform import sys -from pandas._typing import F +from pandas._typing import ( + F, +) from pandas.compat._constants import ( IS64, PY39, diff --git a/pandas/compat/_constants.py b/pandas/compat/_constants.py index 75d99f5ae51fb..3bcf3f998015f 100644 --- a/pandas/compat/_constants.py +++ b/pandas/compat/_constants.py @@ -5,7 +5,9 @@ Constants relevant for the Python implementation. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import platform import sys diff --git a/pandas/compat/_optional.py b/pandas/compat/_optional.py index 01ac462eeb659..a906b63ad7f66 100644 --- a/pandas/compat/_optional.py +++ b/pandas/compat/_optional.py @@ -1,13 +1,19 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import importlib import sys import types import warnings -from pandas.util._exceptions import find_stack_level +from pandas.util._exceptions import ( + find_stack_level, +) -from pandas.util.version import Version +from pandas.util.version import ( + Version, +) # Update install.rst & setup.cfg when updating versions! diff --git a/pandas/compat/compressors.py b/pandas/compat/compressors.py index a4f39c4e34bd4..a893b07877715 100644 --- a/pandas/compat/compressors.py +++ b/pandas/compat/compressors.py @@ -2,12 +2,18 @@ Patched ``BZ2File`` and ``LZMAFile`` to handle pickle protocol 5. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import bz2 -from pickle import PickleBuffer +from pickle import ( + PickleBuffer, +) -from pandas.compat._constants import PY310 +from pandas.compat._constants import ( + PY310, +) try: import lzma diff --git a/pandas/compat/numpy/__init__.py b/pandas/compat/numpy/__init__.py index 6f31358dabe86..31f87473a0924 100644 --- a/pandas/compat/numpy/__init__.py +++ b/pandas/compat/numpy/__init__.py @@ -1,7 +1,9 @@ """ support numpy compatibility across versions """ import numpy as np -from pandas.util.version import Version +from pandas.util.version import ( + Version, +) # numpy versioning _np_version = np.__version__ diff --git a/pandas/compat/numpy/function.py b/pandas/compat/numpy/function.py index 2c71990d74cb1..9d3651ac64fba 100644 --- a/pandas/compat/numpy/function.py +++ b/pandas/compat/numpy/function.py @@ -15,7 +15,9 @@ methods that are spread throughout the codebase. This module will make it easier to adjust to future upstream changes in the analogous numpy signatures. """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( Any, @@ -24,7 +26,9 @@ overload, ) -from numpy import ndarray +from numpy import ( + ndarray, +) from pandas._libs.lib import ( is_bool, @@ -34,7 +38,9 @@ Axis, AxisInt, ) -from pandas.errors import UnsupportedFunctionCall +from pandas.errors import ( + UnsupportedFunctionCall, +) from pandas.util._validators import ( validate_args, validate_args_and_kwargs, diff --git a/pandas/compat/pickle_compat.py b/pandas/compat/pickle_compat.py index 9800c960f031b..7869d42df8387 100644 --- a/pandas/compat/pickle_compat.py +++ b/pandas/compat/pickle_compat.py @@ -1,26 +1,38 @@ """ Support pre-0.12 series pickle compatibility. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import contextlib import copy import io import pickle as pkl -from typing import Generator +from typing import ( + Generator, +) import numpy as np -from pandas._libs.arrays import NDArrayBacked -from pandas._libs.tslibs import BaseOffset +from pandas._libs.arrays import ( + NDArrayBacked, +) +from pandas._libs.tslibs import ( + BaseOffset, +) -from pandas import Index +from pandas import ( + Index, +) from pandas.core.arrays import ( DatetimeArray, PeriodArray, TimedeltaArray, ) -from pandas.core.internals import BlockManager +from pandas.core.internals import ( + BlockManager, +) def load_reduce(self): diff --git a/pandas/compat/pyarrow.py b/pandas/compat/pyarrow.py index 020ec346490ff..c5fc390e6ab99 100644 --- a/pandas/compat/pyarrow.py +++ b/pandas/compat/pyarrow.py @@ -1,8 +1,12 @@ """ support pyarrow compatibility across versions """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from pandas.util.version import Version +from pandas.util.version import ( + Version, +) try: import pyarrow as pa diff --git a/pandas/conftest.py b/pandas/conftest.py index aab6de1724677..2e1122d447860 100644 --- a/pandas/conftest.py +++ b/pandas/conftest.py @@ -17,9 +17,13 @@ - Dtypes - Misc """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from collections import abc +from collections import ( + abc, +) from datetime import ( date, datetime, @@ -27,7 +31,9 @@ timedelta, timezone, ) -from decimal import Decimal +from decimal import ( + Decimal, +) import operator import os from typing import ( @@ -41,7 +47,9 @@ tzutc, ) import hypothesis -from hypothesis import strategies as st +from hypothesis import ( + strategies as st, +) import numpy as np import pytest from pytz import ( @@ -67,7 +75,9 @@ compat, ) import pandas._testing as tm -from pandas.core import ops +from pandas.core import ( + ops, +) from pandas.core.indexes.api import ( Index, MultiIndex, @@ -1773,7 +1783,9 @@ def ip(): Will raise a skip if IPython is not installed. """ pytest.importorskip("IPython", minversion="6.0.0") - from IPython.core.interactiveshell import InteractiveShell + from IPython.core.interactiveshell import ( + InteractiveShell, + ) # GH#35711 make sure sqlite history file handle is not leaked from traitlets.config import Config # isort:skip @@ -1789,7 +1801,9 @@ def spmatrix(request): """ Yields scipy sparse matrix classes. """ - from scipy import sparse + from scipy import ( + sparse, + ) return getattr(sparse, request.param + "_matrix") @@ -1820,9 +1834,15 @@ def sort_by_key(request): @pytest.fixture() def fsspectest(): pytest.importorskip("fsspec") - from fsspec import register_implementation - from fsspec.implementations.memory import MemoryFileSystem - from fsspec.registry import _registry as registry + from fsspec import ( + register_implementation, + ) + from fsspec.implementations.memory import ( + MemoryFileSystem, + ) + from fsspec.registry import ( + _registry as registry, + ) class TestMemoryFS(MemoryFileSystem): protocol = "testmem" diff --git a/pandas/core/_numba/executor.py b/pandas/core/_numba/executor.py index 13d8b52bae39c..37c53902086e8 100644 --- a/pandas/core/_numba/executor.py +++ b/pandas/core/_numba/executor.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import functools from typing import ( @@ -8,8 +10,12 @@ import numpy as np -from pandas._typing import Scalar -from pandas.compat._optional import import_optional_dependency +from pandas._typing import ( + Scalar, +) +from pandas.compat._optional import ( + import_optional_dependency, +) @functools.lru_cache(maxsize=None) diff --git a/pandas/core/_numba/kernels/__init__.py b/pandas/core/_numba/kernels/__init__.py index 219ff023bf7dc..c8034be5b6557 100644 --- a/pandas/core/_numba/kernels/__init__.py +++ b/pandas/core/_numba/kernels/__init__.py @@ -1,6 +1,14 @@ -from pandas.core._numba.kernels.mean_ import sliding_mean -from pandas.core._numba.kernels.min_max_ import sliding_min_max -from pandas.core._numba.kernels.sum_ import sliding_sum -from pandas.core._numba.kernels.var_ import sliding_var +from pandas.core._numba.kernels.mean_ import ( + sliding_mean, +) +from pandas.core._numba.kernels.min_max_ import ( + sliding_min_max, +) +from pandas.core._numba.kernels.sum_ import ( + sliding_sum, +) +from pandas.core._numba.kernels.var_ import ( + sliding_var, +) __all__ = ["sliding_mean", "sliding_sum", "sliding_var", "sliding_min_max"] diff --git a/pandas/core/_numba/kernels/mean_.py b/pandas/core/_numba/kernels/mean_.py index 725989e093441..cb92460d16bcb 100644 --- a/pandas/core/_numba/kernels/mean_.py +++ b/pandas/core/_numba/kernels/mean_.py @@ -6,12 +6,16 @@ Mirrors pandas/_libs/window/aggregation.pyx """ -from __future__ import annotations +from __future__ import ( + annotations, +) import numba import numpy as np -from pandas.core._numba.kernels.shared import is_monotonic_increasing +from pandas.core._numba.kernels.shared import ( + is_monotonic_increasing, +) @numba.jit(nopython=True, nogil=True, parallel=False) diff --git a/pandas/core/_numba/kernels/min_max_.py b/pandas/core/_numba/kernels/min_max_.py index acba66a6e4f63..be6225e289bf3 100644 --- a/pandas/core/_numba/kernels/min_max_.py +++ b/pandas/core/_numba/kernels/min_max_.py @@ -6,7 +6,9 @@ Mirrors pandas/_libs/window/aggregation.pyx """ -from __future__ import annotations +from __future__ import ( + annotations, +) import numba import numpy as np diff --git a/pandas/core/_numba/kernels/shared.py b/pandas/core/_numba/kernels/shared.py index 6e6bcef590d06..34cb7c79cdb2f 100644 --- a/pandas/core/_numba/kernels/shared.py +++ b/pandas/core/_numba/kernels/shared.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import numba import numpy as np diff --git a/pandas/core/_numba/kernels/sum_.py b/pandas/core/_numba/kernels/sum_.py index 056897189fe67..6830bc49a691b 100644 --- a/pandas/core/_numba/kernels/sum_.py +++ b/pandas/core/_numba/kernels/sum_.py @@ -6,12 +6,16 @@ Mirrors pandas/_libs/window/aggregation.pyx """ -from __future__ import annotations +from __future__ import ( + annotations, +) import numba import numpy as np -from pandas.core._numba.kernels.shared import is_monotonic_increasing +from pandas.core._numba.kernels.shared import ( + is_monotonic_increasing, +) @numba.jit(nopython=True, nogil=True, parallel=False) diff --git a/pandas/core/_numba/kernels/var_.py b/pandas/core/_numba/kernels/var_.py index d3243f4928dca..67a99a9a0290f 100644 --- a/pandas/core/_numba/kernels/var_.py +++ b/pandas/core/_numba/kernels/var_.py @@ -6,12 +6,16 @@ Mirrors pandas/_libs/window/aggregation.pyx """ -from __future__ import annotations +from __future__ import ( + annotations, +) import numba import numpy as np -from pandas.core._numba.kernels.shared import is_monotonic_increasing +from pandas.core._numba.kernels.shared import ( + is_monotonic_increasing, +) @numba.jit(nopython=True, nogil=True, parallel=False) diff --git a/pandas/core/accessor.py b/pandas/core/accessor.py index 58da2cd994777..1264088cc61b6 100644 --- a/pandas/core/accessor.py +++ b/pandas/core/accessor.py @@ -4,7 +4,9 @@ that can be mixed into or pinned onto other pandas classes. """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( Callable, @@ -12,8 +14,12 @@ ) import warnings -from pandas.util._decorators import doc -from pandas.util._exceptions import find_stack_level +from pandas.util._decorators import ( + doc, +) +from pandas.util._exceptions import ( + find_stack_level, +) class DirNamesMixin: @@ -321,20 +327,26 @@ def decorator(accessor): @doc(_register_accessor, klass="DataFrame") def register_dataframe_accessor(name): - from pandas import DataFrame + from pandas import ( + DataFrame, + ) return _register_accessor(name, DataFrame) @doc(_register_accessor, klass="Series") def register_series_accessor(name): - from pandas import Series + from pandas import ( + Series, + ) return _register_accessor(name, Series) @doc(_register_accessor, klass="Index") def register_index_accessor(name): - from pandas import Index + from pandas import ( + Index, + ) return _register_accessor(name, Index) diff --git a/pandas/core/algorithms.py b/pandas/core/algorithms.py index c82b47867fbb3..59dcfba08c8dd 100644 --- a/pandas/core/algorithms.py +++ b/pandas/core/algorithms.py @@ -2,10 +2,14 @@ Generic data algorithms. This module is experimental at the moment and not intended for public consumption """ -from __future__ import annotations +from __future__ import ( + annotations, +) import operator -from textwrap import dedent +from textwrap import ( + dedent, +) from typing import ( TYPE_CHECKING, Literal, @@ -29,8 +33,12 @@ TakeIndexer, npt, ) -from pandas.util._decorators import doc -from pandas.util._exceptions import find_stack_level +from pandas.util._decorators import ( + doc, +) +from pandas.util._exceptions import ( + find_stack_level, +) from pandas.core.dtypes.cast import ( construct_1d_object_array_from_listlike, @@ -58,7 +66,9 @@ is_timedelta64_dtype, needs_i8_conversion, ) -from pandas.core.dtypes.concat import concat_compat +from pandas.core.dtypes.concat import ( + concat_compat, +) from pandas.core.dtypes.dtypes import ( BaseMaskedDtype, ExtensionDtype, @@ -77,13 +87,17 @@ na_value_for_dtype, ) -from pandas.core.array_algos.take import take_nd +from pandas.core.array_algos.take import ( + take_nd, +) from pandas.core.construction import ( array as pd_array, ensure_wrapped_if_datetimelike, extract_array, ) -from pandas.core.indexers import validate_indices +from pandas.core.indexers import ( + validate_indices, +) if TYPE_CHECKING: from pandas._typing import ( @@ -844,7 +858,9 @@ def value_counts( name = "proportion" if normalize else "count" if bins is not None: - from pandas.core.reshape.tile import cut + from pandas.core.reshape.tile import ( + cut, + ) values = Series(values) try: @@ -1629,8 +1645,12 @@ def _sort_tuples(values: np.ndarray) -> np.ndarray: nans (can't use `np.sort` as it may fail when str and nan are mixed in a column as types cannot be compared). """ - from pandas.core.internals.construction import to_arrays - from pandas.core.sorting import lexsort_indexer + from pandas.core.internals.construction import ( + to_arrays, + ) + from pandas.core.sorting import ( + lexsort_indexer, + ) arrays, _ = to_arrays(values, None) indexer = lexsort_indexer(arrays, orders=True) @@ -1660,7 +1680,9 @@ def union_with_duplicates( ----- Caller is responsible for ensuring lvals.dtype == rvals.dtype. """ - from pandas import Series + from pandas import ( + Series, + ) l_count = value_counts(lvals, dropna=False) r_count = value_counts(rvals, dropna=False) diff --git a/pandas/core/api.py b/pandas/core/api.py index c0b828d9330b4..dabf2363b12b3 100644 --- a/pandas/core/api.py +++ b/pandas/core/api.py @@ -4,7 +4,9 @@ Timedelta, Timestamp, ) -from pandas._libs.missing import NA +from pandas._libs.missing import ( + NA, +) from pandas.core.dtypes.dtypes import ( CategoricalDtype, @@ -24,9 +26,15 @@ unique, value_counts, ) -from pandas.core.arrays import Categorical -from pandas.core.arrays.arrow import ArrowDtype -from pandas.core.arrays.boolean import BooleanDtype +from pandas.core.arrays import ( + Categorical, +) +from pandas.core.arrays.arrow import ( + ArrowDtype, +) +from pandas.core.arrays.boolean import ( + BooleanDtype, +) from pandas.core.arrays.floating import ( Float32Dtype, Float64Dtype, @@ -41,9 +49,15 @@ UInt32Dtype, UInt64Dtype, ) -from pandas.core.arrays.string_ import StringDtype -from pandas.core.construction import array -from pandas.core.flags import Flags +from pandas.core.arrays.string_ import ( + StringDtype, +) +from pandas.core.construction import ( + array, +) +from pandas.core.flags import ( + Flags, +) from pandas.core.groupby import ( Grouper, NamedAgg, @@ -66,16 +80,34 @@ Interval, interval_range, ) -from pandas.core.indexes.period import period_range -from pandas.core.indexes.timedeltas import timedelta_range -from pandas.core.indexing import IndexSlice -from pandas.core.series import Series -from pandas.core.tools.datetimes import to_datetime -from pandas.core.tools.numeric import to_numeric -from pandas.core.tools.timedeltas import to_timedelta +from pandas.core.indexes.period import ( + period_range, +) +from pandas.core.indexes.timedeltas import ( + timedelta_range, +) +from pandas.core.indexing import ( + IndexSlice, +) +from pandas.core.series import ( + Series, +) +from pandas.core.tools.datetimes import ( + to_datetime, +) +from pandas.core.tools.numeric import ( + to_numeric, +) +from pandas.core.tools.timedeltas import ( + to_timedelta, +) -from pandas.io.formats.format import set_eng_float_format -from pandas.tseries.offsets import DateOffset +from pandas.io.formats.format import ( + set_eng_float_format, +) +from pandas.tseries.offsets import ( + DateOffset, +) # DataFrame needs to be imported after NamedAgg to avoid a circular import from pandas.core.frame import DataFrame # isort:skip diff --git a/pandas/core/apply.py b/pandas/core/apply.py index 4790d00a071cb..85599d8505338 100644 --- a/pandas/core/apply.py +++ b/pandas/core/apply.py @@ -1,9 +1,17 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import abc -from collections import defaultdict -from contextlib import nullcontext -from functools import partial +from collections import ( + defaultdict, +) +from contextlib import ( + nullcontext, +) +from functools import ( + partial, +) import inspect from typing import ( TYPE_CHECKING, @@ -22,9 +30,13 @@ import numpy as np -from pandas._config import option_context +from pandas._config import ( + option_context, +) -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._typing import ( AggFuncType, AggFuncTypeBase, @@ -35,10 +47,16 @@ NDFrameT, npt, ) -from pandas.errors import SpecificationError -from pandas.util._decorators import cache_readonly +from pandas.errors import ( + SpecificationError, +) +from pandas.util._decorators import ( + cache_readonly, +) -from pandas.core.dtypes.cast import is_nested_object +from pandas.core.dtypes.cast import ( + is_nested_object, +) from pandas.core.dtypes.common import ( is_dict_like, is_extension_array_dtype, @@ -51,10 +69,16 @@ ABCSeries, ) -from pandas.core.algorithms import safe_sort -from pandas.core.base import SelectionMixin +from pandas.core.algorithms import ( + safe_sort, +) +from pandas.core.base import ( + SelectionMixin, +) import pandas.core.common as com -from pandas.core.construction import ensure_wrapped_if_datetimelike +from pandas.core.construction import ( + ensure_wrapped_if_datetimelike, +) if TYPE_CHECKING: from pandas import ( @@ -62,9 +86,15 @@ Index, Series, ) - from pandas.core.groupby import GroupBy - from pandas.core.resample import Resampler - from pandas.core.window.rolling import BaseWindow + from pandas.core.groupby import ( + GroupBy, + ) + from pandas.core.resample import ( + Resampler, + ) + from pandas.core.window.rolling import ( + BaseWindow, + ) ResType = Dict[int, Any] @@ -244,7 +274,9 @@ def transform_dict_like(self, func): """ Compute transform in the case of a dict-like func """ - from pandas.core.reshape.concat import concat + from pandas.core.reshape.concat import ( + concat, + ) obj = self.obj args = self.args @@ -298,7 +330,9 @@ def agg_list_like(self) -> DataFrame | Series: DataFrameGroupBy, SeriesGroupBy, ) - from pandas.core.reshape.concat import concat + from pandas.core.reshape.concat import ( + concat, + ) obj = self.obj arg = cast(List[AggFuncTypeBase], self.f) @@ -362,7 +396,9 @@ def agg_list_like(self) -> DataFrame | Series: except TypeError as err: # we are concatting non-NDFrame objects, # e.g. a list of scalars - from pandas import Series + from pandas import ( + Series, + ) result = Series(results, index=keys, name=obj.name) if is_nested_object(result): @@ -379,12 +415,16 @@ def agg_dict_like(self) -> DataFrame | Series: ------- Result of aggregation. """ - from pandas import Index + from pandas import ( + Index, + ) from pandas.core.groupby.generic import ( DataFrameGroupBy, SeriesGroupBy, ) - from pandas.core.reshape.concat import concat + from pandas.core.reshape.concat import ( + concat, + ) obj = self.obj arg = cast(AggFuncTypeDict, self.f) @@ -453,7 +493,9 @@ def agg_dict_like(self) -> DataFrame | Series: "simultaneously" ) else: - from pandas import Series + from pandas import ( + Series, + ) # we have a dict of scalars # GH 36212 use name only if obj is a series @@ -717,7 +759,9 @@ def apply_empty_result(self): # we may need to infer should_reduce = self.result_type == "reduce" - from pandas import Series + from pandas import ( + Series, + ) if not should_reduce: try: @@ -820,7 +864,9 @@ def apply_series_generator(self) -> tuple[ResType, Index]: return results, res_index def wrap_results(self, results: ResType, res_index: Index) -> DataFrame | Series: - from pandas import Series + from pandas import ( + Series, + ) # see if we can infer the results if len(results) > 0 and 0 in results and is_sequence(results[0]): @@ -1255,7 +1301,9 @@ def normalize_keyword_aggregation( >>> normalize_keyword_aggregation({"output": ("input", "sum")}) (defaultdict(, {'input': ['sum']}), ('output',), array([0])) """ - from pandas.core.indexes.base import Index + from pandas.core.indexes.base import ( + Index, + ) # Normalize the aggregation functions as Mapping[column, List[func]], # process normally, then fixup the names. @@ -1341,7 +1389,9 @@ def relabel_result( bar NaN NaN 4.0 dat NaN NaN 2.5 """ - from pandas.core.indexes.base import Index + from pandas.core.indexes.base import ( + Index, + ) reordered_indexes = [ pair[0] for pair in sorted(zip(columns, order), key=lambda t: t[1]) diff --git a/pandas/core/array_algos/datetimelike_accumulations.py b/pandas/core/array_algos/datetimelike_accumulations.py index d0c622742126b..8b57cac9788e1 100644 --- a/pandas/core/array_algos/datetimelike_accumulations.py +++ b/pandas/core/array_algos/datetimelike_accumulations.py @@ -2,15 +2,23 @@ datetimelke_accumulations.py is for accumulations of datetimelike extension arrays """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from typing import Callable +from typing import ( + Callable, +) import numpy as np -from pandas._libs import iNaT +from pandas._libs import ( + iNaT, +) -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.missing import ( + isna, +) def _cum_func( diff --git a/pandas/core/array_algos/masked_accumulations.py b/pandas/core/array_algos/masked_accumulations.py index 07113128e0947..4fefc7065f671 100644 --- a/pandas/core/array_algos/masked_accumulations.py +++ b/pandas/core/array_algos/masked_accumulations.py @@ -3,13 +3,19 @@ for missing values. """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from typing import Callable +from typing import ( + Callable, +) import numpy as np -from pandas._typing import npt +from pandas._typing import ( + npt, +) from pandas.core.dtypes.common import ( is_bool_dtype, diff --git a/pandas/core/array_algos/masked_reductions.py b/pandas/core/array_algos/masked_reductions.py index 4be053cba75b7..95b8133af8084 100644 --- a/pandas/core/array_algos/masked_reductions.py +++ b/pandas/core/array_algos/masked_reductions.py @@ -2,19 +2,27 @@ masked_reductions.py is for reduction algorithms using a mask-based approach for missing values. """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from typing import Callable +from typing import ( + Callable, +) import numpy as np -from pandas._libs import missing as libmissing +from pandas._libs import ( + missing as libmissing, +) from pandas._typing import ( AxisInt, npt, ) -from pandas.core.nanops import check_below_min_count +from pandas.core.nanops import ( + check_below_min_count, +) def _reductions( diff --git a/pandas/core/array_algos/putmask.py b/pandas/core/array_algos/putmask.py index 3e2c711d12f26..4bf654f4caabb 100644 --- a/pandas/core/array_algos/putmask.py +++ b/pandas/core/array_algos/putmask.py @@ -1,7 +1,9 @@ """ EA-compatible analogue to np.putmask """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, @@ -10,20 +12,32 @@ import numpy as np -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._typing import ( ArrayLike, npt, ) -from pandas.compat import np_version_under1p21 +from pandas.compat import ( + np_version_under1p21, +) -from pandas.core.dtypes.cast import infer_dtype_from -from pandas.core.dtypes.common import is_list_like +from pandas.core.dtypes.cast import ( + infer_dtype_from, +) +from pandas.core.dtypes.common import ( + is_list_like, +) -from pandas.core.arrays import ExtensionArray +from pandas.core.arrays import ( + ExtensionArray, +) if TYPE_CHECKING: - from pandas import MultiIndex + from pandas import ( + MultiIndex, + ) def putmask_inplace(values: ArrayLike, mask: npt.NDArray[np.bool_], value: Any) -> None: diff --git a/pandas/core/array_algos/quantile.py b/pandas/core/array_algos/quantile.py index d3d9cb1b29b9a..5b4f06f7d4ca4 100644 --- a/pandas/core/array_algos/quantile.py +++ b/pandas/core/array_algos/quantile.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import numpy as np @@ -7,7 +9,9 @@ Scalar, npt, ) -from pandas.compat.numpy import np_percentile_argname +from pandas.compat.numpy import ( + np_percentile_argname, +) from pandas.core.dtypes.missing import ( isna, diff --git a/pandas/core/array_algos/replace.py b/pandas/core/array_algos/replace.py index 14bf26f40ea0d..bcc291aa56b95 100644 --- a/pandas/core/array_algos/replace.py +++ b/pandas/core/array_algos/replace.py @@ -1,7 +1,9 @@ """ Methods used by Block.replace and related methods. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import operator import re @@ -23,7 +25,9 @@ is_re_compilable, is_scalar, ) -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.missing import ( + isna, +) def should_use_regex(regex: bool, to_replace: Any) -> bool: diff --git a/pandas/core/array_algos/take.py b/pandas/core/array_algos/take.py index 7282b0729f73f..68e9fcdf83723 100644 --- a/pandas/core/array_algos/take.py +++ b/pandas/core/array_algos/take.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import functools from typing import ( @@ -19,18 +21,28 @@ npt, ) -from pandas.core.dtypes.cast import maybe_promote +from pandas.core.dtypes.cast import ( + maybe_promote, +) from pandas.core.dtypes.common import ( ensure_platform_int, is_1d_only_ea_obj, ) -from pandas.core.dtypes.missing import na_value_for_dtype +from pandas.core.dtypes.missing import ( + na_value_for_dtype, +) -from pandas.core.construction import ensure_wrapped_if_datetimelike +from pandas.core.construction import ( + ensure_wrapped_if_datetimelike, +) if TYPE_CHECKING: - from pandas.core.arrays._mixins import NDArrayBackedExtensionArray - from pandas.core.arrays.base import ExtensionArray + from pandas.core.arrays._mixins import ( + NDArrayBackedExtensionArray, + ) + from pandas.core.arrays.base import ( + ExtensionArray, + ) @overload diff --git a/pandas/core/array_algos/transforms.py b/pandas/core/array_algos/transforms.py index 56648189f1759..775c7904c9c71 100644 --- a/pandas/core/array_algos/transforms.py +++ b/pandas/core/array_algos/transforms.py @@ -2,11 +2,15 @@ transforms.py is for shape-preserving functions. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import numpy as np -from pandas._typing import AxisInt +from pandas._typing import ( + AxisInt, +) def shift(values: np.ndarray, periods: int, axis: AxisInt, fill_value) -> np.ndarray: diff --git a/pandas/core/arraylike.py b/pandas/core/arraylike.py index 1d10d797866f4..77e503b98e214 100644 --- a/pandas/core/arraylike.py +++ b/pandas/core/arraylike.py @@ -4,21 +4,37 @@ Index ExtensionArray """ -from __future__ import annotations +from __future__ import ( + annotations, +) import operator -from typing import Any +from typing import ( + Any, +) import numpy as np -from pandas._libs import lib -from pandas._libs.ops_dispatch import maybe_dispatch_ufunc_to_dunder_op - -from pandas.core.dtypes.generic import ABCNDFrame - -from pandas.core import roperator -from pandas.core.construction import extract_array -from pandas.core.ops.common import unpack_zerodim_and_defer +from pandas._libs import ( + lib, +) +from pandas._libs.ops_dispatch import ( + maybe_dispatch_ufunc_to_dunder_op, +) + +from pandas.core.dtypes.generic import ( + ABCNDFrame, +) + +from pandas.core import ( + roperator, +) +from pandas.core.construction import ( + extract_array, +) +from pandas.core.ops.common import ( + unpack_zerodim_and_defer, +) REDUCTION_ALIASES = { "maximum": "max", @@ -262,8 +278,12 @@ def array_ufunc(self, ufunc: np.ufunc, method: str, *inputs: Any, **kwargs: Any) DataFrame, Series, ) - from pandas.core.generic import NDFrame - from pandas.core.internals import BlockManager + from pandas.core.generic import ( + NDFrame, + ) + from pandas.core.internals import ( + BlockManager, + ) cls = type(self) diff --git a/pandas/core/arrays/__init__.py b/pandas/core/arrays/__init__.py index 79be8760db931..60eaf40232626 100644 --- a/pandas/core/arrays/__init__.py +++ b/pandas/core/arrays/__init__.py @@ -1,25 +1,51 @@ -from pandas.core.arrays.arrow import ArrowExtensionArray +from pandas.core.arrays.arrow import ( + ArrowExtensionArray, +) from pandas.core.arrays.base import ( ExtensionArray, ExtensionOpsMixin, ExtensionScalarOpsMixin, ) -from pandas.core.arrays.boolean import BooleanArray -from pandas.core.arrays.categorical import Categorical -from pandas.core.arrays.datetimes import DatetimeArray -from pandas.core.arrays.floating import FloatingArray -from pandas.core.arrays.integer import IntegerArray -from pandas.core.arrays.interval import IntervalArray -from pandas.core.arrays.masked import BaseMaskedArray -from pandas.core.arrays.numpy_ import PandasArray +from pandas.core.arrays.boolean import ( + BooleanArray, +) +from pandas.core.arrays.categorical import ( + Categorical, +) +from pandas.core.arrays.datetimes import ( + DatetimeArray, +) +from pandas.core.arrays.floating import ( + FloatingArray, +) +from pandas.core.arrays.integer import ( + IntegerArray, +) +from pandas.core.arrays.interval import ( + IntervalArray, +) +from pandas.core.arrays.masked import ( + BaseMaskedArray, +) +from pandas.core.arrays.numpy_ import ( + PandasArray, +) from pandas.core.arrays.period import ( PeriodArray, period_array, ) -from pandas.core.arrays.sparse import SparseArray -from pandas.core.arrays.string_ import StringArray -from pandas.core.arrays.string_arrow import ArrowStringArray -from pandas.core.arrays.timedeltas import TimedeltaArray +from pandas.core.arrays.sparse import ( + SparseArray, +) +from pandas.core.arrays.string_ import ( + StringArray, +) +from pandas.core.arrays.string_arrow import ( + ArrowStringArray, +) +from pandas.core.arrays.timedeltas import ( + TimedeltaArray, +) __all__ = [ "ArrowExtensionArray", diff --git a/pandas/core/arrays/_mixins.py b/pandas/core/arrays/_mixins.py index 5d1bb04cfacbd..8c3aea03337aa 100644 --- a/pandas/core/arrays/_mixins.py +++ b/pandas/core/arrays/_mixins.py @@ -1,6 +1,10 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from functools import wraps +from functools import ( + wraps, +) from typing import ( TYPE_CHECKING, Any, @@ -13,8 +17,12 @@ import numpy as np -from pandas._libs import lib -from pandas._libs.arrays import NDArrayBacked +from pandas._libs import ( + lib, +) +from pandas._libs.arrays import ( + NDArrayBacked, +) from pandas._typing import ( ArrayLike, AxisInt, @@ -29,8 +37,12 @@ npt, type_t, ) -from pandas.errors import AbstractMethodError -from pandas.util._decorators import doc +from pandas.errors import ( + AbstractMethodError, +) +from pandas.util._decorators import ( + doc, +) from pandas.util._validators import ( validate_bool_kwarg, validate_fillna_kwargs, @@ -46,20 +58,36 @@ ExtensionDtype, PeriodDtype, ) -from pandas.core.dtypes.missing import array_equivalent +from pandas.core.dtypes.missing import ( + array_equivalent, +) -from pandas.core import missing +from pandas.core import ( + missing, +) from pandas.core.algorithms import ( take, unique, value_counts, ) -from pandas.core.array_algos.quantile import quantile_with_mask -from pandas.core.array_algos.transforms import shift -from pandas.core.arrays.base import ExtensionArray -from pandas.core.construction import extract_array -from pandas.core.indexers import check_array_indexer -from pandas.core.sorting import nargminmax +from pandas.core.array_algos.quantile import ( + quantile_with_mask, +) +from pandas.core.array_algos.transforms import ( + shift, +) +from pandas.core.arrays.base import ( + ExtensionArray, +) +from pandas.core.construction import ( + extract_array, +) +from pandas.core.indexers import ( + check_array_indexer, +) +from pandas.core.sorting import ( + nargminmax, +) NDArrayBackedExtensionArrayT = TypeVar( "NDArrayBackedExtensionArrayT", bound="NDArrayBackedExtensionArray" @@ -71,7 +99,9 @@ NumpyValueArrayLike, ) - from pandas import Series + from pandas import ( + Series, + ) def ravel_compat(meth: F) -> F: @@ -138,11 +168,15 @@ def view(self, dtype: Dtype | None = None) -> ArrayLike: cls = dtype.construct_array_type() return cls(arr.view("i8"), dtype=dtype) elif dtype == "M8[ns]": - from pandas.core.arrays import DatetimeArray + from pandas.core.arrays import ( + DatetimeArray, + ) return DatetimeArray(arr.view("i8"), dtype=dtype) elif dtype == "m8[ns]": - from pandas.core.arrays import TimedeltaArray + from pandas.core.arrays import ( + TimedeltaArray, + ) return TimedeltaArray(arr.view("i8"), dtype=dtype) diff --git a/pandas/core/arrays/_ranges.py b/pandas/core/arrays/_ranges.py index c93fc94685358..814037e20b692 100644 --- a/pandas/core/arrays/_ranges.py +++ b/pandas/core/arrays/_ranges.py @@ -2,11 +2,15 @@ Helper functions to generate range-like data for DatetimeArray (and possibly TimedeltaArray/PeriodArray) """ -from __future__ import annotations +from __future__ import ( + annotations, +) import numpy as np -from pandas._libs.lib import i8max +from pandas._libs.lib import ( + i8max, +) from pandas._libs.tslibs import ( BaseOffset, OutOfBoundsDatetime, @@ -14,7 +18,9 @@ Timestamp, iNaT, ) -from pandas._typing import npt +from pandas._typing import ( + npt, +) def generate_regular_range( diff --git a/pandas/core/arrays/arrow/__init__.py b/pandas/core/arrays/arrow/__init__.py index e7fa6fae0a5a1..0b9c4bd8bab11 100644 --- a/pandas/core/arrays/arrow/__init__.py +++ b/pandas/core/arrays/arrow/__init__.py @@ -1,4 +1,8 @@ -from pandas.core.arrays.arrow.array import ArrowExtensionArray -from pandas.core.arrays.arrow.dtype import ArrowDtype +from pandas.core.arrays.arrow.array import ( + ArrowExtensionArray, +) +from pandas.core.arrays.arrow.dtype import ( + ArrowDtype, +) __all__ = ["ArrowDtype", "ArrowExtensionArray"] diff --git a/pandas/core/arrays/arrow/_arrow_utils.py b/pandas/core/arrays/arrow/_arrow_utils.py index 6e6ef6a2c20a8..093151103ac29 100644 --- a/pandas/core/arrays/arrow/_arrow_utils.py +++ b/pandas/core/arrays/arrow/_arrow_utils.py @@ -1,12 +1,18 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import warnings import numpy as np import pyarrow -from pandas.errors import PerformanceWarning -from pandas.util._exceptions import find_stack_level +from pandas.errors import ( + PerformanceWarning, +) +from pandas.util._exceptions import ( + find_stack_level, +) def fallback_performancewarning(version: str | None = None) -> None: diff --git a/pandas/core/arrays/arrow/array.py b/pandas/core/arrays/arrow/array.py index bb4bdae188fd2..97e1f0b09ff83 100644 --- a/pandas/core/arrays/arrow/array.py +++ b/pandas/core/arrays/arrow/array.py @@ -1,6 +1,10 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from copy import deepcopy +from copy import ( + deepcopy, +) import operator import re from typing import ( @@ -15,7 +19,9 @@ import numpy as np -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._typing import ( ArrayLike, AxisInt, @@ -37,8 +43,12 @@ pa_version_under9p0, pa_version_under11p0, ) -from pandas.util._decorators import doc -from pandas.util._validators import validate_fillna_kwargs +from pandas.util._decorators import ( + doc, +) +from pandas.util._validators import ( + validate_fillna_kwargs, +) from pandas.core.dtypes.common import ( is_array_like, @@ -49,27 +59,43 @@ is_object_dtype, is_scalar, ) -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.missing import ( + isna, +) -from pandas.core import roperator -from pandas.core.arraylike import OpsMixin -from pandas.core.arrays.base import ExtensionArray +from pandas.core import ( + roperator, +) +from pandas.core.arraylike import ( + OpsMixin, +) +from pandas.core.arrays.base import ( + ExtensionArray, +) import pandas.core.common as com from pandas.core.indexers import ( check_array_indexer, unpack_tuple_and_ellipses, validate_indices, ) -from pandas.core.strings.base import BaseStringArrayMethods +from pandas.core.strings.base import ( + BaseStringArrayMethods, +) -from pandas.tseries.frequencies import to_offset +from pandas.tseries.frequencies import ( + to_offset, +) if not pa_version_under7p0: import pyarrow as pa import pyarrow.compute as pc - from pandas.core.arrays.arrow._arrow_utils import fallback_performancewarning - from pandas.core.arrays.arrow.dtype import ArrowDtype + from pandas.core.arrays.arrow._arrow_utils import ( + fallback_performancewarning, + ) + from pandas.core.arrays.arrow.dtype import ( + ArrowDtype, + ) ARROW_CMP_FUNCS = { "eq": pc.equal, @@ -136,7 +162,9 @@ def floordiv_compat( NumpyValueArrayLike, ) - from pandas import Series + from pandas import ( + Series, + ) ArrowExtensionArrayT = TypeVar("ArrowExtensionArrayT", bound="ArrowExtensionArray") @@ -270,15 +298,21 @@ def _from_sequence_of_strings( # pa_type is string/binary: scalars already correct type scalars = strings elif pa.types.is_timestamp(pa_type): - from pandas.core.tools.datetimes import to_datetime + from pandas.core.tools.datetimes import ( + to_datetime, + ) scalars = to_datetime(strings, errors="raise") elif pa.types.is_date(pa_type): - from pandas.core.tools.datetimes import to_datetime + from pandas.core.tools.datetimes import ( + to_datetime, + ) scalars = to_datetime(strings, errors="raise").date elif pa.types.is_duration(pa_type): - from pandas.core.tools.timedeltas import to_timedelta + from pandas.core.tools.timedeltas import ( + to_timedelta, + ) scalars = to_timedelta(strings, errors="raise") if pa_type.unit != "ns": @@ -294,12 +328,16 @@ def _from_sequence_of_strings( except pa.ArrowInvalid: pass elif pa.types.is_time(pa_type): - from pandas.core.tools.times import to_time + from pandas.core.tools.times import ( + to_time, + ) # "coerce" to allow "null times" (None) to not raise scalars = to_time(strings, errors="coerce") elif pa.types.is_boolean(pa_type): - from pandas.core.arrays import BooleanArray + from pandas.core.arrays import ( + BooleanArray, + ) scalars = BooleanArray._from_sequence_of_strings(strings).to_numpy() elif ( @@ -307,7 +345,9 @@ def _from_sequence_of_strings( or pa.types.is_floating(pa_type) or pa.types.is_decimal(pa_type) ): - from pandas.core.tools.numeric import to_numeric + from pandas.core.tools.numeric import ( + to_numeric, + ) scalars = to_numeric(strings, errors="raise") else: @@ -429,7 +469,9 @@ def __setstate__(self, state) -> None: self.__dict__.update(state) def _cmp_method(self, other, op): - from pandas.arrays import BooleanArray + from pandas.arrays import ( + BooleanArray, + ) pc_func = ARROW_CMP_FUNCS[op.__name__] if isinstance(other, ArrowExtensionArray): diff --git a/pandas/core/arrays/arrow/dtype.py b/pandas/core/arrays/arrow/dtype.py index e8adab019b097..4fe48f31d1924 100644 --- a/pandas/core/arrays/arrow/dtype.py +++ b/pandas/core/arrays/arrow/dtype.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from datetime import ( date, @@ -6,7 +8,9 @@ time, timedelta, ) -from decimal import Decimal +from decimal import ( + Decimal, +) import re import numpy as np @@ -20,8 +24,12 @@ DtypeObj, type_t, ) -from pandas.compat import pa_version_under7p0 -from pandas.util._decorators import cache_readonly +from pandas.compat import ( + pa_version_under7p0, +) +from pandas.util._decorators import ( + cache_readonly, +) from pandas.core.dtypes.base import ( StorageExtensionDtype, @@ -32,7 +40,9 @@ import pyarrow as pa if TYPE_CHECKING: - from pandas.core.arrays.arrow import ArrowExtensionArray + from pandas.core.arrays.arrow import ( + ArrowExtensionArray, + ) @register_extension_dtype @@ -173,7 +183,9 @@ def construct_array_type(cls) -> type_t[ArrowExtensionArray]: ------- type """ - from pandas.core.arrays.arrow import ArrowExtensionArray + from pandas.core.arrays.arrow import ( + ArrowExtensionArray, + ) return ArrowExtensionArray @@ -272,7 +284,9 @@ def _get_common_dtype(self, dtypes: list[DtypeObj]) -> DtypeObj | None: # We unwrap any masked dtypes, find the common dtype we would use # for that, then re-mask the result. # Mirrors BaseMaskedDtype - from pandas.core.dtypes.cast import find_common_type + from pandas.core.dtypes.cast import ( + find_common_type, + ) new_dtype = find_common_type( [ diff --git a/pandas/core/arrays/arrow/extension_types.py b/pandas/core/arrays/arrow/extension_types.py index 25f597af5e3cf..88b2261abadfa 100644 --- a/pandas/core/arrays/arrow/extension_types.py +++ b/pandas/core/arrays/arrow/extension_types.py @@ -1,12 +1,18 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import json import pyarrow -from pandas._typing import IntervalClosedType +from pandas._typing import ( + IntervalClosedType, +) -from pandas.core.arrays.interval import VALID_CLOSED +from pandas.core.arrays.interval import ( + VALID_CLOSED, +) class ArrowPeriodType(pyarrow.ExtensionType): diff --git a/pandas/core/arrays/base.py b/pandas/core/arrays/base.py index db8c87f0654cd..32bf03906993d 100644 --- a/pandas/core/arrays/base.py +++ b/pandas/core/arrays/base.py @@ -6,7 +6,9 @@ This is an experimental API and subject to breaking changes without warning. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import operator from typing import ( @@ -24,7 +26,9 @@ import numpy as np -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._typing import ( ArrayLike, AstypeArg, @@ -39,9 +43,15 @@ TakeIndexer, npt, ) -from pandas.compat import set_function_name -from pandas.compat.numpy import function as nv -from pandas.errors import AbstractMethodError +from pandas.compat import ( + set_function_name, +) +from pandas.compat.numpy import ( + function as nv, +) +from pandas.errors import ( + AbstractMethodError, +) from pandas.util._decorators import ( Appender, Substitution, @@ -53,7 +63,9 @@ validate_insert_loc, ) -from pandas.core.dtypes.cast import maybe_cast_to_extension_array +from pandas.core.dtypes.cast import ( + maybe_cast_to_extension_array, +) from pandas.core.dtypes.common import ( is_datetime64_dtype, is_dtype_equal, @@ -62,13 +74,17 @@ is_timedelta64_dtype, pandas_dtype, ) -from pandas.core.dtypes.dtypes import ExtensionDtype +from pandas.core.dtypes.dtypes import ( + ExtensionDtype, +) from pandas.core.dtypes.generic import ( ABCDataFrame, ABCIndex, ABCSeries, ) -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.missing import ( + isna, +) from pandas.core import ( arraylike, @@ -82,7 +98,9 @@ rank, unique, ) -from pandas.core.array_algos.quantile import quantile_with_mask +from pandas.core.array_algos.quantile import ( + quantile_with_mask, +) from pandas.core.sorting import ( nargminmax, nargsort, @@ -580,12 +598,16 @@ def astype(self, dtype: AstypeArg, copy: bool = True) -> ArrayLike: return cls._from_sequence(self, dtype=dtype, copy=copy) elif is_datetime64_dtype(dtype): - from pandas.core.arrays import DatetimeArray + from pandas.core.arrays import ( + DatetimeArray, + ) return DatetimeArray._from_sequence(self, dtype=dtype, copy=copy) elif is_timedelta64_dtype(dtype): - from pandas.core.arrays import TimedeltaArray + from pandas.core.arrays import ( + TimedeltaArray, + ) return TimedeltaArray._from_sequence(self, dtype=dtype, copy=copy) @@ -1257,7 +1279,9 @@ def __repr__(self) -> str: if self.ndim > 1: return self._repr_2d() - from pandas.io.formats.printing import format_object_summary + from pandas.io.formats.printing import ( + format_object_summary, + ) # the short repr has no trailing newline, while the truncated # repr does. So we include a newline in our template, and strip @@ -1269,7 +1293,9 @@ def __repr__(self) -> str: return f"{class_name}{data}\nLength: {len(self)}, dtype: {self.dtype}" def _repr_2d(self) -> str: - from pandas.io.formats.printing import format_object_summary + from pandas.io.formats.printing import ( + format_object_summary, + ) # the short repr has no trailing newline, while the truncated # repr does. So we include a newline in our template, and strip diff --git a/pandas/core/arrays/boolean.py b/pandas/core/arrays/boolean.py index 2dba557eda169..0034d1e7d23c8 100644 --- a/pandas/core/arrays/boolean.py +++ b/pandas/core/arrays/boolean.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import numbers from typing import ( @@ -22,11 +24,19 @@ is_list_like, is_numeric_dtype, ) -from pandas.core.dtypes.dtypes import register_extension_dtype -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.dtypes import ( + register_extension_dtype, +) +from pandas.core.dtypes.missing import ( + isna, +) -from pandas.core import ops -from pandas.core.array_algos import masked_accumulations +from pandas.core import ( + ops, +) +from pandas.core.array_algos import ( + masked_accumulations, +) from pandas.core.arrays.masked import ( BaseMaskedArray, BaseMaskedDtype, @@ -35,7 +45,9 @@ if TYPE_CHECKING: import pyarrow - from pandas._typing import npt + from pandas._typing import ( + npt, + ) @register_extension_dtype @@ -387,7 +399,9 @@ def _accumulate( data, mask = op(data, mask, skipna=skipna, **kwargs) return type(self)(data, mask, copy=False) else: - from pandas.core.arrays import IntegerArray + from pandas.core.arrays import ( + IntegerArray, + ) return IntegerArray(data.astype(int), mask)._accumulate( name, skipna=skipna, **kwargs diff --git a/pandas/core/arrays/categorical.py b/pandas/core/arrays/categorical.py index 02ee2eb4a80ce..27167b765a3cc 100644 --- a/pandas/core/arrays/categorical.py +++ b/pandas/core/arrays/categorical.py @@ -1,9 +1,17 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from csv import QUOTE_NONNUMERIC -from functools import partial +from csv import ( + QUOTE_NONNUMERIC, +) +from functools import ( + partial, +) import operator -from shutil import get_terminal_size +from shutil import ( + get_terminal_size, +) from typing import ( TYPE_CHECKING, Hashable, @@ -17,14 +25,18 @@ import numpy as np -from pandas._config import get_option +from pandas._config import ( + get_option, +) from pandas._libs import ( NaT, algos as libalgos, lib, ) -from pandas._libs.arrays import NDArrayBacked +from pandas._libs.arrays import ( + NDArrayBacked, +) from pandas._typing import ( ArrayLike, AstypeArg, @@ -37,8 +49,12 @@ npt, type_t, ) -from pandas.compat.numpy import function as nv -from pandas.util._validators import validate_bool_kwarg +from pandas.compat.numpy import ( + function as nv, +) +from pandas.util._validators import ( + validate_bool_kwarg, +) from pandas.core.dtypes.cast import ( coerce_indexer_dtype, @@ -102,11 +118,19 @@ extract_array, sanitize_array, ) -from pandas.core.ops.common import unpack_zerodim_and_defer -from pandas.core.sorting import nargsort -from pandas.core.strings.object_array import ObjectStringArrayMixin +from pandas.core.ops.common import ( + unpack_zerodim_and_defer, +) +from pandas.core.sorting import ( + nargsort, +) +from pandas.core.strings.object_array import ( + ObjectStringArrayMixin, +) -from pandas.io.formats import console +from pandas.io.formats import ( + console, +) if TYPE_CHECKING: from pandas import ( @@ -1074,7 +1098,9 @@ def add_categories(self, new_categories) -> Categorical: ) if hasattr(new_categories, "dtype"): - from pandas import Series + from pandas import ( + Series, + ) dtype = find_common_type( [self.dtype.categories.dtype, new_categories.dtype] @@ -1132,7 +1158,9 @@ def remove_categories(self, removals): [NaN, 'c', 'b', 'c', NaN] Categories (2, object): ['b', 'c'] """ - from pandas import Index + from pandas import ( + Index, + ) if not is_list_like(removals): removals = [removals] @@ -1744,7 +1772,9 @@ def _values_for_rank(self): numpy.array """ - from pandas import Series + from pandas import ( + Series, + ) if self.ordered: values = self.codes @@ -1833,7 +1863,9 @@ def _repr_categories(self) -> list[str]: if get_option("display.max_categories") == 0 else get_option("display.max_categories") ) - from pandas.io.formats import format as fmt + from pandas.io.formats import ( + format as fmt, + ) format_array = partial( fmt.format_array, formatter=None, quoting=QUOTE_NONNUMERIC @@ -1886,7 +1918,9 @@ def _repr_footer(self) -> str: def _get_repr( self, length: bool = True, na_rep: str = "NaN", footer: bool = True ) -> str: - from pandas.io.formats import format as fmt + from pandas.io.formats import ( + format as fmt, + ) formatter = fmt.CategoricalFormatter( self, length=length, na_rep=na_rep, footer=footer @@ -1926,7 +1960,9 @@ def _validate_listlike(self, value): value = self._encode_with_my_categories(value) return value._codes - from pandas import Index + from pandas import ( + Index, + ) # tupleize_cols=False for e.g. test_fillna_iterable_category GH#41914 to_add = Index._with_infer(value, tupleize_cols=False).difference( @@ -2119,7 +2155,9 @@ def equals(self, other: object) -> bool: def _concat_same_type( cls: type[CategoricalT], to_concat: Sequence[CategoricalT], axis: AxisInt = 0 ) -> CategoricalT: - from pandas.core.dtypes.concat import union_categoricals + from pandas.core.dtypes.concat import ( + union_categoricals, + ) first = to_concat[0] if axis >= first.ndim: @@ -2191,8 +2229,12 @@ def describe(self) -> DataFrame: counts = self.value_counts(dropna=False) freqs = counts / counts.sum() - from pandas import Index - from pandas.core.reshape.concat import concat + from pandas import ( + Index, + ) + from pandas.core.reshape.concat import ( + concat, + ) result = concat([counts, freqs], axis=1) result.columns = Index(["counts", "freqs"]) @@ -2254,7 +2296,9 @@ def isin(self, values) -> npt.NDArray[np.bool_]: return algorithms.isin(self.codes, code_values) def _replace(self, *, to_replace, value, inplace: bool = False): - from pandas import Index + from pandas import ( + Index, + ) inplace = validate_bool_kwarg(inplace, "inplace") cat = self if inplace else self.copy() @@ -2297,7 +2341,9 @@ def _str_map( # Optimization to apply the callable `f` to the categories once # and rebuild the result by `take`ing from the result with the codes. # Returns the same type as the object-dtype implementation though. - from pandas.core.arrays import PandasArray + from pandas.core.arrays import ( + PandasArray, + ) categories = self.categories codes = self.codes @@ -2306,7 +2352,9 @@ def _str_map( def _str_get_dummies(self, sep: str = "|"): # sep may not be in categories. Just bail on this. - from pandas.core.arrays import PandasArray + from pandas.core.arrays import ( + PandasArray, + ) return PandasArray(self.astype(str))._str_get_dummies(sep) @@ -2460,12 +2508,16 @@ def codes(self) -> Series: """ Return Series of codes as well as the index. """ - from pandas import Series + from pandas import ( + Series, + ) return Series(self._parent.codes, index=self._index) def _delegate_method(self, name, *args, **kwargs): - from pandas import Series + from pandas import ( + Series, + ) method = getattr(self._parent, name) res = method(*args, **kwargs) @@ -2550,7 +2602,9 @@ def factorize_from_iterable(values) -> tuple[np.ndarray, Index]: If `values` has a categorical dtype, then `categories` is a CategoricalIndex keeping the categories and order of `values`. """ - from pandas import CategoricalIndex + from pandas import ( + CategoricalIndex, + ) if not is_list_like(values): raise TypeError("Input must be list-like") diff --git a/pandas/core/arrays/datetimelike.py b/pandas/core/arrays/datetimelike.py index 1e9b5641aa5e0..5532ba2051665 100644 --- a/pandas/core/arrays/datetimelike.py +++ b/pandas/core/arrays/datetimelike.py @@ -1,10 +1,14 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from datetime import ( datetime, timedelta, ) -from functools import wraps +from functools import ( + wraps, +) import operator from typing import ( TYPE_CHECKING, @@ -27,7 +31,9 @@ algos, lib, ) -from pandas._libs.arrays import NDArrayBacked +from pandas._libs.arrays import ( + NDArrayBacked, +) from pandas._libs.tslibs import ( BaseOffset, IncompatibleFrequency, @@ -50,8 +56,12 @@ RoundTo, round_nsint64, ) -from pandas._libs.tslibs.np_datetime import compare_mismatched_resolutions -from pandas._libs.tslibs.timestamps import integer_op_not_supported +from pandas._libs.tslibs.np_datetime import ( + compare_mismatched_resolutions, +) +from pandas._libs.tslibs.timestamps import ( + integer_op_not_supported, +) from pandas._typing import ( ArrayLike, AxisInt, @@ -68,7 +78,9 @@ TimeNonexistent, npt, ) -from pandas.compat.numpy import function as nv +from pandas.compat.numpy import ( + function as nv, +) from pandas.errors import ( AbstractMethodError, InvalidComparison, @@ -79,7 +91,9 @@ Substitution, cache_readonly, ) -from pandas.util._exceptions import find_stack_level +from pandas.util._exceptions import ( + find_stack_level, +) from pandas.core.dtypes.common import ( is_all_strings, @@ -121,14 +135,22 @@ isin, unique1d, ) -from pandas.core.array_algos import datetimelike_accumulations -from pandas.core.arraylike import OpsMixin +from pandas.core.array_algos import ( + datetimelike_accumulations, +) +from pandas.core.arraylike import ( + OpsMixin, +) from pandas.core.arrays._mixins import ( NDArrayBackedExtensionArray, ravel_compat, ) -from pandas.core.arrays.base import ExtensionArray -from pandas.core.arrays.integer import IntegerArray +from pandas.core.arrays.base import ( + ExtensionArray, +) +from pandas.core.arrays.integer import ( + IntegerArray, +) import pandas.core.common as com from pandas.core.construction import ( array as pd_array, @@ -139,13 +161,17 @@ check_array_indexer, check_setitem_lengths, ) -from pandas.core.ops.common import unpack_zerodim_and_defer +from pandas.core.ops.common import ( + unpack_zerodim_and_defer, +) from pandas.core.ops.invalid import ( invalid_comparison, make_invalid_op, ) -from pandas.tseries import frequencies +from pandas.tseries import ( + frequencies, +) if TYPE_CHECKING: from pandas.core.arrays import ( @@ -756,7 +782,9 @@ def map(self, mapper): # If so, then we can refactor IndexOpsMixin._map_values to # a standalone function and call from here.. # Else, just rewrite _map_infer_values to do the right thing. - from pandas import Index + from pandas import ( + Index, + ) return Index(self).map(mapper).array @@ -1036,8 +1064,12 @@ def _add_datetimelike_scalar(self, other) -> DatetimeArray: self = cast("TimedeltaArray", self) - from pandas.core.arrays import DatetimeArray - from pandas.core.arrays.datetimes import tz_to_dtype + from pandas.core.arrays import ( + DatetimeArray, + ) + from pandas.core.arrays.datetimes import ( + tz_to_dtype, + ) assert other is not NaT if isna(other): @@ -1107,7 +1139,9 @@ def _sub_datetime_arraylike(self, other: DatetimeArray): def _sub_datetimelike(self, other: Timestamp | DatetimeArray) -> TimedeltaArray: self = cast("DatetimeArray", self) - from pandas.core.arrays import TimedeltaArray + from pandas.core.arrays import ( + TimedeltaArray, + ) try: self._assert_tzawareness_compat(other) @@ -1130,7 +1164,9 @@ def _add_period(self, other: Period) -> PeriodArray: raise TypeError(f"cannot add Period to a {type(self).__name__}") # We will wrap in a PeriodArray and defer to the reversed operation - from pandas.core.arrays.period import PeriodArray + from pandas.core.arrays.period import ( + PeriodArray, + ) i8vals = np.broadcast_to(other.ordinal, self.shape) parr = PeriodArray(i8vals, freq=other.freq) @@ -1352,7 +1388,9 @@ def __add__(self, other): return NotImplemented if isinstance(result, np.ndarray) and is_timedelta64_dtype(result.dtype): - from pandas.core.arrays import TimedeltaArray + from pandas.core.arrays import ( + TimedeltaArray, + ) return TimedeltaArray(result) return result @@ -1410,7 +1448,9 @@ def __sub__(self, other): return NotImplemented if isinstance(result, np.ndarray) and is_timedelta64_dtype(result.dtype): - from pandas.core.arrays import TimedeltaArray + from pandas.core.arrays import ( + TimedeltaArray, + ) return TimedeltaArray(result) return result @@ -1426,7 +1466,9 @@ def __rsub__(self, other): return Timestamp(other) - self if not isinstance(other, DatetimeLikeArrayMixin): # Avoid down-casting DatetimeIndex - from pandas.core.arrays import DatetimeArray + from pandas.core.arrays import ( + DatetimeArray, + ) other = DatetimeArray(other) return other - self diff --git a/pandas/core/arrays/datetimes.py b/pandas/core/arrays/datetimes.py index 1624870705b8f..7771333633bfa 100644 --- a/pandas/core/arrays/datetimes.py +++ b/pandas/core/arrays/datetimes.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from datetime import ( datetime, @@ -41,7 +43,9 @@ tz_convert_from_utc, tzconversion, ) -from pandas._libs.tslibs.dtypes import abbrev_to_npy_unit +from pandas._libs.tslibs.dtypes import ( + abbrev_to_npy_unit, +) from pandas._typing import ( DateTimeErrorChoices, IntervalClosedType, @@ -49,9 +53,15 @@ TimeNonexistent, npt, ) -from pandas.errors import PerformanceWarning -from pandas.util._exceptions import find_stack_level -from pandas.util._validators import validate_inclusive +from pandas.errors import ( + PerformanceWarning, +) +from pandas.util._exceptions import ( + find_stack_level, +) +from pandas.util._validators import ( + validate_inclusive, +) from pandas.core.dtypes.common import ( DT64NS_DTYPE, @@ -74,21 +84,33 @@ DatetimeTZDtype, ExtensionDtype, ) -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.missing import ( + isna, +) -from pandas.core.arrays import datetimelike as dtl -from pandas.core.arrays._ranges import generate_regular_range +from pandas.core.arrays import ( + datetimelike as dtl, +) +from pandas.core.arrays._ranges import ( + generate_regular_range, +) import pandas.core.common as com -from pandas.tseries.frequencies import get_period_alias +from pandas.tseries.frequencies import ( + get_period_alias, +) from pandas.tseries.offsets import ( Day, Tick, ) if TYPE_CHECKING: - from pandas import DataFrame - from pandas.core.arrays import PeriodArray + from pandas import ( + DataFrame, + ) + from pandas.core.arrays import ( + PeriodArray, + ) _midnight = time(0, 0) @@ -706,7 +728,9 @@ def astype(self, dtype, copy: bool = True): def _format_native_types( self, *, na_rep: str | float = "NaT", date_format=None, **kwargs ) -> npt.NDArray[np.object_]: - from pandas.io.formats.format import get_format_datetime64_from_values + from pandas.io.formats.format import ( + get_format_datetime64_from_values, + ) fmt = get_format_datetime64_from_values(self, date_format) @@ -1161,7 +1185,9 @@ def to_period(self, freq=None) -> PeriodArray: PeriodIndex(['2017-01-01', '2017-01-02'], dtype='period[D]') """ - from pandas.core.arrays import PeriodArray + from pandas.core.arrays import ( + PeriodArray, + ) if self.tz is not None: warnings.warn( @@ -1378,7 +1404,9 @@ def isocalendar(self) -> DataFrame: 2020-01-01 1 Freq: D, Name: week, dtype: UInt32 """ - from pandas import DataFrame + from pandas import ( + DataFrame, + ) values = self._local_timestamps() sarray = fields.build_isocalendar_sarray(values, reso=self._creso) @@ -1968,7 +1996,9 @@ def std( # Because std is translation-invariant, we can get self.std # by calculating (self - Timestamp(0)).std, and we can do it # without creating a copy by using a view on self._ndarray - from pandas.core.arrays import TimedeltaArray + from pandas.core.arrays import ( + TimedeltaArray, + ) # Find the td64 dtype with the same resolution as our dt64 dtype dtype_str = self._ndarray.dtype.name.replace("datetime64", "timedelta64") diff --git a/pandas/core/arrays/floating.py b/pandas/core/arrays/floating.py index e08e99f7eab94..cb4f4ceaea9fd 100644 --- a/pandas/core/arrays/floating.py +++ b/pandas/core/arrays/floating.py @@ -1,9 +1,15 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import numpy as np -from pandas.core.dtypes.base import register_extension_dtype -from pandas.core.dtypes.common import is_float_dtype +from pandas.core.dtypes.base import ( + register_extension_dtype, +) +from pandas.core.dtypes.common import ( + is_float_dtype, +) from pandas.core.arrays.numeric import ( NumericArray, diff --git a/pandas/core/arrays/integer.py b/pandas/core/arrays/integer.py index 3b35a2b4e47b6..002f505b6b87f 100644 --- a/pandas/core/arrays/integer.py +++ b/pandas/core/arrays/integer.py @@ -1,9 +1,15 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import numpy as np -from pandas.core.dtypes.base import register_extension_dtype -from pandas.core.dtypes.common import is_integer_dtype +from pandas.core.dtypes.base import ( + register_extension_dtype, +) +from pandas.core.dtypes.common import ( + is_integer_dtype, +) from pandas.core.arrays.numeric import ( NumericArray, diff --git a/pandas/core/arrays/interval.py b/pandas/core/arrays/interval.py index 2d63af5dc8624..0caa9b8b96c26 100644 --- a/pandas/core/arrays/interval.py +++ b/pandas/core/arrays/interval.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import operator from operator import ( @@ -19,16 +21,22 @@ import numpy as np -from pandas._config import get_option +from pandas._config import ( + get_option, +) -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._libs.interval import ( VALID_CLOSED, Interval, IntervalMixin, intervals_to_interval_bounds, ) -from pandas._libs.missing import NA +from pandas._libs.missing import ( + NA, +) from pandas._typing import ( ArrayLike, AxisInt, @@ -42,9 +50,15 @@ TimeArrayLike, npt, ) -from pandas.compat.numpy import function as nv -from pandas.errors import IntCastingNaNError -from pandas.util._decorators import Appender +from pandas.compat.numpy import ( + function as nv, +) +from pandas.errors import ( + IntCastingNaNError, +) +from pandas.util._decorators import ( + Appender, +) from pandas.core.dtypes.cast import ( LossySetitemError, @@ -63,7 +77,9 @@ needs_i8_conversion, pandas_dtype, ) -from pandas.core.dtypes.dtypes import IntervalDtype +from pandas.core.dtypes.dtypes import ( + IntervalDtype, +) from pandas.core.dtypes.generic import ( ABCDataFrame, ABCDatetimeIndex, @@ -86,15 +102,21 @@ ExtensionArray, _extension_array_shared_docs, ) -from pandas.core.arrays.datetimes import DatetimeArray -from pandas.core.arrays.timedeltas import TimedeltaArray +from pandas.core.arrays.datetimes import ( + DatetimeArray, +) +from pandas.core.arrays.timedeltas import ( + TimedeltaArray, +) import pandas.core.common as com from pandas.core.construction import ( array as pd_array, ensure_wrapped_if_datetimelike, extract_array, ) -from pandas.core.indexers import check_array_indexer +from pandas.core.indexers import ( + check_array_indexer, +) from pandas.core.ops import ( invalid_comparison, unpack_zerodim_and_defer, @@ -302,7 +324,9 @@ def _ensure_simple_new_inputs( dtype: Dtype | None = None, ) -> tuple[IntervalSideT, IntervalSideT, IntervalDtype]: """Ensure correctness of input parameters for cls._simple_new.""" - from pandas.core.indexes.base import ensure_index + from pandas.core.indexes.base import ( + ensure_index, + ) left = ensure_index(left, copy=copy) left = maybe_upcast_numeric_to_64bit(left) @@ -747,7 +771,9 @@ def _cmp_method(self, other, op): # non-interval scalar -> no matches if other is NA: # GH#31882 - from pandas.core.arrays import BooleanArray + from pandas.core.arrays import ( + BooleanArray, + ) arr = np.empty(self.shape, dtype=bool) mask = np.ones(self.shape, dtype=bool) @@ -953,7 +979,9 @@ def astype(self, dtype, copy: bool = True): array : ExtensionArray or ndarray ExtensionArray or NumPy ndarray with 'dtype' for its dtype. """ - from pandas import Index + from pandas import ( + Index, + ) if dtype is not None: dtype = pandas_dtype(dtype) @@ -1061,7 +1089,9 @@ def shift(self, periods: int = 1, fill_value: object = None) -> IntervalArray: empty_len = min(abs(periods), len(self)) if isna(fill_value): - from pandas import Index + from pandas import ( + Index, + ) fill_value = Index(self._left, copy=False)._na_value empty = IntervalArray.from_breaks([fill_value] * (empty_len + 1)) @@ -1281,7 +1311,9 @@ def left(self): """ Return the left endpoints of each Interval in the IntervalArray as an Index. """ - from pandas import Index + from pandas import ( + Index, + ) return Index(self._left, copy=False) @@ -1290,7 +1322,9 @@ def right(self): """ Return the right endpoints of each Interval in the IntervalArray as an Index. """ - from pandas import Index + from pandas import ( + Index, + ) return Index(self._right, copy=False) @@ -1503,7 +1537,9 @@ def __arrow_array__(self, type=None): """ import pyarrow - from pandas.core.arrays.arrow.extension_types import ArrowIntervalType + from pandas.core.arrays.arrow.extension_types import ( + ArrowIntervalType, + ) try: subtype = pyarrow.from_numpy_dtype(self.dtype.subtype) diff --git a/pandas/core/arrays/masked.py b/pandas/core/arrays/masked.py index 9b9cb3e29810d..0e3279d03823f 100644 --- a/pandas/core/arrays/masked.py +++ b/pandas/core/arrays/masked.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, @@ -34,11 +36,19 @@ Shape, npt, ) -from pandas.errors import AbstractMethodError -from pandas.util._decorators import doc -from pandas.util._validators import validate_fillna_kwargs +from pandas.errors import ( + AbstractMethodError, +) +from pandas.util._decorators import ( + doc, +) +from pandas.util._validators import ( + validate_fillna_kwargs, +) -from pandas.core.dtypes.base import ExtensionDtype +from pandas.core.dtypes.base import ( + ExtensionDtype, +) from pandas.core.dtypes.common import ( is_bool, is_bool_dtype, @@ -52,8 +62,12 @@ is_string_dtype, pandas_dtype, ) -from pandas.core.dtypes.dtypes import BaseMaskedDtype -from pandas.core.dtypes.inference import is_array_like +from pandas.core.dtypes.dtypes import ( + BaseMaskedDtype, +) +from pandas.core.dtypes.inference import ( + is_array_like, +) from pandas.core.dtypes.missing import ( array_equivalent, is_valid_na_for_dtype, @@ -77,12 +91,24 @@ masked_accumulations, masked_reductions, ) -from pandas.core.array_algos.quantile import quantile_with_mask -from pandas.core.arraylike import OpsMixin -from pandas.core.arrays import ExtensionArray -from pandas.core.construction import ensure_wrapped_if_datetimelike -from pandas.core.indexers import check_array_indexer -from pandas.core.ops import invalid_comparison +from pandas.core.array_algos.quantile import ( + quantile_with_mask, +) +from pandas.core.arraylike import ( + OpsMixin, +) +from pandas.core.arrays import ( + ExtensionArray, +) +from pandas.core.construction import ( + ensure_wrapped_if_datetimelike, +) +from pandas.core.indexers import ( + check_array_indexer, +) +from pandas.core.ops import ( + invalid_comparison, +) if TYPE_CHECKING: from pandas import Series @@ -92,7 +118,9 @@ NumpyValueArrayLike, ) -from pandas.compat.numpy import function as nv +from pandas.compat.numpy import ( + function as nv, +) BaseMaskedArrayT = TypeVar("BaseMaskedArrayT", bound="BaseMaskedArray") @@ -636,16 +664,22 @@ def _arith_method(self, other, op): # Try inferring masked dtype instead of casting to object inferred_dtype = lib.infer_dtype(other, skipna=True) if inferred_dtype == "integer": - from pandas.core.arrays import IntegerArray + from pandas.core.arrays import ( + IntegerArray, + ) other = IntegerArray._from_sequence(other) elif inferred_dtype in ["floating", "mixed-integer-float"]: - from pandas.core.arrays import FloatingArray + from pandas.core.arrays import ( + FloatingArray, + ) other = FloatingArray._from_sequence(other) elif inferred_dtype in ["boolean"]: - from pandas.core.arrays import BooleanArray + from pandas.core.arrays import ( + BooleanArray, + ) other = BooleanArray._from_sequence(other) @@ -732,7 +766,9 @@ def _arith_method(self, other, op): _logical_method = _arith_method def _cmp_method(self, other, op) -> BooleanArray: - from pandas.core.arrays import BooleanArray + from pandas.core.arrays import ( + BooleanArray, + ) mask = None @@ -788,12 +824,16 @@ def _maybe_mask_result(self, result, mask): ) if is_float_dtype(result.dtype): - from pandas.core.arrays import FloatingArray + from pandas.core.arrays import ( + FloatingArray, + ) return FloatingArray(result, mask, copy=False) elif is_bool_dtype(result.dtype): - from pandas.core.arrays import BooleanArray + from pandas.core.arrays import ( + BooleanArray, + ) return BooleanArray(result, mask, copy=False) @@ -803,7 +843,9 @@ def _maybe_mask_result(self, result, mask): and is_supported_unit(get_unit_from_dtype(result.dtype)) ): # e.g. test_numeric_arr_mul_tdscalar_numexpr_path - from pandas.core.arrays import TimedeltaArray + from pandas.core.arrays import ( + TimedeltaArray, + ) if not isinstance(result, TimedeltaArray): result = TimedeltaArray._simple_new(result, dtype=result.dtype) @@ -812,7 +854,9 @@ def _maybe_mask_result(self, result, mask): return result elif is_integer_dtype(result.dtype): - from pandas.core.arrays import IntegerArray + from pandas.core.arrays import ( + IntegerArray, + ) return IntegerArray(result, mask, copy=False) @@ -878,7 +922,9 @@ def take( # error: Return type "BooleanArray" of "isin" incompatible with return type # "ndarray" in supertype "ExtensionArray" def isin(self, values) -> BooleanArray: # type: ignore[override] - from pandas.core.arrays import BooleanArray + from pandas.core.arrays import ( + BooleanArray, + ) # algorithms.isin will eventually convert values to an ndarray, so no extra # cost to doing it here first @@ -995,7 +1041,9 @@ def value_counts(self, dropna: bool = True) -> Series: Index, Series, ) - from pandas.arrays import IntegerArray + from pandas.arrays import ( + IntegerArray, + ) keys, value_counts = algos.value_counts_arraylike( self._data, dropna=True, mask=self._mask diff --git a/pandas/core/arrays/numeric.py b/pandas/core/arrays/numeric.py index 2d9a3ae63259d..b5af90b73d107 100644 --- a/pandas/core/arrays/numeric.py +++ b/pandas/core/arrays/numeric.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import numbers from typing import ( @@ -20,8 +22,12 @@ DtypeObj, npt, ) -from pandas.errors import AbstractMethodError -from pandas.util._decorators import cache_readonly +from pandas.errors import ( + AbstractMethodError, +) +from pandas.util._decorators import ( + cache_readonly, +) from pandas.core.dtypes.common import ( is_bool_dtype, @@ -283,7 +289,9 @@ def _coerce_to_array( def _from_sequence_of_strings( cls: type[T], strings, *, dtype: Dtype | None = None, copy: bool = False ) -> T: - from pandas.core.tools.numeric import to_numeric + from pandas.core.tools.numeric import ( + to_numeric, + ) scalars = to_numeric(strings, errors="raise", use_nullable_dtypes=True) return cls._from_sequence(scalars, dtype=dtype, copy=copy) diff --git a/pandas/core/arrays/numpy_.py b/pandas/core/arrays/numpy_.py index 216dbede39a6a..9560d29f624ae 100644 --- a/pandas/core/arrays/numpy_.py +++ b/pandas/core/arrays/numpy_.py @@ -1,8 +1,12 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import numpy as np -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._libs.tslibs import ( get_unit_from_dtype, is_supported_unit, @@ -14,26 +18,44 @@ Scalar, npt, ) -from pandas.compat.numpy import function as nv +from pandas.compat.numpy import ( + function as nv, +) -from pandas.core.dtypes.astype import astype_array -from pandas.core.dtypes.cast import construct_1d_object_array_from_listlike +from pandas.core.dtypes.astype import ( + astype_array, +) +from pandas.core.dtypes.cast import ( + construct_1d_object_array_from_listlike, +) from pandas.core.dtypes.common import ( is_dtype_equal, pandas_dtype, ) -from pandas.core.dtypes.dtypes import PandasDtype -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.dtypes import ( + PandasDtype, +) +from pandas.core.dtypes.missing import ( + isna, +) from pandas.core import ( arraylike, nanops, ops, ) -from pandas.core.arraylike import OpsMixin -from pandas.core.arrays._mixins import NDArrayBackedExtensionArray -from pandas.core.construction import ensure_wrapped_if_datetimelike -from pandas.core.strings.object_array import ObjectStringArrayMixin +from pandas.core.arraylike import ( + OpsMixin, +) +from pandas.core.arrays._mixins import ( + NDArrayBackedExtensionArray, +) +from pandas.core.construction import ( + ensure_wrapped_if_datetimelike, +) +from pandas.core.strings.object_array import ( + ObjectStringArrayMixin, +) class PandasArray( @@ -466,7 +488,9 @@ def _wrap_ndarray_result(self, result: np.ndarray): if result.dtype.kind == "m" and is_supported_unit( get_unit_from_dtype(result.dtype) ): - from pandas.core.arrays import TimedeltaArray + from pandas.core.arrays import ( + TimedeltaArray, + ) return TimedeltaArray._simple_new(result, dtype=result.dtype) return type(self)(result) diff --git a/pandas/core/arrays/period.py b/pandas/core/arrays/period.py index f9404fbf57382..f7b802cfb1fad 100644 --- a/pandas/core/arrays/period.py +++ b/pandas/core/arrays/period.py @@ -1,6 +1,10 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from datetime import timedelta +from datetime import ( + timedelta, +) import operator from typing import ( TYPE_CHECKING, @@ -18,7 +22,9 @@ algos as libalgos, lib, ) -from pandas._libs.arrays import NDArrayBacked +from pandas._libs.arrays import ( + NDArrayBacked, +) from pandas._libs.tslibs import ( BaseOffset, NaT, @@ -32,8 +38,12 @@ period as libperiod, to_offset, ) -from pandas._libs.tslibs.dtypes import FreqGroup -from pandas._libs.tslibs.fields import isleapyear_arr +from pandas._libs.tslibs.dtypes import ( + FreqGroup, +) +from pandas._libs.tslibs.fields import ( + isleapyear_arr, +) from pandas._libs.tslibs.offsets import ( Tick, delta_to_tick, @@ -66,17 +76,23 @@ is_period_dtype, pandas_dtype, ) -from pandas.core.dtypes.dtypes import PeriodDtype +from pandas.core.dtypes.dtypes import ( + PeriodDtype, +) from pandas.core.dtypes.generic import ( ABCIndex, ABCPeriodIndex, ABCSeries, ABCTimedeltaArray, ) -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.missing import ( + isna, +) import pandas.core.algorithms as algos -from pandas.core.arrays import datetimelike as dtl +from pandas.core.arrays import ( + datetimelike as dtl, +) import pandas.core.common as com if TYPE_CHECKING: @@ -89,7 +105,9 @@ DatetimeArray, TimedeltaArray, ) - from pandas.core.arrays.base import ExtensionArray + from pandas.core.arrays.base import ( + ExtensionArray, + ) BaseOffsetT = TypeVar("BaseOffsetT", bound=BaseOffset) @@ -375,7 +393,9 @@ def __arrow_array__(self, type=None): """ import pyarrow - from pandas.core.arrays.arrow.extension_types import ArrowPeriodType + from pandas.core.arrays.arrow.extension_types import ( + ArrowPeriodType, + ) if type is not None: if pyarrow.types.is_integer(type): @@ -494,7 +514,9 @@ def to_timestamp(self, freq=None, how: str = "start") -> DatetimeArray: ------- DatetimeArray/Index """ - from pandas.core.arrays import DatetimeArray + from pandas.core.arrays import ( + DatetimeArray, + ) how = libperiod.validate_end_alias(how) diff --git a/pandas/core/arrays/sparse/__init__.py b/pandas/core/arrays/sparse/__init__.py index 56dbc6df54fc9..4cc88c3d2204f 100644 --- a/pandas/core/arrays/sparse/__init__.py +++ b/pandas/core/arrays/sparse/__init__.py @@ -8,7 +8,9 @@ SparseArray, make_sparse_index, ) -from pandas.core.arrays.sparse.dtype import SparseDtype +from pandas.core.arrays.sparse.dtype import ( + SparseDtype, +) __all__ = [ "BlockIndex", diff --git a/pandas/core/arrays/sparse/accessor.py b/pandas/core/arrays/sparse/accessor.py index 7980638deb438..9becfdc85f78c 100644 --- a/pandas/core/arrays/sparse/accessor.py +++ b/pandas/core/arrays/sparse/accessor.py @@ -1,20 +1,32 @@ """Sparse accessor""" -from __future__ import annotations +from __future__ import ( + annotations, +) -from typing import TYPE_CHECKING +from typing import ( + TYPE_CHECKING, +) import numpy as np -from pandas.compat._optional import import_optional_dependency +from pandas.compat._optional import ( + import_optional_dependency, +) -from pandas.core.dtypes.cast import find_common_type +from pandas.core.dtypes.cast import ( + find_common_type, +) from pandas.core.accessor import ( PandasDelegate, delegate_names, ) -from pandas.core.arrays.sparse.array import SparseArray -from pandas.core.arrays.sparse.dtype import SparseDtype +from pandas.core.arrays.sparse.array import ( + SparseArray, +) +from pandas.core.arrays.sparse.dtype import ( + SparseDtype, +) if TYPE_CHECKING: from pandas import ( @@ -99,8 +111,12 @@ def from_coo(cls, A, dense_index: bool = False) -> Series: 1 0 3.0 dtype: Sparse[float64, nan] """ - from pandas import Series - from pandas.core.arrays.sparse.scipy_sparse import coo_to_sparse_series + from pandas import ( + Series, + ) + from pandas.core.arrays.sparse.scipy_sparse import ( + coo_to_sparse_series, + ) result = coo_to_sparse_series(A, dense_index=dense_index) result = Series(result.array, index=result.index, copy=False) @@ -182,7 +198,9 @@ def to_coo(self, row_levels=(0,), column_levels=(1,), sort_labels: bool = False) >>> columns [('a', 0), ('a', 1), ('b', 0), ('b', 1)] """ - from pandas.core.arrays.sparse.scipy_sparse import sparse_series_to_coo + from pandas.core.arrays.sparse.scipy_sparse import ( + sparse_series_to_coo, + ) A, rows, columns = sparse_series_to_coo( self._parent, row_levels, column_levels, sort_labels=sort_labels @@ -213,7 +231,9 @@ def to_dense(self) -> Series: 2 0 dtype: int64 """ - from pandas import Series + from pandas import ( + Series, + ) return Series( self._parent.array.to_dense(), @@ -261,9 +281,13 @@ def from_spmatrix(cls, data, index=None, columns=None) -> DataFrame: 1 0.0 1.0 0.0 2 0.0 0.0 1.0 """ - from pandas._libs.sparse import IntIndex + from pandas._libs.sparse import ( + IntIndex, + ) - from pandas import DataFrame + from pandas import ( + DataFrame, + ) data = data.tocsc() index, columns = cls._prep_index(data, index, columns) @@ -305,7 +329,9 @@ def to_dense(self) -> DataFrame: 1 1 2 0 """ - from pandas import DataFrame + from pandas import ( + DataFrame, + ) data = {k: v.array.to_dense() for k, v in self._parent.items()} return DataFrame(data, index=self._parent.index, columns=self._parent.columns) @@ -331,7 +357,9 @@ def to_coo(self): and uint64 will result in a float64 dtype. """ import_optional_dependency("scipy") - from scipy.sparse import coo_matrix + from scipy.sparse import ( + coo_matrix, + ) dtype = find_common_type(self._parent.dtypes.to_list()) if isinstance(dtype, SparseDtype): diff --git a/pandas/core/arrays/sparse/array.py b/pandas/core/arrays/sparse/array.py index fcebd17ace2d3..1f7364612c83b 100644 --- a/pandas/core/arrays/sparse/array.py +++ b/pandas/core/arrays/sparse/array.py @@ -1,9 +1,13 @@ """ SparseArray data structure """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from collections import abc +from collections import ( + abc, +) import numbers import operator from typing import ( @@ -20,14 +24,18 @@ import numpy as np -from pandas._libs import lib +from pandas._libs import ( + lib, +) import pandas._libs.sparse as splib from pandas._libs.sparse import ( BlockIndex, IntIndex, SparseIndex, ) -from pandas._libs.tslibs import NaT +from pandas._libs.tslibs import ( + NaT, +) from pandas._typing import ( ArrayLike, AstypeArg, @@ -41,15 +49,23 @@ SequenceIndexer, npt, ) -from pandas.compat.numpy import function as nv -from pandas.errors import PerformanceWarning -from pandas.util._exceptions import find_stack_level +from pandas.compat.numpy import ( + function as nv, +) +from pandas.errors import ( + PerformanceWarning, +) +from pandas.util._exceptions import ( + find_stack_level, +) from pandas.util._validators import ( validate_bool_kwarg, validate_insert_loc, ) -from pandas.core.dtypes.astype import astype_array +from pandas.core.dtypes.astype import ( + astype_array, +) from pandas.core.dtypes.cast import ( construct_1d_arraylike_from_scalar, find_common_type, @@ -83,10 +99,18 @@ ops, ) import pandas.core.algorithms as algos -from pandas.core.arraylike import OpsMixin -from pandas.core.arrays import ExtensionArray -from pandas.core.arrays.sparse.dtype import SparseDtype -from pandas.core.base import PandasObject +from pandas.core.arraylike import ( + OpsMixin, +) +from pandas.core.arrays import ( + ExtensionArray, +) +from pandas.core.arrays.sparse.dtype import ( + SparseDtype, +) +from pandas.core.base import ( + PandasObject, +) import pandas.core.common as com from pandas.core.construction import ( ensure_wrapped_if_datetimelike, @@ -97,21 +121,31 @@ check_array_indexer, unpack_tuple_and_ellipses, ) -from pandas.core.missing import interpolate_2d -from pandas.core.nanops import check_below_min_count +from pandas.core.missing import ( + interpolate_2d, +) +from pandas.core.nanops import ( + check_below_min_count, +) -from pandas.io.formats import printing +from pandas.io.formats import ( + printing, +) # See https://github.com/python/typing/issues/684 if TYPE_CHECKING: - from enum import Enum + from enum import ( + Enum, + ) class ellipsis(Enum): Ellipsis = "..." Ellipsis = ellipsis.Ellipsis - from scipy.sparse import spmatrix + from scipy.sparse import ( + spmatrix, + ) from pandas._typing import ( FillnaOptions, @@ -120,7 +154,9 @@ class ellipsis(Enum): SparseIndexKind = Literal["integer", "block"] - from pandas import Series + from pandas import ( + Series, + ) else: ellipsis = type(Ellipsis) diff --git a/pandas/core/arrays/sparse/dtype.py b/pandas/core/arrays/sparse/dtype.py index c7a44d3606fa6..8756096a47e80 100644 --- a/pandas/core/arrays/sparse/dtype.py +++ b/pandas/core/arrays/sparse/dtype.py @@ -1,5 +1,7 @@ """Sparse Dtype""" -from __future__ import annotations +from __future__ import ( + annotations, +) import re from typing import ( @@ -15,10 +17,16 @@ DtypeObj, type_t, ) -from pandas.errors import PerformanceWarning -from pandas.util._exceptions import find_stack_level +from pandas.errors import ( + PerformanceWarning, +) +from pandas.util._exceptions import ( + find_stack_level, +) -from pandas.core.dtypes.astype import astype_array +from pandas.core.dtypes.astype import ( + astype_array, +) from pandas.core.dtypes.base import ( ExtensionDtype, register_extension_dtype, @@ -36,7 +44,9 @@ ) if TYPE_CHECKING: - from pandas.core.arrays.sparse.array import SparseArray + from pandas.core.arrays.sparse.array import ( + SparseArray, + ) @register_extension_dtype @@ -216,7 +226,9 @@ def construct_array_type(cls) -> type_t[SparseArray]: ------- type """ - from pandas.core.arrays.sparse.array import SparseArray + from pandas.core.arrays.sparse.array import ( + SparseArray, + ) return SparseArray diff --git a/pandas/core/arrays/sparse/scipy_sparse.py b/pandas/core/arrays/sparse/scipy_sparse.py index 723449dfcd4a3..b33f7166003aa 100644 --- a/pandas/core/arrays/sparse/scipy_sparse.py +++ b/pandas/core/arrays/sparse/scipy_sparse.py @@ -3,7 +3,9 @@ Currently only includes to_coo helpers. """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, @@ -12,17 +14,27 @@ import numpy as np -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._typing import ( IndexLabel, npt, ) -from pandas.core.dtypes.missing import notna +from pandas.core.dtypes.missing import ( + notna, +) -from pandas.core.algorithms import factorize -from pandas.core.indexes.api import MultiIndex -from pandas.core.series import Series +from pandas.core.algorithms import ( + factorize, +) +from pandas.core.indexes.api import ( + MultiIndex, +) +from pandas.core.series import ( + Series, +) if TYPE_CHECKING: import scipy.sparse @@ -192,7 +204,9 @@ def coo_to_sparse_series( ------ TypeError if A is not a coo_matrix """ - from pandas import SparseDtype + from pandas import ( + SparseDtype, + ) try: ser = Series(A.data, MultiIndex.from_arrays((A.row, A.col))) diff --git a/pandas/core/arrays/string_.py b/pandas/core/arrays/string_.py index 30b18bac7b73b..b98ef55bea3b0 100644 --- a/pandas/core/arrays/string_.py +++ b/pandas/core/arrays/string_.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, @@ -7,13 +9,17 @@ import numpy as np -from pandas._config import get_option +from pandas._config import ( + get_option, +) from pandas._libs import ( lib, missing as libmissing, ) -from pandas._libs.arrays import NDArrayBacked +from pandas._libs.arrays import ( + NDArrayBacked, +) from pandas._typing import ( AxisInt, Dtype, @@ -21,9 +27,15 @@ npt, type_t, ) -from pandas.compat import pa_version_under7p0 -from pandas.compat.numpy import function as nv -from pandas.util._decorators import doc +from pandas.compat import ( + pa_version_under7p0, +) +from pandas.compat.numpy import ( + function as nv, +) +from pandas.util._decorators import ( + doc, +) from pandas.core.dtypes.base import ( ExtensionDtype, @@ -40,19 +52,35 @@ pandas_dtype, ) -from pandas.core import ops -from pandas.core.array_algos import masked_reductions +from pandas.core import ( + ops, +) +from pandas.core.array_algos import ( + masked_reductions, +) from pandas.core.arrays import ( ExtensionArray, FloatingArray, IntegerArray, ) -from pandas.core.arrays.floating import FloatingDtype -from pandas.core.arrays.integer import IntegerDtype -from pandas.core.arrays.numpy_ import PandasArray -from pandas.core.construction import extract_array -from pandas.core.indexers import check_array_indexer -from pandas.core.missing import isna +from pandas.core.arrays.floating import ( + FloatingDtype, +) +from pandas.core.arrays.integer import ( + IntegerDtype, +) +from pandas.core.arrays.numpy_ import ( + PandasArray, +) +from pandas.core.construction import ( + extract_array, +) +from pandas.core.indexers import ( + check_array_indexer, +) +from pandas.core.missing import ( + isna, +) if TYPE_CHECKING: import pyarrow @@ -62,7 +90,9 @@ NumpyValueArrayLike, ) - from pandas import Series + from pandas import ( + Series, + ) @register_extension_dtype @@ -177,7 +207,9 @@ def construct_array_type( # type: ignore[override] ------- type """ - from pandas.core.arrays.string_arrow import ArrowStringArray + from pandas.core.arrays.string_arrow import ( + ArrowStringArray, + ) if self.storage == "python": return StringArray @@ -191,7 +223,9 @@ def __from_arrow__( Construct StringArray from pyarrow Array/ChunkedArray. """ if self.storage == "pyarrow": - from pandas.core.arrays.string_arrow import ArrowStringArray + from pandas.core.arrays.string_arrow import ( + ArrowStringArray, + ) return ArrowStringArray(array) else: @@ -344,7 +378,9 @@ def _from_sequence(cls, scalars, *, dtype: Dtype | None = None, copy: bool = Fal dtype = pandas_dtype(dtype) assert isinstance(dtype, StringDtype) and dtype.storage == "python" - from pandas.core.arrays.masked import BaseMaskedArray + from pandas.core.arrays.masked import ( + BaseMaskedArray, + ) if isinstance(scalars, BaseMaskedArray): # avoid costly conversion to object dtype @@ -490,7 +526,9 @@ def max(self, axis=None, skipna: bool = True, **kwargs) -> Scalar: return self._wrap_reduction_result(axis, result) def value_counts(self, dropna: bool = True) -> Series: - from pandas import value_counts + from pandas import ( + value_counts, + ) result = value_counts(self._ndarray, dropna=dropna).astype("Int64") result.index = result.index.astype(self.dtype) @@ -517,7 +555,9 @@ def searchsorted( return super().searchsorted(value=value, side=side, sorter=sorter) def _cmp_method(self, other, op): - from pandas.arrays import BooleanArray + from pandas.arrays import ( + BooleanArray, + ) if isinstance(other, StringArray): other = other._ndarray @@ -557,7 +597,9 @@ def _cmp_method(self, other, op): def _str_map( self, f, na_value=None, dtype: Dtype | None = None, convert: bool = True ): - from pandas.arrays import BooleanArray + from pandas.arrays import ( + BooleanArray, + ) if dtype is None: dtype = StringDtype(storage="python") diff --git a/pandas/core/arrays/string_arrow.py b/pandas/core/arrays/string_arrow.py index 4d2b39ec61fca..ccb8e1a7b2c2d 100644 --- a/pandas/core/arrays/string_arrow.py +++ b/pandas/core/arrays/string_arrow.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import re from typing import ( @@ -17,7 +19,9 @@ Scalar, npt, ) -from pandas.compat import pa_version_under7p0 +from pandas.compat import ( + pa_version_under7p0, +) from pandas.core.dtypes.common import ( is_bool_dtype, @@ -28,23 +32,37 @@ is_string_dtype, pandas_dtype, ) -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.missing import ( + isna, +) -from pandas.core.arrays.arrow import ArrowExtensionArray -from pandas.core.arrays.boolean import BooleanDtype -from pandas.core.arrays.integer import Int64Dtype -from pandas.core.arrays.numeric import NumericDtype +from pandas.core.arrays.arrow import ( + ArrowExtensionArray, +) +from pandas.core.arrays.boolean import ( + BooleanDtype, +) +from pandas.core.arrays.integer import ( + Int64Dtype, +) +from pandas.core.arrays.numeric import ( + NumericDtype, +) from pandas.core.arrays.string_ import ( BaseStringArray, StringDtype, ) -from pandas.core.strings.object_array import ObjectStringArrayMixin +from pandas.core.strings.object_array import ( + ObjectStringArrayMixin, +) if not pa_version_under7p0: import pyarrow as pa import pyarrow.compute as pc - from pandas.core.arrays.arrow._arrow_utils import fallback_performancewarning + from pandas.core.arrays.arrow._arrow_utils import ( + fallback_performancewarning, + ) ArrowStringScalarOrNAT = Union[str, libmissing.NAType] @@ -129,7 +147,9 @@ def __len__(self) -> int: @classmethod def _from_sequence(cls, scalars, dtype: Dtype | None = None, copy: bool = False): - from pandas.core.arrays.masked import BaseMaskedArray + from pandas.core.arrays.masked import ( + BaseMaskedArray, + ) _chk_pyarrow_available() diff --git a/pandas/core/arrays/timedeltas.py b/pandas/core/arrays/timedeltas.py index d38145295a4db..727d45d6808c8 100644 --- a/pandas/core/arrays/timedeltas.py +++ b/pandas/core/arrays/timedeltas.py @@ -1,6 +1,10 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from datetime import timedelta +from datetime import ( + timedelta, +) import operator from typing import ( TYPE_CHECKING, @@ -30,8 +34,12 @@ periods_per_second, to_offset, ) -from pandas._libs.tslibs.conversion import precision_from_unit -from pandas._libs.tslibs.fields import get_timedelta_field +from pandas._libs.tslibs.conversion import ( + precision_from_unit, +) +from pandas._libs.tslibs.fields import ( + get_timedelta_field, +) from pandas._libs.tslibs.timedeltas import ( array_to_timedelta64, floordiv_object_array, @@ -46,8 +54,12 @@ NpDtype, npt, ) -from pandas.compat.numpy import function as nv -from pandas.util._validators import validate_endpoints +from pandas.compat.numpy import ( + function as nv, +) +from pandas.util._validators import ( + validate_endpoints, +) from pandas.core.dtypes.common import ( TD64NS_DTYPE, @@ -61,18 +73,34 @@ is_timedelta64_dtype, pandas_dtype, ) -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.missing import ( + isna, +) -from pandas.core import nanops -from pandas.core.array_algos import datetimelike_accumulations -from pandas.core.arrays import datetimelike as dtl -from pandas.core.arrays._ranges import generate_regular_range +from pandas.core import ( + nanops, +) +from pandas.core.array_algos import ( + datetimelike_accumulations, +) +from pandas.core.arrays import ( + datetimelike as dtl, +) +from pandas.core.arrays._ranges import ( + generate_regular_range, +) import pandas.core.common as com -from pandas.core.ops import roperator -from pandas.core.ops.common import unpack_zerodim_and_defer +from pandas.core.ops import ( + roperator, +) +from pandas.core.ops.common import ( + unpack_zerodim_and_defer, +) if TYPE_CHECKING: - from pandas import DataFrame + from pandas import ( + DataFrame, + ) def _field_accessor(name: str, alias: str, docstring: str): @@ -435,14 +463,18 @@ def _accumulate(self, name: str, *, skipna: bool = True, **kwargs): # Rendering Methods def _formatter(self, boxed: bool = False): - from pandas.io.formats.format import get_format_timedelta64 + from pandas.io.formats.format import ( + get_format_timedelta64, + ) return get_format_timedelta64(self, box=True) def _format_native_types( self, *, na_rep: str | float = "NaT", date_format=None, **kwargs ) -> npt.NDArray[np.object_]: - from pandas.io.formats.format import get_format_timedelta64 + from pandas.io.formats.format import ( + get_format_timedelta64, + ) # Relies on TimeDelta._repr_base formatter = get_format_timedelta64(self._ndarray, na_rep) @@ -810,7 +842,9 @@ def components(self) -> DataFrame: ------- DataFrame """ - from pandas import DataFrame + from pandas import ( + DataFrame, + ) columns = [ "days", diff --git a/pandas/core/base.py b/pandas/core/base.py index 9f02e20b1605d..d78699fdc077f 100644 --- a/pandas/core/base.py +++ b/pandas/core/base.py @@ -2,7 +2,9 @@ Base and utility classes for pandas objects. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import textwrap from typing import ( @@ -20,7 +22,9 @@ import numpy as np -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._typing import ( Axis, AxisInt, @@ -30,15 +34,23 @@ Shape, npt, ) -from pandas.compat import PYPY -from pandas.compat.numpy import function as nv -from pandas.errors import AbstractMethodError +from pandas.compat import ( + PYPY, +) +from pandas.compat.numpy import ( + function as nv, +) +from pandas.errors import ( + AbstractMethodError, +) from pandas.util._decorators import ( cache_readonly, doc, ) -from pandas.core.dtypes.cast import can_hold_element +from pandas.core.dtypes.cast import ( + can_hold_element, +) from pandas.core.dtypes.common import ( is_categorical_dtype, is_dict_like, @@ -61,9 +73,15 @@ nanops, ops, ) -from pandas.core.accessor import DirNamesMixin -from pandas.core.arraylike import OpsMixin -from pandas.core.arrays import ExtensionArray +from pandas.core.accessor import ( + DirNamesMixin, +) +from pandas.core.arraylike import ( + OpsMixin, +) +from pandas.core.arrays import ( + ExtensionArray, +) from pandas.core.construction import ( ensure_wrapped_if_datetimelike, extract_array, @@ -903,7 +921,9 @@ def _map_values(self, mapper, na_action=None): # expected to be pd.Series(np.nan, ...). As np.nan is # of dtype float64 the return value of this method should # be float64 as well - from pandas import Series + from pandas import ( + Series, + ) if len(mapper) == 0: mapper = Series(mapper, dtype=np.float64) @@ -1129,7 +1149,9 @@ def is_monotonic_increasing(self) -> bool: ------- bool """ - from pandas import Index + from pandas import ( + Index, + ) return Index(self).is_monotonic_increasing @@ -1142,7 +1164,9 @@ def is_monotonic_decreasing(self) -> bool: ------- bool """ - from pandas import Index + from pandas import ( + Index, + ) return Index(self).is_monotonic_decreasing @@ -1210,7 +1234,9 @@ def factorize( # preserve e.g. MultiIndex uniques = self._constructor(uniques) else: - from pandas import Index + from pandas import ( + Index, + ) uniques = Index(uniques) return codes, uniques diff --git a/pandas/core/common.py b/pandas/core/common.py index 073af11b719cc..bfd47ae3dcb60 100644 --- a/pandas/core/common.py +++ b/pandas/core/common.py @@ -3,7 +3,9 @@ Note: pandas.core.common is *not* part of the public API. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import builtins from collections import ( @@ -11,7 +13,9 @@ defaultdict, ) import contextlib -from functools import partial +from functools import ( + partial, +) import inspect from typing import ( TYPE_CHECKING, @@ -29,7 +33,9 @@ import numpy as np -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._typing import ( AnyArrayLike, ArrayLike, @@ -38,7 +44,9 @@ T, ) -from pandas.core.dtypes.cast import construct_1d_object_array_from_listlike +from pandas.core.dtypes.cast import ( + construct_1d_object_array_from_listlike, +) from pandas.core.dtypes.common import ( is_array_like, is_bool_dtype, @@ -50,11 +58,17 @@ ABCIndex, ABCSeries, ) -from pandas.core.dtypes.inference import iterable_not_string -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.inference import ( + iterable_not_string, +) +from pandas.core.dtypes.missing import ( + isna, +) if TYPE_CHECKING: - from pandas import Index + from pandas import ( + Index, + ) def flatten(line): diff --git a/pandas/core/computation/align.py b/pandas/core/computation/align.py index fff605eb7cf59..47d48fa293202 100644 --- a/pandas/core/computation/align.py +++ b/pandas/core/computation/align.py @@ -1,7 +1,9 @@ """ Core eval alignment algorithms. """ -from __future__ import annotations +from __future__ import ( + annotations, +) from functools import ( partial, @@ -16,23 +18,37 @@ import numpy as np -from pandas.errors import PerformanceWarning -from pandas.util._exceptions import find_stack_level +from pandas.errors import ( + PerformanceWarning, +) +from pandas.util._exceptions import ( + find_stack_level, +) from pandas.core.dtypes.generic import ( ABCDataFrame, ABCSeries, ) -from pandas.core.base import PandasObject +from pandas.core.base import ( + PandasObject, +) import pandas.core.common as com -from pandas.core.computation.common import result_type_many +from pandas.core.computation.common import ( + result_type_many, +) if TYPE_CHECKING: - from pandas._typing import F + from pandas._typing import ( + F, + ) - from pandas.core.generic import NDFrame - from pandas.core.indexes.api import Index + from pandas.core.generic import ( + NDFrame, + ) + from pandas.core.indexes.api import ( + Index, + ) def _align_core_single_unary_op( @@ -87,7 +103,9 @@ def _align_core(terms): term_index = [i for i, term in enumerate(terms) if hasattr(term.value, "axes")] term_dims = [terms[i].value.ndim for i in term_index] - from pandas import Series + from pandas import ( + Series, + ) ndims = Series(dict(zip(term_index, term_dims))) diff --git a/pandas/core/computation/api.py b/pandas/core/computation/api.py index bd3be5b3f8c42..a29469fa8885d 100644 --- a/pandas/core/computation/api.py +++ b/pandas/core/computation/api.py @@ -1,2 +1,4 @@ __all__ = ["eval"] -from pandas.core.computation.eval import eval +from pandas.core.computation.eval import ( + eval, +) diff --git a/pandas/core/computation/check.py b/pandas/core/computation/check.py index 3221b158241f5..5f57cc2c70ddf 100644 --- a/pandas/core/computation/check.py +++ b/pandas/core/computation/check.py @@ -1,6 +1,10 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from pandas.compat._optional import import_optional_dependency +from pandas.compat._optional import ( + import_optional_dependency, +) ne = import_optional_dependency("numexpr", errors="warn") NUMEXPR_INSTALLED = ne is not None diff --git a/pandas/core/computation/common.py b/pandas/core/computation/common.py index 115191829f044..47bc880eb6371 100644 --- a/pandas/core/computation/common.py +++ b/pandas/core/computation/common.py @@ -1,10 +1,16 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from functools import reduce +from functools import ( + reduce, +) import numpy as np -from pandas._config import get_option +from pandas._config import ( + get_option, +) def ensure_decoded(s) -> str: @@ -27,8 +33,12 @@ def result_type_many(*arrays_and_dtypes): # we have > NPY_MAXARGS terms in our expression return reduce(np.result_type, arrays_and_dtypes) except TypeError: - from pandas.core.dtypes.cast import find_common_type - from pandas.core.dtypes.common import is_extension_array_dtype + from pandas.core.dtypes.cast import ( + find_common_type, + ) + from pandas.core.dtypes.common import ( + is_extension_array_dtype, + ) arr_and_dtypes = list(arrays_and_dtypes) ea_dtypes, non_ea_dtypes = [], [] diff --git a/pandas/core/computation/engines.py b/pandas/core/computation/engines.py index a3a05a9d75c6e..7bfdd8e72c157 100644 --- a/pandas/core/computation/engines.py +++ b/pandas/core/computation/engines.py @@ -1,12 +1,18 @@ """ Engine classes for :func:`~pandas.eval` """ -from __future__ import annotations +from __future__ import ( + annotations, +) import abc -from typing import TYPE_CHECKING +from typing import ( + TYPE_CHECKING, +) -from pandas.errors import NumExprClobberingError +from pandas.errors import ( + NumExprClobberingError, +) from pandas.core.computation.align import ( align_terms, @@ -17,10 +23,14 @@ REDUCTIONS, ) -from pandas.io.formats import printing +from pandas.io.formats import ( + printing, +) if TYPE_CHECKING: - from pandas.core.computation.expr import Expr + from pandas.core.computation.expr import ( + Expr, + ) _ne_builtins = frozenset(MATHOPS + REDUCTIONS) diff --git a/pandas/core/computation/eval.py b/pandas/core/computation/eval.py index d19730a321b36..9319802c3a3cc 100644 --- a/pandas/core/computation/eval.py +++ b/pandas/core/computation/eval.py @@ -1,30 +1,52 @@ """ Top level ``eval`` module. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import tokenize -from typing import TYPE_CHECKING +from typing import ( + TYPE_CHECKING, +) import warnings -from pandas.util._exceptions import find_stack_level -from pandas.util._validators import validate_bool_kwarg +from pandas.util._exceptions import ( + find_stack_level, +) +from pandas.util._validators import ( + validate_bool_kwarg, +) -from pandas.core.dtypes.common import is_extension_array_dtype +from pandas.core.dtypes.common import ( + is_extension_array_dtype, +) -from pandas.core.computation.engines import ENGINES +from pandas.core.computation.engines import ( + ENGINES, +) from pandas.core.computation.expr import ( PARSERS, Expr, ) -from pandas.core.computation.parsing import tokenize_string -from pandas.core.computation.scope import ensure_scope -from pandas.core.generic import NDFrame +from pandas.core.computation.parsing import ( + tokenize_string, +) +from pandas.core.computation.scope import ( + ensure_scope, +) +from pandas.core.generic import ( + NDFrame, +) -from pandas.io.formats.printing import pprint_thing +from pandas.io.formats.printing import ( + pprint_thing, +) if TYPE_CHECKING: - from pandas.core.computation.ops import BinOp + from pandas.core.computation.ops import ( + BinOp, + ) def _check_engine(engine: str | None) -> str: @@ -48,8 +70,12 @@ def _check_engine(engine: str | None) -> str: str Engine name. """ - from pandas.core.computation.check import NUMEXPR_INSTALLED - from pandas.core.computation.expressions import USE_NUMEXPR + from pandas.core.computation.check import ( + NUMEXPR_INSTALLED, + ) + from pandas.core.computation.expressions import ( + USE_NUMEXPR, + ) if engine is None: engine = "numexpr" if USE_NUMEXPR else "python" diff --git a/pandas/core/computation/expr.py b/pandas/core/computation/expr.py index 75e8b30d2e1f5..4c86483d20ecf 100644 --- a/pandas/core/computation/expr.py +++ b/pandas/core/computation/expr.py @@ -1,14 +1,18 @@ """ :func:`~pandas.eval` parsers. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import ast from functools import ( partial, reduce, ) -from keyword import iskeyword +from keyword import ( + iskeyword, +) import tokenize from typing import ( Callable, @@ -17,8 +21,12 @@ import numpy as np -from pandas.compat import PY39 -from pandas.errors import UndefinedVariableError +from pandas.compat import ( + PY39, +) +from pandas.errors import ( + UndefinedVariableError, +) import pandas.core.common as com from pandas.core.computation.ops import ( @@ -42,9 +50,13 @@ clean_backtick_quoted_toks, tokenize_string, ) -from pandas.core.computation.scope import Scope +from pandas.core.computation.scope import ( + Scope, +) -from pandas.io.formats import printing +from pandas.io.formats import ( + printing, +) def _rewrite_assign(tok: tuple[int, str]) -> tuple[int, str]: @@ -571,7 +583,9 @@ def visit_Index(self, node, **kwargs): return self.visit(node.value) def visit_Subscript(self, node, **kwargs): - from pandas import eval as pd_eval + from pandas import ( + eval as pd_eval, + ) value = self.visit(node.value) slobj = self.visit(node.slice) diff --git a/pandas/core/computation/expressions.py b/pandas/core/computation/expressions.py index 2b34258982ab1..d355ce4d485d3 100644 --- a/pandas/core/computation/expressions.py +++ b/pandas/core/computation/expressions.py @@ -5,20 +5,32 @@ Offer fast expression evaluation through numexpr """ -from __future__ import annotations +from __future__ import ( + annotations, +) import operator import warnings import numpy as np -from pandas._config import get_option - -from pandas._typing import FuncType -from pandas.util._exceptions import find_stack_level - -from pandas.core.computation.check import NUMEXPR_INSTALLED -from pandas.core.ops import roperator +from pandas._config import ( + get_option, +) + +from pandas._typing import ( + FuncType, +) +from pandas.util._exceptions import ( + find_stack_level, +) + +from pandas.core.computation.check import ( + NUMEXPR_INSTALLED, +) +from pandas.core.ops import ( + roperator, +) if NUMEXPR_INSTALLED: import numexpr as ne diff --git a/pandas/core/computation/ops.py b/pandas/core/computation/ops.py index 0538cc7b8d4ed..d56fb54b1650a 100644 --- a/pandas/core/computation/ops.py +++ b/pandas/core/computation/ops.py @@ -2,10 +2,16 @@ Operator classes for eval. """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from datetime import datetime -from functools import partial +from datetime import ( + datetime, +) +from functools import ( + partial, +) import operator from typing import ( Callable, @@ -16,7 +22,9 @@ import numpy as np -from pandas._libs.tslibs import Timestamp +from pandas._libs.tslibs import ( + Timestamp, +) from pandas.core.dtypes.common import ( is_list_like, @@ -28,7 +36,9 @@ ensure_decoded, result_type_many, ) -from pandas.core.computation.scope import DEFAULT_GLOBALS +from pandas.core.computation.scope import ( + DEFAULT_GLOBALS, +) from pandas.io.formats.printing import ( pprint_thing, @@ -449,7 +459,9 @@ def evaluate(self, env, engine: str, parser, term_type, eval_in_python): if self.op in eval_in_python: res = self.func(left.value, right.value) else: - from pandas.core.computation.eval import eval + from pandas.core.computation.eval import ( + eval, + ) res = eval(self, local_dict=env, engine=engine, parser=parser) diff --git a/pandas/core/computation/parsing.py b/pandas/core/computation/parsing.py index 4020ec7b5e9eb..221ee8ae671a2 100644 --- a/pandas/core/computation/parsing.py +++ b/pandas/core/computation/parsing.py @@ -1,10 +1,16 @@ """ :func:`~pandas.eval` source string parsing functions """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from io import StringIO -from keyword import iskeyword +from io import ( + StringIO, +) +from keyword import ( + iskeyword, +) import token import tokenize from typing import ( diff --git a/pandas/core/computation/pytables.py b/pandas/core/computation/pytables.py index 5c8602c0291da..bd0390643db37 100644 --- a/pandas/core/computation/pytables.py +++ b/pandas/core/computation/pytables.py @@ -1,9 +1,15 @@ """ manage PyTables query interface via Expressions """ -from __future__ import annotations +from __future__ import ( + annotations, +) import ast -from functools import partial -from typing import Any +from functools import ( + partial, +) +from typing import ( + Any, +) import numpy as np @@ -11,10 +17,16 @@ Timedelta, Timestamp, ) -from pandas._typing import npt -from pandas.errors import UndefinedVariableError +from pandas._typing import ( + npt, +) +from pandas.errors import ( + UndefinedVariableError, +) -from pandas.core.dtypes.common import is_list_like +from pandas.core.dtypes.common import ( + is_list_like, +) import pandas.core.common as com from pandas.core.computation import ( @@ -22,11 +34,21 @@ ops, scope as _scope, ) -from pandas.core.computation.common import ensure_decoded -from pandas.core.computation.expr import BaseExprVisitor -from pandas.core.computation.ops import is_term -from pandas.core.construction import extract_array -from pandas.core.indexes.base import Index +from pandas.core.computation.common import ( + ensure_decoded, +) +from pandas.core.computation.expr import ( + BaseExprVisitor, +) +from pandas.core.computation.ops import ( + is_term, +) +from pandas.core.construction import ( + extract_array, +) +from pandas.core.indexes.base import ( + Index, +) from pandas.io.formats.printing import ( pprint_thing, diff --git a/pandas/core/computation/scope.py b/pandas/core/computation/scope.py index 0b9ba84cae511..000e5cc13fe1f 100644 --- a/pandas/core/computation/scope.py +++ b/pandas/core/computation/scope.py @@ -1,11 +1,15 @@ """ Module for scope operations """ -from __future__ import annotations +from __future__ import ( + annotations, +) import datetime import inspect -from io import StringIO +from io import ( + StringIO, +) import itertools import pprint import struct @@ -17,8 +21,12 @@ import numpy as np -from pandas._libs.tslibs import Timestamp -from pandas.errors import UndefinedVariableError +from pandas._libs.tslibs import ( + Timestamp, +) +from pandas.errors import ( + UndefinedVariableError, +) _KT = TypeVar("_KT") _VT = TypeVar("_VT") diff --git a/pandas/core/config_init.py b/pandas/core/config_init.py index dd751075647d8..98f12249e35a8 100644 --- a/pandas/core/config_init.py +++ b/pandas/core/config_init.py @@ -9,10 +9,14 @@ module is imported, register them here rather than in the module. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import os -from typing import Callable +from typing import ( + Callable, +) import pandas._config.config as cf from pandas._config.config import ( @@ -37,7 +41,9 @@ def use_bottleneck_cb(key) -> None: - from pandas.core import nanops + from pandas.core import ( + nanops, + ) nanops.set_use_bottleneck(cf.get_option(key)) @@ -51,7 +57,9 @@ def use_bottleneck_cb(key) -> None: def use_numexpr_cb(key) -> None: - from pandas.core.computation import expressions + from pandas.core.computation import ( + expressions, + ) expressions.set_use_numexpr(cf.get_option(key)) @@ -65,7 +73,9 @@ def use_numexpr_cb(key) -> None: def use_numba_cb(key) -> None: - from pandas.core.util import numba_ + from pandas.core.util import ( + numba_, + ) numba_.set_use_numba(cf.get_option(key)) @@ -287,7 +297,9 @@ def use_numba_cb(key) -> None: def table_schema_cb(key) -> None: - from pandas.io.formats.printing import enable_data_resource_formatter + from pandas.io.formats.printing import ( + enable_data_resource_formatter, + ) enable_data_resource_formatter(cf.get_option(key)) @@ -418,7 +430,9 @@ def is_terminal() -> bool: def use_inf_as_na_cb(key) -> None: - from pandas.core.dtypes.missing import _use_inf_as_na + from pandas.core.dtypes.missing import ( + _use_inf_as_na, + ) _use_inf_as_na(key) @@ -666,7 +680,9 @@ def register_plotting_backend_cb(key) -> None: if key == "matplotlib": # We defer matplotlib validation, since it's the default return - from pandas.plotting._core import _get_plot_backend + from pandas.plotting._core import ( + _get_plot_backend, + ) _get_plot_backend(key) diff --git a/pandas/core/construction.py b/pandas/core/construction.py index 8c5f291742b9b..c6f6a3e8a4f66 100644 --- a/pandas/core/construction.py +++ b/pandas/core/construction.py @@ -4,7 +4,9 @@ These should not depend on core.internals. """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, @@ -16,10 +18,16 @@ ) import numpy as np -from numpy import ma +from numpy import ( + ma, +) -from pandas._libs import lib -from pandas._libs.tslibs.period import Period +from pandas._libs import ( + lib, +) +from pandas._libs.tslibs.period import ( + Period, +) from pandas._typing import ( AnyArrayLike, ArrayLike, @@ -50,7 +58,9 @@ is_object_dtype, is_timedelta64_ns_dtype, ) -from pandas.core.dtypes.dtypes import PandasDtype +from pandas.core.dtypes.dtypes import ( + PandasDtype, +) from pandas.core.dtypes.generic import ( ABCDataFrame, ABCExtensionArray, @@ -59,7 +69,9 @@ ABCRangeIndex, ABCSeries, ) -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.missing import ( + isna, +) import pandas.core.common as com @@ -68,7 +80,9 @@ Index, Series, ) - from pandas.core.arrays.base import ExtensionArray + from pandas.core.arrays.base import ( + ExtensionArray, + ) def array( @@ -298,7 +312,9 @@ def array( PeriodArray, TimedeltaArray, ) - from pandas.core.arrays.string_ import StringDtype + from pandas.core.arrays.string_ import ( + StringDtype, + ) if lib.is_scalar(data): msg = f"Cannot pass scalar '{data}' to 'pandas.array'." @@ -461,12 +477,16 @@ def ensure_wrapped_if_datetimelike(arr): """ if isinstance(arr, np.ndarray): if arr.dtype.kind == "M": - from pandas.core.arrays import DatetimeArray + from pandas.core.arrays import ( + DatetimeArray, + ) return DatetimeArray._from_sequence(arr) elif arr.dtype.kind == "m": - from pandas.core.arrays import TimedeltaArray + from pandas.core.arrays import ( + TimedeltaArray, + ) return TimedeltaArray._from_sequence(arr) diff --git a/pandas/core/dtypes/astype.py b/pandas/core/dtypes/astype.py index 7ae5993c857e2..6cb3eebc89ce6 100644 --- a/pandas/core/dtypes/astype.py +++ b/pandas/core/dtypes/astype.py @@ -2,7 +2,9 @@ Functions for implementing 'astype' methods according to pandas conventions, particularly ones that differ from numpy. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import inspect from typing import ( @@ -13,14 +15,20 @@ import numpy as np -from pandas._libs import lib -from pandas._libs.tslibs.timedeltas import array_to_timedelta64 +from pandas._libs import ( + lib, +) +from pandas._libs.tslibs.timedeltas import ( + array_to_timedelta64, +) from pandas._typing import ( ArrayLike, DtypeObj, IgnoreRaise, ) -from pandas.errors import IntCastingNaNError +from pandas.errors import ( + IntCastingNaNError, +) from pandas.core.dtypes.common import ( is_datetime64_dtype, @@ -37,7 +45,9 @@ ) if TYPE_CHECKING: - from pandas.core.arrays import ExtensionArray + from pandas.core.arrays import ( + ExtensionArray, + ) _dtype_obj = np.dtype(object) @@ -87,7 +97,9 @@ def _astype_nansafe( raise ValueError("dtype must be np.dtype or ExtensionDtype") if arr.dtype.kind in ["m", "M"]: - from pandas.core.construction import ensure_wrapped_if_datetimelike + from pandas.core.construction import ( + ensure_wrapped_if_datetimelike, + ) arr = ensure_wrapped_if_datetimelike(arr) res = arr.astype(dtype, copy=copy) @@ -109,14 +121,18 @@ def _astype_nansafe( # then coerce to datetime64[ns] and use DatetimeArray.astype if is_datetime64_dtype(dtype): - from pandas import to_datetime + from pandas import ( + to_datetime, + ) dti = to_datetime(arr.ravel()) dta = dti._data.reshape(arr.shape) return dta.astype(dtype, copy=False)._ndarray elif is_timedelta64_dtype(dtype): - from pandas.core.construction import ensure_wrapped_if_datetimelike + from pandas.core.construction import ( + ensure_wrapped_if_datetimelike, + ) # bc we know arr.dtype == object, this is equivalent to # `np.asarray(to_timedelta(arr))`, but using a lower-level API that diff --git a/pandas/core/dtypes/base.py b/pandas/core/dtypes/base.py index 65a47452b1fe8..72cfef7689b2d 100644 --- a/pandas/core/dtypes/base.py +++ b/pandas/core/dtypes/base.py @@ -1,7 +1,9 @@ """ Extend pandas with custom array types. """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, @@ -13,15 +15,21 @@ import numpy as np -from pandas._libs import missing as libmissing -from pandas._libs.hashtable import object_hash +from pandas._libs import ( + missing as libmissing, +) +from pandas._libs.hashtable import ( + object_hash, +) from pandas._typing import ( DtypeObj, Shape, npt, type_t, ) -from pandas.errors import AbstractMethodError +from pandas.errors import ( + AbstractMethodError, +) from pandas.core.dtypes.generic import ( ABCDataFrame, @@ -30,7 +38,9 @@ ) if TYPE_CHECKING: - from pandas.core.arrays import ExtensionArray + from pandas.core.arrays import ( + ExtensionArray, + ) # To parameterize on same ExtensionDtype ExtensionDtypeT = TypeVar("ExtensionDtypeT", bound="ExtensionDtype") diff --git a/pandas/core/dtypes/cast.py b/pandas/core/dtypes/cast.py index 5877c60df41fd..34a7b819db760 100644 --- a/pandas/core/dtypes/cast.py +++ b/pandas/core/dtypes/cast.py @@ -2,7 +2,9 @@ Routines for casting. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import datetime as dt import functools @@ -19,7 +21,9 @@ import numpy as np -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._libs.missing import ( NA, NAType, @@ -34,7 +38,9 @@ get_unit_from_dtype, is_supported_unit, ) -from pandas._libs.tslibs.timedeltas import array_to_timedelta64 +from pandas._libs.tslibs.timedeltas import ( + array_to_timedelta64, +) from pandas._typing import ( ArrayLike, Dtype, @@ -90,7 +96,9 @@ ABCIndex, ABCSeries, ) -from pandas.core.dtypes.inference import is_list_like +from pandas.core.dtypes.inference import ( + is_list_like, +) from pandas.core.dtypes.missing import ( is_valid_na_for_dtype, isna, @@ -99,7 +107,9 @@ ) if TYPE_CHECKING: - from pandas import Index + from pandas import ( + Index, + ) from pandas.core.arrays import ( Categorical, DatetimeArray, @@ -509,7 +519,9 @@ def maybe_cast_to_extension_array( ------- ExtensionArray or obj """ - from pandas.core.arrays.string_ import BaseStringArray + from pandas.core.arrays.string_ import ( + BaseStringArray, + ) assert isinstance(cls, type), f"must pass a type: {cls}" assertion_msg = f"must pass a subclass of ExtensionArray: {cls}" @@ -637,7 +649,9 @@ def _maybe_promote(dtype: np.dtype, fill_value=np.nan): if inferred == dtype: return dtype, fv - from pandas.core.arrays import DatetimeArray + from pandas.core.arrays import ( + DatetimeArray, + ) dta = DatetimeArray._from_sequence([], dtype="M8[ns]") try: @@ -1039,7 +1053,9 @@ def convert_dtypes( target_int_dtype = pandas_dtype_func("Int64") if is_integer_dtype(input_array.dtype): - from pandas.core.arrays.integer import INT_STR_TO_DTYPE + from pandas.core.arrays.integer import ( + INT_STR_TO_DTYPE, + ) inferred_dtype = INT_STR_TO_DTYPE.get( input_array.dtype.name, target_int_dtype @@ -1062,7 +1078,9 @@ def convert_dtypes( if not is_integer_dtype(input_array.dtype) and is_numeric_dtype( input_array.dtype ): - from pandas.core.arrays.floating import FLOAT_STR_TO_DTYPE + from pandas.core.arrays.floating import ( + FLOAT_STR_TO_DTYPE, + ) inferred_float_dtype: DtypeObj = FLOAT_STR_TO_DTYPE.get( input_array.dtype.name, pandas_dtype_func("Float64") @@ -1102,9 +1120,15 @@ def convert_dtypes( inferred_dtype = input_array.dtype if dtype_backend == "pyarrow": - from pandas.core.arrays.arrow.array import to_pyarrow_type - from pandas.core.arrays.arrow.dtype import ArrowDtype - from pandas.core.arrays.string_ import StringDtype + from pandas.core.arrays.arrow.array import ( + to_pyarrow_type, + ) + from pandas.core.arrays.arrow.dtype import ( + ArrowDtype, + ) + from pandas.core.arrays.string_ import ( + StringDtype, + ) if isinstance(inferred_dtype, PandasExtensionDtype): base_dtype = inferred_dtype.base @@ -1182,8 +1206,12 @@ def maybe_cast_to_datetime( Caller is responsible for handling ExtensionDtype cases and non dt64/td64 cases. """ - from pandas.core.arrays.datetimes import DatetimeArray - from pandas.core.arrays.timedeltas import TimedeltaArray + from pandas.core.arrays.datetimes import ( + DatetimeArray, + ) + from pandas.core.arrays.timedeltas import ( + TimedeltaArray, + ) assert dtype.kind in ["m", "M"] if not is_list_like(value): diff --git a/pandas/core/dtypes/common.py b/pandas/core/dtypes/common.py index 874b567f65937..042054cfdc6d5 100644 --- a/pandas/core/dtypes/common.py +++ b/pandas/core/dtypes/common.py @@ -1,7 +1,9 @@ """ Common type operations. """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( Any, @@ -16,13 +18,17 @@ algos, lib, ) -from pandas._libs.tslibs import conversion +from pandas._libs.tslibs import ( + conversion, +) from pandas._typing import ( ArrayLike, DtypeObj, ) -from pandas.core.dtypes.base import _registry as registry +from pandas.core.dtypes.base import ( + _registry as registry, +) from pandas.core.dtypes.dtypes import ( CategoricalDtype, DatetimeTZDtype, @@ -30,7 +36,9 @@ IntervalDtype, PeriodDtype, ) -from pandas.core.dtypes.generic import ABCIndex +from pandas.core.dtypes.generic import ( + ABCIndex, +) from pandas.core.dtypes.inference import ( is_array_like, is_bool, @@ -228,7 +236,9 @@ def is_sparse(arr) -> bool: Returns `False` if the parameter has more than one dimension. """ - from pandas.core.arrays.sparse import SparseDtype + from pandas.core.arrays.sparse import ( + SparseDtype, + ) dtype = getattr(arr, "dtype", arr) return isinstance(dtype, SparseDtype) @@ -264,7 +274,9 @@ def is_scipy_sparse(arr) -> bool: if _is_scipy_sparse is None: # pylint: disable=used-before-assignment try: - from scipy.sparse import issparse as _is_scipy_sparse + from scipy.sparse import ( + issparse as _is_scipy_sparse, + ) except ImportError: _is_scipy_sparse = lambda _: False diff --git a/pandas/core/dtypes/concat.py b/pandas/core/dtypes/concat.py index 28bc849088d5f..0e7a68a7b82fb 100644 --- a/pandas/core/dtypes/concat.py +++ b/pandas/core/dtypes/concat.py @@ -1,20 +1,30 @@ """ Utility functions related to concat. """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from typing import TYPE_CHECKING +from typing import ( + TYPE_CHECKING, +) import numpy as np -from pandas._typing import AxisInt +from pandas._typing import ( + AxisInt, +) -from pandas.core.dtypes.astype import astype_array +from pandas.core.dtypes.astype import ( + astype_array, +) from pandas.core.dtypes.cast import ( common_dtype_categorical_compat, find_common_type, ) -from pandas.core.dtypes.common import is_dtype_equal +from pandas.core.dtypes.common import ( + is_dtype_equal, +) from pandas.core.dtypes.dtypes import ( DatetimeTZDtype, ExtensionDtype, @@ -26,7 +36,9 @@ ) if TYPE_CHECKING: - from pandas.core.arrays import Categorical + from pandas.core.arrays import ( + Categorical, + ) def concat_compat(to_concat, axis: AxisInt = 0, ea_compat_axis: bool = False): @@ -217,8 +229,12 @@ def union_categoricals( ['b', 'c', 'a', 'b'] Categories (3, object): ['b', 'c', 'a'] """ - from pandas import Categorical - from pandas.core.arrays.categorical import recode_for_categories + from pandas import ( + Categorical, + ) + from pandas.core.arrays.categorical import ( + recode_for_categories, + ) if len(to_union) == 0: raise ValueError("No Categoricals to union") @@ -256,7 +272,9 @@ def _maybe_unwrap(x): categories = categories.sort_values() indexer = categories.get_indexer(first.categories) - from pandas.core.algorithms import take_nd + from pandas.core.algorithms import ( + take_nd, + ) new_codes = take_nd(indexer, new_codes, fill_value=-1) elif ignore_order or all(not c.ordered for c in to_union): @@ -304,7 +322,9 @@ def _concat_datetime(to_concat, axis: AxisInt = 0): ------- a single array, preserving the combined dtypes """ - from pandas.core.construction import ensure_wrapped_if_datetimelike + from pandas.core.construction import ( + ensure_wrapped_if_datetimelike, + ) to_concat = [ensure_wrapped_if_datetimelike(x) for x in to_concat] diff --git a/pandas/core/dtypes/dtypes.py b/pandas/core/dtypes/dtypes.py index 2909b24840831..3c29db74136a3 100644 --- a/pandas/core/dtypes/dtypes.py +++ b/pandas/core/dtypes/dtypes.py @@ -1,7 +1,9 @@ """ Define extension dtypes. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import re from typing import ( @@ -14,9 +16,15 @@ import numpy as np import pytz -from pandas._libs import missing as libmissing -from pandas._libs.interval import Interval -from pandas._libs.properties import cache_readonly +from pandas._libs import ( + missing as libmissing, +) +from pandas._libs.interval import ( + Interval, +) +from pandas._libs.properties import ( + cache_readonly, +) from pandas._libs.tslibs import ( BaseOffset, NaT, @@ -53,7 +61,9 @@ ) if TYPE_CHECKING: - from datetime import tzinfo + from datetime import ( + tzinfo, + ) import pyarrow @@ -485,7 +495,9 @@ def construct_array_type(cls) -> type_t[Categorical]: ------- type """ - from pandas import Categorical + from pandas import ( + Categorical, + ) return Categorical @@ -523,7 +535,9 @@ def validate_categories(categories, fastpath: bool = False) -> Index: ------- categories : Index """ - from pandas.core.indexes.base import Index + from pandas.core.indexes.base import ( + Index, + ) if not fastpath and not is_list_like(categories): raise TypeError( @@ -593,12 +607,16 @@ def ordered(self) -> Ordered: @property def _is_boolean(self) -> bool: - from pandas.core.dtypes.common import is_bool_dtype + from pandas.core.dtypes.common import ( + is_bool_dtype, + ) return is_bool_dtype(self.categories) def _get_common_dtype(self, dtypes: list[DtypeObj]) -> DtypeObj | None: - from pandas.core.arrays.sparse import SparseDtype + from pandas.core.arrays.sparse import ( + SparseDtype, + ) # check if we have all categorical dtype with identical categories if all(isinstance(x, CategoricalDtype) for x in dtypes): @@ -623,7 +641,9 @@ def _get_common_dtype(self, dtypes: list[DtypeObj]) -> DtypeObj | None: x.categories.dtype if isinstance(x, CategoricalDtype) else x for x in dtypes ] # TODO should categorical always give an answer? - from pandas.core.dtypes.cast import find_common_type + from pandas.core.dtypes.cast import ( + find_common_type, + ) return find_common_type(non_cat_dtypes) @@ -745,7 +765,9 @@ def construct_array_type(cls) -> type_t[DatetimeArray]: ------- type """ - from pandas.core.arrays import DatetimeArray + from pandas.core.arrays import ( + DatetimeArray, + ) return DatetimeArray @@ -998,7 +1020,9 @@ def construct_array_type(cls) -> type_t[PeriodArray]: ------- type """ - from pandas.core.arrays import PeriodArray + from pandas.core.arrays import ( + PeriodArray, + ) return PeriodArray @@ -1010,7 +1034,9 @@ def __from_arrow__( """ import pyarrow - from pandas.core.arrays import PeriodArray + from pandas.core.arrays import ( + PeriodArray, + ) from pandas.core.arrays.arrow._arrow_utils import ( pyarrow_array_to_numpy_and_mask, ) @@ -1172,7 +1198,9 @@ def construct_array_type(cls) -> type[IntervalArray]: ------- type """ - from pandas.core.arrays import IntervalArray + from pandas.core.arrays import ( + IntervalArray, + ) return IntervalArray @@ -1225,7 +1253,9 @@ def __eq__(self, other: Any) -> bool: elif self.closed != other.closed: return False else: - from pandas.core.dtypes.common import is_dtype_equal + from pandas.core.dtypes.common import ( + is_dtype_equal, + ) return is_dtype_equal(self.subtype, other.subtype) @@ -1262,7 +1292,9 @@ def __from_arrow__( """ import pyarrow - from pandas.core.arrays import IntervalArray + from pandas.core.arrays import ( + IntervalArray, + ) if isinstance(array, pyarrow.Array): chunks = [array] @@ -1294,7 +1326,9 @@ def _get_common_dtype(self, dtypes: list[DtypeObj]) -> DtypeObj | None: if not all(cast("IntervalDtype", x).closed == closed for x in dtypes): return np.dtype(object) - from pandas.core.dtypes.cast import find_common_type + from pandas.core.dtypes.cast import ( + find_common_type, + ) common = find_common_type([cast("IntervalDtype", x).subtype for x in dtypes]) if common == object: @@ -1381,7 +1415,9 @@ def construct_array_type(cls) -> type_t[PandasArray]: ------- type """ - from pandas.core.arrays import PandasArray + from pandas.core.arrays import ( + PandasArray, + ) return PandasArray @@ -1444,15 +1480,21 @@ def from_numpy_dtype(cls, dtype: np.dtype) -> BaseMaskedDtype: Construct the MaskedDtype corresponding to the given numpy dtype. """ if dtype.kind == "b": - from pandas.core.arrays.boolean import BooleanDtype + from pandas.core.arrays.boolean import ( + BooleanDtype, + ) return BooleanDtype() elif dtype.kind in ["i", "u"]: - from pandas.core.arrays.integer import INT_STR_TO_DTYPE + from pandas.core.arrays.integer import ( + INT_STR_TO_DTYPE, + ) return INT_STR_TO_DTYPE[dtype.name] elif dtype.kind == "f": - from pandas.core.arrays.floating import FLOAT_STR_TO_DTYPE + from pandas.core.arrays.floating import ( + FLOAT_STR_TO_DTYPE, + ) return FLOAT_STR_TO_DTYPE[dtype.name] else: @@ -1461,7 +1503,9 @@ def from_numpy_dtype(cls, dtype: np.dtype) -> BaseMaskedDtype: def _get_common_dtype(self, dtypes: list[DtypeObj]) -> DtypeObj | None: # We unwrap any masked dtypes, find the common dtype we would use # for that, then re-mask the result. - from pandas.core.dtypes.cast import find_common_type + from pandas.core.dtypes.cast import ( + find_common_type, + ) new_dtype = find_common_type( [ diff --git a/pandas/core/dtypes/generic.py b/pandas/core/dtypes/generic.py index 5904ba4895aef..8a038819ec1f5 100644 --- a/pandas/core/dtypes/generic.py +++ b/pandas/core/dtypes/generic.py @@ -1,5 +1,7 @@ """ define generic base classes for pandas objects """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, @@ -28,7 +30,9 @@ PeriodArray, TimedeltaArray, ) - from pandas.core.generic import NDFrame + from pandas.core.generic import ( + NDFrame, + ) # define abstract base classes to enable isinstance type checking on our diff --git a/pandas/core/dtypes/inference.py b/pandas/core/dtypes/inference.py index 28e034de869f4..e8d8f162e8542 100644 --- a/pandas/core/dtypes/inference.py +++ b/pandas/core/dtypes/inference.py @@ -1,15 +1,25 @@ """ basic inference routines """ -from __future__ import annotations - -from collections import abc -from numbers import Number +from __future__ import ( + annotations, +) + +from collections import ( + abc, +) +from numbers import ( + Number, +) import re -from typing import Pattern +from typing import ( + Pattern, +) import numpy as np -from pandas._libs import lib +from pandas._libs import ( + lib, +) is_bool = lib.is_bool diff --git a/pandas/core/dtypes/missing.py b/pandas/core/dtypes/missing.py index 99c0553998d63..b7ae31412c7a9 100644 --- a/pandas/core/dtypes/missing.py +++ b/pandas/core/dtypes/missing.py @@ -1,10 +1,16 @@ """ missing types & inference """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from decimal import Decimal -from functools import partial +from decimal import ( + Decimal, +) +from functools import ( + partial, +) from typing import ( TYPE_CHECKING, overload, @@ -12,9 +18,13 @@ import numpy as np -from pandas._config import get_option +from pandas._config import ( + get_option, +) -from pandas._libs import lib +from pandas._libs import ( + lib, +) import pandas._libs.missing as libmissing from pandas._libs.tslibs import ( NaT, @@ -51,7 +61,9 @@ ABCMultiIndex, ABCSeries, ) -from pandas.core.dtypes.inference import is_list_like +from pandas.core.dtypes.inference import ( + is_list_like, +) if TYPE_CHECKING: from pandas._typing import ( @@ -63,7 +75,9 @@ npt, ) - from pandas.core.indexes.base import Index + from pandas.core.indexes.base import ( + Index, + ) isposinf_scalar = libmissing.isposinf_scalar diff --git a/pandas/core/flags.py b/pandas/core/flags.py index f07c6917d91e5..ca02c4251bcb0 100644 --- a/pandas/core/flags.py +++ b/pandas/core/flags.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import weakref diff --git a/pandas/core/frame.py b/pandas/core/frame.py index dbbe2c0751f3a..28d9613789dd6 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -8,16 +8,24 @@ alignment and a host of useful data manipulation methods having to do with the labeling information """ -from __future__ import annotations +from __future__ import ( + annotations, +) import collections -from collections import abc +from collections import ( + abc, +) import datetime import functools -from io import StringIO +from io import ( + StringIO, +) import itertools import sys -from textwrap import dedent +from textwrap import ( + dedent, +) from typing import ( TYPE_CHECKING, Any, @@ -34,7 +42,9 @@ import warnings import numpy as np -from numpy import ma +from numpy import ( + ma, +) from pandas._config import ( get_option, @@ -46,7 +56,9 @@ lib, properties, ) -from pandas._libs.hashtable import duplicated +from pandas._libs.hashtable import ( + duplicated, +) from pandas._libs.lib import ( NoDefault, is_range_indexer, @@ -92,8 +104,12 @@ WriteBuffer, npt, ) -from pandas.compat import PYPY -from pandas.compat._optional import import_optional_dependency +from pandas.compat import ( + PYPY, +) +from pandas.compat._optional import ( + import_optional_dependency, +) from pandas.compat.numpy import ( function as nv, np_percentile_argname, @@ -108,7 +124,9 @@ Substitution, doc, ) -from pandas.util._exceptions import find_stack_level +from pandas.util._exceptions import ( + find_stack_level, +) from pandas.util._validators import ( validate_ascending, validate_bool_kwarg, @@ -146,7 +164,9 @@ needs_i8_conversion, pandas_dtype, ) -from pandas.core.dtypes.dtypes import ExtensionDtype +from pandas.core.dtypes.dtypes import ( + ExtensionDtype, +) from pandas.core.dtypes.missing import ( isna, notna, @@ -158,28 +178,40 @@ nanops, ops, ) -from pandas.core.accessor import CachedAccessor +from pandas.core.accessor import ( + CachedAccessor, +) from pandas.core.apply import ( reconstruct_func, relabel_result, ) -from pandas.core.array_algos.take import take_2d_multi -from pandas.core.arraylike import OpsMixin +from pandas.core.array_algos.take import ( + take_2d_multi, +) +from pandas.core.arraylike import ( + OpsMixin, +) from pandas.core.arrays import ( DatetimeArray, ExtensionArray, PeriodArray, TimedeltaArray, ) -from pandas.core.arrays.sparse import SparseFrameAccessor +from pandas.core.arrays.sparse import ( + SparseFrameAccessor, +) from pandas.core.construction import ( ensure_wrapped_if_datetimelike, extract_array, sanitize_array, sanitize_masked_array, ) -from pandas.core.generic import NDFrame -from pandas.core.indexers import check_key_length +from pandas.core.generic import ( + NDFrame, +) +from pandas.core.indexers import ( + check_key_length, +) from pandas.core.indexes.api import ( DatetimeIndex, Index, @@ -212,17 +244,27 @@ to_arrays, treat_as_nested, ) -from pandas.core.methods import selectn -from pandas.core.reshape.melt import melt -from pandas.core.series import Series -from pandas.core.shared_docs import _shared_docs +from pandas.core.methods import ( + selectn, +) +from pandas.core.reshape.melt import ( + melt, +) +from pandas.core.series import ( + Series, +) +from pandas.core.shared_docs import ( + _shared_docs, +) from pandas.core.sorting import ( get_group_index, lexsort_indexer, nargsort, ) -from pandas.io.common import get_handle +from pandas.io.common import ( + get_handle, +) from pandas.io.formats import ( console, format as fmt, @@ -235,12 +277,22 @@ import pandas.plotting if TYPE_CHECKING: - from pandas.core.groupby.generic import DataFrameGroupBy - from pandas.core.interchange.dataframe_protocol import DataFrame as DataFrameXchg - from pandas.core.internals import SingleDataManager - from pandas.core.resample import Resampler + from pandas.core.groupby.generic import ( + DataFrameGroupBy, + ) + from pandas.core.interchange.dataframe_protocol import ( + DataFrame as DataFrameXchg, + ) + from pandas.core.internals import ( + SingleDataManager, + ) + from pandas.core.resample import ( + Resampler, + ) - from pandas.io.formats.style import Styler + from pandas.io.formats.style import ( + Styler, + ) # --------------------------------------------------------------------- # Docstring templates @@ -703,7 +755,9 @@ def __init__( # GH#38939 de facto copy defaults to False only in non-dict cases mgr = dict_to_mgr(data, index, columns, dtype=dtype, copy=copy, typ=manager) elif isinstance(data, ma.MaskedArray): - from numpy.ma import mrecords + from numpy.ma import ( + mrecords, + ) # masked recarray if isinstance(data, mrecords.MaskedRecords): @@ -879,7 +933,9 @@ def __dataframe__( dtypes is added, this value should be propagated to columns. """ - from pandas.core.interchange.dataframe import PandasDataFrameXchg + from pandas.core.interchange.dataframe import ( + PandasDataFrameXchg, + ) return PandasDataFrameXchg(self, nan_as_null, allow_copy) @@ -1242,7 +1298,9 @@ def to_string( 1 2 5 2 3 6 """ - from pandas import option_context + from pandas import ( + option_context, + ) with option_context("display.max_colwidth", max_colwidth): formatter = fmt.DataFrameFormatter( @@ -1283,7 +1341,9 @@ def style(self) -> Styler: io.formats.style.Styler : Helps style a DataFrame or Series according to the data with HTML and CSS. """ - from pandas.io.formats.style import Styler + from pandas.io.formats.style import ( + Styler, + ) return Styler(self) @@ -1973,7 +2033,9 @@ def to_dict( [defaultdict(, {'col1': 1, 'col2': 0.5}), defaultdict(, {'col1': 2, 'col2': 0.75})] """ - from pandas.core.methods.to_dict import to_dict + from pandas.core.methods.to_dict import ( + to_dict, + ) return to_dict(self, orient, into, index) @@ -2073,7 +2135,9 @@ def to_gbq( pandas_gbq.to_gbq : This function in the pandas-gbq library. read_gbq : Read a DataFrame from Google BigQuery. """ - from pandas.io import gbq + from pandas.io import ( + gbq, + ) gbq.to_gbq( self, @@ -2626,7 +2690,9 @@ def to_stata( if version == 114: if convert_strl is not None: raise ValueError("strl is not supported in format 114") - from pandas.io.stata import StataWriter as statawriter + from pandas.io.stata import ( + StataWriter as statawriter, + ) elif version == 117: # Incompatible import of "statawriter" (imported name has type # "Type[StataWriter117]", local name has type "Type[StataWriter]") @@ -2688,7 +2754,9 @@ def to_feather(self, path: FilePath | WriteBuffer[bytes], **kwargs) -> None: index. For saving the DataFrame with your custom index use a method that supports custom indices e.g. `to_parquet`. """ - from pandas.io.feather_format import to_feather + from pandas.io.feather_format import ( + to_feather, + ) to_feather(self, path, **kwargs) @@ -2867,7 +2935,9 @@ def to_parquet( 0 >>> content = f.read() """ - from pandas.io.parquet import to_parquet + from pandas.io.parquet import ( + to_parquet, + ) return to_parquet( self, @@ -2961,7 +3031,9 @@ def to_orc( 0 >>> content = b.read() # doctest: +SKIP """ - from pandas.io.orc import to_orc + from pandas.io.orc import ( + to_orc, + ) return to_orc( self, path, engine=engine, index=index, engine_kwargs=engine_kwargs @@ -4537,7 +4609,9 @@ def eval(self, expr: str, *, inplace: bool = False, **kwargs) -> Any | None: 3 4 4 8 0 4 5 2 7 3 """ - from pandas.core.computation.eval import eval as _eval + from pandas.core.computation.eval import ( + eval as _eval, + ) inplace = validate_bool_kwarg(inplace, "inplace") kwargs["level"] = kwargs.pop("level", 0) + 1 @@ -7927,7 +8001,9 @@ def combine_first(self, other: DataFrame) -> DataFrame: 1 0.0 3.0 1.0 2 NaN 3.0 1.0 """ - from pandas.core.computation import expressions + from pandas.core.computation import ( + expressions, + ) def combiner(x, y): mask = extract_array(isna(x)) @@ -8071,7 +8147,9 @@ def update( 1 2 500 2 3 6 """ - from pandas.core.computation import expressions + from pandas.core.computation import ( + expressions, + ) # TODO: Support other joins if join != "left": # pragma: no cover @@ -8227,7 +8305,9 @@ def groupby( observed: bool = False, dropna: bool = True, ) -> DataFrameGroupBy: - from pandas.core.groupby.generic import DataFrameGroupBy + from pandas.core.groupby.generic import ( + DataFrameGroupBy, + ) if level is None and by is None: raise TypeError("You have to supply one of 'by' and 'level'") @@ -8394,7 +8474,9 @@ def groupby( @Substitution("") @Appender(_shared_docs["pivot"]) def pivot(self, *, columns, index=lib.NoDefault, values=lib.NoDefault) -> DataFrame: - from pandas.core.reshape.pivot import pivot + from pandas.core.reshape.pivot import ( + pivot, + ) return pivot(self, index=index, columns=columns, values=values) @@ -8559,7 +8641,9 @@ def pivot_table( observed: bool = False, sort: bool = True, ) -> DataFrame: - from pandas.core.reshape.pivot import pivot_table + from pandas.core.reshape.pivot import ( + pivot_table, + ) return pivot_table( self, @@ -8941,7 +9025,9 @@ def unstack(self, level: Level = -1, fill_value=None): b 4.0 dtype: float64 """ - from pandas.core.reshape.reshape import unstack + from pandas.core.reshape.reshape import ( + unstack, + ) result = unstack(self, level, fill_value) @@ -9171,7 +9257,9 @@ def _gotitem( examples=_agg_examples_doc, ) def aggregate(self, func=None, axis: Axis = 0, *args, **kwargs): - from pandas.core.apply import frame_apply + from pandas.core.apply import ( + frame_apply, + ) axis = self._get_axis_number(axis) @@ -9241,7 +9329,9 @@ def any( # type: ignore[empty-body] def transform( self, func: AggFuncType, axis: Axis = 0, *args, **kwargs ) -> DataFrame: - from pandas.core.apply import frame_apply + from pandas.core.apply import ( + frame_apply, + ) op = frame_apply(self, func=func, axis=axis, args=args, kwargs=kwargs) result = op.transform() @@ -9394,7 +9484,9 @@ def apply( 1 1 2 2 1 2 """ - from pandas.core.apply import frame_apply + from pandas.core.apply import ( + frame_apply, + ) op = frame_apply( self, @@ -9528,7 +9620,9 @@ def _append( if self.index.name is not None and not ignore_index: other.index.name = self.index.name - from pandas.core.reshape.concat import concat + from pandas.core.reshape.concat import ( + concat, + ) if isinstance(other, (list, tuple)): to_concat = [self, *other] @@ -9726,8 +9820,12 @@ def _join_compat( sort: bool = False, validate: str | None = None, ): - from pandas.core.reshape.concat import concat - from pandas.core.reshape.merge import merge + from pandas.core.reshape.concat import ( + concat, + ) + from pandas.core.reshape.merge import ( + merge, + ) if isinstance(other, Series): if other.name is None: @@ -9818,7 +9916,9 @@ def merge( indicator: str | bool = False, validate: str | None = None, ) -> DataFrame: - from pandas.core.reshape.merge import merge + from pandas.core.reshape.merge import ( + merge, + ) return merge( self, @@ -9915,7 +10015,9 @@ def round( 2 0.7 0.0 3 0.2 0.0 """ - from pandas.core.reshape.concat import concat + from pandas.core.reshape.concat import ( + concat, + ) def _dict_round(df: DataFrame, decimals): for col, vals in df.items(): @@ -11178,7 +11280,9 @@ def isin(self, values: Series | DataFrame | Sequence | Mapping) -> DataFrame: dog False False """ if isinstance(values, dict): - from pandas.core.reshape.concat import concat + from pandas.core.reshape.concat import ( + concat, + ) values = collections.defaultdict(list, values) result = concat( diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 821e41db6b065..5697c611ec944 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -1,11 +1,17 @@ # pyright: reportPropertyTypeMismatch=false -from __future__ import annotations +from __future__ import ( + annotations, +) import collections import datetime as dt -from functools import partial +from functools import ( + partial, +) import gc -from json import loads +from json import ( + loads, +) import operator import pickle import re @@ -35,8 +41,12 @@ using_copy_on_write, ) -from pandas._libs import lib -from pandas._libs.lib import is_range_indexer +from pandas._libs import ( + lib, +) +from pandas._libs.lib import ( + is_range_indexer, +) from pandas._libs.tslibs import ( Period, Tick, @@ -82,16 +92,24 @@ WriteBuffer, npt, ) -from pandas.compat._optional import import_optional_dependency -from pandas.compat.numpy import function as nv +from pandas.compat._optional import ( + import_optional_dependency, +) +from pandas.compat.numpy import ( + function as nv, +) from pandas.errors import ( AbstractMethodError, InvalidIndexError, SettingWithCopyError, SettingWithCopyWarning, ) -from pandas.util._decorators import doc -from pandas.util._exceptions import find_stack_level +from pandas.util._decorators import ( + doc, +) +from pandas.util._exceptions import ( + find_stack_level, +) from pandas.util._validators import ( validate_ascending, validate_bool_kwarg, @@ -140,11 +158,21 @@ nanops, sample, ) -from pandas.core.array_algos.replace import should_use_regex -from pandas.core.arrays import ExtensionArray -from pandas.core.base import PandasObject -from pandas.core.construction import extract_array -from pandas.core.flags import Flags +from pandas.core.array_algos.replace import ( + should_use_regex, +) +from pandas.core.arrays import ( + ExtensionArray, +) +from pandas.core.base import ( + PandasObject, +) +from pandas.core.construction import ( + extract_array, +) +from pandas.core.flags import ( + Flags, +) from pandas.core.indexes.api import ( DatetimeIndex, Index, @@ -163,16 +191,26 @@ mgr_to_mgr, ndarray_to_mgr, ) -from pandas.core.methods.describe import describe_ndframe +from pandas.core.methods.describe import ( + describe_ndframe, +) from pandas.core.missing import ( clean_fill_method, clean_reindex_fill_method, find_valid_index, ) -from pandas.core.ops import align_method_FRAME -from pandas.core.reshape.concat import concat -from pandas.core.shared_docs import _shared_docs -from pandas.core.sorting import get_indexer_indexer +from pandas.core.ops import ( + align_method_FRAME, +) +from pandas.core.reshape.concat import ( + concat, +) +from pandas.core.shared_docs import ( + _shared_docs, +) +from pandas.core.sorting import ( + get_indexer_indexer, +) from pandas.core.window import ( Expanding, ExponentialMovingWindow, @@ -184,17 +222,31 @@ DataFrameFormatter, DataFrameRenderer, ) -from pandas.io.formats.printing import pprint_thing +from pandas.io.formats.printing import ( + pprint_thing, +) if TYPE_CHECKING: - from pandas._libs.tslibs import BaseOffset + from pandas._libs.tslibs import ( + BaseOffset, + ) - from pandas.core.frame import DataFrame - from pandas.core.indexers.objects import BaseIndexer - from pandas.core.resample import Resampler - from pandas.core.series import Series + from pandas.core.frame import ( + DataFrame, + ) + from pandas.core.indexers.objects import ( + BaseIndexer, + ) + from pandas.core.resample import ( + Resampler, + ) + from pandas.core.series import ( + Series, + ) - from pandas.io.pytables import HDFStore + from pandas.io.pytables import ( + HDFStore, + ) # goal is to be able to define the docs close to function, while still being @@ -567,7 +619,9 @@ def _get_axis_resolvers(self, axis: str) -> dict[str, Series | MultiIndex]: @final def _get_index_resolvers(self) -> dict[Hashable, Series | MultiIndex]: - from pandas.core.computation.parsing import clean_column_name + from pandas.core.computation.parsing import ( + clean_column_name, + ) d: dict[str, Series | MultiIndex] = {} for axis_name in self._AXIS_ORDERS: @@ -584,7 +638,9 @@ def _get_cleaned_column_resolvers(self) -> dict[Hashable, Series]: be referred to by backtick quoting. Used in :meth:`DataFrame.eval`. """ - from pandas.core.computation.parsing import clean_column_name + from pandas.core.computation.parsing import ( + clean_column_name, + ) if isinstance(self, ABCSeries): return {clean_column_name(self.name): self} @@ -2215,7 +2271,9 @@ def to_excel( df = self if isinstance(self, ABCDataFrame) else self.to_frame() - from pandas.io.formats.excel import ExcelFormatter + from pandas.io.formats.excel import ( + ExcelFormatter, + ) formatter = ExcelFormatter( df, @@ -2498,7 +2556,9 @@ def to_json( ] }} """ - from pandas.io import json + from pandas.io import ( + json, + ) if date_format is None and orient == "table": date_format = "iso" @@ -2654,7 +2714,9 @@ def to_hdf( 3 4 dtype: int64 """ - from pandas.io import pytables + from pandas.io import ( + pytables, + ) # Argument 3 to "to_hdf" has incompatible type "NDFrame"; expected # "Union[DataFrame, Series]" [arg-type] @@ -2852,7 +2914,9 @@ def to_sql( ... conn.execute(text("SELECT * FROM integers")).fetchall() [(1,), (None,), (2,)] """ # noqa:E501 - from pandas.io import sql + from pandas.io import ( + sql, + ) return sql.to_sql( self, @@ -2929,7 +2993,9 @@ def to_pickle( 3 3 8 4 4 9 """ # noqa: E501 - from pandas.io.pickle import to_pickle + from pandas.io.pickle import ( + to_pickle, + ) to_pickle( self, @@ -3008,7 +3074,9 @@ def to_clipboard( html = df.style.to_html() pyperclip.copy(html) """ - from pandas.io import clipboards + from pandas.io import ( + clipboards, + ) clipboards.to_clipboard(self, excel=excel, sep=sep, **kwargs) @@ -3491,7 +3559,9 @@ def _to_latex_via_styler( str or None If buf is None, returns the result as a string. Otherwise returns None. """ - from pandas.io.formats.style import Styler + from pandas.io.formats.style import ( + Styler, + ) self = cast("DataFrame", self) styler = Styler(self, uuid="") @@ -6305,7 +6375,9 @@ def astype( # GH#44417 cast to Series so we can use .iat below, which will be # robust in case we - from pandas import Series + from pandas import ( + Series, + ) dtype_ser = Series(dtype, dtype=object) @@ -6905,7 +6977,9 @@ def fillna( if inplace: return None return self.copy(deep=None) - from pandas import Series + from pandas import ( + Series, + ) value = Series(value) value = value.reindex(self.index, copy=False) @@ -7265,7 +7339,9 @@ def replace( if isinstance(to_replace, (tuple, list)): # TODO: Consider copy-on-write for non-replaced columns's here if isinstance(self, ABCDataFrame): - from pandas import Series + from pandas import ( + Series, + ) result = self.apply( Series._replace_single, @@ -8358,7 +8434,9 @@ def asfreq( 2000-01-01 00:02:30 3.0 2000-01-01 00:03:00 3.0 """ - from pandas.core.resample import asfreq + from pandas.core.resample import ( + asfreq, + ) return asfreq( self, @@ -8895,7 +8973,9 @@ def resample( 2000-10-02 00:29:00 45 Freq: 17T, dtype: int64 """ - from pandas.core.resample import get_resampler + from pandas.core.resample import ( + get_resampler, + ) axis = self._get_axis_number(axis) return get_resampler( @@ -10301,7 +10381,9 @@ def truncate( # if we have a date index, convert to dates, otherwise # treat like a slice if ax._is_all_dates: - from pandas.core.tools.datetimes import to_datetime + from pandas.core.tools.datetimes import ( + to_datetime, + ) before = to_datetime(before) after = to_datetime(after) diff --git a/pandas/core/groupby/__init__.py b/pandas/core/groupby/__init__.py index 8248f378e2c1a..7b98acef059e2 100644 --- a/pandas/core/groupby/__init__.py +++ b/pandas/core/groupby/__init__.py @@ -3,8 +3,12 @@ NamedAgg, SeriesGroupBy, ) -from pandas.core.groupby.groupby import GroupBy -from pandas.core.groupby.grouper import Grouper +from pandas.core.groupby.groupby import ( + GroupBy, +) +from pandas.core.groupby.grouper import ( + Grouper, +) __all__ = [ "DataFrameGroupBy", diff --git a/pandas/core/groupby/base.py b/pandas/core/groupby/base.py index 0f6d39be7d32f..c466fd0924573 100644 --- a/pandas/core/groupby/base.py +++ b/pandas/core/groupby/base.py @@ -1,10 +1,14 @@ """ Provide basic components for groupby. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import dataclasses -from typing import Hashable +from typing import ( + Hashable, +) @dataclasses.dataclass(order=True, frozen=True) diff --git a/pandas/core/groupby/categorical.py b/pandas/core/groupby/categorical.py index 20248cd69bfb9..8c37b94e3a595 100644 --- a/pandas/core/groupby/categorical.py +++ b/pandas/core/groupby/categorical.py @@ -1,8 +1,12 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import numpy as np -from pandas.core.algorithms import unique1d +from pandas.core.algorithms import ( + unique1d, +) from pandas.core.arrays.categorical import ( Categorical, CategoricalDtype, diff --git a/pandas/core/groupby/generic.py b/pandas/core/groupby/generic.py index 60c43b6cf0ecd..499e7bf91bb87 100644 --- a/pandas/core/groupby/generic.py +++ b/pandas/core/groupby/generic.py @@ -5,11 +5,19 @@ These are user facing as the result of the ``df.groupby(...)`` operations, which here returns a DataFrameGroupBy object. """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from collections import abc -from functools import partial -from textwrap import dedent +from collections import ( + abc, +) +from functools import ( + partial, +) +from textwrap import ( + dedent, +) from typing import ( TYPE_CHECKING, Any, @@ -43,7 +51,9 @@ SingleManager, TakeIndexer, ) -from pandas.errors import SpecificationError +from pandas.errors import ( + SpecificationError, +) from pandas.util._decorators import ( Appender, Substitution, @@ -65,7 +75,9 @@ notna, ) -from pandas.core import algorithms +from pandas.core import ( + algorithms, +) from pandas.core.apply import ( GroupByApply, maybe_mangle_lambdas, @@ -73,8 +85,12 @@ validate_func_kwargs, ) import pandas.core.common as com -from pandas.core.frame import DataFrame -from pandas.core.groupby import base +from pandas.core.frame import ( + DataFrame, +) +from pandas.core.groupby import ( + base, +) from pandas.core.groupby.groupby import ( GroupBy, GroupByPlot, @@ -88,14 +104,24 @@ all_indexes_same, default_index, ) -from pandas.core.series import Series -from pandas.core.util.numba_ import maybe_use_numba +from pandas.core.series import ( + Series, +) +from pandas.core.util.numba_ import ( + maybe_use_numba, +) -from pandas.plotting import boxplot_frame_groupby +from pandas.plotting import ( + boxplot_frame_groupby, +) if TYPE_CHECKING: - from pandas import Categorical - from pandas.core.generic import NDFrame + from pandas import ( + Categorical, + ) + from pandas.core.generic import ( + NDFrame, + ) # TODO(typing) the return value on this callable should be any *scalar*. AggScalar = Union[str, Callable[..., Any]] @@ -313,7 +339,9 @@ def _aggregate_multiple_funcs(self, arg, *args, **kwargs) -> DataFrame: results[key] = self.aggregate(func, *args, **kwargs) if any(isinstance(x, DataFrame) for x in results.values()): - from pandas import concat + from pandas import ( + concat, + ) res_df = concat( results.values(), axis=1, keys=[key.label for key in results] @@ -506,7 +534,9 @@ def _transform_general(self, func: Callable, *args, **kwargs) -> Series: # check for empty "results" to avoid concat ValueError if results: - from pandas.core.reshape.concat import concat + from pandas.core.reshape.concat import ( + concat, + ) concatenated = concat(results) result = self._set_result_index_ordered(concatenated) @@ -659,8 +689,12 @@ def value_counts( result.name = name return result - from pandas.core.reshape.merge import get_join_indexers - from pandas.core.reshape.tile import cut + from pandas.core.reshape.merge import ( + get_join_indexers, + ) + from pandas.core.reshape.tile import ( + cut, + ) ids, _, _ = self.grouper.group_info val = self.obj._values @@ -1522,7 +1556,9 @@ def arr_func(bvalues: ArrayLike) -> ArrayLike: return res_df def _transform_general(self, func, *args, **kwargs): - from pandas.core.reshape.concat import concat + from pandas.core.reshape.concat import ( + concat, + ) applied = [] obj = self._obj_with_exclusions @@ -1822,7 +1858,9 @@ def _wrap_agged_manager(self, mgr: Manager2D) -> DataFrame: return self.obj._constructor(mgr) def _apply_to_column_groupbys(self, func) -> DataFrame: - from pandas.core.reshape.concat import concat + from pandas.core.reshape.concat import ( + concat, + ) obj = self._obj_with_exclusions columns = obj.columns @@ -2595,7 +2633,9 @@ def corrwith( def _wrap_transform_general_frame( obj: DataFrame, group: DataFrame, res: DataFrame | Series ) -> DataFrame: - from pandas import concat + from pandas import ( + concat, + ) if isinstance(res, Series): # we need to broadcast across the diff --git a/pandas/core/groupby/groupby.py b/pandas/core/groupby/groupby.py index 55e14bc11246b..aac45d28d8464 100644 --- a/pandas/core/groupby/groupby.py +++ b/pandas/core/groupby/groupby.py @@ -6,7 +6,9 @@ class providing the base-class of operations. (defined in pandas.core.groupby.generic) expose these user-facing objects to provide specific functionality. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import datetime from functools import ( @@ -14,7 +16,9 @@ class providing the base-class of operations. wraps, ) import inspect -from textwrap import dedent +from textwrap import ( + dedent, +) from typing import ( TYPE_CHECKING, Callable, @@ -33,15 +37,21 @@ class providing the base-class of operations. import numpy as np -from pandas._config.config import option_context +from pandas._config.config import ( + option_context, +) from pandas._libs import ( Timestamp, lib, ) -from pandas._libs.algos import rank_1d +from pandas._libs.algos import ( + rank_1d, +) import pandas._libs.groupby as libgroupby -from pandas._libs.missing import NA +from pandas._libs.missing import ( + NA, +) from pandas._typing import ( AnyArrayLike, ArrayLike, @@ -57,7 +67,9 @@ class providing the base-class of operations. T, npt, ) -from pandas.compat.numpy import function as nv +from pandas.compat.numpy import ( + function as nv, +) from pandas.errors import ( AbstractMethodError, DataError, @@ -69,7 +81,9 @@ class providing the base-class of operations. doc, ) -from pandas.core.dtypes.cast import ensure_dtype_can_hold_na +from pandas.core.dtypes.cast import ( + ensure_dtype_can_hold_na, +) from pandas.core.dtypes.common import ( is_bool_dtype, is_float_dtype, @@ -90,7 +104,9 @@ class providing the base-class of operations. algorithms, sample, ) -from pandas.core._numba import executor +from pandas.core._numba import ( + executor, +) from pandas.core.arrays import ( BaseMaskedArray, BooleanArray, @@ -105,14 +121,20 @@ class providing the base-class of operations. SelectionMixin, ) import pandas.core.common as com -from pandas.core.frame import DataFrame -from pandas.core.generic import NDFrame +from pandas.core.frame import ( + DataFrame, +) +from pandas.core.generic import ( + NDFrame, +) from pandas.core.groupby import ( base, numba_, ops, ) -from pandas.core.groupby.grouper import get_grouper +from pandas.core.groupby.grouper import ( + get_grouper, +) from pandas.core.groupby.indexing import ( GroupByIndexingMixin, GroupByNthSelector, @@ -124,9 +146,15 @@ class providing the base-class of operations. RangeIndex, default_index, ) -from pandas.core.internals.blocks import ensure_block_shape -from pandas.core.series import Series -from pandas.core.sorting import get_group_index_sorter +from pandas.core.internals.blocks import ( + ensure_block_shape, +) +from pandas.core.series import ( + Series, +) +from pandas.core.sorting import ( + get_group_index_sorter, +) from pandas.core.util.numba_ import ( get_jit_arguments, maybe_use_numba, @@ -999,7 +1027,9 @@ def _concat_objects( not_indexed_same: bool = False, is_transform: bool = False, ): - from pandas.core.reshape.concat import concat + from pandas.core.reshape.concat import ( + concat, + ) if self.group_keys and not is_transform: if self.as_index: @@ -1838,7 +1868,9 @@ def mean( """ if maybe_use_numba(engine): - from pandas.core._numba.kernels import sliding_mean + from pandas.core._numba.kernels import ( + sliding_mean, + ) return self._numba_agg_general(sliding_mean, engine_kwargs) else: @@ -1929,7 +1961,9 @@ def std( Standard deviation of values within each group. """ if maybe_use_numba(engine): - from pandas.core._numba.kernels import sliding_var + from pandas.core._numba.kernels import ( + sliding_var, + ) return np.sqrt(self._numba_agg_general(sliding_var, engine_kwargs, ddof)) else: @@ -2012,7 +2046,9 @@ def var( Variance of values within each group. """ if maybe_use_numba(engine): - from pandas.core._numba.kernels import sliding_var + from pandas.core._numba.kernels import ( + sliding_var, + ) return self._numba_agg_general(sliding_var, engine_kwargs, ddof) else: @@ -2239,7 +2275,9 @@ def sum( engine_kwargs: dict[str, bool] | None = None, ): if maybe_use_numba(engine): - from pandas.core._numba.kernels import sliding_sum + from pandas.core._numba.kernels import ( + sliding_sum, + ) return self._numba_agg_general( sliding_sum, @@ -2276,7 +2314,9 @@ def min( engine_kwargs: dict[str, bool] | None = None, ): if maybe_use_numba(engine): - from pandas.core._numba.kernels import sliding_min_max + from pandas.core._numba.kernels import ( + sliding_min_max, + ) return self._numba_agg_general(sliding_min_max, engine_kwargs, False) else: @@ -2297,7 +2337,9 @@ def max( engine_kwargs: dict[str, bool] | None = None, ): if maybe_use_numba(engine): - from pandas.core._numba.kernels import sliding_min_max + from pandas.core._numba.kernels import ( + sliding_min_max, + ) return self._numba_agg_general(sliding_min_max, engine_kwargs, True) else: @@ -2605,7 +2647,9 @@ def resample(self, rule, *args, **kwargs): 2000-01-01 00:03:00 0 2 5 2000-01-01 00:03:00 5 1 """ - from pandas.core.resample import get_resampler_for_grouping + from pandas.core.resample import ( + get_resampler_for_grouping, + ) return get_resampler_for_grouping(self, rule, *args, **kwargs) @@ -2739,7 +2783,9 @@ def rolling(self, *args, **kwargs) -> RollingGroupby: 2 2 3 NaN 3 4 0.705 """ - from pandas.core.window import RollingGroupby + from pandas.core.window import ( + RollingGroupby, + ) return RollingGroupby( self._selected_obj, @@ -2757,7 +2803,9 @@ def expanding(self, *args, **kwargs) -> ExpandingGroupby: Return an expanding grouper, providing expanding functionality per group. """ - from pandas.core.window import ExpandingGroupby + from pandas.core.window import ( + ExpandingGroupby, + ) return ExpandingGroupby( self._selected_obj, @@ -2773,7 +2821,9 @@ def ewm(self, *args, **kwargs) -> ExponentialMovingWindowGroupby: """ Return an ewm grouper, providing ewm functionality per group. """ - from pandas.core.window import ExponentialMovingWindowGroupby + from pandas.core.window import ( + ExponentialMovingWindowGroupby, + ) return ExponentialMovingWindowGroupby( self._selected_obj, @@ -4232,11 +4282,15 @@ def get_groupby( ) -> GroupBy: klass: type[GroupBy] if isinstance(obj, Series): - from pandas.core.groupby.generic import SeriesGroupBy + from pandas.core.groupby.generic import ( + SeriesGroupBy, + ) klass = SeriesGroupBy elif isinstance(obj, DataFrame): - from pandas.core.groupby.generic import DataFrameGroupBy + from pandas.core.groupby.generic import ( + DataFrameGroupBy, + ) klass = DataFrameGroupBy else: # pragma: no cover diff --git a/pandas/core/groupby/grouper.py b/pandas/core/groupby/grouper.py index f735ce682fc83..d067aa500b536 100644 --- a/pandas/core/groupby/grouper.py +++ b/pandas/core/groupby/grouper.py @@ -2,7 +2,9 @@ Provide user facing operators for doing the split part of the split-apply-combine paradigm. """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, @@ -14,7 +16,9 @@ import numpy as np -from pandas._config import using_copy_on_write +from pandas._config import ( + using_copy_on_write, +) from pandas._typing import ( ArrayLike, @@ -22,9 +26,15 @@ NDFrameT, npt, ) -from pandas.errors import InvalidIndexError -from pandas.util._decorators import cache_readonly -from pandas.util._exceptions import find_stack_level +from pandas.errors import ( + InvalidIndexError, +) +from pandas.util._decorators import ( + cache_readonly, +) +from pandas.util._exceptions import ( + find_stack_level, +) from pandas.core.dtypes.common import ( is_categorical_dtype, @@ -32,26 +42,40 @@ is_scalar, ) -from pandas.core import algorithms +from pandas.core import ( + algorithms, +) from pandas.core.arrays import ( Categorical, ExtensionArray, ) import pandas.core.common as com -from pandas.core.frame import DataFrame -from pandas.core.groupby import ops -from pandas.core.groupby.categorical import recode_for_groupby +from pandas.core.frame import ( + DataFrame, +) +from pandas.core.groupby import ( + ops, +) +from pandas.core.groupby.categorical import ( + recode_for_groupby, +) from pandas.core.indexes.api import ( CategoricalIndex, Index, MultiIndex, ) -from pandas.core.series import Series +from pandas.core.series import ( + Series, +) -from pandas.io.formats.printing import pprint_thing +from pandas.io.formats.printing import ( + pprint_thing, +) if TYPE_CHECKING: - from pandas.core.generic import NDFrame + from pandas.core.generic import ( + NDFrame, + ) class Grouper: @@ -248,7 +272,9 @@ class Grouper: def __new__(cls, *args, **kwargs): if kwargs.get("freq") is not None: - from pandas.core.resample import TimeGrouper + from pandas.core.resample import ( + TimeGrouper, + ) cls = TimeGrouper return super().__new__(cls) diff --git a/pandas/core/groupby/indexing.py b/pandas/core/groupby/indexing.py index 911ee0e8e4725..b687a8625d7ec 100644 --- a/pandas/core/groupby/indexing.py +++ b/pandas/core/groupby/indexing.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, @@ -9,7 +11,9 @@ import numpy as np -from pandas._typing import PositionalIndexer +from pandas._typing import ( + PositionalIndexer, +) from pandas.util._decorators import ( cache_readonly, doc, @@ -25,7 +29,9 @@ DataFrame, Series, ) - from pandas.core.groupby import groupby + from pandas.core.groupby import ( + groupby, + ) class GroupByIndexingMixin: diff --git a/pandas/core/groupby/numba_.py b/pandas/core/groupby/numba_.py index 282cb81e743f9..329fa12b27940 100644 --- a/pandas/core/groupby/numba_.py +++ b/pandas/core/groupby/numba_.py @@ -1,5 +1,7 @@ """Common utilities for Numba operations with groupby ops""" -from __future__ import annotations +from __future__ import ( + annotations, +) import functools import inspect @@ -11,8 +13,12 @@ import numpy as np -from pandas._typing import Scalar -from pandas.compat._optional import import_optional_dependency +from pandas._typing import ( + Scalar, +) +from pandas.compat._optional import ( + import_optional_dependency, +) from pandas.core.util.numba_ import ( NumbaUtilError, diff --git a/pandas/core/groupby/ops.py b/pandas/core/groupby/ops.py index 726d75d705344..874ab9e516c0c 100644 --- a/pandas/core/groupby/ops.py +++ b/pandas/core/groupby/ops.py @@ -5,7 +5,9 @@ operations, primarily in cython. These classes (BaseGrouper and BinGrouper) are contained *in* the SeriesGroupBy and DataFrameGroupBy objects. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import collections import functools @@ -35,8 +37,12 @@ Shape, npt, ) -from pandas.errors import AbstractMethodError -from pandas.util._decorators import cache_readonly +from pandas.errors import ( + AbstractMethodError, +) +from pandas.util._decorators import ( + cache_readonly, +) from pandas.core.dtypes.cast import ( maybe_cast_pointwise_result, @@ -59,7 +65,9 @@ is_timedelta64_dtype, needs_i8_conversion, ) -from pandas.core.dtypes.dtypes import CategoricalDtype +from pandas.core.dtypes.dtypes import ( + CategoricalDtype, +) from pandas.core.dtypes.missing import ( isna, maybe_fill, @@ -76,16 +84,24 @@ BaseMaskedArray, BaseMaskedDtype, ) -from pandas.core.arrays.string_ import StringDtype -from pandas.core.frame import DataFrame -from pandas.core.groupby import grouper +from pandas.core.arrays.string_ import ( + StringDtype, +) +from pandas.core.frame import ( + DataFrame, +) +from pandas.core.groupby import ( + grouper, +) from pandas.core.indexes.api import ( CategoricalIndex, Index, MultiIndex, ensure_index, ) -from pandas.core.series import Series +from pandas.core.series import ( + Series, +) from pandas.core.sorting import ( compress_group_index, decons_obs_group_ids, @@ -96,7 +112,9 @@ ) if TYPE_CHECKING: - from pandas.core.generic import NDFrame + from pandas.core.generic import ( + NDFrame, + ) class WrappedCythonOp: diff --git a/pandas/core/indexers/objects.py b/pandas/core/indexers/objects.py index 714fe92301a08..e427a655bb760 100644 --- a/pandas/core/indexers/objects.py +++ b/pandas/core/indexers/objects.py @@ -1,16 +1,28 @@ """Indexer objects for computing start/end window bounds for rolling operations""" -from __future__ import annotations +from __future__ import ( + annotations, +) -from datetime import timedelta +from datetime import ( + timedelta, +) import numpy as np -from pandas._libs.window.indexers import calculate_variable_window_bounds -from pandas.util._decorators import Appender +from pandas._libs.window.indexers import ( + calculate_variable_window_bounds, +) +from pandas.util._decorators import ( + Appender, +) -from pandas.core.dtypes.common import ensure_platform_int +from pandas.core.dtypes.common import ( + ensure_platform_int, +) -from pandas.tseries.offsets import Nano +from pandas.tseries.offsets import ( + Nano, +) get_window_bounds_doc = """ Computes the bounds of a window. diff --git a/pandas/core/indexers/utils.py b/pandas/core/indexers/utils.py index 0674831aaa6f3..0347f762ec4a5 100644 --- a/pandas/core/indexers/utils.py +++ b/pandas/core/indexers/utils.py @@ -1,7 +1,9 @@ """ Low-dependency indexing utilities. """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, @@ -10,7 +12,9 @@ import numpy as np -from pandas._typing import AnyArrayLike +from pandas._typing import ( + AnyArrayLike, +) from pandas.core.dtypes.common import ( is_array_like, @@ -26,8 +30,12 @@ ) if TYPE_CHECKING: - from pandas.core.frame import DataFrame - from pandas.core.indexes.base import Index + from pandas.core.frame import ( + DataFrame, + ) + from pandas.core.indexes.base import ( + Index, + ) # ----------------------------------------------------------- # Indexer Identification @@ -510,7 +518,9 @@ def check_array_indexer(array: AnyArrayLike, indexer: Any) -> Any: ... IndexError: arrays used as indices must be of integer or boolean type """ - from pandas.core.construction import array as pd_array + from pandas.core.construction import ( + array as pd_array, + ) # whatever is not an array-like is returned as-is (possible valid array # indexers that are not array-like: integer, slice, Ellipsis, None) diff --git a/pandas/core/indexes/accessors.py b/pandas/core/indexes/accessors.py index 788448f2c7be6..850be8511c280 100644 --- a/pandas/core/indexes/accessors.py +++ b/pandas/core/indexes/accessors.py @@ -1,7 +1,9 @@ """ datetimelike delegation """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, @@ -19,7 +21,9 @@ is_period_dtype, is_timedelta64_dtype, ) -from pandas.core.dtypes.generic import ABCSeries +from pandas.core.dtypes.generic import ( + ABCSeries, +) from pandas.core.accessor import ( PandasDelegate, @@ -30,14 +34,22 @@ PeriodArray, TimedeltaArray, ) -from pandas.core.arrays.arrow.array import ArrowExtensionArray -from pandas.core.arrays.arrow.dtype import ArrowDtype +from pandas.core.arrays.arrow.array import ( + ArrowExtensionArray, +) +from pandas.core.arrays.arrow.dtype import ( + ArrowDtype, +) from pandas.core.base import ( NoNewAttributesMixin, PandasObject, ) -from pandas.core.indexes.datetimes import DatetimeIndex -from pandas.core.indexes.timedeltas import TimedeltaIndex +from pandas.core.indexes.datetimes import ( + DatetimeIndex, +) +from pandas.core.indexes.timedeltas import ( + TimedeltaIndex, +) if TYPE_CHECKING: from pandas import ( @@ -82,7 +94,9 @@ def _get_values(self): ) def _delegate_property_get(self, name): - from pandas import Series + from pandas import ( + Series, + ) values = self._get_values() @@ -120,7 +134,9 @@ def _delegate_property_set(self, name, value, *args, **kwargs): ) def _delegate_method(self, name, *args, **kwargs): - from pandas import Series + from pandas import ( + Series, + ) values = self._get_values() @@ -210,7 +226,9 @@ def _delegate_method(self, name: str, *args, **kwargs): return result def isocalendar(self): - from pandas import DataFrame + from pandas import ( + DataFrame, + ) result = ( cast(ArrowExtensionArray, self._parent.array) diff --git a/pandas/core/indexes/api.py b/pandas/core/indexes/api.py index fcf529f5be9ac..4b5c55aa9c8a3 100644 --- a/pandas/core/indexes/api.py +++ b/pandas/core/indexes/api.py @@ -1,7 +1,11 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import textwrap -from typing import cast +from typing import ( + cast, +) import numpy as np @@ -9,12 +13,20 @@ NaT, lib, ) -from pandas._typing import Axis -from pandas.errors import InvalidIndexError +from pandas._typing import ( + Axis, +) +from pandas.errors import ( + InvalidIndexError, +) -from pandas.core.dtypes.cast import find_common_type +from pandas.core.dtypes.cast import ( + find_common_type, +) -from pandas.core.algorithms import safe_sort +from pandas.core.algorithms import ( + safe_sort, +) from pandas.core.indexes.base import ( Index, _new_Index, @@ -22,13 +34,27 @@ ensure_index_from_sequences, get_unanimous_names, ) -from pandas.core.indexes.category import CategoricalIndex -from pandas.core.indexes.datetimes import DatetimeIndex -from pandas.core.indexes.interval import IntervalIndex -from pandas.core.indexes.multi import MultiIndex -from pandas.core.indexes.period import PeriodIndex -from pandas.core.indexes.range import RangeIndex -from pandas.core.indexes.timedeltas import TimedeltaIndex +from pandas.core.indexes.category import ( + CategoricalIndex, +) +from pandas.core.indexes.datetimes import ( + DatetimeIndex, +) +from pandas.core.indexes.interval import ( + IntervalIndex, +) +from pandas.core.indexes.multi import ( + MultiIndex, +) +from pandas.core.indexes.period import ( + PeriodIndex, +) +from pandas.core.indexes.range import ( + RangeIndex, +) +from pandas.core.indexes.timedeltas import ( + TimedeltaIndex, +) _sort_msg = textwrap.dedent( """\ diff --git a/pandas/core/indexes/base.py b/pandas/core/indexes/base.py index acebe8a498f03..dd076a2c6086c 100644 --- a/pandas/core/indexes/base.py +++ b/pandas/core/indexes/base.py @@ -1,8 +1,14 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from datetime import datetime +from datetime import ( + datetime, +) import functools -from itertools import zip_longest +from itertools import ( + zip_longest, +) import operator from typing import ( TYPE_CHECKING, @@ -23,7 +29,9 @@ import numpy as np -from pandas._config import get_option +from pandas._config import ( + get_option, +) from pandas._libs import ( NaT, @@ -36,7 +44,9 @@ is_datetime_array, no_default, ) -from pandas._libs.missing import is_float_nan +from pandas._libs.missing import ( + is_float_nan, +) from pandas._libs.tslibs import ( IncompatibleFrequency, OutOfBoundsDatetime, @@ -58,7 +68,9 @@ Shape, npt, ) -from pandas.compat.numpy import function as nv +from pandas.compat.numpy import ( + function as nv, +) from pandas.errors import ( DuplicateLabelError, InvalidIndexError, @@ -73,7 +85,9 @@ rewrite_exception, ) -from pandas.core.dtypes.astype import astype_array +from pandas.core.dtypes.astype import ( + astype_array, +) from pandas.core.dtypes.cast import ( LossySetitemError, can_hold_element, @@ -110,7 +124,9 @@ pandas_dtype, validate_all_hashable, ) -from pandas.core.dtypes.concat import concat_compat +from pandas.core.dtypes.concat import ( + concat_compat, +) from pandas.core.dtypes.dtypes import ( CategoricalDtype, DatetimeTZDtype, @@ -126,7 +142,9 @@ ABCSeries, ABCTimedeltaIndex, ) -from pandas.core.dtypes.inference import is_dict_like +from pandas.core.dtypes.inference import ( + is_dict_like, +) from pandas.core.dtypes.missing import ( array_equivalent, is_valid_na_for_dtype, @@ -137,7 +155,9 @@ arraylike, ops, ) -from pandas.core.accessor import CachedAccessor +from pandas.core.accessor import ( + CachedAccessor, +) import pandas.core.algorithms as algos from pandas.core.array_algos.putmask import ( setitem_datetimelike_compat, @@ -149,7 +169,9 @@ Categorical, ExtensionArray, ) -from pandas.core.arrays.string_ import StringArray +from pandas.core.arrays.string_ import ( + StringArray, +) from pandas.core.base import ( IndexOpsMixin, PandasObject, @@ -160,17 +182,29 @@ extract_array, sanitize_array, ) -from pandas.core.indexers import disallow_ndim_indexing -from pandas.core.indexes.frozen import FrozenList -from pandas.core.missing import clean_reindex_fill_method -from pandas.core.ops import get_op_result_name -from pandas.core.ops.invalid import make_invalid_op +from pandas.core.indexers import ( + disallow_ndim_indexing, +) +from pandas.core.indexes.frozen import ( + FrozenList, +) +from pandas.core.missing import ( + clean_reindex_fill_method, +) +from pandas.core.ops import ( + get_op_result_name, +) +from pandas.core.ops.invalid import ( + make_invalid_op, +) from pandas.core.sorting import ( ensure_key_mapped, get_group_index_sorter, nargsort, ) -from pandas.core.strings.accessor import StringMethods +from pandas.core.strings.accessor import ( + StringMethods, +) from pandas.io.formats.printing import ( PrettyDict, @@ -186,7 +220,9 @@ MultiIndex, Series, ) - from pandas.core.arrays import PeriodArray + from pandas.core.arrays import ( + PeriodArray, + ) __all__ = ["Index"] @@ -273,7 +309,9 @@ def _new_Index(cls, d): # required for backward compat, because PI can't be instantiated with # ordinals through __new__ GH #13277 if issubclass(cls, ABCPeriodIndex): - from pandas.core.indexes.period import _new_PeriodIndex + from pandas.core.indexes.period import ( + _new_PeriodIndex, + ) return _new_PeriodIndex(cls, **d) @@ -468,7 +506,9 @@ def __new__( name=None, tupleize_cols: bool = True, ) -> Index: - from pandas.core.indexes.range import RangeIndex + from pandas.core.indexes.range import ( + RangeIndex, + ) name = maybe_extract_name(name, data, cls) @@ -520,7 +560,9 @@ def __new__( if data and all(isinstance(e, tuple) for e in data): # we must be all tuples, otherwise don't construct # 10697 - from pandas.core.indexes.multi import MultiIndex + from pandas.core.indexes.multi import ( + MultiIndex, + ) return MultiIndex.from_tuples(data, names=name) # other iterable of some kind @@ -577,31 +619,43 @@ def _dtype_to_subclass(cls, dtype: DtypeObj): if isinstance(dtype, ExtensionDtype): if isinstance(dtype, DatetimeTZDtype): - from pandas import DatetimeIndex + from pandas import ( + DatetimeIndex, + ) return DatetimeIndex elif isinstance(dtype, CategoricalDtype): - from pandas import CategoricalIndex + from pandas import ( + CategoricalIndex, + ) return CategoricalIndex elif isinstance(dtype, IntervalDtype): - from pandas import IntervalIndex + from pandas import ( + IntervalIndex, + ) return IntervalIndex elif isinstance(dtype, PeriodDtype): - from pandas import PeriodIndex + from pandas import ( + PeriodIndex, + ) return PeriodIndex return Index if dtype.kind == "M": - from pandas import DatetimeIndex + from pandas import ( + DatetimeIndex, + ) return DatetimeIndex elif dtype.kind == "m": - from pandas import TimedeltaIndex + from pandas import ( + TimedeltaIndex, + ) return TimedeltaIndex @@ -707,7 +761,9 @@ def _format_duplicate_message(self) -> DataFrame: label a [0, 2] """ - from pandas import Series + from pandas import ( + Series, + ) duplicates = self[self.duplicated(keep="first")].unique() assert len(duplicates) @@ -1318,7 +1374,9 @@ def format( return self._format_with_header(header, na_rep=na_rep) def _format_with_header(self, header: list[str_t], na_rep: str_t) -> list[str_t]: - from pandas.io.formats.format import format_array + from pandas.io.formats.format import ( + format_array, + ) values = self._values @@ -1350,7 +1408,9 @@ def _format_native_types( """ Actually format specific types of the index. """ - from pandas.io.formats.format import FloatArrayFormatter + from pandas.io.formats.format import ( + FloatArrayFormatter, + ) if is_float_dtype(self.dtype) and not is_extension_array_dtype(self.dtype): formatter = FloatArrayFormatter( @@ -1483,7 +1543,9 @@ def to_series(self, index=None, name: Hashable = None) -> Series: Cow Cow Name: zoo, dtype: object """ - from pandas import Series + from pandas import ( + Series, + ) if index is None: index = self._view() @@ -1543,7 +1605,9 @@ def to_frame( 1 Bear 2 Cow """ - from pandas import DataFrame + from pandas import ( + DataFrame, + ) if name is lib.no_default: name = self._get_level_names() @@ -1582,7 +1646,9 @@ def _validate_names( Handles the quirks of having a singular 'name' parameter for general Index and plural 'names' parameter for MultiIndex. """ - from copy import deepcopy + from copy import ( + deepcopy, + ) if names is not None and name is not None: raise TypeError("Can only provide one of `names` and `name`") @@ -1625,7 +1691,9 @@ def _get_default_index_names( TypeError if names not str or list-like """ - from pandas.core.indexes.multi import MultiIndex + from pandas.core.indexes.multi import ( + MultiIndex, + ) if names is not None: if isinstance(names, (int, str)): @@ -2069,7 +2137,9 @@ def _drop_level_numbers(self, levnums: list[int]): return result else: - from pandas.core.indexes.multi import MultiIndex + from pandas.core.indexes.multi import ( + MultiIndex, + ) return MultiIndex( levels=new_levels, @@ -4538,8 +4608,12 @@ def _join_via_get_indexer( @final def _join_multi(self, other: Index, how: JoinHow): - from pandas.core.indexes.multi import MultiIndex - from pandas.core.reshape.merge import restore_dropped_levels_multijoin + from pandas.core.indexes.multi import ( + MultiIndex, + ) + from pandas.core.reshape.merge import ( + restore_dropped_levels_multijoin, + ) # figure out join names self_names_list = list(com.not_none(*self.names)) @@ -4622,7 +4696,9 @@ def _join_multi(self, other: Index, how: JoinHow): def _join_non_unique( self, other: Index, how: JoinHow = "left" ) -> tuple[Index, npt.NDArray[np.intp], npt.NDArray[np.intp]]: - from pandas.core.reshape.merge import get_join_indexers + from pandas.core.reshape.merge import ( + get_join_indexers, + ) # We only get here if dtypes match assert self.dtype == other.dtype @@ -4650,7 +4726,9 @@ def _join_level( MultiIndex will not be changed; otherwise, it will tie out with `other`. """ - from pandas.core.indexes.multi import MultiIndex + from pandas.core.indexes.multi import ( + MultiIndex, + ) def _get_leaf_sorter(labels: list[np.ndarray]) -> npt.NDArray[np.intp]: """ @@ -4905,7 +4983,9 @@ def values(self) -> ArrayLike: def array(self) -> ExtensionArray: array = self._data if isinstance(array, np.ndarray): - from pandas.core.arrays.numpy_ import PandasArray + from pandas.core.arrays.numpy_ import ( + PandasArray, + ) array = PandasArray(array) return array @@ -6128,7 +6208,9 @@ def map(self, mapper, na_action=None): If the function returns a tuple with more than one element a MultiIndex will be returned. """ - from pandas.core.indexes.multi import MultiIndex + from pandas.core.indexes.multi import ( + MultiIndex, + ) new_values = self._map_values(mapper, na_action=na_action) @@ -7027,7 +7109,9 @@ def ensure_index_from_sequences(sequences, names=None) -> Index: -------- ensure_index """ - from pandas.core.indexes.multi import MultiIndex + from pandas.core.indexes.multi import ( + MultiIndex, + ) if len(sequences) == 1: if names is not None: @@ -7087,7 +7171,9 @@ def ensure_index(index_like: Axes, copy: bool = False) -> Index: index_like = list(index_like) if len(index_like) and lib.is_all_arraylike(index_like): - from pandas.core.indexes.multi import MultiIndex + from pandas.core.indexes.multi import ( + MultiIndex, + ) return MultiIndex.from_arrays(index_like) else: diff --git a/pandas/core/indexes/category.py b/pandas/core/indexes/category.py index 51ff92560fe5f..d9a2aaf0663d2 100644 --- a/pandas/core/indexes/category.py +++ b/pandas/core/indexes/category.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( Any, @@ -7,7 +9,9 @@ import numpy as np -from pandas._libs import index as libindex +from pandas._libs import ( + index as libindex, +) from pandas._typing import ( Dtype, DtypeObj, @@ -32,7 +36,9 @@ Categorical, contains, ) -from pandas.core.construction import extract_array +from pandas.core.construction import ( + extract_array, +) import pandas.core.indexes.base as ibase from pandas.core.indexes.base import ( Index, @@ -43,7 +49,9 @@ inherit_names, ) -from pandas.io.formats.printing import pprint_thing +from pandas.io.formats.printing import ( + pprint_thing, +) _index_doc_kwargs: dict[str, str] = dict(ibase._index_doc_kwargs) _index_doc_kwargs.update({"target_klass": "CategoricalIndex"}) @@ -478,7 +486,9 @@ def _concat(self, to_concat: list[Index], name: Hashable) -> Index: ) except TypeError: # not all to_concat elements are among our categories (or NA) - from pandas.core.dtypes.concat import concat_compat + from pandas.core.dtypes.concat import ( + concat_compat, + ) res = concat_compat([x._values for x in to_concat]) return Index(res, name=name) diff --git a/pandas/core/indexes/datetimelike.py b/pandas/core/indexes/datetimelike.py index 9237423fb03b4..519f9ce56bb17 100644 --- a/pandas/core/indexes/datetimelike.py +++ b/pandas/core/indexes/datetimelike.py @@ -1,13 +1,17 @@ """ Base and utility classes for tseries type pandas objects. """ -from __future__ import annotations +from __future__ import ( + annotations, +) from abc import ( ABC, abstractmethod, ) -from datetime import datetime +from datetime import ( + datetime, +) from typing import ( TYPE_CHECKING, Any, @@ -36,8 +40,12 @@ Axis, npt, ) -from pandas.compat.numpy import function as nv -from pandas.errors import NullFrequencyError +from pandas.compat.numpy import ( + function as nv, +) +from pandas.errors import ( + NullFrequencyError, +) from pandas.util._decorators import ( Appender, cache_readonly, @@ -50,7 +58,9 @@ is_integer, is_list_like, ) -from pandas.core.dtypes.concat import concat_compat +from pandas.core.dtypes.concat import ( + concat_compat, +) from pandas.core.arrays import ( DatetimeArray, @@ -58,19 +68,29 @@ PeriodArray, TimedeltaArray, ) -from pandas.core.arrays.datetimelike import DatetimeLikeArrayMixin +from pandas.core.arrays.datetimelike import ( + DatetimeLikeArrayMixin, +) import pandas.core.common as com import pandas.core.indexes.base as ibase from pandas.core.indexes.base import ( Index, _index_shared_docs, ) -from pandas.core.indexes.extension import NDArrayBackedExtensionIndex -from pandas.core.indexes.range import RangeIndex -from pandas.core.tools.timedeltas import to_timedelta +from pandas.core.indexes.extension import ( + NDArrayBackedExtensionIndex, +) +from pandas.core.indexes.range import ( + RangeIndex, +) +from pandas.core.tools.timedeltas import ( + to_timedelta, +) if TYPE_CHECKING: - from pandas import CategoricalIndex + from pandas import ( + CategoricalIndex, + ) _index_doc_kwargs = dict(ibase._index_doc_kwargs) diff --git a/pandas/core/indexes/datetimes.py b/pandas/core/indexes/datetimes.py index 096e501c7bd6e..1e0374b27c6e3 100644 --- a/pandas/core/indexes/datetimes.py +++ b/pandas/core/indexes/datetimes.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import datetime as dt import operator @@ -24,7 +26,9 @@ timezones, to_offset, ) -from pandas._libs.tslibs.offsets import prefix_mapping +from pandas._libs.tslibs.offsets import ( + prefix_mapping, +) from pandas._typing import ( Dtype, DtypeObj, @@ -44,7 +48,9 @@ is_datetime64tz_dtype, is_scalar, ) -from pandas.core.dtypes.missing import is_valid_na_for_dtype +from pandas.core.dtypes.missing import ( + is_valid_na_for_dtype, +) from pandas.core.arrays.datetimes import ( DatetimeArray, @@ -55,9 +61,15 @@ Index, maybe_extract_name, ) -from pandas.core.indexes.datetimelike import DatetimeTimedeltaMixin -from pandas.core.indexes.extension import inherit_names -from pandas.core.tools.times import to_time +from pandas.core.indexes.datetimelike import ( + DatetimeTimedeltaMixin, +) +from pandas.core.indexes.extension import ( + inherit_names, +) +from pandas.core.tools.times import ( + to_time, +) if TYPE_CHECKING: from pandas.core.api import ( @@ -280,7 +292,9 @@ def tz_localize( @doc(DatetimeArray.to_period) def to_period(self, freq=None) -> PeriodIndex: - from pandas.core.indexes.api import PeriodIndex + from pandas.core.indexes.api import ( + PeriodIndex, + ) arr = self._data.to_period(freq) return PeriodIndex._simple_new(arr, name=self.name) @@ -360,7 +374,9 @@ def _is_dates_only(self) -> bool: ------- bool """ - from pandas.io.formats.format import is_dates_only + from pandas.io.formats.format import ( + is_dates_only, + ) # error: Argument 1 to "is_dates_only" has incompatible type # "Union[ExtensionArray, ndarray]"; expected "Union[ndarray, @@ -386,7 +402,9 @@ def _is_comparable_dtype(self, dtype: DtypeObj) -> bool: @property def _formatter_func(self): - from pandas.io.formats.format import get_format_datetime64 + from pandas.io.formats.format import ( + get_format_datetime64, + ) formatter = get_format_datetime64(is_dates_only_=self._is_dates_only) return lambda x: f"'{formatter(x)}'" @@ -687,7 +705,9 @@ def indexer_at_time(self, time, asof: bool = False) -> npt.NDArray[np.intp]: raise NotImplementedError("'asof' argument is not supported") if isinstance(time, str): - from dateutil.parser import parse + from dateutil.parser import ( + parse, + ) time = parse(time).time() diff --git a/pandas/core/indexes/extension.py b/pandas/core/indexes/extension.py index 81d502b60d609..e4e25924cffb5 100644 --- a/pandas/core/indexes/extension.py +++ b/pandas/core/indexes/extension.py @@ -1,7 +1,9 @@ """ Shared methods for Index subclasses backed by ExtensionArray. """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, @@ -20,13 +22,21 @@ doc, ) -from pandas.core.dtypes.generic import ABCDataFrame +from pandas.core.dtypes.generic import ( + ABCDataFrame, +) -from pandas.core.indexes.base import Index +from pandas.core.indexes.base import ( + Index, +) if TYPE_CHECKING: - from pandas.core.arrays import IntervalArray - from pandas.core.arrays._mixins import NDArrayBackedExtensionArray + from pandas.core.arrays import ( + IntervalArray, + ) + from pandas.core.arrays._mixins import ( + NDArrayBackedExtensionArray, + ) _T = TypeVar("_T", bound="NDArrayBackedExtensionIndex") _ExtensionIndexT = TypeVar("_ExtensionIndexT", bound="ExtensionIndex") diff --git a/pandas/core/indexes/frozen.py b/pandas/core/indexes/frozen.py index 3b8aefdbeb879..ca24769868bca 100644 --- a/pandas/core/indexes/frozen.py +++ b/pandas/core/indexes/frozen.py @@ -6,16 +6,22 @@ - .names (FrozenList) """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( Any, NoReturn, ) -from pandas.core.base import PandasObject +from pandas.core.base import ( + PandasObject, +) -from pandas.io.formats.printing import pprint_thing +from pandas.io.formats.printing import ( + pprint_thing, +) class FrozenList(PandasObject, list): diff --git a/pandas/core/indexes/interval.py b/pandas/core/indexes/interval.py index 47a7e59ba0229..dce2384de5b1a 100644 --- a/pandas/core/indexes/interval.py +++ b/pandas/core/indexes/interval.py @@ -1,5 +1,7 @@ """ define the IntervalIndex """ -from __future__ import annotations +from __future__ import ( + annotations, +) from operator import ( le, @@ -14,7 +16,9 @@ import numpy as np -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._libs.interval import ( Interval, IntervalMixin, @@ -32,12 +36,16 @@ IntervalClosedType, npt, ) -from pandas.errors import InvalidIndexError +from pandas.errors import ( + InvalidIndexError, +) from pandas.util._decorators import ( Appender, cache_readonly, ) -from pandas.util._exceptions import rewrite_exception +from pandas.util._exceptions import ( + rewrite_exception, +) from pandas.core.dtypes.cast import ( find_common_type, @@ -61,16 +69,24 @@ is_object_dtype, is_scalar, ) -from pandas.core.dtypes.dtypes import IntervalDtype -from pandas.core.dtypes.missing import is_valid_na_for_dtype +from pandas.core.dtypes.dtypes import ( + IntervalDtype, +) +from pandas.core.dtypes.missing import ( + is_valid_na_for_dtype, +) -from pandas.core.algorithms import unique +from pandas.core.algorithms import ( + unique, +) from pandas.core.arrays.interval import ( IntervalArray, _interval_shared_docs, ) import pandas.core.common as com -from pandas.core.indexers import is_valid_positional_slice +from pandas.core.indexers import ( + is_valid_positional_slice, +) import pandas.core.indexes.base as ibase from pandas.core.indexes.base import ( Index, @@ -86,7 +102,9 @@ ExtensionIndex, inherit_names, ) -from pandas.core.indexes.multi import MultiIndex +from pandas.core.indexes.multi import ( + MultiIndex, +) from pandas.core.indexes.timedeltas import ( TimedeltaIndex, timedelta_range, diff --git a/pandas/core/indexes/multi.py b/pandas/core/indexes/multi.py index b381752818ba0..bf9deebee414f 100644 --- a/pandas/core/indexes/multi.py +++ b/pandas/core/indexes/multi.py @@ -1,7 +1,13 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from functools import wraps -from sys import getsizeof +from functools import ( + wraps, +) +from sys import ( + getsizeof, +) from typing import ( TYPE_CHECKING, Any, @@ -19,14 +25,18 @@ import numpy as np -from pandas._config import get_option +from pandas._config import ( + get_option, +) from pandas._libs import ( algos as libalgos, index as libindex, lib, ) -from pandas._libs.hashtable import duplicated +from pandas._libs.hashtable import ( + duplicated, +) from pandas._typing import ( AnyAll, AnyArrayLike, @@ -40,7 +50,9 @@ Shape, npt, ) -from pandas.compat.numpy import function as nv +from pandas.compat.numpy import ( + function as nv, +) from pandas.errors import ( InvalidIndexError, PerformanceWarning, @@ -51,9 +63,13 @@ cache_readonly, doc, ) -from pandas.util._exceptions import find_stack_level +from pandas.util._exceptions import ( + find_stack_level, +) -from pandas.core.dtypes.cast import coerce_indexer_dtype +from pandas.core.dtypes.cast import ( + coerce_indexer_dtype, +) from pandas.core.dtypes.common import ( ensure_int64, ensure_platform_int, @@ -67,7 +83,9 @@ is_scalar, pandas_dtype, ) -from pandas.core.dtypes.dtypes import ExtensionDtype +from pandas.core.dtypes.dtypes import ( + ExtensionDtype, +) from pandas.core.dtypes.generic import ( ABCDataFrame, ABCDatetimeIndex, @@ -79,9 +97,15 @@ ) import pandas.core.algorithms as algos -from pandas.core.array_algos.putmask import validate_putmask -from pandas.core.arrays import Categorical -from pandas.core.arrays.categorical import factorize_from_iterables +from pandas.core.array_algos.putmask import ( + validate_putmask, +) +from pandas.core.arrays import ( + Categorical, +) +from pandas.core.arrays.categorical import ( + factorize_from_iterables, +) import pandas.core.common as com import pandas.core.indexes.base as ibase from pandas.core.indexes.base import ( @@ -90,15 +114,21 @@ ensure_index, get_unanimous_names, ) -from pandas.core.indexes.frozen import FrozenList -from pandas.core.ops.invalid import make_invalid_op +from pandas.core.indexes.frozen import ( + FrozenList, +) +from pandas.core.ops.invalid import ( + make_invalid_op, +) from pandas.core.sorting import ( get_group_index, indexer_from_factorized, lexsort_indexer, ) -from pandas.io.formats.printing import pprint_thing +from pandas.io.formats.printing import ( + pprint_thing, +) if TYPE_CHECKING: from pandas import ( @@ -640,7 +670,9 @@ def from_product( (2, 'purple')], names=['number', 'color']) """ - from pandas.core.reshape.util import cartesian_product + from pandas.core.reshape.util import ( + cartesian_product, + ) if not is_list_like(iterables): raise TypeError("Input must be a list / sequence of iterables.") @@ -771,7 +803,9 @@ def dtypes(self) -> Series: """ Return the dtypes as a Series for the underlying MultiIndex. """ - from pandas import Series + from pandas import ( + Series, + ) names = com.fill_missing_names([level.name for level in self.levels]) return Series([level.dtype for level in self.levels], index=Index(names)) @@ -1180,7 +1214,9 @@ def copy( # type: ignore[override] levels, codes = None, None if deep: - from copy import deepcopy + from copy import ( + deepcopy, + ) levels = deepcopy(self.levels) codes = deepcopy(self.codes) @@ -1379,7 +1415,9 @@ def format( ) if adjoin: - from pandas.io.formats.format import get_adjustment + from pandas.io.formats.format import ( + get_adjustment, + ) adj = get_adjustment() return adj.adjoin(space, *result_levels).split("\n") @@ -1721,7 +1759,9 @@ def to_frame( a c a c b d b d """ - from pandas import DataFrame + from pandas import ( + DataFrame, + ) if name is not lib.no_default: if not is_list_like(name): diff --git a/pandas/core/indexes/period.py b/pandas/core/indexes/period.py index 2d4f0736e30fa..63468cb66985a 100644 --- a/pandas/core/indexes/period.py +++ b/pandas/core/indexes/period.py @@ -1,14 +1,20 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from datetime import ( datetime, timedelta, ) -from typing import Hashable +from typing import ( + Hashable, +) import numpy as np -from pandas._libs import index as libindex +from pandas._libs import ( + index as libindex, +) from pandas._libs.tslibs import ( BaseOffset, NaT, @@ -26,9 +32,15 @@ doc, ) -from pandas.core.dtypes.common import is_integer -from pandas.core.dtypes.dtypes import PeriodDtype -from pandas.core.dtypes.missing import is_valid_na_for_dtype +from pandas.core.dtypes.common import ( + is_integer, +) +from pandas.core.dtypes.dtypes import ( + PeriodDtype, +) +from pandas.core.dtypes.missing import ( + is_valid_na_for_dtype, +) from pandas.core.arrays.period import ( PeriodArray, @@ -38,13 +50,19 @@ ) import pandas.core.common as com import pandas.core.indexes.base as ibase -from pandas.core.indexes.base import maybe_extract_name -from pandas.core.indexes.datetimelike import DatetimeIndexOpsMixin +from pandas.core.indexes.base import ( + maybe_extract_name, +) +from pandas.core.indexes.datetimelike import ( + DatetimeIndexOpsMixin, +) from pandas.core.indexes.datetimes import ( DatetimeIndex, Index, ) -from pandas.core.indexes.extension import inherit_names +from pandas.core.indexes.extension import ( + inherit_names, +) _index_doc_kwargs = dict(ibase._index_doc_kwargs) _index_doc_kwargs.update({"target_klass": "PeriodIndex or list of Periods"}) diff --git a/pandas/core/indexes/range.py b/pandas/core/indexes/range.py index 0be539a9c3216..e7576cae0ffe3 100644 --- a/pandas/core/indexes/range.py +++ b/pandas/core/indexes/range.py @@ -1,8 +1,14 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from datetime import timedelta +from datetime import ( + timedelta, +) import operator -from sys import getsizeof +from sys import ( + getsizeof, +) from typing import ( Any, Callable, @@ -18,13 +24,19 @@ index as libindex, lib, ) -from pandas._libs.algos import unique_deltas -from pandas._libs.lib import no_default +from pandas._libs.algos import ( + unique_deltas, +) +from pandas._libs.lib import ( + no_default, +) from pandas._typing import ( Dtype, npt, ) -from pandas.compat.numpy import function as nv +from pandas.compat.numpy import ( + function as nv, +) from pandas.util._decorators import ( cache_readonly, doc, @@ -39,17 +51,25 @@ is_signed_integer_dtype, is_timedelta64_dtype, ) -from pandas.core.dtypes.generic import ABCTimedeltaIndex +from pandas.core.dtypes.generic import ( + ABCTimedeltaIndex, +) -from pandas.core import ops +from pandas.core import ( + ops, +) import pandas.core.common as com -from pandas.core.construction import extract_array +from pandas.core.construction import ( + extract_array, +) import pandas.core.indexes.base as ibase from pandas.core.indexes.base import ( Index, maybe_extract_name, ) -from pandas.core.ops.common import unpack_zerodim_and_defer +from pandas.core.ops.common import ( + unpack_zerodim_and_defer, +) _empty_range = range(0) diff --git a/pandas/core/indexes/timedeltas.py b/pandas/core/indexes/timedeltas.py index e7ea54df62411..0be8fd3c1fe56 100644 --- a/pandas/core/indexes/timedeltas.py +++ b/pandas/core/indexes/timedeltas.py @@ -1,5 +1,7 @@ """ implement the TimedeltaIndex """ -from __future__ import annotations +from __future__ import ( + annotations, +) from pandas._libs import ( index as libindex, @@ -10,7 +12,9 @@ Timedelta, to_offset, ) -from pandas._typing import DtypeObj +from pandas._typing import ( + DtypeObj, +) from pandas.core.dtypes.common import ( is_dtype_equal, @@ -18,15 +22,23 @@ is_timedelta64_dtype, ) -from pandas.core.arrays import datetimelike as dtl -from pandas.core.arrays.timedeltas import TimedeltaArray +from pandas.core.arrays import ( + datetimelike as dtl, +) +from pandas.core.arrays.timedeltas import ( + TimedeltaArray, +) import pandas.core.common as com from pandas.core.indexes.base import ( Index, maybe_extract_name, ) -from pandas.core.indexes.datetimelike import DatetimeTimedeltaMixin -from pandas.core.indexes.extension import inherit_names +from pandas.core.indexes.datetimelike import ( + DatetimeTimedeltaMixin, +) +from pandas.core.indexes.extension import ( + inherit_names, +) @inherit_names( diff --git a/pandas/core/indexing.py b/pandas/core/indexing.py index 4c5bc659897d1..df76d31ebc203 100644 --- a/pandas/core/indexing.py +++ b/pandas/core/indexing.py @@ -1,6 +1,10 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from contextlib import suppress +from contextlib import ( + suppress, +) import sys from typing import ( TYPE_CHECKING, @@ -13,15 +17,23 @@ import numpy as np -from pandas._config import using_copy_on_write +from pandas._config import ( + using_copy_on_write, +) -from pandas._libs.indexing import NDFrameIndexerBase -from pandas._libs.lib import item_from_zerodim +from pandas._libs.indexing import ( + NDFrameIndexerBase, +) +from pandas._libs.lib import ( + item_from_zerodim, +) from pandas._typing import ( Axis, AxisInt, ) -from pandas.compat import PYPY +from pandas.compat import ( + PYPY, +) from pandas.errors import ( AbstractMethodError, ChainedAssignmentError, @@ -30,7 +42,9 @@ LossySetitemError, _chained_assignment_msg, ) -from pandas.util._decorators import doc +from pandas.util._decorators import ( + doc, +) from pandas.core.dtypes.cast import ( can_hold_element, @@ -49,7 +63,9 @@ is_scalar, is_sequence, ) -from pandas.core.dtypes.concat import concat_compat +from pandas.core.dtypes.concat import ( + concat_compat, +) from pandas.core.dtypes.generic import ( ABCDataFrame, ABCSeries, @@ -61,7 +77,9 @@ na_value_for_dtype, ) -from pandas.core import algorithms as algos +from pandas.core import ( + algorithms as algos, +) import pandas.core.common as com from pandas.core.construction import ( array as pd_array, @@ -1841,7 +1859,9 @@ def _setitem_with_indexer_split_path(self, indexer, value, name: str): raise ValueError(r"Cannot set values with ndim > 2") if (isinstance(value, ABCSeries) and name != "iloc") or isinstance(value, dict): - from pandas import Series + from pandas import ( + Series, + ) value = self._align_series(indexer, Series(value)) @@ -2029,7 +2049,9 @@ def _setitem_single_block(self, indexer, value, name: str) -> None: """ _setitem_with_indexer for the case when we have a single Block. """ - from pandas import Series + from pandas import ( + Series, + ) info_axis = self.obj._info_axis_number item_labels = self.obj._get_axis(info_axis) @@ -2071,7 +2093,9 @@ def _setitem_with_indexer_missing(self, indexer, value): """ Insert new row(s) or column(s) into the Series or DataFrame. """ - from pandas import Series + from pandas import ( + Series, + ) # reindex the axis to the new value # and set inplace diff --git a/pandas/core/interchange/buffer.py b/pandas/core/interchange/buffer.py index 0f62dd00a0f41..b95b7a3af92e4 100644 --- a/pandas/core/interchange/buffer.py +++ b/pandas/core/interchange/buffer.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import numpy as np @@ -6,7 +8,9 @@ Buffer, DlpackDeviceType, ) -from pandas.util.version import Version +from pandas.util.version import ( + Version, +) _NUMPY_HAS_DLPACK = Version(np.__version__) >= Version("1.22.0") diff --git a/pandas/core/interchange/column.py b/pandas/core/interchange/column.py index d8c6a58e77413..4e40f0b3b9996 100644 --- a/pandas/core/interchange/column.py +++ b/pandas/core/interchange/column.py @@ -1,20 +1,34 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from typing import Any +from typing import ( + Any, +) import numpy as np -from pandas._libs.lib import infer_dtype -from pandas._libs.tslibs import iNaT -from pandas.errors import NoBufferPresent -from pandas.util._decorators import cache_readonly +from pandas._libs.lib import ( + infer_dtype, +) +from pandas._libs.tslibs import ( + iNaT, +) +from pandas.errors import ( + NoBufferPresent, +) +from pandas.util._decorators import ( + cache_readonly, +) import pandas as pd from pandas.api.types import ( is_categorical_dtype, is_string_dtype, ) -from pandas.core.interchange.buffer import PandasBuffer +from pandas.core.interchange.buffer import ( + PandasBuffer, +) from pandas.core.interchange.dataframe_protocol import ( Column, ColumnBuffers, diff --git a/pandas/core/interchange/dataframe.py b/pandas/core/interchange/dataframe.py index 0de9b130f0aab..fe8a4b2006013 100644 --- a/pandas/core/interchange/dataframe.py +++ b/pandas/core/interchange/dataframe.py @@ -1,10 +1,20 @@ -from __future__ import annotations - -from collections import abc -from typing import TYPE_CHECKING - -from pandas.core.interchange.column import PandasColumn -from pandas.core.interchange.dataframe_protocol import DataFrame as DataFrameXchg +from __future__ import ( + annotations, +) + +from collections import ( + abc, +) +from typing import ( + TYPE_CHECKING, +) + +from pandas.core.interchange.column import ( + PandasColumn, +) +from pandas.core.interchange.dataframe_protocol import ( + DataFrame as DataFrameXchg, +) if TYPE_CHECKING: from pandas import ( diff --git a/pandas/core/interchange/dataframe_protocol.py b/pandas/core/interchange/dataframe_protocol.py index d36bda120e33d..b94340ce879f5 100644 --- a/pandas/core/interchange/dataframe_protocol.py +++ b/pandas/core/interchange/dataframe_protocol.py @@ -2,7 +2,9 @@ A verbatim copy (vendored) of the spec from https://github.com/data-apis/dataframe-api """ -from __future__ import annotations +from __future__ import ( + annotations, +) from abc import ( ABC, diff --git a/pandas/core/interchange/from_dataframe.py b/pandas/core/interchange/from_dataframe.py index 065387e1acefd..d36af0930d8de 100644 --- a/pandas/core/interchange/from_dataframe.py +++ b/pandas/core/interchange/from_dataframe.py @@ -1,13 +1,19 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import ctypes import re -from typing import Any +from typing import ( + Any, +) import numpy as np import pandas as pd -from pandas.core.interchange.column import PandasColumn +from pandas.core.interchange.column import ( + PandasColumn, +) from pandas.core.interchange.dataframe_protocol import ( Buffer, Column, diff --git a/pandas/core/interchange/utils.py b/pandas/core/interchange/utils.py index aa717d05aecb5..a01606928a7e4 100644 --- a/pandas/core/interchange/utils.py +++ b/pandas/core/interchange/utils.py @@ -2,17 +2,23 @@ Utility functions and objects for implementing the interchange API. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import re import typing import numpy as np -from pandas._typing import DtypeObj +from pandas._typing import ( + DtypeObj, +) import pandas as pd -from pandas.api.types import is_datetime64_dtype +from pandas.api.types import ( + is_datetime64_dtype, +) class ArrowCTypes: diff --git a/pandas/core/internals/__init__.py b/pandas/core/internals/__init__.py index 0797e62de7a9f..087b8036ee770 100644 --- a/pandas/core/internals/__init__.py +++ b/pandas/core/internals/__init__.py @@ -1,4 +1,6 @@ -from pandas.core.internals.api import make_block +from pandas.core.internals.api import ( + make_block, +) from pandas.core.internals.array_manager import ( ArrayManager, SingleArrayManager, @@ -14,7 +16,9 @@ NumericBlock, ObjectBlock, ) -from pandas.core.internals.concat import concatenate_managers +from pandas.core.internals.concat import ( + concatenate_managers, +) from pandas.core.internals.managers import ( BlockManager, SingleBlockManager, diff --git a/pandas/core/internals/api.py b/pandas/core/internals/api.py index 5e03621db2ad7..3515db37f0c9c 100644 --- a/pandas/core/internals/api.py +++ b/pandas/core/internals/api.py @@ -6,12 +6,18 @@ 2) Use only functions exposed here (or in core.internals) """ -from __future__ import annotations +from __future__ import ( + annotations, +) import numpy as np -from pandas._libs.internals import BlockPlacement -from pandas._typing import Dtype +from pandas._libs.internals import ( + BlockPlacement, +) +from pandas._typing import ( + Dtype, +) from pandas.core.dtypes.common import ( is_datetime64tz_dtype, @@ -19,8 +25,12 @@ pandas_dtype, ) -from pandas.core.arrays import DatetimeArray -from pandas.core.construction import extract_array +from pandas.core.arrays import ( + DatetimeArray, +) +from pandas.core.construction import ( + extract_array, +) from pandas.core.internals.blocks import ( Block, DatetimeTZBlock, diff --git a/pandas/core/internals/array_manager.py b/pandas/core/internals/array_manager.py index 87e549ae023ef..555ac5a8bcb28 100644 --- a/pandas/core/internals/array_manager.py +++ b/pandas/core/internals/array_manager.py @@ -1,7 +1,9 @@ """ Experimental manager based on storing a collection of 1D arrays """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( Any, @@ -25,9 +27,13 @@ QuantileInterpolation, npt, ) -from pandas.util._validators import validate_bool_kwarg +from pandas.util._validators import ( + validate_bool_kwarg, +) -from pandas.core.dtypes.astype import astype_array_safe +from pandas.core.dtypes.astype import ( + astype_array_safe, +) from pandas.core.dtypes.cast import ( ensure_dtype_can_hold_na, infer_dtype_from_scalar, @@ -57,15 +63,21 @@ ) import pandas.core.algorithms as algos -from pandas.core.array_algos.quantile import quantile_compat -from pandas.core.array_algos.take import take_1d +from pandas.core.array_algos.quantile import ( + quantile_compat, +) +from pandas.core.array_algos.take import ( + take_1d, +) from pandas.core.arrays import ( DatetimeArray, ExtensionArray, PandasArray, TimedeltaArray, ) -from pandas.core.arrays.sparse import SparseDtype +from pandas.core.arrays.sparse import ( + SparseDtype, +) from pandas.core.construction import ( ensure_wrapped_if_datetimelike, extract_array, diff --git a/pandas/core/internals/base.py b/pandas/core/internals/base.py index bb5d7e839a98c..ab2487ee7a889 100644 --- a/pandas/core/internals/base.py +++ b/pandas/core/internals/base.py @@ -2,7 +2,9 @@ Base class for the internal managers. Both BlockManager and ArrayManager inherit from this class. """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( Literal, @@ -18,14 +20,18 @@ DtypeObj, Shape, ) -from pandas.errors import AbstractMethodError +from pandas.errors import ( + AbstractMethodError, +) from pandas.core.dtypes.cast import ( find_common_type, np_can_hold_element, ) -from pandas.core.base import PandasObject +from pandas.core.base import ( + PandasObject, +) from pandas.core.indexes.api import ( Index, default_index, diff --git a/pandas/core/internals/blocks.py b/pandas/core/internals/blocks.py index 7a24649fc60af..c16bb5fe6f67e 100644 --- a/pandas/core/internals/blocks.py +++ b/pandas/core/internals/blocks.py @@ -1,6 +1,10 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from functools import wraps +from functools import ( + wraps, +) import re from typing import ( TYPE_CHECKING, @@ -23,8 +27,12 @@ BlockPlacement, BlockValuesRefs, ) -from pandas._libs.missing import NA -from pandas._libs.tslibs import IncompatibleFrequency +from pandas._libs.missing import ( + NA, +) +from pandas._libs.tslibs import ( + IncompatibleFrequency, +) from pandas._typing import ( ArrayLike, AxisInt, @@ -36,9 +44,15 @@ Shape, npt, ) -from pandas.errors import AbstractMethodError -from pandas.util._decorators import cache_readonly -from pandas.util._validators import validate_bool_kwarg +from pandas.errors import ( + AbstractMethodError, +) +from pandas.util._decorators import ( + cache_readonly, +) +from pandas.util._validators import ( + validate_bool_kwarg, +) from pandas.core.dtypes.astype import ( astype_array_safe, @@ -79,7 +93,9 @@ na_value_for_dtype, ) -from pandas.core import missing +from pandas.core import ( + missing, +) import pandas.core.algorithms as algos from pandas.core.array_algos.putmask import ( extract_bool_array, @@ -88,13 +104,17 @@ setitem_datetimelike_compat, validate_putmask, ) -from pandas.core.array_algos.quantile import quantile_compat +from pandas.core.array_algos.quantile import ( + quantile_compat, +) from pandas.core.array_algos.replace import ( compare_or_regex_search, replace_regex, should_use_regex, ) -from pandas.core.array_algos.transforms import shift +from pandas.core.array_algos.transforms import ( + shift, +) from pandas.core.arrays import ( Categorical, DatetimeArray, @@ -104,19 +124,31 @@ PeriodArray, TimedeltaArray, ) -from pandas.core.arrays.sparse import SparseDtype -from pandas.core.base import PandasObject +from pandas.core.arrays.sparse import ( + SparseDtype, +) +from pandas.core.base import ( + PandasObject, +) import pandas.core.common as com -from pandas.core.computation import expressions +from pandas.core.computation import ( + expressions, +) from pandas.core.construction import ( ensure_wrapped_if_datetimelike, extract_array, ) -from pandas.core.indexers import check_setitem_lengths +from pandas.core.indexers import ( + check_setitem_lengths, +) if TYPE_CHECKING: - from pandas.core.api import Index - from pandas.core.arrays._mixins import NDArrayBackedExtensionArray + from pandas.core.api import ( + Index, + ) + from pandas.core.arrays._mixins import ( + NDArrayBackedExtensionArray, + ) # comparison is faster than is_object_dtype _dtype_obj = np.dtype("object") @@ -2482,7 +2514,9 @@ def to_native_types( values = values.astype(object, copy=False) return values - from pandas.io.formats.format import FloatArrayFormatter + from pandas.io.formats.format import ( + FloatArrayFormatter, + ) formatter = FloatArrayFormatter( values, diff --git a/pandas/core/internals/concat.py b/pandas/core/internals/concat.py index a33ce8fd5c459..7296f53ec2d9b 100644 --- a/pandas/core/internals/concat.py +++ b/pandas/core/internals/concat.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import copy as cp import itertools @@ -14,7 +16,9 @@ NaT, internals as libinternals, ) -from pandas._libs.missing import NA +from pandas._libs.missing import ( + NA, +) from pandas._typing import ( ArrayLike, AxisInt, @@ -22,9 +26,13 @@ Manager, Shape, ) -from pandas.util._decorators import cache_readonly +from pandas.util._decorators import ( + cache_readonly, +) -from pandas.core.dtypes.astype import astype_array +from pandas.core.dtypes.astype import ( + astype_array, +) from pandas.core.dtypes.cast import ( ensure_dtype_can_hold_na, find_common_type, @@ -35,7 +43,9 @@ is_scalar, needs_i8_conversion, ) -from pandas.core.dtypes.concat import concat_compat +from pandas.core.dtypes.concat import ( + concat_compat, +) from pandas.core.dtypes.dtypes import ( DatetimeTZDtype, ExtensionDtype, @@ -51,8 +61,12 @@ DatetimeArray, ExtensionArray, ) -from pandas.core.arrays.sparse import SparseDtype -from pandas.core.construction import ensure_wrapped_if_datetimelike +from pandas.core.arrays.sparse import ( + SparseDtype, +) +from pandas.core.construction import ( + ensure_wrapped_if_datetimelike, +) from pandas.core.internals.array_manager import ( ArrayManager, NullArrayProxy, @@ -61,11 +75,17 @@ ensure_block_shape, new_block_2d, ) -from pandas.core.internals.managers import BlockManager +from pandas.core.internals.managers import ( + BlockManager, +) if TYPE_CHECKING: - from pandas import Index - from pandas.core.internals.blocks import Block + from pandas import ( + Index, + ) + from pandas.core.internals.blocks import ( + Block, + ) def _concatenate_array_managers( diff --git a/pandas/core/internals/construction.py b/pandas/core/internals/construction.py index 4dbdd5e5b77fe..7d2491a7b6751 100644 --- a/pandas/core/internals/construction.py +++ b/pandas/core/internals/construction.py @@ -2,9 +2,13 @@ Functions for preparing various inputs passed to the DataFrame or Series constructors before passing them to a BlockManager. """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from collections import abc +from collections import ( + abc, +) from typing import ( Any, Hashable, @@ -12,9 +16,13 @@ ) import numpy as np -from numpy import ma +from numpy import ( + ma, +) -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._typing import ( ArrayLike, DtypeObj, @@ -41,7 +49,9 @@ is_named_tuple, is_object_dtype, ) -from pandas.core.dtypes.dtypes import ExtensionDtype +from pandas.core.dtypes.dtypes import ( + ExtensionDtype, +) from pandas.core.dtypes.generic import ( ABCDataFrame, ABCSeries, @@ -57,7 +67,9 @@ FloatingArray, IntegerArray, ) -from pandas.core.arrays.string_ import StringDtype +from pandas.core.arrays.string_ import ( + StringDtype, +) from pandas.core.construction import ( ensure_wrapped_if_datetimelike, extract_array, @@ -406,7 +418,9 @@ def dict_to_mgr( arrays: Sequence[Any] | Series if columns is not None: - from pandas.core.series import Series + from pandas.core.series import ( + Series, + ) arrays = Series(data, index=columns, dtype=object) missing = arrays.isna() @@ -746,7 +760,9 @@ def dataclasses_to_dicts(data): [{'x': 1, 'y': 2}, {'x': 2, 'y': 3}] """ - from dataclasses import asdict + from dataclasses import ( + asdict, + ) return list(map(asdict, data)) diff --git a/pandas/core/internals/managers.py b/pandas/core/internals/managers.py index 9ecb77ad782b4..9d0845f201011 100644 --- a/pandas/core/internals/managers.py +++ b/pandas/core/internals/managers.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import itertools from typing import ( @@ -15,14 +17,18 @@ import numpy as np -from pandas._config import using_copy_on_write +from pandas._config import ( + using_copy_on_write, +) from pandas._libs import ( algos as libalgos, internals as libinternals, lib, ) -from pandas._libs.internals import BlockPlacement +from pandas._libs.internals import ( + BlockPlacement, +) from pandas._typing import ( ArrayLike, AxisInt, @@ -32,19 +38,31 @@ npt, type_t, ) -from pandas.errors import PerformanceWarning -from pandas.util._decorators import cache_readonly -from pandas.util._exceptions import find_stack_level -from pandas.util._validators import validate_bool_kwarg +from pandas.errors import ( + PerformanceWarning, +) +from pandas.util._decorators import ( + cache_readonly, +) +from pandas.util._exceptions import ( + find_stack_level, +) +from pandas.util._validators import ( + validate_bool_kwarg, +) -from pandas.core.dtypes.cast import infer_dtype_from_scalar +from pandas.core.dtypes.cast import ( + infer_dtype_from_scalar, +) from pandas.core.dtypes.common import ( ensure_platform_int, is_1d_only_ea_dtype, is_dtype_equal, is_list_like, ) -from pandas.core.dtypes.dtypes import ExtensionDtype +from pandas.core.dtypes.dtypes import ( + ExtensionDtype, +) from pandas.core.dtypes.generic import ( ABCDataFrame, ABCSeries, @@ -55,14 +73,20 @@ ) import pandas.core.algorithms as algos -from pandas.core.arrays._mixins import NDArrayBackedExtensionArray -from pandas.core.arrays.sparse import SparseDtype +from pandas.core.arrays._mixins import ( + NDArrayBackedExtensionArray, +) +from pandas.core.arrays.sparse import ( + SparseDtype, +) import pandas.core.common as com from pandas.core.construction import ( ensure_wrapped_if_datetimelike, extract_array, ) -from pandas.core.indexers import maybe_convert_indices +from pandas.core.indexers import ( + maybe_convert_indices, +) from pandas.core.indexes.api import ( Index, ensure_index, diff --git a/pandas/core/internals/ops.py b/pandas/core/internals/ops.py index 24fc51a96d9df..28aece1737408 100644 --- a/pandas/core/internals/ops.py +++ b/pandas/core/internals/ops.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, @@ -6,13 +8,21 @@ NamedTuple, ) -from pandas._typing import ArrayLike +from pandas._typing import ( + ArrayLike, +) if TYPE_CHECKING: - from pandas._libs.internals import BlockPlacement - - from pandas.core.internals.blocks import Block - from pandas.core.internals.managers import BlockManager + from pandas._libs.internals import ( + BlockPlacement, + ) + + from pandas.core.internals.blocks import ( + Block, + ) + from pandas.core.internals.managers import ( + BlockManager, + ) class BlockPairInfo(NamedTuple): diff --git a/pandas/core/methods/describe.py b/pandas/core/methods/describe.py index 33afbfe6489a6..2a2b144301b80 100644 --- a/pandas/core/methods/describe.py +++ b/pandas/core/methods/describe.py @@ -3,7 +3,9 @@ Method NDFrame.describe() delegates actual execution to function describe_ndframe(). """ -from __future__ import annotations +from __future__ import ( + annotations, +) from abc import ( ABC, @@ -20,13 +22,17 @@ import numpy as np -from pandas._libs.tslibs import Timestamp +from pandas._libs.tslibs import ( + Timestamp, +) from pandas._typing import ( DtypeObj, NDFrameT, npt, ) -from pandas.util._validators import validate_percentile +from pandas.util._validators import ( + validate_percentile, +) from pandas.core.dtypes.common import ( is_bool_dtype, @@ -38,9 +44,13 @@ ) import pandas as pd -from pandas.core.reshape.concat import concat +from pandas.core.reshape.concat import ( + concat, +) -from pandas.io.formats.format import format_percentiles +from pandas.io.formats.format import ( + format_percentiles, +) if TYPE_CHECKING: from pandas import ( @@ -217,7 +227,9 @@ def describe_numeric_1d(series: Series, percentiles: Sequence[float]) -> Series: percentiles : list-like of numbers The percentiles to include in the output. """ - from pandas import Series + from pandas import ( + Series, + ) formatted_percentiles = format_percentiles(percentiles) @@ -265,7 +277,9 @@ def describe_categorical_1d( result = [data.count(), count_unique, top, freq] - from pandas import Series + from pandas import ( + Series, + ) return Series(result, index=names, name=data.name, dtype=dtype) @@ -313,7 +327,9 @@ def describe_timestamp_as_categorical_1d( result += [np.nan, np.nan] dtype = "object" - from pandas import Series + from pandas import ( + Series, + ) return Series(result, index=names, name=data.name, dtype=dtype) @@ -329,7 +345,9 @@ def describe_timestamp_1d(data: Series, percentiles: Sequence[float]) -> Series: The percentiles to include in the output. """ # GH-30164 - from pandas import Series + from pandas import ( + Series, + ) formatted_percentiles = format_percentiles(percentiles) diff --git a/pandas/core/methods/selectn.py b/pandas/core/methods/selectn.py index 241d55aa663f7..f895354812353 100644 --- a/pandas/core/methods/selectn.py +++ b/pandas/core/methods/selectn.py @@ -2,7 +2,9 @@ Implementation of nlargest and nsmallest. """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, @@ -14,7 +16,9 @@ import numpy as np -from pandas._libs import algos as libalgos +from pandas._libs import ( + algos as libalgos, +) from pandas._typing import ( DtypeObj, IndexLabel, @@ -28,7 +32,9 @@ is_numeric_dtype, needs_i8_conversion, ) -from pandas.core.dtypes.dtypes import BaseMaskedDtype +from pandas.core.dtypes.dtypes import ( + BaseMaskedDtype, +) if TYPE_CHECKING: from pandas import ( @@ -85,7 +91,9 @@ class SelectNSeries(SelectN): """ def compute(self, method: str) -> Series: - from pandas.core.reshape.concat import concat + from pandas.core.reshape.concat import ( + concat, + ) n = self.n dtype = self.obj.dtype @@ -182,7 +190,9 @@ def __init__(self, obj: DataFrame, n: int, keep: str, columns: IndexLabel) -> No self.columns = columns def compute(self, method: str) -> DataFrame: - from pandas.core.api import Index + from pandas.core.api import ( + Index, + ) n = self.n frame = self.obj diff --git a/pandas/core/methods/to_dict.py b/pandas/core/methods/to_dict.py index f1cca4fd7ac50..be48c94ad3e25 100644 --- a/pandas/core/methods/to_dict.py +++ b/pandas/core/methods/to_dict.py @@ -1,18 +1,30 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from typing import Literal +from typing import ( + Literal, +) import warnings -from pandas.util._exceptions import find_stack_level +from pandas.util._exceptions import ( + find_stack_level, +) -from pandas.core.dtypes.cast import maybe_box_native +from pandas.core.dtypes.cast import ( + maybe_box_native, +) from pandas.core.dtypes.common import ( is_extension_array_dtype, is_object_dtype, ) -from pandas import DataFrame -from pandas.core import common as com +from pandas import ( + DataFrame, +) +from pandas.core import ( + common as com, +) def to_dict( diff --git a/pandas/core/missing.py b/pandas/core/missing.py index 2fb323002292a..a10b66f711c3f 100644 --- a/pandas/core/missing.py +++ b/pandas/core/missing.py @@ -1,7 +1,9 @@ """ Routines for filling missing data. """ -from __future__ import annotations +from __future__ import ( + annotations, +) from functools import ( partial, @@ -27,9 +29,13 @@ F, npt, ) -from pandas.compat._optional import import_optional_dependency +from pandas.compat._optional import ( + import_optional_dependency, +) -from pandas.core.dtypes.cast import infer_dtype_from +from pandas.core.dtypes.cast import ( + infer_dtype_from, +) from pandas.core.dtypes.common import ( is_array_like, is_numeric_v_string_like, @@ -43,7 +49,9 @@ ) if TYPE_CHECKING: - from pandas import Index + from pandas import ( + Index, + ) def check_value_size(value, mask: npt.NDArray[np.bool_], length: int): @@ -503,7 +511,9 @@ def _interpolate_scipy_wrapper( """ extra = f"{method} interpolation requires SciPy." import_optional_dependency("scipy", extra=extra) - from scipy import interpolate + from scipy import ( + interpolate, + ) new_x = np.asarray(new_x) @@ -599,7 +609,9 @@ def _from_derivatives( y : scalar or array-like The result, of length R or length M or M by R. """ - from scipy import interpolate + from scipy import ( + interpolate, + ) # return the method for compat with scipy version & backwards compat method = interpolate.BPoly.from_derivatives @@ -644,7 +656,9 @@ def _akima_interpolate(xi, yi, x, der: int | list[int] | None = 0, axis: AxisInt The result, of length R or length M or M by R, """ - from scipy import interpolate + from scipy import ( + interpolate, + ) P = interpolate.Akima1DInterpolator(xi, yi, axis=axis) @@ -728,7 +742,9 @@ def _cubicspline_interpolate( on Wikiversity. .. [2] Carl de Boor, "A Practical Guide to Splines", Springer-Verlag, 1978. """ - from scipy import interpolate + from scipy import ( + interpolate, + ) P = interpolate.CubicSpline( xi, yi, axis=axis, bc_type=bc_type, extrapolate=extrapolate diff --git a/pandas/core/nanops.py b/pandas/core/nanops.py index 43e44c7882cca..5d83802285fa2 100644 --- a/pandas/core/nanops.py +++ b/pandas/core/nanops.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import functools import itertools @@ -12,7 +14,9 @@ import numpy as np -from pandas._config import get_option +from pandas._config import ( + get_option, +) from pandas._libs import ( NaT, @@ -31,8 +35,12 @@ Shape, npt, ) -from pandas.compat._optional import import_optional_dependency -from pandas.util._exceptions import find_stack_level +from pandas.compat._optional import ( + import_optional_dependency, +) +from pandas.util._exceptions import ( + find_stack_level, +) from pandas.core.dtypes.common import ( is_any_int_dtype, @@ -50,14 +58,18 @@ needs_i8_conversion, pandas_dtype, ) -from pandas.core.dtypes.dtypes import PeriodDtype +from pandas.core.dtypes.dtypes import ( + PeriodDtype, +) from pandas.core.dtypes.missing import ( isna, na_value_for_dtype, notna, ) -from pandas.core.construction import extract_array +from pandas.core.construction import ( + extract_array, +) bn = import_optional_dependency("bottleneck", errors="warn") _BOTTLENECK_INSTALLED = bn is not None @@ -1621,14 +1633,18 @@ def get_corr_func( method: CorrelationMethod, ) -> Callable[[np.ndarray, np.ndarray], float]: if method == "kendall": - from scipy.stats import kendalltau + from scipy.stats import ( + kendalltau, + ) def func(a, b): return kendalltau(a, b)[0] return func elif method == "spearman": - from scipy.stats import spearmanr + from scipy.stats import ( + spearmanr, + ) def func(a, b): return spearmanr(a, b)[0] diff --git a/pandas/core/ops/__init__.py b/pandas/core/ops/__init__.py index 64619fdc4b8d4..70363fa11c979 100644 --- a/pandas/core/ops/__init__.py +++ b/pandas/core/ops/__init__.py @@ -3,7 +3,9 @@ This is not a public API. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import operator from typing import ( @@ -13,13 +15,17 @@ import numpy as np -from pandas._libs.ops_dispatch import maybe_dispatch_ufunc_to_dunder_op +from pandas._libs.ops_dispatch import ( + maybe_dispatch_ufunc_to_dunder_op, +) from pandas._typing import ( Axis, AxisInt, Level, ) -from pandas.util._decorators import Appender +from pandas.util._decorators import ( + Appender, +) from pandas.core.dtypes.common import ( is_array_like, @@ -29,7 +35,9 @@ ABCDataFrame, ABCSeries, ) -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.missing import ( + isna, +) from pandas.core import ( algorithms, @@ -52,13 +60,17 @@ _op_descriptions, make_flex_doc, ) -from pandas.core.ops.invalid import invalid_comparison +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 +from pandas.core.ops.methods import ( + add_flex_arithmetic_methods, +) from pandas.core.roperator import ( radd, rand_, diff --git a/pandas/core/ops/array_ops.py b/pandas/core/ops/array_ops.py index bc05e9a3d7c3f..c4d2b22fcf192 100644 --- a/pandas/core/ops/array_ops.py +++ b/pandas/core/ops/array_ops.py @@ -2,12 +2,18 @@ Functions for arithmetic and comparison operations on NumPy arrays and ExtensionArrays. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import datetime -from functools import partial +from functools import ( + partial, +) import operator -from typing import Any +from typing import ( + Any, +) import numpy as np @@ -18,7 +24,9 @@ lib, ops as libops, ) -from pandas._libs.tslibs import BaseOffset +from pandas._libs.tslibs import ( + BaseOffset, +) from pandas._typing import ( ArrayLike, Shape, @@ -47,14 +55,22 @@ notna, ) -from pandas.core.computation import expressions -from pandas.core.construction import ensure_wrapped_if_datetimelike +from pandas.core.computation import ( + expressions, +) +from pandas.core.construction import ( + ensure_wrapped_if_datetimelike, +) from pandas.core.ops import ( missing, roperator, ) -from pandas.core.ops.dispatch import should_extension_dispatch -from pandas.core.ops.invalid import invalid_comparison +from pandas.core.ops.dispatch import ( + should_extension_dispatch, +) +from pandas.core.ops.invalid import ( + invalid_comparison, +) def comp_method_OBJECT_ARRAY(op, x, y): @@ -472,7 +488,9 @@ def maybe_prepare_scalar_for_op(obj, shape: Shape): # GH#28080 numpy casts integer-dtype to datetime64 when doing # array[int] + datetime64, which we do not allow if isna(obj): - from pandas.core.arrays import DatetimeArray + from pandas.core.arrays import ( + DatetimeArray, + ) # Avoid possible ambiguities with pd.NaT obj = obj.astype("datetime64[ns]") @@ -483,7 +501,9 @@ def maybe_prepare_scalar_for_op(obj, shape: Shape): elif isinstance(obj, np.timedelta64): if isna(obj): - from pandas.core.arrays import TimedeltaArray + from pandas.core.arrays import ( + TimedeltaArray, + ) # wrapping timedelta64("NaT") in Timedelta returns NaT, # which would incorrectly be treated as a datetime-NaT, so diff --git a/pandas/core/ops/common.py b/pandas/core/ops/common.py index d4ae143372271..2d596fe64568b 100644 --- a/pandas/core/ops/common.py +++ b/pandas/core/ops/common.py @@ -1,15 +1,27 @@ """ Boilerplate functions used in defining binary operations. """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from functools import wraps +from functools import ( + wraps, +) import sys -from typing import Callable +from typing import ( + Callable, +) -from pandas._libs.lib import item_from_zerodim -from pandas._libs.missing import is_matching_na -from pandas._typing import F +from pandas._libs.lib import ( + item_from_zerodim, +) +from pandas._libs.missing import ( + is_matching_na, +) +from pandas._typing import ( + F, +) from pandas.core.dtypes.generic import ( ABCDataFrame, diff --git a/pandas/core/ops/dispatch.py b/pandas/core/ops/dispatch.py index 2f500703ccfb3..c7a33e2e45ec1 100644 --- a/pandas/core/ops/dispatch.py +++ b/pandas/core/ops/dispatch.py @@ -1,13 +1,21 @@ """ Functions for defining unary operations. """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from typing import Any +from typing import ( + Any, +) -from pandas._typing import ArrayLike +from pandas._typing import ( + ArrayLike, +) -from pandas.core.dtypes.generic import ABCExtensionArray +from pandas.core.dtypes.generic import ( + ABCExtensionArray, +) def should_extension_dispatch(left: ArrayLike, right: Any) -> bool: diff --git a/pandas/core/ops/docstrings.py b/pandas/core/ops/docstrings.py index cdf1c120719e9..6e489893f948e 100644 --- a/pandas/core/ops/docstrings.py +++ b/pandas/core/ops/docstrings.py @@ -1,7 +1,9 @@ """ Templating for ops docstrings """ -from __future__ import annotations +from __future__ import ( + annotations, +) def make_flex_doc(op_name: str, typ: str) -> str: diff --git a/pandas/core/ops/invalid.py b/pandas/core/ops/invalid.py index eb27cf7450119..845233d8ab02e 100644 --- a/pandas/core/ops/invalid.py +++ b/pandas/core/ops/invalid.py @@ -1,7 +1,9 @@ """ Templates for invalid operations. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import operator diff --git a/pandas/core/ops/mask_ops.py b/pandas/core/ops/mask_ops.py index adc1f63c568bf..42e4ed916bdfd 100644 --- a/pandas/core/ops/mask_ops.py +++ b/pandas/core/ops/mask_ops.py @@ -1,7 +1,9 @@ """ Ops for masked arrays. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import numpy as np diff --git a/pandas/core/ops/methods.py b/pandas/core/ops/methods.py index be7c1205305e4..5c20560aadd44 100644 --- a/pandas/core/ops/methods.py +++ b/pandas/core/ops/methods.py @@ -1,7 +1,9 @@ """ Functions to generate methods and pin them to the appropriate classes. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import operator @@ -10,7 +12,9 @@ ABCSeries, ) -from pandas.core.ops import roperator +from pandas.core.ops import ( + roperator, +) def _get_method_wrappers(cls): diff --git a/pandas/core/ops/missing.py b/pandas/core/ops/missing.py index 3ba611c3bd0df..f17f20526fc5b 100644 --- a/pandas/core/ops/missing.py +++ b/pandas/core/ops/missing.py @@ -21,7 +21,9 @@ 3) divmod behavior consistent with 1) and 2). """ -from __future__ import annotations +from __future__ import ( + annotations, +) import operator @@ -33,7 +35,9 @@ is_scalar, ) -from pandas.core.ops import roperator +from pandas.core.ops import ( + roperator, +) def _fill_zeros(result, x, y): diff --git a/pandas/core/resample.py b/pandas/core/resample.py index f23256c64db2d..3b3291cf2f17b 100644 --- a/pandas/core/resample.py +++ b/pandas/core/resample.py @@ -1,7 +1,11 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import copy -from textwrap import dedent +from textwrap import ( + dedent, +) from typing import ( TYPE_CHECKING, Callable, @@ -15,7 +19,9 @@ import numpy as np -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._libs.tslibs import ( BaseOffset, IncompatibleFrequency, @@ -39,14 +45,20 @@ TimestampConvertibleTypes, npt, ) -from pandas.compat.numpy import function as nv -from pandas.errors import AbstractMethodError +from pandas.compat.numpy import ( + function as nv, +) +from pandas.errors import ( + AbstractMethodError, +) from pandas.util._decorators import ( Appender, Substitution, doc, ) -from pandas.util._exceptions import find_stack_level +from pandas.util._exceptions import ( + find_stack_level, +) from pandas.core.dtypes.generic import ( ABCDataFrame, @@ -54,22 +66,32 @@ ) import pandas.core.algorithms as algos -from pandas.core.apply import ResamplerWindowApply -from pandas.core.base import PandasObject +from pandas.core.apply import ( + ResamplerWindowApply, +) +from pandas.core.base import ( + PandasObject, +) import pandas.core.common as com from pandas.core.generic import ( NDFrame, _shared_docs, ) -from pandas.core.groupby.generic import SeriesGroupBy +from pandas.core.groupby.generic import ( + SeriesGroupBy, +) from pandas.core.groupby.groupby import ( BaseGroupBy, GroupBy, _pipe_template, get_groupby, ) -from pandas.core.groupby.grouper import Grouper -from pandas.core.groupby.ops import BinGrouper +from pandas.core.groupby.grouper import ( + Grouper, +) +from pandas.core.groupby.ops import ( + BinGrouper, +) from pandas.core.indexes.datetimes import ( DatetimeIndex, date_range, @@ -1085,7 +1107,9 @@ def size(self): result = result.stack() if not len(self.ax): - from pandas import Series + from pandas import ( + Series, + ) if self._selected_obj.ndim == 1: name = self._selected_obj.name @@ -1103,7 +1127,9 @@ def count(self): [], index=result.index, dtype="int64", name=self._selected_obj.name ) else: - from pandas import DataFrame + from pandas import ( + DataFrame, + ) result = DataFrame( [], index=result.index, columns=result.columns, dtype="int64" diff --git a/pandas/core/reshape/api.py b/pandas/core/reshape/api.py index b1884c497f0ad..ccf440a1c0c34 100644 --- a/pandas/core/reshape/api.py +++ b/pandas/core/reshape/api.py @@ -1,4 +1,6 @@ -from pandas.core.reshape.concat import concat +from pandas.core.reshape.concat import ( + concat, +) from pandas.core.reshape.encoding import ( from_dummies, get_dummies, diff --git a/pandas/core/reshape/concat.py b/pandas/core/reshape/concat.py index 6758ab9cb6814..6d4f93ed2c0c6 100644 --- a/pandas/core/reshape/concat.py +++ b/pandas/core/reshape/concat.py @@ -1,9 +1,13 @@ """ Concat routines. """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from collections import abc +from collections import ( + abc, +) from typing import ( TYPE_CHECKING, Callable, @@ -17,22 +21,32 @@ import numpy as np -from pandas._config import using_copy_on_write +from pandas._config import ( + using_copy_on_write, +) from pandas._typing import ( Axis, AxisInt, HashableT, ) -from pandas.util._decorators import cache_readonly +from pandas.util._decorators import ( + cache_readonly, +) -from pandas.core.dtypes.concat import concat_compat +from pandas.core.dtypes.concat import ( + concat_compat, +) from pandas.core.dtypes.generic import ( ABCDataFrame, ABCSeries, ) -from pandas.core.dtypes.inference import is_bool -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.inference import ( + is_bool, +) +from pandas.core.dtypes.missing import ( + isna, +) from pandas.core.arrays.categorical import ( factorize_from_iterable, @@ -48,14 +62,18 @@ get_objs_combined_axis, get_unanimous_names, ) -from pandas.core.internals import concatenate_managers +from pandas.core.internals import ( + concatenate_managers, +) if TYPE_CHECKING: from pandas import ( DataFrame, Series, ) - from pandas.core.generic import NDFrame + from pandas.core.generic import ( + NDFrame, + ) # --------------------------------------------------------------------- # Concatenate DataFrame objects @@ -491,7 +509,9 @@ def __init__( # Standardize axis parameter to int if isinstance(sample, ABCSeries): - from pandas import DataFrame + from pandas import ( + DataFrame, + ) axis = DataFrame._get_axis_number(axis) else: diff --git a/pandas/core/reshape/encoding.py b/pandas/core/reshape/encoding.py index d00fade8a1c6f..365053d905db5 100644 --- a/pandas/core/reshape/encoding.py +++ b/pandas/core/reshape/encoding.py @@ -1,6 +1,10 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from collections import defaultdict +from collections import ( + defaultdict, +) import itertools from typing import ( Hashable, @@ -9,8 +13,12 @@ import numpy as np -from pandas._libs.sparse import IntIndex -from pandas._typing import NpDtype +from pandas._libs.sparse import ( + IntIndex, +) +from pandas._typing import ( + NpDtype, +) from pandas.core.dtypes.common import ( is_integer_dtype, @@ -19,14 +27,22 @@ pandas_dtype, ) -from pandas.core.arrays import SparseArray -from pandas.core.arrays.categorical import factorize_from_iterable -from pandas.core.frame import DataFrame +from pandas.core.arrays import ( + SparseArray, +) +from pandas.core.arrays.categorical import ( + factorize_from_iterable, +) +from pandas.core.frame import ( + DataFrame, +) from pandas.core.indexes.api import ( Index, default_index, ) -from pandas.core.series import Series +from pandas.core.series import ( + Series, +) def get_dummies( @@ -144,7 +160,9 @@ def get_dummies( 1 0.0 1.0 0.0 2 0.0 0.0 1.0 """ - from pandas.core.reshape.concat import concat + from pandas.core.reshape.concat import ( + concat, + ) dtypes_to_encode = ["object", "string", "category"] @@ -233,7 +251,9 @@ def _get_dummies_1d( drop_first: bool = False, dtype: NpDtype | None = None, ) -> DataFrame: - from pandas.core.reshape.concat import concat + from pandas.core.reshape.concat import ( + concat, + ) # Series avoids inconsistent NaN handling codes, levels = factorize_from_iterable(Series(data)) @@ -444,7 +464,9 @@ def from_dummies( 1 b a 2 d e """ - from pandas.core.reshape.concat import concat + from pandas.core.reshape.concat import ( + concat, + ) if not isinstance(data, DataFrame): raise TypeError( diff --git a/pandas/core/reshape/melt.py b/pandas/core/reshape/melt.py index 8ed8dd1466475..1164db0383e9d 100644 --- a/pandas/core/reshape/melt.py +++ b/pandas/core/reshape/melt.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import re from typing import ( @@ -8,31 +10,51 @@ import numpy as np -from pandas.util._decorators import Appender +from pandas.util._decorators import ( + Appender, +) from pandas.core.dtypes.common import ( is_extension_array_dtype, is_list_like, ) -from pandas.core.dtypes.concat import concat_compat -from pandas.core.dtypes.missing import notna +from pandas.core.dtypes.concat import ( + concat_compat, +) +from pandas.core.dtypes.missing import ( + notna, +) import pandas.core.algorithms as algos -from pandas.core.arrays import Categorical +from pandas.core.arrays import ( + Categorical, +) import pandas.core.common as com from pandas.core.indexes.api import ( Index, MultiIndex, ) -from pandas.core.reshape.concat import concat -from pandas.core.reshape.util import tile_compat -from pandas.core.shared_docs import _shared_docs -from pandas.core.tools.numeric import to_numeric +from pandas.core.reshape.concat import ( + concat, +) +from pandas.core.reshape.util import ( + tile_compat, +) +from pandas.core.shared_docs import ( + _shared_docs, +) +from pandas.core.tools.numeric import ( + to_numeric, +) if TYPE_CHECKING: - from pandas._typing import AnyArrayLike + from pandas._typing import ( + AnyArrayLike, + ) - from pandas import DataFrame + from pandas import ( + DataFrame, + ) @Appender(_shared_docs["melt"] % {"caller": "pd.melt(df, ", "other": "DataFrame.melt"}) diff --git a/pandas/core/reshape/merge.py b/pandas/core/reshape/merge.py index 86bf9bf95e1cc..886f75ae03d79 100644 --- a/pandas/core/reshape/merge.py +++ b/pandas/core/reshape/merge.py @@ -1,11 +1,15 @@ """ SQL-style merge routines """ -from __future__ import annotations +from __future__ import ( + annotations, +) import copy as cp import datetime -from functools import partial +from functools import ( + partial, +) import string from typing import ( TYPE_CHECKING, @@ -25,7 +29,9 @@ join as libjoin, lib, ) -from pandas._libs.lib import is_range_indexer +from pandas._libs.lib import ( + is_range_indexer, +) from pandas._typing import ( AnyArrayLike, ArrayLike, @@ -38,16 +44,24 @@ Suffixes, npt, ) -from pandas.errors import MergeError +from pandas.errors import ( + MergeError, +) from pandas.util._decorators import ( Appender, Substitution, cache_readonly, ) -from pandas.util._exceptions import find_stack_level +from pandas.util._exceptions import ( + find_stack_level, +) -from pandas.core.dtypes.base import ExtensionDtype -from pandas.core.dtypes.cast import find_common_type +from pandas.core.dtypes.base import ( + ExtensionDtype, +) +from pandas.core.dtypes.cast import ( + find_common_type, +) from pandas.core.dtypes.common import ( ensure_float64, ensure_int64, @@ -67,7 +81,9 @@ is_object_dtype, needs_i8_conversion, ) -from pandas.core.dtypes.dtypes import DatetimeTZDtype +from pandas.core.dtypes.dtypes import ( + DatetimeTZDtype, +) from pandas.core.dtypes.generic import ( ABCDataFrame, ABCSeries, @@ -88,20 +104,34 @@ BaseMaskedArray, ExtensionArray, ) -from pandas.core.arrays._mixins import NDArrayBackedExtensionArray +from pandas.core.arrays._mixins import ( + NDArrayBackedExtensionArray, +) import pandas.core.common as com from pandas.core.construction import ( ensure_wrapped_if_datetimelike, extract_array, ) -from pandas.core.frame import _merge_doc -from pandas.core.indexes.api import default_index -from pandas.core.sorting import is_int64_overflow_possible +from pandas.core.frame import ( + _merge_doc, +) +from pandas.core.indexes.api import ( + default_index, +) +from pandas.core.sorting import ( + is_int64_overflow_possible, +) if TYPE_CHECKING: - from pandas import DataFrame - from pandas.core import groupby - from pandas.core.arrays import DatetimeArray + from pandas import ( + DataFrame, + ) + from pandas.core import ( + groupby, + ) + from pandas.core.arrays import ( + DatetimeArray, + ) _factorizers = { np.int64: libhashtable.Int64Factorizer, @@ -204,7 +234,9 @@ def _groupby_and_merge(by, left: DataFrame, right: DataFrame, merge_pieces): # preserve the original order # if we have a missing piece this can be reset - from pandas.core.reshape.concat import concat + from pandas.core.reshape.concat import ( + concat, + ) result = concat(pieces, ignore_index=True) result = result.reindex(columns=pieces[0].columns, copy=False) @@ -789,7 +821,9 @@ def _reindex_and_concat( right = right._constructor(rmgr) right.index = join_index - from pandas import concat + from pandas import ( + concat, + ) left.columns = llabels right.columns = rlabels diff --git a/pandas/core/reshape/pivot.py b/pandas/core/reshape/pivot.py index a919f72c7d220..72d64d5eb2a09 100644 --- a/pandas/core/reshape/pivot.py +++ b/pandas/core/reshape/pivot.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, @@ -10,7 +12,9 @@ import numpy as np -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._typing import ( AggFuncType, AggFuncTypeBase, @@ -22,7 +26,9 @@ Substitution, ) -from pandas.core.dtypes.cast import maybe_downcast_to_dtype +from pandas.core.dtypes.cast import ( + maybe_downcast_to_dtype, +) from pandas.core.dtypes.common import ( is_extension_array_dtype, is_integer_dtype, @@ -36,19 +42,31 @@ ) import pandas.core.common as com -from pandas.core.frame import _shared_docs -from pandas.core.groupby import Grouper +from pandas.core.frame import ( + _shared_docs, +) +from pandas.core.groupby import ( + Grouper, +) from pandas.core.indexes.api import ( Index, MultiIndex, get_objs_combined_axis, ) -from pandas.core.reshape.concat import concat -from pandas.core.reshape.util import cartesian_product -from pandas.core.series import Series +from pandas.core.reshape.concat import ( + concat, +) +from pandas.core.reshape.util import ( + cartesian_product, +) +from pandas.core.series import ( + Series, +) if TYPE_CHECKING: - from pandas import DataFrame + from pandas import ( + DataFrame, + ) # Note: We need to make sure `frame` is imported before `pivot`, otherwise @@ -318,7 +336,9 @@ def _add_margins( else: row_margin[k] = grand_margin[k[0]] - from pandas import DataFrame + from pandas import ( + DataFrame, + ) margin_dummy = DataFrame(row_margin, columns=Index([key])).T @@ -387,7 +407,9 @@ def _all_key(key): table_pieces.append(piece) margin_keys.append(all_key) else: - from pandas import DataFrame + from pandas import ( + DataFrame, + ) cat_axis = 0 for key, piece in table.groupby(level=0, axis=cat_axis, observed=observed): @@ -693,7 +715,9 @@ def crosstab( unique_colnames, ) = _build_names_mapper(rownames, colnames) - from pandas import DataFrame + from pandas import ( + DataFrame, + ) data = { **dict(zip(unique_rownames, index)), diff --git a/pandas/core/reshape/reshape.py b/pandas/core/reshape/reshape.py index e83317ebc74ce..77d6d580f6e8c 100644 --- a/pandas/core/reshape/reshape.py +++ b/pandas/core/reshape/reshape.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import itertools from typing import ( @@ -10,12 +12,22 @@ import numpy as np import pandas._libs.reshape as libreshape -from pandas._typing import npt -from pandas.errors import PerformanceWarning -from pandas.util._decorators import cache_readonly -from pandas.util._exceptions import find_stack_level +from pandas._typing import ( + npt, +) +from pandas.errors import ( + PerformanceWarning, +) +from pandas.util._decorators import ( + cache_readonly, +) +from pandas.util._exceptions import ( + find_stack_level, +) -from pandas.core.dtypes.cast import maybe_promote +from pandas.core.dtypes.cast import ( + maybe_promote, +) from pandas.core.dtypes.common import ( ensure_platform_int, is_1d_only_ea_dtype, @@ -23,18 +35,30 @@ is_integer, needs_i8_conversion, ) -from pandas.core.dtypes.dtypes import ExtensionDtype -from pandas.core.dtypes.missing import notna +from pandas.core.dtypes.dtypes import ( + ExtensionDtype, +) +from pandas.core.dtypes.missing import ( + notna, +) import pandas.core.algorithms as algos -from pandas.core.arrays.categorical import factorize_from_iterable -from pandas.core.construction import ensure_wrapped_if_datetimelike -from pandas.core.frame import DataFrame +from pandas.core.arrays.categorical import ( + factorize_from_iterable, +) +from pandas.core.construction import ( + ensure_wrapped_if_datetimelike, +) +from pandas.core.frame import ( + DataFrame, +) from pandas.core.indexes.api import ( Index, MultiIndex, ) -from pandas.core.series import Series +from pandas.core.series import ( + Series, +) from pandas.core.sorting import ( compress_group_index, decons_obs_group_ids, @@ -44,8 +68,12 @@ ) if TYPE_CHECKING: - from pandas.core.arrays import ExtensionArray - from pandas.core.indexes.frozen import FrozenList + from pandas.core.arrays import ( + ExtensionArray, + ) + from pandas.core.indexes.frozen import ( + FrozenList, + ) class _Unstacker: diff --git a/pandas/core/reshape/tile.py b/pandas/core/reshape/tile.py index 267abdb8d0104..0df85d3ef4122 100644 --- a/pandas/core/reshape/tile.py +++ b/pandas/core/reshape/tile.py @@ -1,7 +1,9 @@ """ Quantilization functions and related stuff """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( Any, @@ -15,8 +17,12 @@ Timedelta, Timestamp, ) -from pandas._libs.lib import infer_dtype -from pandas._typing import IntervalLeftRight +from pandas._libs.lib import ( + infer_dtype, +) +from pandas._typing import ( + IntervalLeftRight, +) from pandas.core.dtypes.common import ( DT64NS_DTYPE, @@ -33,8 +39,12 @@ is_scalar, is_timedelta64_dtype, ) -from pandas.core.dtypes.generic import ABCSeries -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.generic import ( + ABCSeries, +) +from pandas.core.dtypes.missing import ( + isna, +) from pandas import ( Categorical, @@ -43,7 +53,9 @@ to_datetime, to_timedelta, ) -from pandas.core import nanops +from pandas.core import ( + nanops, +) import pandas.core.algorithms as algos diff --git a/pandas/core/reshape/util.py b/pandas/core/reshape/util.py index 1154940f2c4a6..e80b77ae14f75 100644 --- a/pandas/core/reshape/util.py +++ b/pandas/core/reshape/util.py @@ -1,10 +1,16 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import numpy as np -from pandas._typing import NumpyIndexT +from pandas._typing import ( + NumpyIndexT, +) -from pandas.core.dtypes.common import is_list_like +from pandas.core.dtypes.common import ( + is_list_like, +) def cartesian_product(X) -> list[np.ndarray]: diff --git a/pandas/core/roperator.py b/pandas/core/roperator.py index 2f320f4e9c6b9..8289d2be4288d 100644 --- a/pandas/core/roperator.py +++ b/pandas/core/roperator.py @@ -2,7 +2,9 @@ Reversed Operations not available in the stdlib operator module. Defining these instead of using lambdas allows us to reference them by name. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import operator diff --git a/pandas/core/sample.py b/pandas/core/sample.py index a9b236b58a9ba..7aeb96d81c0d2 100644 --- a/pandas/core/sample.py +++ b/pandas/core/sample.py @@ -1,14 +1,22 @@ """ Module containing utilities for NDFrame.sample() and .GroupBy.sample() """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from typing import TYPE_CHECKING +from typing import ( + TYPE_CHECKING, +) import numpy as np -from pandas._libs import lib -from pandas._typing import AxisInt +from pandas._libs import ( + lib, +) +from pandas._typing import ( + AxisInt, +) from pandas.core.dtypes.generic import ( ABCDataFrame, @@ -16,7 +24,9 @@ ) if TYPE_CHECKING: - from pandas.core.generic import NDFrame + from pandas.core.generic import ( + NDFrame, + ) def preprocess_weights(obj: NDFrame, weights, axis: AxisInt) -> np.ndarray: diff --git a/pandas/core/series.py b/pandas/core/series.py index 06e9611c318cd..25fa4820d9742 100644 --- a/pandas/core/series.py +++ b/pandas/core/series.py @@ -1,10 +1,14 @@ """ Data structure for 1-dimensional cross-sectional and time series data """ -from __future__ import annotations +from __future__ import ( + annotations, +) import sys -from textwrap import dedent +from textwrap import ( + dedent, +) from typing import ( IO, TYPE_CHECKING, @@ -70,8 +74,12 @@ WriteBuffer, npt, ) -from pandas.compat import PYPY -from pandas.compat.numpy import function as nv +from pandas.compat import ( + PYPY, +) +from pandas.compat.numpy import ( + function as nv, +) from pandas.errors import ( ChainedAssignmentError, InvalidIndexError, @@ -82,7 +90,9 @@ Substitution, doc, ) -from pandas.util._exceptions import find_stack_level +from pandas.util._exceptions import ( + find_stack_level, +) from pandas.util._validators import ( validate_ascending, validate_bool_kwarg, @@ -107,8 +117,12 @@ pandas_dtype, validate_all_hashable, ) -from pandas.core.dtypes.generic import ABCDataFrame -from pandas.core.dtypes.inference import is_hashable +from pandas.core.dtypes.generic import ( + ABCDataFrame, +) +from pandas.core.dtypes.inference import ( + is_hashable, +) from pandas.core.dtypes.missing import ( isna, na_value_for_dtype, @@ -124,21 +138,35 @@ nanops, ops, ) -from pandas.core.accessor import CachedAccessor -from pandas.core.apply import SeriesApply -from pandas.core.arrays import ExtensionArray -from pandas.core.arrays.categorical import CategoricalAccessor -from pandas.core.arrays.sparse import SparseAccessor +from pandas.core.accessor import ( + CachedAccessor, +) +from pandas.core.apply import ( + SeriesApply, +) +from pandas.core.arrays import ( + ExtensionArray, +) +from pandas.core.arrays.categorical import ( + CategoricalAccessor, +) +from pandas.core.arrays.sparse import ( + SparseAccessor, +) from pandas.core.construction import ( extract_array, sanitize_array, ) -from pandas.core.generic import NDFrame +from pandas.core.generic import ( + NDFrame, +) from pandas.core.indexers import ( disallow_ndim_indexing, unpack_1tuple, ) -from pandas.core.indexes.accessors import CombinedDatetimelikeProperties +from pandas.core.indexes.accessors import ( + CombinedDatetimelikeProperties, +) from pandas.core.indexes.api import ( DatetimeIndex, Index, @@ -148,7 +176,9 @@ ensure_index, ) import pandas.core.indexes.base as ibase -from pandas.core.indexes.multi import maybe_droplevels +from pandas.core.indexes.multi import ( + maybe_droplevels, +) from pandas.core.indexing import ( check_bool_indexer, check_dict_or_set_indexers, @@ -157,14 +187,22 @@ SingleArrayManager, SingleBlockManager, ) -from pandas.core.methods import selectn -from pandas.core.shared_docs import _shared_docs +from pandas.core.methods import ( + selectn, +) +from pandas.core.shared_docs import ( + _shared_docs, +) from pandas.core.sorting import ( ensure_key_mapped, nargsort, ) -from pandas.core.strings.accessor import StringMethods -from pandas.core.tools.datetimes import to_datetime +from pandas.core.strings.accessor import ( + StringMethods, +) +from pandas.core.tools.datetimes import ( + to_datetime, +) import pandas.io.formats.format as fmt from pandas.io.formats.info import ( @@ -181,9 +219,15 @@ Suffixes, ) - from pandas.core.frame import DataFrame - from pandas.core.groupby.generic import SeriesGroupBy - from pandas.core.resample import Resampler + from pandas.core.frame import ( + DataFrame, + ) + from pandas.core.groupby.generic import ( + SeriesGroupBy, + ) + from pandas.core.resample import ( + Resampler, + ) __all__ = ["Series"] @@ -566,7 +610,9 @@ def _constructor_expanddim(self) -> Callable[..., DataFrame]: Used when a manipulation result has one higher dimension as the original, such as Series.to_frame() """ - from pandas.core.frame import DataFrame + from pandas.core.frame import ( + DataFrame, + ) return DataFrame @@ -1973,7 +2019,9 @@ def groupby( observed: bool = False, dropna: bool = True, ) -> SeriesGroupBy: - from pandas.core.groupby.generic import SeriesGroupBy + from pandas.core.groupby.generic import ( + SeriesGroupBy, + ) if level is None and by is None: raise TypeError("You have to supply one of 'by' and 'level'") @@ -2948,7 +2996,9 @@ def searchsorted( # type: ignore[override] def _append( self, to_append, ignore_index: bool = False, verify_integrity: bool = False ): - from pandas.core.reshape.concat import concat + from pandas.core.reshape.concat import ( + concat, + ) if isinstance(to_append, (list, tuple)): to_concat = [self] @@ -4231,7 +4281,9 @@ def unstack(self, level: IndexLabel = -1, fill_value: Hashable = None) -> DataFr a 1 3 b 2 4 """ - from pandas.core.reshape.reshape import unstack + from pandas.core.reshape.reshape import ( + unstack, + ) return unstack(self, level, fill_value) diff --git a/pandas/core/shared_docs.py b/pandas/core/shared_docs.py index 184b77c880238..434efa36424cf 100644 --- a/pandas/core/shared_docs.py +++ b/pandas/core/shared_docs.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) _shared_docs: dict[str, str] = {} diff --git a/pandas/core/sorting.py b/pandas/core/sorting.py index 970c9998f5f5d..15695d25a73c3 100644 --- a/pandas/core/sorting.py +++ b/pandas/core/sorting.py @@ -1,7 +1,11 @@ """ miscellaneous sorting / groupby utilities """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from collections import defaultdict +from collections import ( + defaultdict, +) from typing import ( TYPE_CHECKING, Callable, @@ -19,7 +23,9 @@ hashtable, lib, ) -from pandas._libs.hashtable import unique_label_indices +from pandas._libs.hashtable import ( + unique_label_indices, +) from pandas._typing import ( AxisInt, IndexKeyFunc, @@ -39,14 +45,24 @@ ABCMultiIndex, ABCRangeIndex, ) -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.missing import ( + isna, +) -from pandas.core.construction import extract_array +from pandas.core.construction import ( + extract_array, +) if TYPE_CHECKING: - from pandas import MultiIndex - from pandas.core.arrays import ExtensionArray - from pandas.core.indexes.base import Index + from pandas import ( + MultiIndex, + ) + from pandas.core.arrays import ( + ExtensionArray, + ) + from pandas.core.indexes.base import ( + Index, + ) def get_indexer_indexer( @@ -326,7 +342,9 @@ def lexsort_indexer( ------- np.ndarray[np.intp] """ - from pandas.core.arrays import Categorical + from pandas.core.arrays import ( + Categorical, + ) labels = [] shape = [] @@ -546,7 +564,9 @@ def ensure_key_mapped(values, key: Callable | None, levels=None): levels : Optional[List], if values is a MultiIndex, list of levels to apply the key to. """ - from pandas.core.indexes.api import Index + from pandas.core.indexes.api import ( + Index, + ) if not key: return values diff --git a/pandas/core/strings/accessor.py b/pandas/core/strings/accessor.py index 1b020a3d96411..88ed06d945fce 100644 --- a/pandas/core/strings/accessor.py +++ b/pandas/core/strings/accessor.py @@ -1,7 +1,11 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import codecs -from functools import wraps +from functools import ( + wraps, +) import re from typing import ( TYPE_CHECKING, @@ -14,15 +18,21 @@ import numpy as np -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._typing import ( AlignJoin, DtypeObj, F, Scalar, ) -from pandas.util._decorators import Appender -from pandas.util._exceptions import find_stack_level +from pandas.util._decorators import ( + Appender, +) +from pandas.util._exceptions import ( + find_stack_level, +) from pandas.core.dtypes.common import ( ensure_object, @@ -39,10 +49,16 @@ ABCMultiIndex, ABCSeries, ) -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.missing import ( + isna, +) -from pandas.core.base import NoNewAttributesMixin -from pandas.core.construction import extract_array +from pandas.core.base import ( + NoNewAttributesMixin, +) +from pandas.core.construction import ( + extract_array, +) if TYPE_CHECKING: from pandas import ( @@ -175,7 +191,9 @@ class StringMethods(NoNewAttributesMixin): # * extractall def __init__(self, data) -> None: - from pandas.core.arrays.string_ import StringDtype + from pandas.core.arrays.string_ import ( + StringDtype, + ) self._inferred_dtype = self._validate(data) self._is_categorical = is_categorical_dtype(data.dtype) @@ -2566,7 +2584,9 @@ def extract( 2 NaN dtype: object """ - from pandas import DataFrame + from pandas import ( + DataFrame, + ) if not isinstance(expand, bool): raise ValueError("expand must be True or False") @@ -3262,7 +3282,9 @@ def _result_dtype(arr): # workaround #27953 # ideally we just pass `dtype=arr.dtype` unconditionally, but this fails # when the list of values is empty. - from pandas.core.arrays.string_ import StringDtype + from pandas.core.arrays.string_ import ( + StringDtype, + ) if isinstance(arr.dtype, StringDtype): return arr.dtype @@ -3322,7 +3344,9 @@ def str_extractall(arr, pat, flags: int = 0): result_key = tuple(subject_key + (match_i,)) index_list.append(result_key) - from pandas import MultiIndex + from pandas import ( + MultiIndex, + ) index = MultiIndex.from_tuples(index_list, names=arr.index.names + ["match"]) dtype = _result_dtype(arr) diff --git a/pandas/core/strings/base.py b/pandas/core/strings/base.py index f1e716b64644a..a9fce9aa47765 100644 --- a/pandas/core/strings/base.py +++ b/pandas/core/strings/base.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import abc import re @@ -10,10 +12,14 @@ import numpy as np -from pandas._typing import Scalar +from pandas._typing import ( + Scalar, +) if TYPE_CHECKING: - from pandas import Series + from pandas import ( + Series, + ) class BaseStringArrayMethods(abc.ABC): diff --git a/pandas/core/strings/object_array.py b/pandas/core/strings/object_array.py index 508ac122d67af..92180b20d9853 100644 --- a/pandas/core/strings/object_array.py +++ b/pandas/core/strings/object_array.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import functools import re @@ -13,7 +15,9 @@ import numpy as np -from pandas._libs import lib +from pandas._libs import ( + lib, +) import pandas._libs.missing as libmissing import pandas._libs.ops as libops from pandas._typing import ( @@ -21,13 +25,21 @@ Scalar, ) -from pandas.core.dtypes.common import is_scalar -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.common import ( + is_scalar, +) +from pandas.core.dtypes.missing import ( + isna, +) -from pandas.core.strings.base import BaseStringArrayMethods +from pandas.core.strings.base import ( + BaseStringArrayMethods, +) if TYPE_CHECKING: - from pandas import Series + from pandas import ( + Series, + ) class ObjectStringArrayMixin(BaseStringArrayMethods): @@ -187,7 +199,9 @@ def scalar_rep(x): return self._str_map(scalar_rep, dtype=str) else: - from pandas.core.arrays.string_ import BaseStringArray + from pandas.core.arrays.string_ import ( + BaseStringArray, + ) def rep(x, r): if x is libmissing.NA: @@ -367,7 +381,9 @@ def _str_wrap(self, width, **kwargs): return self._str_map(lambda s: "\n".join(tw.wrap(s))) def _str_get_dummies(self, sep: str = "|"): - from pandas import Series + from pandas import ( + Series, + ) arr = Series(self).fillna("") try: @@ -466,7 +482,9 @@ def _str_removesuffix(self, suffix: str) -> Series: if sys.version_info < (3, 9): # NOTE pyupgrade will remove this when we run it with --py39-plus # so don't remove the unnecessary `else` statement below - from pandas.util._str_methods import removesuffix + from pandas.util._str_methods import ( + removesuffix, + ) return self._str_map(functools.partial(removesuffix, suffix=suffix)) else: diff --git a/pandas/core/tools/datetimes.py b/pandas/core/tools/datetimes.py index b917f2de61343..8421f9c22f6e8 100644 --- a/pandas/core/tools/datetimes.py +++ b/pandas/core/tools/datetimes.py @@ -1,9 +1,19 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from collections import abc -from datetime import datetime -from functools import partial -from itertools import islice +from collections import ( + abc, +) +from datetime import ( + datetime, +) +from functools import ( + partial, +) +from itertools import ( + islice, +) from typing import ( TYPE_CHECKING, Callable, @@ -35,19 +45,25 @@ parsing, timezones as libtimezones, ) -from pandas._libs.tslibs.conversion import precision_from_unit +from pandas._libs.tslibs.conversion import ( + precision_from_unit, +) from pandas._libs.tslibs.parsing import ( DateParseError, guess_datetime_format, ) -from pandas._libs.tslibs.strptime import array_strptime +from pandas._libs.tslibs.strptime import ( + array_strptime, +) from pandas._typing import ( AnyArrayLike, ArrayLike, DateTimeErrorChoices, npt, ) -from pandas.util._exceptions import find_stack_level +from pandas.util._exceptions import ( + find_stack_level, +) from pandas.core.dtypes.common import ( ensure_object, @@ -64,28 +80,46 @@ ABCDataFrame, ABCSeries, ) -from pandas.core.dtypes.missing import notna +from pandas.core.dtypes.missing import ( + notna, +) from pandas.arrays import ( DatetimeArray, IntegerArray, PandasArray, ) -from pandas.core import algorithms -from pandas.core.algorithms import unique -from pandas.core.arrays.base import ExtensionArray +from pandas.core import ( + algorithms, +) +from pandas.core.algorithms import ( + unique, +) +from pandas.core.arrays.base import ( + ExtensionArray, +) from pandas.core.arrays.datetimes import ( maybe_convert_dtype, objects_to_datetime64ns, tz_to_dtype, ) -from pandas.core.construction import extract_array -from pandas.core.indexes.base import Index -from pandas.core.indexes.datetimes import DatetimeIndex +from pandas.core.construction import ( + extract_array, +) +from pandas.core.indexes.base import ( + Index, +) +from pandas.core.indexes.datetimes import ( + DatetimeIndex, +) if TYPE_CHECKING: - from pandas._libs.tslibs.nattype import NaTType - from pandas._libs.tslibs.timedeltas import UnitChoices + from pandas._libs.tslibs.nattype import ( + NaTType, + ) + from pandas._libs.tslibs.timedeltas import ( + UnitChoices, + ) from pandas import ( DataFrame, @@ -233,7 +267,9 @@ def _maybe_cache( cache_array : Series Cache of converted, unique dates. Can be empty """ - from pandas import Series + from pandas import ( + Series, + ) cache_array = Series(dtype=object) @@ -305,7 +341,9 @@ def _convert_and_box_cache( ------- result : Index-like of converted dates """ - from pandas import Series + from pandas import ( + Series, + ) result = Series(arg).map(cache_array) return _box_as_indexlike(result._values, utc=False, name=name) @@ -1070,7 +1108,9 @@ def to_datetime( if errors == "raise": raise # ... otherwise, continue without the cache. - from pandas import Series + from pandas import ( + Series, + ) cache_array = Series([], dtype=object) # just an empty array if not cache_array.empty: diff --git a/pandas/core/tools/numeric.py b/pandas/core/tools/numeric.py index ea150f714845c..b6f1519361ca9 100644 --- a/pandas/core/tools/numeric.py +++ b/pandas/core/tools/numeric.py @@ -1,6 +1,10 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from typing import Literal +from typing import ( + Literal, +) import numpy as np @@ -9,13 +13,17 @@ using_nullable_dtypes, ) -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._typing import ( DateTimeErrorChoices, npt, ) -from pandas.core.dtypes.cast import maybe_downcast_numeric +from pandas.core.dtypes.cast import ( + maybe_downcast_numeric, +) from pandas.core.dtypes.common import ( ensure_object, is_bool_dtype, @@ -34,7 +42,9 @@ ) import pandas as pd -from pandas.core.arrays import BaseMaskedArray +from pandas.core.arrays import ( + BaseMaskedArray, +) def to_numeric( diff --git a/pandas/core/tools/timedeltas.py b/pandas/core/tools/timedeltas.py index 42cf92c6b2a35..b5f9cbf70ee5b 100644 --- a/pandas/core/tools/timedeltas.py +++ b/pandas/core/tools/timedeltas.py @@ -1,9 +1,13 @@ """ timedelta support tools """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from datetime import timedelta +from datetime import ( + timedelta, +) from typing import ( TYPE_CHECKING, overload, @@ -11,7 +15,9 @@ import numpy as np -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._libs.tslibs import ( NaT, NaTType, @@ -21,16 +27,22 @@ parse_timedelta_unit, ) -from pandas.core.dtypes.common import is_list_like +from pandas.core.dtypes.common import ( + is_list_like, +) from pandas.core.dtypes.generic import ( ABCIndex, ABCSeries, ) -from pandas.core.arrays.timedeltas import sequence_to_td64ns +from pandas.core.arrays.timedeltas import ( + sequence_to_td64ns, +) if TYPE_CHECKING: - from pandas._libs.tslibs.timedeltas import UnitChoices + from pandas._libs.tslibs.timedeltas import ( + UnitChoices, + ) from pandas._typing import ( ArrayLike, DateTimeErrorChoices, @@ -259,7 +271,9 @@ def _convert_listlike( # like to surface it. raise - from pandas import TimedeltaIndex + from pandas import ( + TimedeltaIndex, + ) value = TimedeltaIndex(td64arr, unit="ns", name=name) return value diff --git a/pandas/core/tools/times.py b/pandas/core/tools/times.py index cb178926123d3..b0f5557b893b8 100644 --- a/pandas/core/tools/times.py +++ b/pandas/core/tools/times.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from datetime import ( datetime, @@ -7,14 +9,20 @@ import numpy as np -from pandas._libs.lib import is_list_like -from pandas._typing import DateTimeErrorChoices +from pandas._libs.lib import ( + is_list_like, +) +from pandas._typing import ( + DateTimeErrorChoices, +) from pandas.core.dtypes.generic import ( ABCIndex, ABCSeries, ) -from pandas.core.dtypes.missing import notna +from pandas.core.dtypes.missing import ( + notna, +) def to_time( diff --git a/pandas/core/util/hashing.py b/pandas/core/util/hashing.py index 350914cc50556..a6097909da987 100644 --- a/pandas/core/util/hashing.py +++ b/pandas/core/util/hashing.py @@ -1,7 +1,9 @@ """ data hash pandas / numpy objects """ -from __future__ import annotations +from __future__ import ( + annotations, +) import itertools from typing import ( @@ -14,8 +16,12 @@ import numpy as np -from pandas._libs import lib -from pandas._libs.hashing import hash_object_array +from pandas._libs import ( + lib, +) +from pandas._libs.hashing import ( + hash_object_array, +) from pandas._typing import ( ArrayLike, npt, @@ -110,7 +116,9 @@ def hash_pandas_object( ------- Series of uint64, same length as the object """ - from pandas import Series + from pandas import ( + Series, + ) if hash_key is None: hash_key = _default_hash_key diff --git a/pandas/core/util/numba_.py b/pandas/core/util/numba_.py index be798e022ac6e..799b662e8cacd 100644 --- a/pandas/core/util/numba_.py +++ b/pandas/core/util/numba_.py @@ -1,5 +1,7 @@ """Common utilities for Numba operations""" -from __future__ import annotations +from __future__ import ( + annotations, +) import types from typing import ( @@ -9,8 +11,12 @@ import numpy as np -from pandas.compat._optional import import_optional_dependency -from pandas.errors import NumbaUtilError +from pandas.compat._optional import ( + import_optional_dependency, +) +from pandas.errors import ( + NumbaUtilError, +) GLOBAL_USE_NUMBA: bool = False diff --git a/pandas/core/window/common.py b/pandas/core/window/common.py index b6c7bc5684d20..d06bf88034580 100644 --- a/pandas/core/window/common.py +++ b/pandas/core/window/common.py @@ -1,8 +1,14 @@ """Common utility functions for rolling operations""" -from __future__ import annotations +from __future__ import ( + annotations, +) -from collections import defaultdict -from typing import cast +from collections import ( + defaultdict, +) +from typing import ( + cast, +) import numpy as np @@ -11,7 +17,9 @@ ABCSeries, ) -from pandas.core.indexes.api import MultiIndex +from pandas.core.indexes.api import ( + MultiIndex, +) def flex_binary_moment(arg1, arg2, f, pairwise: bool = False): @@ -20,7 +28,9 @@ def flex_binary_moment(arg1, arg2, f, pairwise: bool = False): return f(X, Y) elif isinstance(arg1, ABCDataFrame): - from pandas import DataFrame + from pandas import ( + DataFrame, + ) def dataframe_from_int_dict(data, frame_template) -> DataFrame: result = DataFrame(data, index=frame_template.index) @@ -62,7 +72,9 @@ def dataframe_from_int_dict(data, frame_template) -> DataFrame: *prep_binary(arg1.iloc[:, i], arg2.iloc[:, j]) ) - from pandas import concat + from pandas import ( + concat, + ) result_index = arg1.index.union(arg2.index) if len(result_index): diff --git a/pandas/core/window/doc.py b/pandas/core/window/doc.py index 2a5cbc04921fa..bbc7c17444582 100644 --- a/pandas/core/window/doc.py +++ b/pandas/core/window/doc.py @@ -1,9 +1,15 @@ """Any shareable docstring components for rolling/expanding/ewm""" -from __future__ import annotations +from __future__ import ( + annotations, +) -from textwrap import dedent +from textwrap import ( + dedent, +) -from pandas.core.shared_docs import _shared_docs +from pandas.core.shared_docs import ( + _shared_docs, +) _shared_docs = dict(**_shared_docs) diff --git a/pandas/core/window/ewm.py b/pandas/core/window/ewm.py index b61fa9a92539e..b08df0917cbd6 100644 --- a/pandas/core/window/ewm.py +++ b/pandas/core/window/ewm.py @@ -1,13 +1,23 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import datetime -from functools import partial -from textwrap import dedent -from typing import TYPE_CHECKING +from functools import ( + partial, +) +from textwrap import ( + dedent, +) +from typing import ( + TYPE_CHECKING, +) import numpy as np -from pandas._libs.tslibs import Timedelta +from pandas._libs.tslibs import ( + Timedelta, +) import pandas._libs.window.aggregations as window_aggregations from pandas._typing import ( Axis, @@ -18,15 +28,21 @@ from pandas import DataFrame, Series from pandas.core.generic import NDFrame -from pandas.util._decorators import doc +from pandas.util._decorators import ( + doc, +) from pandas.core.dtypes.common import ( is_datetime64_ns_dtype, is_numeric_dtype, ) -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.missing import ( + isna, +) -from pandas.core import common +from pandas.core import ( + common, +) from pandas.core.indexers.objects import ( BaseIndexer, ExponentialMovingWindowIndexer, @@ -36,7 +52,9 @@ get_jit_arguments, maybe_use_numba, ) -from pandas.core.window.common import zsqrt +from pandas.core.window.common import ( + zsqrt, +) from pandas.core.window.doc import ( _shared_docs, create_section_header, @@ -697,7 +715,9 @@ def cov( bias: bool = False, numeric_only: bool = False, ): - from pandas import Series + from pandas import ( + Series, + ) self._validate_numeric_only("cov", numeric_only) @@ -768,7 +788,9 @@ def corr( pairwise: bool | None = None, numeric_only: bool = False, ): - from pandas import Series + from pandas import ( + Series, + ) self._validate_numeric_only("corr", numeric_only) diff --git a/pandas/core/window/expanding.py b/pandas/core/window/expanding.py index 6147f0f43c558..b975d5aac7249 100644 --- a/pandas/core/window/expanding.py +++ b/pandas/core/window/expanding.py @@ -1,6 +1,10 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from textwrap import dedent +from textwrap import ( + dedent, +) from typing import ( TYPE_CHECKING, Any, @@ -17,7 +21,9 @@ from pandas import DataFrame, Series from pandas.core.generic import NDFrame -from pandas.util._decorators import doc +from pandas.util._decorators import ( + doc, +) from pandas.core.indexers.objects import ( BaseIndexer, diff --git a/pandas/core/window/numba_.py b/pandas/core/window/numba_.py index 756f8e3a1cffc..dab916020590f 100644 --- a/pandas/core/window/numba_.py +++ b/pandas/core/window/numba_.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import functools from typing import ( @@ -9,10 +11,16 @@ import numpy as np -from pandas._typing import Scalar -from pandas.compat._optional import import_optional_dependency +from pandas._typing import ( + Scalar, +) +from pandas.compat._optional import ( + import_optional_dependency, +) -from pandas.core.util.numba_ import jit_user_function +from pandas.core.util.numba_ import ( + jit_user_function, +) @functools.lru_cache(maxsize=None) diff --git a/pandas/core/window/online.py b/pandas/core/window/online.py index f9e3122b304bc..21e78b59a9dee 100644 --- a/pandas/core/window/online.py +++ b/pandas/core/window/online.py @@ -1,10 +1,16 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from typing import TYPE_CHECKING +from typing import ( + TYPE_CHECKING, +) import numpy as np -from pandas.compat._optional import import_optional_dependency +from pandas.compat._optional import ( + import_optional_dependency, +) def generate_online_numba_ewma_func( diff --git a/pandas/core/window/rolling.py b/pandas/core/window/rolling.py index 97b3f23d65b44..19cae995e4d5c 100644 --- a/pandas/core/window/rolling.py +++ b/pandas/core/window/rolling.py @@ -2,13 +2,21 @@ Provide a generic structure to support window functions, similar to how we have a Groupby object. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import copy -from datetime import timedelta -from functools import partial +from datetime import ( + timedelta, +) +from functools import ( + partial, +) import inspect -from textwrap import dedent +from textwrap import ( + dedent, +) from typing import ( TYPE_CHECKING, Any, @@ -33,9 +41,15 @@ QuantileInterpolation, WindowingRankType, ) -from pandas.compat._optional import import_optional_dependency -from pandas.errors import DataError -from pandas.util._decorators import doc +from pandas.compat._optional import ( + import_optional_dependency, +) +from pandas.errors import ( + DataError, +) +from pandas.util._decorators import ( + doc, +) from pandas.core.dtypes.common import ( ensure_float64, @@ -50,13 +64,25 @@ ABCDataFrame, ABCSeries, ) -from pandas.core.dtypes.missing import notna +from pandas.core.dtypes.missing import ( + notna, +) -from pandas.core._numba import executor -from pandas.core.algorithms import factorize -from pandas.core.apply import ResamplerWindowApply -from pandas.core.arrays import ExtensionArray -from pandas.core.base import SelectionMixin +from pandas.core._numba import ( + executor, +) +from pandas.core.algorithms import ( + factorize, +) +from pandas.core.apply import ( + ResamplerWindowApply, +) +from pandas.core.arrays import ( + ExtensionArray, +) +from pandas.core.base import ( + SelectionMixin, +) import pandas.core.common as com from pandas.core.indexers.objects import ( BaseIndexer, @@ -71,7 +97,9 @@ PeriodIndex, TimedeltaIndex, ) -from pandas.core.reshape.concat import concat +from pandas.core.reshape.concat import ( + concat, +) from pandas.core.util.numba_ import ( get_jit_arguments, maybe_use_numba, @@ -103,8 +131,12 @@ DataFrame, Series, ) - from pandas.core.generic import NDFrame - from pandas.core.groupby.ops import BaseGrouper + from pandas.core.generic import ( + NDFrame, + ) + from pandas.core.groupby.ops import ( + BaseGrouper, + ) class BaseWindow(SelectionMixin): @@ -379,7 +411,9 @@ def _prep_values(self, values: ArrayLike) -> np.ndarray: def _insert_on_column(self, result: DataFrame, obj: DataFrame) -> None: # if we have an 'on' column we want to put it back into # the results in the same location - from pandas import Series + from pandas import ( + Series, + ) if self.on is not None and not self._on.equals(obj.index): name = self._on.name @@ -683,7 +717,9 @@ def __init__( _as_index: bool = True, **kwargs, ) -> None: - from pandas.core.groupby.ops import BaseGrouper + from pandas.core.groupby.ops import ( + BaseGrouper, + ) if not isinstance(_grouper, BaseGrouper): raise ValueError("Must pass a BaseGrouper object.") @@ -1400,7 +1436,9 @@ def _generate_cython_apply_func( raw: bool, function: Callable[..., Any], ) -> Callable[[np.ndarray, np.ndarray, np.ndarray, int], np.ndarray]: - from pandas import Series + from pandas import ( + Series, + ) window_func = partial( window_aggregations.roll_apply, @@ -1434,7 +1472,9 @@ def sum( engine_kwargs=engine_kwargs, ) else: - from pandas.core._numba.kernels import sliding_sum + from pandas.core._numba.kernels import ( + sliding_sum, + ) return self._numba_apply(sliding_sum, engine_kwargs) window_func = window_aggregations.roll_sum @@ -1456,7 +1496,9 @@ def max( engine_kwargs=engine_kwargs, ) else: - from pandas.core._numba.kernels import sliding_min_max + from pandas.core._numba.kernels import ( + sliding_min_max, + ) return self._numba_apply(sliding_min_max, engine_kwargs, True) window_func = window_aggregations.roll_max @@ -1478,7 +1520,9 @@ def min( engine_kwargs=engine_kwargs, ) else: - from pandas.core._numba.kernels import sliding_min_max + from pandas.core._numba.kernels import ( + sliding_min_max, + ) return self._numba_apply(sliding_min_max, engine_kwargs, False) window_func = window_aggregations.roll_min @@ -1500,7 +1544,9 @@ def mean( engine_kwargs=engine_kwargs, ) else: - from pandas.core._numba.kernels import sliding_mean + from pandas.core._numba.kernels import ( + sliding_mean, + ) return self._numba_apply(sliding_mean, engine_kwargs) window_func = window_aggregations.roll_mean @@ -1537,7 +1583,9 @@ def std( if maybe_use_numba(engine): if self.method == "table": raise NotImplementedError("std not supported with method='table'") - from pandas.core._numba.kernels import sliding_var + from pandas.core._numba.kernels import ( + sliding_var, + ) return zsqrt(self._numba_apply(sliding_var, engine_kwargs, ddof)) window_func = window_aggregations.roll_var @@ -1561,7 +1609,9 @@ def var( if maybe_use_numba(engine): if self.method == "table": raise NotImplementedError("var not supported with method='table'") - from pandas.core._numba.kernels import sliding_var + from pandas.core._numba.kernels import ( + sliding_var, + ) return self._numba_apply(sliding_var, engine_kwargs, ddof) window_func = partial(window_aggregations.roll_var, ddof=ddof) @@ -1640,7 +1690,9 @@ def cov( raise NotImplementedError("step not implemented for cov") self._validate_numeric_only("cov", numeric_only) - from pandas import Series + from pandas import ( + Series, + ) def cov_func(x, y): x_array = self._prep_values(x) @@ -1687,7 +1739,9 @@ def corr( raise NotImplementedError("step not implemented for corr") self._validate_numeric_only("corr", numeric_only) - from pandas import Series + from pandas import ( + Series, + ) def corr_func(x, y): x_array = self._prep_values(x) diff --git a/pandas/errors/__init__.py b/pandas/errors/__init__.py index c4b804de6a110..42e1133248290 100644 --- a/pandas/errors/__init__.py +++ b/pandas/errors/__init__.py @@ -1,18 +1,24 @@ """ Expose public exceptions & warnings """ -from __future__ import annotations +from __future__ import ( + annotations, +) import ctypes -from pandas._config.config import OptionError +from pandas._config.config import ( + OptionError, +) from pandas._libs.tslibs import ( OutOfBoundsDatetime, OutOfBoundsTimedelta, ) -from pandas.util.version import InvalidVersion +from pandas.util.version import ( + InvalidVersion, +) class IntCastingNaNError(ValueError): diff --git a/pandas/io/__init__.py b/pandas/io/__init__.py index bd3ddc09393d8..96437989c4a1c 100644 --- a/pandas/io/__init__.py +++ b/pandas/io/__init__.py @@ -1,4 +1,6 @@ -from typing import TYPE_CHECKING +from typing import ( + TYPE_CHECKING, +) if TYPE_CHECKING: # import modules that have public classes/functions diff --git a/pandas/io/_util.py b/pandas/io/_util.py index d2a001f0cf925..f8da890a32be9 100644 --- a/pandas/io/_util.py +++ b/pandas/io/_util.py @@ -1,6 +1,10 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from pandas.compat._optional import import_optional_dependency +from pandas.compat._optional import ( + import_optional_dependency, +) import pandas as pd diff --git a/pandas/io/api.py b/pandas/io/api.py index 4e8b34a61dfc6..4ca037bb72f0b 100644 --- a/pandas/io/api.py +++ b/pandas/io/api.py @@ -2,18 +2,32 @@ Data IO api """ -from pandas.io.clipboards import read_clipboard +from pandas.io.clipboards import ( + read_clipboard, +) from pandas.io.excel import ( ExcelFile, ExcelWriter, read_excel, ) -from pandas.io.feather_format import read_feather -from pandas.io.gbq import read_gbq -from pandas.io.html import read_html -from pandas.io.json import read_json -from pandas.io.orc import read_orc -from pandas.io.parquet import read_parquet +from pandas.io.feather_format import ( + read_feather, +) +from pandas.io.gbq import ( + read_gbq, +) +from pandas.io.html import ( + read_html, +) +from pandas.io.json import ( + read_json, +) +from pandas.io.orc import ( + read_orc, +) +from pandas.io.parquet import ( + read_parquet, +) from pandas.io.parsers import ( read_csv, read_fwf, @@ -27,15 +41,23 @@ HDFStore, read_hdf, ) -from pandas.io.sas import read_sas -from pandas.io.spss import read_spss +from pandas.io.sas import ( + read_sas, +) +from pandas.io.spss import ( + read_spss, +) from pandas.io.sql import ( read_sql, read_sql_query, read_sql_table, ) -from pandas.io.stata import read_stata -from pandas.io.xml import read_xml +from pandas.io.stata import ( + read_stata, +) +from pandas.io.xml import ( + read_xml, +) __all__ = [ "ExcelFile", diff --git a/pandas/io/clipboard/__init__.py b/pandas/io/clipboard/__init__.py index e574ed2c8059a..e14006ec7d4cc 100644 --- a/pandas/io/clipboard/__init__.py +++ b/pandas/io/clipboard/__init__.py @@ -55,7 +55,9 @@ ) import os import platform -from shutil import which +from shutil import ( + which, +) import subprocess import time import warnings @@ -64,7 +66,9 @@ PyperclipException, PyperclipWindowsException, ) -from pandas.util._exceptions import find_stack_level +from pandas.util._exceptions import ( + find_stack_level, +) # `import PyQt4` sys.exit()s if DISPLAY is not in the environment. # Thus, we need to detect the presence of $DISPLAY manually @@ -148,12 +152,18 @@ def init_qt_clipboard(): # Try to import from qtpy, but if that fails try PyQt5 then PyQt4 try: - from qtpy.QtWidgets import QApplication + from qtpy.QtWidgets import ( + QApplication, + ) except ImportError: try: - from PyQt5.QtWidgets import QApplication + from PyQt5.QtWidgets import ( + QApplication, + ) except ImportError: - from PyQt4.QtGui import QApplication + from PyQt4.QtGui import ( + QApplication, + ) app = QApplication.instance() if app is None: diff --git a/pandas/io/clipboards.py b/pandas/io/clipboards.py index fa87e02793b55..473fd4ca81c5a 100644 --- a/pandas/io/clipboards.py +++ b/pandas/io/clipboards.py @@ -1,15 +1,27 @@ """ io on the clipboard """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from io import StringIO +from io import ( + StringIO, +) import warnings -from pandas._config import using_nullable_dtypes +from pandas._config import ( + using_nullable_dtypes, +) -from pandas._libs import lib -from pandas.util._exceptions import find_stack_level +from pandas._libs import ( + lib, +) +from pandas.util._exceptions import ( + find_stack_level, +) -from pandas.core.dtypes.generic import ABCDataFrame +from pandas.core.dtypes.generic import ( + ABCDataFrame, +) from pandas import ( get_option, @@ -67,8 +79,12 @@ def read_clipboard( else using_nullable_dtypes() ) - from pandas.io.clipboard import clipboard_get - from pandas.io.parsers import read_csv + from pandas.io.clipboard import ( + clipboard_get, + ) + from pandas.io.parsers import ( + read_csv, + ) text = clipboard_get() @@ -149,7 +165,9 @@ def to_clipboard( if encoding is not None and encoding.lower().replace("-", "") != "utf8": raise ValueError("clipboard only supports utf-8 encoding") - from pandas.io.clipboard import clipboard_set + from pandas.io.clipboard import ( + clipboard_set, + ) if excel is None: excel = True diff --git a/pandas/io/common.py b/pandas/io/common.py index 13185603c7bac..8604014625b80 100644 --- a/pandas/io/common.py +++ b/pandas/io/common.py @@ -1,12 +1,16 @@ """Common IO api utilities""" -from __future__ import annotations +from __future__ import ( + annotations, +) from abc import ( ABC, abstractmethod, ) import codecs -from collections import defaultdict +from collections import ( + defaultdict, +) import dataclasses import functools import gzip @@ -20,7 +24,9 @@ ) import mmap import os -from pathlib import Path +from pathlib import ( + Path, +) import re import tarfile from typing import ( @@ -57,11 +63,21 @@ StorageOptions, WriteBuffer, ) -from pandas.compat import get_lzma_file -from pandas.compat._optional import import_optional_dependency -from pandas.compat.compressors import BZ2File as _BZ2File -from pandas.util._decorators import doc -from pandas.util._exceptions import find_stack_level +from pandas.compat import ( + get_lzma_file, +) +from pandas.compat._optional import ( + import_optional_dependency, +) +from pandas.compat.compressors import ( + BZ2File as _BZ2File, +) +from pandas.util._decorators import ( + doc, +) +from pandas.util._exceptions import ( + find_stack_level, +) from pandas.core.dtypes.common import ( is_bool, @@ -70,8 +86,12 @@ is_list_like, ) -from pandas.core.indexes.api import MultiIndex -from pandas.core.shared_docs import _shared_docs +from pandas.core.indexes.api import ( + MultiIndex, +) +from pandas.core.shared_docs import ( + _shared_docs, +) _VALID_URLS = set(uses_relative + uses_netloc + uses_params) _VALID_URLS.discard("") @@ -477,7 +497,9 @@ def file_path_to_url(path: str) -> str: a valid FILE URL """ # lazify expensive import (~30ms) - from urllib.request import pathname2url + from urllib.request import ( + pathname2url, + ) return urljoin("file:", pathname2url(path)) diff --git a/pandas/io/excel/__init__.py b/pandas/io/excel/__init__.py index 275cbf0148f94..fcb0dd1fed836 100644 --- a/pandas/io/excel/__init__.py +++ b/pandas/io/excel/__init__.py @@ -3,10 +3,18 @@ ExcelWriter, read_excel, ) -from pandas.io.excel._odswriter import ODSWriter as _ODSWriter -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 +from pandas.io.excel._odswriter import ( + ODSWriter as _ODSWriter, +) +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"] diff --git a/pandas/io/excel/_base.py b/pandas/io/excel/_base.py index 7cad7ecbf777a..83c685a55705a 100644 --- a/pandas/io/excel/_base.py +++ b/pandas/io/excel/_base.py @@ -1,12 +1,22 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import abc import datetime -from functools import partial -from io import BytesIO +from functools import ( + partial, +) +from io import ( + BytesIO, +) import os -from textwrap import fill -from types import TracebackType +from textwrap import ( + fill, +) +from types import ( + TracebackType, +) from typing import ( IO, Any, @@ -28,8 +38,12 @@ using_nullable_dtypes, ) -from pandas._libs import lib -from pandas._libs.parsers import STR_NA_VALUES +from pandas._libs import ( + lib, +) +from pandas._libs.parsers import ( + STR_NA_VALUES, +) from pandas._typing import ( DtypeArg, FilePath, @@ -42,7 +56,9 @@ get_version, import_optional_dependency, ) -from pandas.errors import EmptyDataError +from pandas.errors import ( + EmptyDataError, +) from pandas.util._decorators import ( Appender, doc, @@ -55,9 +71,15 @@ is_list_like, ) -from pandas.core.frame import DataFrame -from pandas.core.shared_docs import _shared_docs -from pandas.util.version import Version +from pandas.core.frame import ( + DataFrame, +) +from pandas.core.shared_docs import ( + _shared_docs, +) +from pandas.util.version import ( + Version, +) from pandas.io.common import ( IOHandles, @@ -72,8 +94,12 @@ maybe_convert_usecols, pop_header_name, ) -from pandas.io.parsers import TextParser -from pandas.io.parsers.readers import validate_integer +from pandas.io.parsers import ( + TextParser, +) +from pandas.io.parsers.readers import ( + validate_integer, +) _read_excel_doc = ( """ @@ -1459,10 +1485,18 @@ class ExcelFile: This is not supported, switch to using ``openpyxl`` instead. """ - from pandas.io.excel._odfreader import ODFReader - from pandas.io.excel._openpyxl import OpenpyxlReader - from pandas.io.excel._pyxlsb import PyxlsbReader - from pandas.io.excel._xlrd import XlrdReader + from pandas.io.excel._odfreader import ( + ODFReader, + ) + from pandas.io.excel._openpyxl import ( + OpenpyxlReader, + ) + from pandas.io.excel._pyxlsb import ( + PyxlsbReader, + ) + from pandas.io.excel._xlrd import ( + XlrdReader, + ) _engines: Mapping[str, Any] = { "xlrd": XlrdReader, diff --git a/pandas/io/excel/_odfreader.py b/pandas/io/excel/_odfreader.py index c3d7cb5df717f..86f1dff484f2a 100644 --- a/pandas/io/excel/_odfreader.py +++ b/pandas/io/excel/_odfreader.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, @@ -13,16 +15,26 @@ Scalar, StorageOptions, ) -from pandas.compat._optional import import_optional_dependency -from pandas.util._decorators import doc +from pandas.compat._optional import ( + import_optional_dependency, +) +from pandas.util._decorators import ( + doc, +) import pandas as pd -from pandas.core.shared_docs import _shared_docs +from pandas.core.shared_docs import ( + _shared_docs, +) -from pandas.io.excel._base import BaseExcelReader +from pandas.io.excel._base import ( + BaseExcelReader, +) if TYPE_CHECKING: - from pandas._libs.tslibs.nattype import NaTType + from pandas._libs.tslibs.nattype import ( + NaTType, + ) @doc(storage_options=_shared_docs["storage_options"]) @@ -46,12 +58,16 @@ def __init__( @property def _workbook_class(self): - from odf.opendocument import OpenDocument + from odf.opendocument import ( + OpenDocument, + ) return OpenDocument def load_workbook(self, filepath_or_buffer: FilePath | ReadBuffer[bytes]): - from odf.opendocument import load + from odf.opendocument import ( + load, + ) return load(filepath_or_buffer) @@ -63,20 +79,26 @@ def empty_value(self) -> str: @property def sheet_names(self) -> list[str]: """Return a list of sheet names present in the document""" - from odf.table import Table + from odf.table import ( + Table, + ) tables = self.book.getElementsByType(Table) return [t.getAttribute("name") for t in tables] def get_sheet_by_index(self, index: int): - from odf.table import Table + from odf.table import ( + Table, + ) self.raise_if_bad_sheet_by_index(index) tables = self.book.getElementsByType(Table) return tables[index] def get_sheet_by_name(self, name: str): - from odf.table import Table + from odf.table import ( + Table, + ) self.raise_if_bad_sheet_by_name(name) tables = self.book.getElementsByType(Table) @@ -163,12 +185,16 @@ def _get_row_repeat(self, row) -> int: Repeating an empty row appeared to be a common way of representing sparse rows in the table. """ - from odf.namespaces import TABLENS + from odf.namespaces import ( + TABLENS, + ) return int(row.attributes.get((TABLENS, "number-rows-repeated"), 1)) def _get_column_repeat(self, cell) -> int: - from odf.namespaces import TABLENS + from odf.namespaces import ( + TABLENS, + ) return int(cell.attributes.get((TABLENS, "number-columns-repeated"), 1)) @@ -183,7 +209,9 @@ def _is_empty_row(self, row) -> bool: return True def _get_cell_value(self, cell) -> Scalar | NaTType: - from odf.namespaces import OFFICENS + from odf.namespaces import ( + OFFICENS, + ) if str(cell) == "#N/A": return np.nan @@ -226,9 +254,15 @@ def _get_cell_string_value(self, cell) -> str: Find and decode OpenDocument text:s tags that represent a run length encoded sequence of space characters. """ - from odf.element import Element - from odf.namespaces import TEXTNS - from odf.text import S + from odf.element import ( + Element, + ) + from odf.namespaces import ( + TEXTNS, + ) + from odf.text import ( + S, + ) text_s = S().qname diff --git a/pandas/io/excel/_odswriter.py b/pandas/io/excel/_odswriter.py index 6f1d62111e5b4..1be8a77805aa7 100644 --- a/pandas/io/excel/_odswriter.py +++ b/pandas/io/excel/_odswriter.py @@ -1,6 +1,10 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from collections import defaultdict +from collections import ( + defaultdict, +) import datetime from typing import ( TYPE_CHECKING, @@ -10,21 +14,27 @@ cast, ) -from pandas._libs import json +from pandas._libs import ( + json, +) from pandas._typing import ( FilePath, StorageOptions, WriteExcelBuffer, ) -from pandas.io.excel._base import ExcelWriter +from pandas.io.excel._base import ( + ExcelWriter, +) from pandas.io.excel._util import ( combine_kwargs, validate_freeze_panes, ) if TYPE_CHECKING: - from pandas.io.formats.excel import ExcelCell + from pandas.io.formats.excel import ( + ExcelCell, + ) class ODSWriter(ExcelWriter): @@ -43,7 +53,9 @@ def __init__( engine_kwargs: dict[str, Any] | None = None, **kwargs, ) -> None: - from odf.opendocument import OpenDocumentSpreadsheet + from odf.opendocument import ( + OpenDocumentSpreadsheet, + ) if mode == "a": raise ValueError("Append mode is not supported with odf!") @@ -73,7 +85,9 @@ def book(self): @property def sheets(self) -> dict[str, Any]: """Mapping of sheet names to sheet objects.""" - from odf.table import Table + from odf.table import ( + Table, + ) result = { sheet.getAttribute("name"): sheet @@ -105,7 +119,9 @@ def _write_cells( TableCell, TableRow, ) - from odf.text import P + from odf.text import ( + P, + ) sheet_name = self._get_sheet_name(sheet_name) assert sheet_name is not None @@ -183,7 +199,9 @@ def _make_table_cell(self, cell) -> tuple[object, Any]: pvalue, cell : Tuple[str, TableCell] Display value, Cell value """ - from odf.table import TableCell + from odf.table import ( + TableCell, + ) attributes = self._make_table_cell_attributes(cell) val, fmt = self._value_with_fmt(cell.val) diff --git a/pandas/io/excel/_openpyxl.py b/pandas/io/excel/_openpyxl.py index 594813fe0c1ac..2de0c5ccc5a28 100644 --- a/pandas/io/excel/_openpyxl.py +++ b/pandas/io/excel/_openpyxl.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import mmap from typing import ( @@ -17,10 +19,16 @@ StorageOptions, WriteExcelBuffer, ) -from pandas.compat._optional import import_optional_dependency -from pandas.util._decorators import doc +from pandas.compat._optional import ( + import_optional_dependency, +) +from pandas.util._decorators import ( + doc, +) -from pandas.core.shared_docs import _shared_docs +from pandas.core.shared_docs import ( + _shared_docs, +) from pandas.io.excel._base import ( BaseExcelReader, @@ -32,8 +40,12 @@ ) if TYPE_CHECKING: - from openpyxl.descriptors.serialisable import Serialisable - from openpyxl.workbook import Workbook + from openpyxl.descriptors.serialisable import ( + Serialisable, + ) + from openpyxl.workbook import ( + Workbook, + ) class OpenpyxlWriter(ExcelWriter): @@ -53,7 +65,9 @@ def __init__( **kwargs, ) -> None: # Use the openpyxl module as the Excel writer. - from openpyxl.workbook import Workbook + from openpyxl.workbook import ( + Workbook, + ) engine_kwargs = combine_kwargs(engine_kwargs, kwargs) @@ -68,7 +82,9 @@ def __init__( # ExcelWriter replaced "a" by "r+" to allow us to first read the excel file from # the file and later write to it if "r+" in self._mode: # Load from existing workbook - from openpyxl import load_workbook + from openpyxl import ( + load_workbook, + ) try: self._book = load_workbook(self._handles.handle, **engine_kwargs) @@ -169,7 +185,9 @@ def _convert_to_color(cls, color_spec): ------- color : openpyxl.styles.Color """ - from openpyxl.styles import Color + from openpyxl.styles import ( + Color, + ) if isinstance(color_spec, str): return Color(color_spec) @@ -204,7 +222,9 @@ def _convert_to_font(cls, font_dict): ------- font : openpyxl.styles.Font """ - from openpyxl.styles import Font + from openpyxl.styles import ( + Font, + ) _font_key_map = { "sz": "size", @@ -322,7 +342,9 @@ def _convert_to_side(cls, side_spec): ------- side : openpyxl.styles.Side """ - from openpyxl.styles import Side + from openpyxl.styles import ( + Side, + ) _side_key_map = {"border_style": "style"} @@ -363,7 +385,9 @@ def _convert_to_border(cls, border_dict): ------- border : openpyxl.styles.Border """ - from openpyxl.styles import Border + from openpyxl.styles import ( + Border, + ) _border_key_map = {"diagonalup": "diagonalUp", "diagonaldown": "diagonalDown"} @@ -397,7 +421,9 @@ def _convert_to_alignment(cls, alignment_dict): ------- alignment : openpyxl.styles.Alignment """ - from openpyxl.styles import Alignment + from openpyxl.styles import ( + Alignment, + ) return Alignment(**alignment_dict) @@ -434,7 +460,9 @@ def _convert_to_protection(cls, protection_dict): Returns ------- """ - from openpyxl.styles import Protection + from openpyxl.styles import ( + Protection, + ) return Protection(**protection_dict) @@ -550,12 +578,16 @@ def __init__( @property def _workbook_class(self): - from openpyxl import Workbook + from openpyxl import ( + Workbook, + ) return Workbook def load_workbook(self, filepath_or_buffer: FilePath | ReadBuffer[bytes]): - from openpyxl import load_workbook + from openpyxl import ( + load_workbook, + ) return load_workbook( filepath_or_buffer, read_only=True, data_only=True, keep_links=False diff --git a/pandas/io/excel/_pyxlsb.py b/pandas/io/excel/_pyxlsb.py index 634baee63137e..147979c5c24f3 100644 --- a/pandas/io/excel/_pyxlsb.py +++ b/pandas/io/excel/_pyxlsb.py @@ -1,5 +1,7 @@ # pyright: reportMissingImports=false -from __future__ import annotations +from __future__ import ( + annotations, +) from pandas._typing import ( FilePath, @@ -7,12 +9,20 @@ Scalar, StorageOptions, ) -from pandas.compat._optional import import_optional_dependency -from pandas.util._decorators import doc +from pandas.compat._optional import ( + import_optional_dependency, +) +from pandas.util._decorators import ( + doc, +) -from pandas.core.shared_docs import _shared_docs +from pandas.core.shared_docs import ( + _shared_docs, +) -from pandas.io.excel._base import BaseExcelReader +from pandas.io.excel._base import ( + BaseExcelReader, +) class PyxlsbReader(BaseExcelReader): @@ -38,12 +48,16 @@ def __init__( @property def _workbook_class(self): - from pyxlsb import Workbook + from pyxlsb import ( + Workbook, + ) return Workbook def load_workbook(self, filepath_or_buffer: FilePath | ReadBuffer[bytes]): - from pyxlsb import open_workbook + from pyxlsb import ( + open_workbook, + ) # TODO: hack in buffer capability # This might need some modifications to the Pyxlsb library diff --git a/pandas/io/excel/_util.py b/pandas/io/excel/_util.py index 72c64c5ec8939..7a69577178314 100644 --- a/pandas/io/excel/_util.py +++ b/pandas/io/excel/_util.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, @@ -13,7 +15,9 @@ overload, ) -from pandas.compat._optional import import_optional_dependency +from pandas.compat._optional import ( + import_optional_dependency, +) from pandas.core.dtypes.common import ( is_integer, @@ -21,7 +25,9 @@ ) if TYPE_CHECKING: - from pandas.io.excel._base import ExcelWriter + from pandas.io.excel._base import ( + ExcelWriter, + ) ExcelWriter_t = type[ExcelWriter] usecols_func = TypeVar("usecols_func", bound=Callable[[Hashable], object]) diff --git a/pandas/io/excel/_xlrd.py b/pandas/io/excel/_xlrd.py index 37bd4c1ba5ba5..1a70990d5afb2 100644 --- a/pandas/io/excel/_xlrd.py +++ b/pandas/io/excel/_xlrd.py @@ -1,6 +1,10 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from datetime import time +from datetime import ( + time, +) import numpy as np @@ -8,12 +12,20 @@ Scalar, StorageOptions, ) -from pandas.compat._optional import import_optional_dependency -from pandas.util._decorators import doc +from pandas.compat._optional import ( + import_optional_dependency, +) +from pandas.util._decorators import ( + doc, +) -from pandas.core.shared_docs import _shared_docs +from pandas.core.shared_docs import ( + _shared_docs, +) -from pandas.io.excel._base import BaseExcelReader +from pandas.io.excel._base import ( + BaseExcelReader, +) class XlrdReader(BaseExcelReader): @@ -36,12 +48,16 @@ def __init__( @property def _workbook_class(self): - from xlrd import Book + from xlrd import ( + Book, + ) return Book def load_workbook(self, filepath_or_buffer): - from xlrd import open_workbook + from xlrd import ( + open_workbook, + ) if hasattr(filepath_or_buffer, "read"): data = filepath_or_buffer.read() diff --git a/pandas/io/excel/_xlsxwriter.py b/pandas/io/excel/_xlsxwriter.py index 1800d3d87f7c0..9f7e54ba5cda8 100644 --- a/pandas/io/excel/_xlsxwriter.py +++ b/pandas/io/excel/_xlsxwriter.py @@ -1,15 +1,23 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from typing import Any +from typing import ( + Any, +) -from pandas._libs import json +from pandas._libs import ( + json, +) from pandas._typing import ( FilePath, StorageOptions, WriteExcelBuffer, ) -from pandas.io.excel._base import ExcelWriter +from pandas.io.excel._base import ( + ExcelWriter, +) from pandas.io.excel._util import ( combine_kwargs, validate_freeze_panes, @@ -189,7 +197,9 @@ def __init__( **kwargs, ) -> None: # Use the xlsxwriter module as the Excel writer. - from xlsxwriter import Workbook + from xlsxwriter import ( + Workbook, + ) engine_kwargs = combine_kwargs(engine_kwargs, kwargs) diff --git a/pandas/io/feather_format.py b/pandas/io/feather_format.py index 8a21d99124ec6..51ea16c22e3f1 100644 --- a/pandas/io/feather_format.py +++ b/pandas/io/feather_format.py @@ -1,22 +1,32 @@ """ feather-format compat """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( Hashable, Sequence, ) -from pandas._config import using_nullable_dtypes +from pandas._config import ( + using_nullable_dtypes, +) -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._typing import ( FilePath, ReadBuffer, StorageOptions, WriteBuffer, ) -from pandas.compat._optional import import_optional_dependency -from pandas.util._decorators import doc +from pandas.compat._optional import ( + import_optional_dependency, +) +from pandas.util._decorators import ( + doc, +) from pandas import ( arrays, @@ -26,9 +36,13 @@ DataFrame, RangeIndex, ) -from pandas.core.shared_docs import _shared_docs +from pandas.core.shared_docs import ( + _shared_docs, +) -from pandas.io.common import get_handle +from pandas.io.common import ( + get_handle, +) @doc(storage_options=_shared_docs["storage_options"]) @@ -55,7 +69,9 @@ def to_feather( .. versionadded:: 1.1.0 """ import_optional_dependency("pyarrow") - from pyarrow import feather + from pyarrow import ( + feather, + ) if not isinstance(df, DataFrame): raise ValueError("feather only support IO with DataFrames") @@ -145,7 +161,9 @@ def read_feather( type of object stored in file """ import_optional_dependency("pyarrow") - from pyarrow import feather + from pyarrow import ( + feather, + ) use_nullable_dtypes = ( use_nullable_dtypes @@ -168,7 +186,9 @@ def read_feather( ) if dtype_backend == "pandas": - from pandas.io._util import _arrow_dtype_mapping + from pandas.io._util import ( + _arrow_dtype_mapping, + ) return pa_table.to_pandas(types_mapper=_arrow_dtype_mapping().get) diff --git a/pandas/io/formats/__init__.py b/pandas/io/formats/__init__.py index 8a3486a4d71fe..f87f62a16818a 100644 --- a/pandas/io/formats/__init__.py +++ b/pandas/io/formats/__init__.py @@ -1,8 +1,12 @@ -from typing import TYPE_CHECKING +from typing import ( + TYPE_CHECKING, +) if TYPE_CHECKING: # import modules that have public classes/functions - from pandas.io.formats import style + from pandas.io.formats import ( + style, + ) # and mark only those modules as public __all__ = ["style"] diff --git a/pandas/io/formats/_color_data.py b/pandas/io/formats/_color_data.py index 2e7cb7f29646e..d1e736db1b065 100644 --- a/pandas/io/formats/_color_data.py +++ b/pandas/io/formats/_color_data.py @@ -3,7 +3,9 @@ # This data has been copied here, instead of being imported from matplotlib, # not to have ``to_excel`` methods require matplotlib. # source: matplotlib._color_data (3.3.3) -from __future__ import annotations +from __future__ import ( + annotations, +) CSS4_COLORS = { "aliceblue": "F0F8FF", diff --git a/pandas/io/formats/console.py b/pandas/io/formats/console.py index 2a6cbe0762903..c3ceba228b866 100644 --- a/pandas/io/formats/console.py +++ b/pandas/io/formats/console.py @@ -1,9 +1,13 @@ """ Internal module for console introspection """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from shutil import get_terminal_size +from shutil import ( + get_terminal_size, +) def get_console_size() -> tuple[int | None, int | None]: @@ -12,7 +16,9 @@ def get_console_size() -> tuple[int | None, int | None]: Returns (None,None) in non-interactive session. """ - from pandas import get_option + from pandas import ( + get_option, + ) display_width = get_option("display.width") display_height = get_option("display.max_rows") @@ -31,7 +37,9 @@ def get_console_size() -> tuple[int | None, int | None]: if in_ipython_frontend(): # sane defaults for interactive non-shell terminal # match default for width,height in config_init - from pandas._config.config import get_default_val + from pandas._config.config import ( + get_default_val, + ) terminal_width = get_default_val("display.width") terminal_height = get_default_val("display.max_rows") @@ -60,7 +68,9 @@ def in_interactive_session() -> bool: bool True if running under python/ipython interactive shell. """ - from pandas import get_option + from pandas import ( + get_option, + ) def check_main(): try: diff --git a/pandas/io/formats/css.py b/pandas/io/formats/css.py index c3a87e04c1158..10ee3a32db2d4 100644 --- a/pandas/io/formats/css.py +++ b/pandas/io/formats/css.py @@ -1,7 +1,9 @@ """ Utilities for interpreting CSS from Stylers for formatting non-HTML outputs. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import re from typing import ( @@ -12,8 +14,12 @@ ) import warnings -from pandas.errors import CSSWarning -from pandas.util._exceptions import find_stack_level +from pandas.errors import ( + CSSWarning, +) +from pandas.util._exceptions import ( + find_stack_level, +) def _side_expander(prop_fmt: str) -> Callable: diff --git a/pandas/io/formats/csvs.py b/pandas/io/formats/csvs.py index baf264353fca7..5ba87acd62a18 100644 --- a/pandas/io/formats/csvs.py +++ b/pandas/io/formats/csvs.py @@ -2,7 +2,9 @@ Module for formatting output data into CSV files. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import csv as csvlib import os @@ -17,7 +19,9 @@ import numpy as np -from pandas._libs import writers as libwriters +from pandas._libs import ( + writers as libwriters, +) from pandas._typing import ( CompressionOptions, FilePath, @@ -26,7 +30,9 @@ StorageOptions, WriteBuffer, ) -from pandas.util._decorators import cache_readonly +from pandas.util._decorators import ( + cache_readonly, +) from pandas.core.dtypes.generic import ( ABCDatetimeIndex, @@ -34,14 +40,22 @@ ABCMultiIndex, ABCPeriodIndex, ) -from pandas.core.dtypes.missing import notna +from pandas.core.dtypes.missing import ( + notna, +) -from pandas.core.indexes.api import Index +from pandas.core.indexes.api import ( + Index, +) -from pandas.io.common import get_handle +from pandas.io.common import ( + get_handle, +) if TYPE_CHECKING: - from pandas.io.formats.format import DataFrameFormatter + from pandas.io.formats.format import ( + DataFrameFormatter, + ) class CSVFormatter: diff --git a/pandas/io/formats/excel.py b/pandas/io/formats/excel.py index 34c4d330761f5..85aa5dddc01f6 100644 --- a/pandas/io/formats/excel.py +++ b/pandas/io/formats/excel.py @@ -1,7 +1,9 @@ """ Utilities for conversion to writer-agnostic Excel representation. """ -from __future__ import annotations +from __future__ import ( + annotations, +) from functools import ( lru_cache, @@ -22,15 +24,23 @@ import numpy as np -from pandas._libs.lib import is_list_like +from pandas._libs.lib import ( + is_list_like, +) from pandas._typing import ( IndexLabel, StorageOptions, ) -from pandas.util._decorators import doc -from pandas.util._exceptions import find_stack_level +from pandas.util._decorators import ( + doc, +) +from pandas.util._exceptions import ( + find_stack_level, +) -from pandas.core.dtypes import missing +from pandas.core.dtypes import ( + missing, +) from pandas.core.dtypes.common import ( is_float, is_scalar, @@ -43,15 +53,23 @@ PeriodIndex, ) import pandas.core.common as com -from pandas.core.shared_docs import _shared_docs +from pandas.core.shared_docs import ( + _shared_docs, +) -from pandas.io.formats._color_data import CSS4_COLORS +from pandas.io.formats._color_data import ( + CSS4_COLORS, +) from pandas.io.formats.css import ( CSSResolver, CSSWarning, ) -from pandas.io.formats.format import get_level_lengths -from pandas.io.formats.printing import pprint_thing +from pandas.io.formats.format import ( + get_level_lengths, +) +from pandas.io.formats.printing import ( + pprint_thing, +) class ExcelCell: @@ -916,7 +934,9 @@ def write( .. versionadded:: 1.2.0 """ - from pandas.io.excel import ExcelWriter + from pandas.io.excel import ( + ExcelWriter, + ) num_rows, num_cols = self.df.shape if num_rows > self.max_rows or num_cols > self.max_cols: diff --git a/pandas/io/formats/format.py b/pandas/io/formats/format.py index f9b081afcd045..c22338a99e28b 100644 --- a/pandas/io/formats/format.py +++ b/pandas/io/formats/format.py @@ -2,19 +2,31 @@ Internal module for formatting output data in csv, html, xml, and latex files. This module also applies to display formatting. """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from contextlib import contextmanager +from contextlib import ( + contextmanager, +) from csv import ( QUOTE_NONE, QUOTE_NONNUMERIC, ) -from decimal import Decimal -from functools import partial -from io import StringIO +from decimal import ( + Decimal, +) +from functools import ( + partial, +) +from io import ( + StringIO, +) import math import re -from shutil import get_terminal_size +from shutil import ( + get_terminal_size, +) from typing import ( IO, TYPE_CHECKING, @@ -29,7 +41,9 @@ Sequence, cast, ) -from unicodedata import east_asian_width +from unicodedata import ( + east_asian_width, +) import numpy as np @@ -38,8 +52,12 @@ set_option, ) -from pandas._libs import lib -from pandas._libs.missing import NA +from pandas._libs import ( + lib, +) +from pandas._libs.missing import ( + NA, +) from pandas._libs.tslibs import ( NaT, Timedelta, @@ -48,7 +66,9 @@ iNaT, periods_per_day, ) -from pandas._libs.tslibs.nattype import NaTType +from pandas._libs.tslibs.nattype import ( + NaTType, +) from pandas._typing import ( ArrayLike, Axes, @@ -77,7 +97,9 @@ is_scalar, is_timedelta64_dtype, ) -from pandas.core.dtypes.dtypes import DatetimeTZDtype +from pandas.core.dtypes.dtypes import ( + DatetimeTZDtype, +) from pandas.core.dtypes.missing import ( isna, notna, @@ -88,25 +110,39 @@ DatetimeArray, TimedeltaArray, ) -from pandas.core.arrays.string_ import StringDtype -from pandas.core.base import PandasObject +from pandas.core.arrays.string_ import ( + StringDtype, +) +from pandas.core.base import ( + PandasObject, +) import pandas.core.common as com -from pandas.core.construction import extract_array +from pandas.core.construction import ( + extract_array, +) from pandas.core.indexes.api import ( Index, MultiIndex, PeriodIndex, ensure_index, ) -from pandas.core.indexes.datetimes import DatetimeIndex -from pandas.core.indexes.timedeltas import TimedeltaIndex -from pandas.core.reshape.concat import concat +from pandas.core.indexes.datetimes import ( + DatetimeIndex, +) +from pandas.core.indexes.timedeltas import ( + TimedeltaIndex, +) +from pandas.core.reshape.concat import ( + concat, +) from pandas.io.common import ( check_parent_directory, stringify_path, ) -from pandas.io.formats import printing +from pandas.io.formats import ( + printing, +) if TYPE_CHECKING: from pandas import ( @@ -501,7 +537,9 @@ def get_dataframe_repr_params() -> dict[str, Any]: >>> repr(df) == df.to_string(**repr_params) True """ - from pandas.io.formats import console + from pandas.io.formats import ( + console, + ) if get_option("display.expand_frame_repr"): line_width, _ = console.get_console_size() @@ -913,7 +951,9 @@ def _get_formatter(self, i: str | int) -> Callable | None: return self.formatters.get(i, None) def _get_formatted_column_labels(self, frame: DataFrame) -> list[list[str]]: - from pandas.core.indexes.multi import sparsify_labels + from pandas.core.indexes.multi import ( + sparsify_labels, + ) columns = frame.columns @@ -1039,7 +1079,9 @@ def to_latex( """ Render a DataFrame to a LaTeX tabular/longtable environment output. """ - from pandas.io.formats.latex import LatexFormatter + from pandas.io.formats.latex import ( + LatexFormatter, + ) latex_formatter = LatexFormatter( self.fmt, @@ -1126,7 +1168,9 @@ def to_string( line_width : int, optional Width to wrap a line in characters. """ - from pandas.io.formats.string import StringFormatter + from pandas.io.formats.string import ( + StringFormatter, + ) string_formatter = StringFormatter(self.fmt, line_width=line_width) string = string_formatter.to_string() @@ -1154,7 +1198,9 @@ def to_csv( """ Render dataframe as comma-separated file. """ - from pandas.io.formats.csvs import CSVFormatter + from pandas.io.formats.csvs import ( + CSVFormatter, + ) if path_or_buf is None: created_buffer = True diff --git a/pandas/io/formats/html.py b/pandas/io/formats/html.py index 6fbbbd01cf773..6c3a5637b22de 100644 --- a/pandas/io/formats/html.py +++ b/pandas/io/formats/html.py @@ -1,9 +1,13 @@ """ Module for formatting output data in HTML. """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from textwrap import dedent +from textwrap import ( + dedent, +) from typing import ( Any, Final, @@ -13,21 +17,29 @@ cast, ) -from pandas._config import get_option +from pandas._config import ( + get_option, +) -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas import ( MultiIndex, option_context, ) -from pandas.io.common import is_url +from pandas.io.common import ( + is_url, +) from pandas.io.formats.format import ( DataFrameFormatter, get_level_lengths, ) -from pandas.io.formats.printing import pprint_thing +from pandas.io.formats.printing import ( + pprint_thing, +) class HTMLFormatter: diff --git a/pandas/io/formats/info.py b/pandas/io/formats/info.py index d826c0a148ebe..afe30e3f19f3d 100644 --- a/pandas/io/formats/info.py +++ b/pandas/io/formats/info.py @@ -1,11 +1,15 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from abc import ( ABC, abstractmethod, ) import sys -from textwrap import dedent +from textwrap import ( + dedent, +) from typing import ( TYPE_CHECKING, Iterable, @@ -14,15 +18,21 @@ Sequence, ) -from pandas._config import get_option +from pandas._config import ( + get_option, +) from pandas._typing import ( Dtype, WriteBuffer, ) -from pandas.io.formats import format as fmt -from pandas.io.formats.printing import pprint_thing +from pandas.io.formats import ( + format as fmt, +) +from pandas.io.formats.printing import ( + pprint_thing, +) if TYPE_CHECKING: from pandas import ( @@ -554,7 +564,9 @@ def dtypes(self) -> Iterable[Dtype]: @property def dtype_counts(self) -> Mapping[str, int]: - from pandas.core.frame import DataFrame + from pandas.core.frame import ( + DataFrame, + ) return _get_dataframe_dtype_counts(DataFrame(self.data)) diff --git a/pandas/io/formats/latex.py b/pandas/io/formats/latex.py index a97f3d4ef541e..20192373169de 100644 --- a/pandas/io/formats/latex.py +++ b/pandas/io/formats/latex.py @@ -1,7 +1,9 @@ """ Module for formatting output data in Latex. """ -from __future__ import annotations +from __future__ import ( + annotations, +) from abc import ( ABC, @@ -15,10 +17,14 @@ import numpy as np -from pandas.core.dtypes.generic import ABCMultiIndex +from pandas.core.dtypes.generic import ( + ABCMultiIndex, +) if TYPE_CHECKING: - from pandas.io.formats.format import DataFrameFormatter + from pandas.io.formats.format import ( + DataFrameFormatter, + ) def _split_into_full_short_caption( diff --git a/pandas/io/formats/printing.py b/pandas/io/formats/printing.py index e734304471144..e4fbbbc13f0f6 100644 --- a/pandas/io/formats/printing.py +++ b/pandas/io/formats/printing.py @@ -1,7 +1,9 @@ """ Printing tools. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import sys from typing import ( @@ -15,9 +17,13 @@ Union, ) -from pandas._config import get_option +from pandas._config import ( + get_option, +) -from pandas.core.dtypes.inference import is_sequence +from pandas.core.dtypes.inference import ( + is_sequence, +) EscapeChars = Union[Mapping[str, str], Iterable[str]] _KT = TypeVar("_KT") @@ -245,7 +251,9 @@ def enable_data_resource_formatter(enable: bool) -> None: if "IPython" not in sys.modules: # definitely not in IPython return - from IPython import get_ipython + from IPython import ( + get_ipython, + ) ip = get_ipython() if ip is None: @@ -258,8 +266,12 @@ def enable_data_resource_formatter(enable: bool) -> None: if enable: if mimetype not in formatters: # define tableschema formatter - from IPython.core.formatters import BaseFormatter - from traitlets import ObjectName + from IPython.core.formatters import ( + BaseFormatter, + ) + from traitlets import ( + ObjectName, + ) class TableSchemaFormatter(BaseFormatter): print_method = ObjectName("_repr_data_resource_") @@ -320,8 +332,12 @@ def format_object_summary( ------- summary string """ - from pandas.io.formats.console import get_console_size - from pandas.io.formats.format import get_adjustment + from pandas.io.formats.console import ( + get_console_size, + ) + from pandas.io.formats.format import ( + get_adjustment, + ) display_width, _ = get_console_size() if display_width is None: diff --git a/pandas/io/formats/string.py b/pandas/io/formats/string.py index 071afc059b166..7a564556bc925 100644 --- a/pandas/io/formats/string.py +++ b/pandas/io/formats/string.py @@ -1,9 +1,13 @@ """ Module for formatting output data in console (to string). """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from shutil import get_terminal_size +from shutil import ( + get_terminal_size, +) from typing import ( TYPE_CHECKING, Iterable, @@ -11,10 +15,14 @@ import numpy as np -from pandas.io.formats.printing import pprint_thing +from pandas.io.formats.printing import ( + pprint_thing, +) if TYPE_CHECKING: - from pandas.io.formats.format import DataFrameFormatter + from pandas.io.formats.format import ( + DataFrameFormatter, + ) class StringFormatter: @@ -157,7 +165,9 @@ def _join_multiline(self, strcols_input: Iterable[list[str]]) -> str: return "\n\n".join(str_lst) def _fit_strcols_to_terminal_width(self, strcols: list[list[str]]) -> str: - from pandas import Series + from pandas import ( + Series, + ) lines = self.adj.adjoin(1, *strcols).split("\n") max_len = Series(lines).str.len().max() diff --git a/pandas/io/formats/style.py b/pandas/io/formats/style.py index 8ee73e77f5b11..8fa71d8d27a16 100644 --- a/pandas/io/formats/style.py +++ b/pandas/io/formats/style.py @@ -1,11 +1,17 @@ """ Module for applying conditional formatting to DataFrames and Series. """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from contextlib import contextmanager +from contextlib import ( + contextmanager, +) import copy -from functools import partial +from functools import ( + partial, +) import operator from typing import ( TYPE_CHECKING, @@ -19,7 +25,9 @@ import numpy as np -from pandas._config import get_option +from pandas._config import ( + get_option, +) from pandas._typing import ( Axis, @@ -32,7 +40,9 @@ StorageOptions, WriteBuffer, ) -from pandas.compat._optional import import_optional_dependency +from pandas.compat._optional import ( + import_optional_dependency, +) from pandas.util._decorators import ( Substitution, doc, @@ -48,10 +58,16 @@ DataFrame, Series, ) -from pandas.core.generic import NDFrame -from pandas.core.shared_docs import _shared_docs +from pandas.core.generic import ( + NDFrame, +) +from pandas.core.shared_docs import ( + _shared_docs, +) -from pandas.io.formats.format import save_to_buffer +from pandas.io.formats.format import ( + save_to_buffer, +) jinja2 = import_optional_dependency("jinja2", extra="DataFrame.style requires jinja2.") @@ -69,7 +85,9 @@ ) if TYPE_CHECKING: - from matplotlib.colors import Colormap + from matplotlib.colors import ( + Colormap, + ) try: import matplotlib as mpl @@ -511,7 +529,9 @@ def to_excel( freeze_panes: tuple[int, int] | None = None, storage_options: StorageOptions = None, ) -> None: - from pandas.io.formats.excel import ExcelFormatter + from pandas.io.formats.excel import ( + ExcelFormatter, + ) formatter = ExcelFormatter( self, diff --git a/pandas/io/formats/style_render.py b/pandas/io/formats/style_render.py index c5262b9f52fc7..6a8ac9f39bcf2 100644 --- a/pandas/io/formats/style_render.py +++ b/pandas/io/formats/style_render.py @@ -1,7 +1,13 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from collections import defaultdict -from functools import partial +from collections import ( + defaultdict, +) +from functools import ( + partial, +) import re from typing import ( Any, @@ -15,25 +21,35 @@ TypedDict, Union, ) -from uuid import uuid4 +from uuid import ( + uuid4, +) import numpy as np -from pandas._config import get_option +from pandas._config import ( + get_option, +) -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._typing import ( Axis, Level, ) -from pandas.compat._optional import import_optional_dependency +from pandas.compat._optional import ( + import_optional_dependency, +) from pandas.core.dtypes.common import ( is_complex, is_float, is_integer, ) -from pandas.core.dtypes.generic import ABCSeries +from pandas.core.dtypes.generic import ( + ABCSeries, +) from pandas import ( DataFrame, @@ -43,11 +59,15 @@ Series, isna, ) -from pandas.api.types import is_list_like +from pandas.api.types import ( + is_list_like, +) import pandas.core.common as com jinja2 = import_optional_dependency("jinja2", extra="DataFrame.style requires jinja2.") -from markupsafe import escape as escape_html # markupsafe is jinja2 dependency +from markupsafe import ( # markupsafe is jinja2 dependency + escape as escape_html, +) BaseFormatter = Union[str, Callable] ExtFormatter = Union[BaseFormatter, Dict[Any, Optional[BaseFormatter]]] diff --git a/pandas/io/formats/xml.py b/pandas/io/formats/xml.py index cc258e0271031..3a918d6d67a15 100644 --- a/pandas/io/formats/xml.py +++ b/pandas/io/formats/xml.py @@ -1,7 +1,9 @@ """ :mod:`pandas.io.formats.xml` is a module for formatting data in XML. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import codecs import io @@ -17,22 +19,36 @@ StorageOptions, WriteBuffer, ) -from pandas.errors import AbstractMethodError -from pandas.util._decorators import doc +from pandas.errors import ( + AbstractMethodError, +) +from pandas.util._decorators import ( + doc, +) -from pandas.core.dtypes.common import is_list_like -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.common import ( + is_list_like, +) +from pandas.core.dtypes.missing import ( + isna, +) -from pandas.core.shared_docs import _shared_docs +from pandas.core.shared_docs import ( + _shared_docs, +) -from pandas.io.common import get_handle +from pandas.io.common import ( + get_handle, +) from pandas.io.xml import ( get_data_from_filepath, preprocess_data, ) if TYPE_CHECKING: - from pandas import DataFrame + from pandas import ( + DataFrame, + ) @doc( @@ -374,7 +390,9 @@ def build_tree(self) -> bytes: return self.out_xml def get_prefix_uri(self) -> str: - from xml.etree.ElementTree import register_namespace + from xml.etree.ElementTree import ( + register_namespace, + ) uri = "" if self.namespaces: @@ -392,7 +410,9 @@ def get_prefix_uri(self) -> str: return uri def build_elems(self, d: dict[str, Any], elem_row: Any) -> None: - from xml.etree.ElementTree import SubElement + from xml.etree.ElementTree import ( + SubElement, + ) self._build_elems(SubElement, d, elem_row) @@ -403,7 +423,9 @@ def prettify_tree(self) -> bytes: This method will pretty print xml with line breaks and indentation. """ - from xml.dom.minidom import parseString + from xml.dom.minidom import ( + parseString, + ) dom = parseString(self.out_xml) @@ -510,7 +532,9 @@ def get_prefix_uri(self) -> str: return uri def build_elems(self, d: dict[str, Any], elem_row: Any) -> None: - from lxml.etree import SubElement + from lxml.etree import ( + SubElement, + ) self._build_elems(SubElement, d, elem_row) diff --git a/pandas/io/gbq.py b/pandas/io/gbq.py index d6c73664ab6f2..cefe9fcfbf7c9 100644 --- a/pandas/io/gbq.py +++ b/pandas/io/gbq.py @@ -1,15 +1,21 @@ """ Google BigQuery support """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, Any, ) -from pandas.compat._optional import import_optional_dependency +from pandas.compat._optional import ( + import_optional_dependency, +) if TYPE_CHECKING: - from pandas import DataFrame + from pandas import ( + DataFrame, + ) def _try_import(): diff --git a/pandas/io/html.py b/pandas/io/html.py index d6d1c5651dd37..29ad65ac58163 100644 --- a/pandas/io/html.py +++ b/pandas/io/html.py @@ -4,9 +4,13 @@ """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from collections import abc +from collections import ( + abc, +) import numbers import re from typing import ( @@ -18,26 +22,42 @@ cast, ) -from pandas._config import using_nullable_dtypes +from pandas._config import ( + using_nullable_dtypes, +) -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._typing import ( BaseBuffer, FilePath, ReadBuffer, ) -from pandas.compat._optional import import_optional_dependency +from pandas.compat._optional import ( + import_optional_dependency, +) from pandas.errors import ( AbstractMethodError, EmptyDataError, ) -from pandas.core.dtypes.common import is_list_like +from pandas.core.dtypes.common import ( + is_list_like, +) -from pandas import isna -from pandas.core.indexes.base import Index -from pandas.core.indexes.multi import MultiIndex -from pandas.core.series import Series +from pandas import ( + isna, +) +from pandas.core.indexes.base import ( + Index, +) +from pandas.core.indexes.multi import ( + MultiIndex, +) +from pandas.core.series import ( + Series, +) from pandas.io.common import ( file_exists, @@ -47,11 +67,17 @@ urlopen, validate_header_arg, ) -from pandas.io.formats.printing import pprint_thing -from pandas.io.parsers import TextParser +from pandas.io.formats.printing import ( + pprint_thing, +) +from pandas.io.parsers import ( + TextParser, +) if TYPE_CHECKING: - from pandas import DataFrame + from pandas import ( + DataFrame, + ) ############# # READ HTML # @@ -574,7 +600,9 @@ class _BeautifulSoupHtml5LibFrameParser(_HtmlFrameParser): def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) - from bs4 import SoupStrainer + from bs4 import ( + SoupStrainer, + ) self._strainer = SoupStrainer("table") @@ -634,7 +662,9 @@ def _setup_build_doc(self): return raw_text def _build_doc(self): - from bs4 import BeautifulSoup + from bs4 import ( + BeautifulSoup, + ) bdoc = self._setup_build_doc() if isinstance(bdoc, bytes) and self.encoding is not None: @@ -756,7 +786,9 @@ def _build_doc(self): -------- pandas.io.html._HtmlFrameParser._build_doc """ - from lxml.etree import XMLSyntaxError + from lxml.etree import ( + XMLSyntaxError, + ) from lxml.html import ( HTMLParser, fromstring, diff --git a/pandas/io/json/__init__.py b/pandas/io/json/__init__.py index 52c65dd6f0c4e..5e3c69e53431b 100644 --- a/pandas/io/json/__init__.py +++ b/pandas/io/json/__init__.py @@ -4,7 +4,9 @@ read_json, to_json, ) -from pandas.io.json._table_schema import build_table_schema +from pandas.io.json._table_schema import ( + build_table_schema, +) __all__ = [ "dumps", diff --git a/pandas/io/json/_json.py b/pandas/io/json/_json.py index 80d2f9eda7ce5..562a09098b596 100644 --- a/pandas/io/json/_json.py +++ b/pandas/io/json/_json.py @@ -1,13 +1,23 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from abc import ( ABC, abstractmethod, ) -from collections import abc -from io import StringIO -from itertools import islice -from types import TracebackType +from collections import ( + abc, +) +from io import ( + StringIO, +) +from itertools import ( + islice, +) +from types import ( + TracebackType, +) from typing import ( TYPE_CHECKING, Any, @@ -26,12 +36,16 @@ using_nullable_dtypes, ) -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._libs.json import ( dumps, loads, ) -from pandas._libs.tslibs import iNaT +from pandas._libs.tslibs import ( + iNaT, +) from pandas._typing import ( CompressionOptions, DtypeArg, @@ -43,15 +57,23 @@ StorageOptions, WriteBuffer, ) -from pandas.compat._optional import import_optional_dependency -from pandas.errors import AbstractMethodError -from pandas.util._decorators import doc +from pandas.compat._optional import ( + import_optional_dependency, +) +from pandas.errors import ( + AbstractMethodError, +) +from pandas.util._decorators import ( + doc, +) from pandas.core.dtypes.common import ( ensure_str, is_period_dtype, ) -from pandas.core.dtypes.generic import ABCIndex +from pandas.core.dtypes.generic import ( + ABCIndex, +) from pandas import ( DataFrame, @@ -61,8 +83,12 @@ notna, to_datetime, ) -from pandas.core.reshape.concat import concat -from pandas.core.shared_docs import _shared_docs +from pandas.core.reshape.concat import ( + concat, +) +from pandas.core.shared_docs import ( + _shared_docs, +) from pandas.io.common import ( IOHandles, @@ -75,15 +101,21 @@ is_url, stringify_path, ) -from pandas.io.json._normalize import convert_to_line_delimits +from pandas.io.json._normalize import ( + convert_to_line_delimits, +) from pandas.io.json._table_schema import ( build_table_schema, parse_table_schema, ) -from pandas.io.parsers.readers import validate_integer +from pandas.io.parsers.readers import ( + validate_integer, +) if TYPE_CHECKING: - from pandas.core.generic import NDFrame + from pandas.core.generic import ( + NDFrame, + ) FrameSeriesStrT = TypeVar("FrameSeriesStrT", bound=Literal["frame", "series"]) @@ -961,7 +993,9 @@ def read(self) -> DataFrame | Series: pa_table = pyarrow_json.read_json(self.data) if self.use_nullable_dtypes: if get_option("mode.dtype_backend") == "pyarrow": - from pandas.arrays import ArrowExtensionArray + from pandas.arrays import ( + ArrowExtensionArray, + ) return DataFrame( { @@ -972,7 +1006,9 @@ def read(self) -> DataFrame | Series: } ) elif get_option("mode.dtype_backend") == "pandas": - from pandas.io._util import _arrow_dtype_mapping + from pandas.io._util import ( + _arrow_dtype_mapping, + ) mapping = _arrow_dtype_mapping() return pa_table.to_pandas(types_mapper=mapping.get) diff --git a/pandas/io/json/_normalize.py b/pandas/io/json/_normalize.py index 577d677e7b3a0..ed5cff6aa4e4e 100644 --- a/pandas/io/json/_normalize.py +++ b/pandas/io/json/_normalize.py @@ -1,6 +1,8 @@ # --------------------------------------------------------------------- # JSON normalization routines -from __future__ import annotations +from __future__ import ( + annotations, +) from collections import ( abc, @@ -16,14 +18,18 @@ import numpy as np -from pandas._libs.writers import convert_json_to_lines +from pandas._libs.writers import ( + convert_json_to_lines, +) from pandas._typing import ( IgnoreRaise, Scalar, ) import pandas as pd -from pandas import DataFrame +from pandas import ( + DataFrame, +) def convert_to_line_delimits(s: str) -> str: @@ -149,7 +155,9 @@ def _normalise_json( if not key_string: if sys.version_info < (3, 9): - from pandas.util._str_methods import removeprefix + from pandas.util._str_methods import ( + removeprefix, + ) new_key = removeprefix(new_key, separator) else: diff --git a/pandas/io/json/_table_schema.py b/pandas/io/json/_table_schema.py index 372aaf98c3b2c..bbaabae08f9e7 100644 --- a/pandas/io/json/_table_schema.py +++ b/pandas/io/json/_table_schema.py @@ -3,7 +3,9 @@ https://specs.frictionlessdata.io/table-schema/ """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, @@ -12,15 +14,23 @@ ) import warnings -from pandas._libs.json import loads -from pandas._libs.tslibs import timezones +from pandas._libs.json import ( + loads, +) +from pandas._libs.tslibs import ( + timezones, +) from pandas._typing import ( DtypeObj, JSONSerializable, ) -from pandas.util._exceptions import find_stack_level +from pandas.util._exceptions import ( + find_stack_level, +) -from pandas.core.dtypes.base import _registry as registry +from pandas.core.dtypes.base import ( + _registry as registry, +) from pandas.core.dtypes.common import ( is_bool_dtype, is_categorical_dtype, @@ -33,14 +43,22 @@ is_string_dtype, is_timedelta64_dtype, ) -from pandas.core.dtypes.dtypes import CategoricalDtype +from pandas.core.dtypes.dtypes import ( + CategoricalDtype, +) -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas.core.common as com if TYPE_CHECKING: - from pandas import Series - from pandas.core.indexes.multi import MultiIndex + from pandas import ( + Series, + ) + from pandas.core.indexes.multi import ( + MultiIndex, + ) TABLE_SCHEMA_VERSION = "1.4.0" diff --git a/pandas/io/orc.py b/pandas/io/orc.py index 3999fc5840f02..b89a97ac9bd7f 100644 --- a/pandas/io/orc.py +++ b/pandas/io/orc.py @@ -1,8 +1,12 @@ """ orc compat """ -from __future__ import annotations +from __future__ import ( + annotations, +) import io -from types import ModuleType +from types import ( + ModuleType, +) from typing import ( Any, Literal, @@ -13,16 +17,24 @@ using_nullable_dtypes, ) -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._typing import ( FilePath, ReadBuffer, WriteBuffer, ) -from pandas.compat._optional import import_optional_dependency +from pandas.compat._optional import ( + import_optional_dependency, +) -from pandas.core.arrays import ArrowExtensionArray -from pandas.core.frame import DataFrame +from pandas.core.arrays import ( + ArrowExtensionArray, +) +from pandas.core.frame import ( + DataFrame, +) from pandas.io.common import ( get_handle, @@ -125,7 +137,9 @@ def read_orc( } ) else: - from pandas.io._util import _arrow_dtype_mapping + from pandas.io._util import ( + _arrow_dtype_mapping, + ) mapping = _arrow_dtype_mapping() df = pa_table.to_pandas(types_mapper=mapping.get) diff --git a/pandas/io/parquet.py b/pandas/io/parquet.py index aec31f40f8570..dff6591d8d794 100644 --- a/pandas/io/parquet.py +++ b/pandas/io/parquet.py @@ -1,5 +1,7 @@ """ parquet compat """ -from __future__ import annotations +from __future__ import ( + annotations, +) import io import os @@ -7,20 +9,32 @@ Any, Literal, ) -from warnings import catch_warnings +from warnings import ( + catch_warnings, +) -from pandas._config import using_nullable_dtypes +from pandas._config import ( + using_nullable_dtypes, +) -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._typing import ( FilePath, ReadBuffer, StorageOptions, WriteBuffer, ) -from pandas.compat._optional import import_optional_dependency -from pandas.errors import AbstractMethodError -from pandas.util._decorators import doc +from pandas.compat._optional import ( + import_optional_dependency, +) +from pandas.errors import ( + AbstractMethodError, +) +from pandas.util._decorators import ( + doc, +) from pandas import ( DataFrame, @@ -28,8 +42,12 @@ arrays, get_option, ) -from pandas.core.shared_docs import _shared_docs -from pandas.util.version import Version +from pandas.core.shared_docs import ( + _shared_docs, +) +from pandas.util.version import ( + Version, +) from pandas.io.common import ( IOHandles, @@ -228,7 +246,9 @@ def read( to_pandas_kwargs = {} if use_nullable_dtypes: if dtype_backend == "pandas": - from pandas.io._util import _arrow_dtype_mapping + from pandas.io._util import ( + _arrow_dtype_mapping, + ) mapping = _arrow_dtype_mapping() to_pandas_kwargs["types_mapper"] = mapping.get diff --git a/pandas/io/parsers/arrow_parser_wrapper.py b/pandas/io/parsers/arrow_parser_wrapper.py index 420b6212f857a..55f15ac37b903 100644 --- a/pandas/io/parsers/arrow_parser_wrapper.py +++ b/pandas/io/parsers/arrow_parser_wrapper.py @@ -1,9 +1,17 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from pandas._typing import ReadBuffer -from pandas.compat._optional import import_optional_dependency +from pandas._typing import ( + ReadBuffer, +) +from pandas.compat._optional import ( + import_optional_dependency, +) -from pandas.core.dtypes.inference import is_integer +from pandas.core.dtypes.inference import ( + is_integer, +) from pandas import ( DataFrame, @@ -11,7 +19,9 @@ get_option, ) -from pandas.io.parsers.base_parser import ParserBase +from pandas.io.parsers.base_parser import ( + ParserBase, +) class ArrowParserWrapper(ParserBase): diff --git a/pandas/io/parsers/base_parser.py b/pandas/io/parsers/base_parser.py index 8d71ce6dff7f8..1b645c8dab292 100644 --- a/pandas/io/parsers/base_parser.py +++ b/pandas/io/parsers/base_parser.py @@ -1,10 +1,18 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from collections import defaultdict -from copy import copy +from collections import ( + defaultdict, +) +from copy import ( + copy, +) import csv import datetime -from enum import Enum +from enum import ( + Enum, +) import itertools from typing import ( TYPE_CHECKING, @@ -25,29 +33,41 @@ import numpy as np -from pandas._config.config import get_option +from pandas._config.config import ( + get_option, +) from pandas._libs import ( lib, parsers, ) import pandas._libs.ops as libops -from pandas._libs.parsers import STR_NA_VALUES -from pandas._libs.tslibs import parsing +from pandas._libs.parsers import ( + STR_NA_VALUES, +) +from pandas._libs.tslibs import ( + parsing, +) from pandas._typing import ( ArrayLike, DtypeArg, DtypeObj, Scalar, ) -from pandas.compat._optional import import_optional_dependency +from pandas.compat._optional import ( + import_optional_dependency, +) from pandas.errors import ( ParserError, ParserWarning, ) -from pandas.util._exceptions import find_stack_level +from pandas.util._exceptions import ( + find_stack_level, +) -from pandas.core.dtypes.astype import astype_array +from pandas.core.dtypes.astype import ( + astype_array, +) from pandas.core.dtypes.common import ( ensure_object, is_bool_dtype, @@ -67,10 +87,16 @@ CategoricalDtype, ExtensionDtype, ) -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.missing import ( + isna, +) -from pandas import StringDtype -from pandas.core import algorithms +from pandas import ( + StringDtype, +) +from pandas.core import ( + algorithms, +) from pandas.core.arrays import ( ArrowExtensionArray, BooleanArray, @@ -85,13 +111,21 @@ default_index, ensure_index_from_sequences, ) -from pandas.core.series import Series -from pandas.core.tools import datetimes as tools +from pandas.core.series import ( + Series, +) +from pandas.core.tools import ( + datetimes as tools, +) -from pandas.io.common import is_potential_multi_index +from pandas.io.common import ( + is_potential_multi_index, +) if TYPE_CHECKING: - from pandas import DataFrame + from pandas import ( + DataFrame, + ) class ParserBase: diff --git a/pandas/io/parsers/c_parser_wrapper.py b/pandas/io/parsers/c_parser_wrapper.py index c10f1811751cd..52a1f01043038 100644 --- a/pandas/io/parsers/c_parser_wrapper.py +++ b/pandas/io/parsers/c_parser_wrapper.py @@ -1,6 +1,10 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from collections import defaultdict +from collections import ( + defaultdict, +) from typing import ( TYPE_CHECKING, Hashable, @@ -11,27 +15,43 @@ import numpy as np -from pandas._config.config import get_option +from pandas._config.config import ( + get_option, +) -from pandas._libs import parsers +from pandas._libs import ( + parsers, +) from pandas._typing import ( ArrayLike, DtypeArg, DtypeObj, ReadCsvBuffer, ) -from pandas.compat._optional import import_optional_dependency -from pandas.errors import DtypeWarning -from pandas.util._exceptions import find_stack_level +from pandas.compat._optional import ( + import_optional_dependency, +) +from pandas.errors import ( + DtypeWarning, +) +from pandas.util._exceptions import ( + find_stack_level, +) from pandas.core.dtypes.common import ( is_categorical_dtype, pandas_dtype, ) -from pandas.core.dtypes.concat import union_categoricals -from pandas.core.dtypes.dtypes import ExtensionDtype +from pandas.core.dtypes.concat import ( + union_categoricals, +) +from pandas.core.dtypes.dtypes import ( + ExtensionDtype, +) -from pandas.core.indexes.api import ensure_index_from_sequences +from pandas.core.indexes.api import ( + ensure_index_from_sequences, +) from pandas.io.common import ( dedup_names, diff --git a/pandas/io/parsers/python_parser.py b/pandas/io/parsers/python_parser.py index 263966269c0fa..6c22ccbe1296d 100644 --- a/pandas/io/parsers/python_parser.py +++ b/pandas/io/parsers/python_parser.py @@ -1,11 +1,15 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from collections import ( abc, defaultdict, ) import csv -from io import StringIO +from io import ( + StringIO, +) import re import sys from typing import ( @@ -23,7 +27,9 @@ import numpy as np -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._typing import ( ArrayLike, ReadCsvBuffer, @@ -34,8 +40,12 @@ ParserError, ) -from pandas.core.dtypes.common import is_integer -from pandas.core.dtypes.inference import is_dict_like +from pandas.core.dtypes.common import ( + is_integer, +) +from pandas.core.dtypes.inference import ( + is_dict_like, +) from pandas.io.common import ( dedup_names, diff --git a/pandas/io/parsers/readers.py b/pandas/io/parsers/readers.py index 635c98e38da16..70046430105b8 100644 --- a/pandas/io/parsers/readers.py +++ b/pandas/io/parsers/readers.py @@ -3,13 +3,21 @@ GH#48849 provides a convenient way of deprecating keyword arguments """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from collections import abc +from collections import ( + abc, +) import csv import sys -from textwrap import fill -from types import TracebackType +from textwrap import ( + fill, +) +from types import ( + TracebackType, +) from typing import ( IO, Any, @@ -24,10 +32,16 @@ import numpy as np -from pandas._config import using_nullable_dtypes +from pandas._config import ( + using_nullable_dtypes, +) -from pandas._libs import lib -from pandas._libs.parsers import STR_NA_VALUES +from pandas._libs import ( + lib, +) +from pandas._libs.parsers import ( + STR_NA_VALUES, +) from pandas._typing import ( CompressionOptions, CSVEngine, @@ -41,8 +55,12 @@ AbstractMethodError, ParserWarning, ) -from pandas.util._decorators import Appender -from pandas.util._exceptions import find_stack_level +from pandas.util._decorators import ( + Appender, +) +from pandas.util._exceptions import ( + find_stack_level, +) from pandas.core.dtypes.common import ( is_file_like, @@ -51,9 +69,15 @@ is_list_like, ) -from pandas.core.frame import DataFrame -from pandas.core.indexes.api import RangeIndex -from pandas.core.shared_docs import _shared_docs +from pandas.core.frame import ( + DataFrame, +) +from pandas.core.indexes.api import ( + RangeIndex, +) +from pandas.core.shared_docs import ( + _shared_docs, +) from pandas.io.common import ( IOHandles, @@ -61,13 +85,17 @@ stringify_path, validate_header_arg, ) -from pandas.io.parsers.arrow_parser_wrapper import ArrowParserWrapper +from pandas.io.parsers.arrow_parser_wrapper import ( + ArrowParserWrapper, +) from pandas.io.parsers.base_parser import ( ParserBase, is_index_col, parser_defaults, ) -from pandas.io.parsers.c_parser_wrapper import CParserWrapper +from pandas.io.parsers.c_parser_wrapper import ( + CParserWrapper, +) from pandas.io.parsers.python_parser import ( FixedWidthFieldParser, PythonParser, diff --git a/pandas/io/pickle.py b/pandas/io/pickle.py index a9ab925536d11..25a3c6ea24e0d 100644 --- a/pandas/io/pickle.py +++ b/pandas/io/pickle.py @@ -1,8 +1,12 @@ """ pickle compat """ -from __future__ import annotations +from __future__ import ( + annotations, +) import pickle -from typing import Any +from typing import ( + Any, +) import warnings from pandas._typing import ( @@ -12,12 +16,20 @@ StorageOptions, WriteBuffer, ) -from pandas.compat import pickle_compat as pc -from pandas.util._decorators import doc +from pandas.compat import ( + pickle_compat as pc, +) +from pandas.util._decorators import ( + doc, +) -from pandas.core.shared_docs import _shared_docs +from pandas.core.shared_docs import ( + _shared_docs, +) -from pandas.io.common import get_handle +from pandas.io.common import ( + get_handle, +) @doc( diff --git a/pandas/io/pytables.py b/pandas/io/pytables.py index a813a0e285027..4a78b10b0d2bb 100644 --- a/pandas/io/pytables.py +++ b/pandas/io/pytables.py @@ -2,9 +2,13 @@ High level interface to PyTables for reading and writing pandas data structures to disk """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from contextlib import suppress +from contextlib import ( + suppress, +) import copy from datetime import ( date, @@ -13,8 +17,12 @@ import itertools import os import re -from textwrap import dedent -from types import TracebackType +from textwrap import ( + dedent, +) +from types import ( + TracebackType, +) from typing import ( TYPE_CHECKING, Any, @@ -40,7 +48,9 @@ lib, writers as libwriters, ) -from pandas._libs.tslibs import timezones +from pandas._libs.tslibs import ( + timezones, +) from pandas._typing import ( AnyArrayLike, ArrayLike, @@ -50,8 +60,12 @@ Shape, npt, ) -from pandas.compat._optional import import_optional_dependency -from pandas.compat.pickle_compat import patch_pickle +from pandas.compat._optional import ( + import_optional_dependency, +) +from pandas.compat.pickle_compat import ( + patch_pickle, +) from pandas.errors import ( AttributeConflictWarning, ClosedFileError, @@ -59,8 +73,12 @@ PerformanceWarning, PossibleDataLossError, ) -from pandas.util._decorators import cache_readonly -from pandas.util._exceptions import find_stack_level +from pandas.util._decorators import ( + cache_readonly, +) +from pandas.util._exceptions import ( + find_stack_level, +) from pandas.core.dtypes.common import ( ensure_object, @@ -77,7 +95,9 @@ is_timedelta64_dtype, needs_i8_conversion, ) -from pandas.core.dtypes.missing import array_equivalent +from pandas.core.dtypes.missing import ( + array_equivalent, +) from pandas import ( DataFrame, @@ -101,14 +121,20 @@ PyTablesExpr, maybe_expression, ) -from pandas.core.construction import extract_array -from pandas.core.indexes.api import ensure_index +from pandas.core.construction import ( + extract_array, +) +from pandas.core.indexes.api import ( + ensure_index, +) from pandas.core.internals import ( ArrayManager, BlockManager, ) -from pandas.io.common import stringify_path +from pandas.io.common import ( + stringify_path, +) from pandas.io.formats.printing import ( adjoin, pprint_thing, @@ -121,7 +147,9 @@ Node, ) - from pandas.core.internals import Block + from pandas.core.internals import ( + Block, + ) # versioning attribute diff --git a/pandas/io/sas/__init__.py b/pandas/io/sas/__init__.py index 317730745b6e3..f52eb44667e4e 100644 --- a/pandas/io/sas/__init__.py +++ b/pandas/io/sas/__init__.py @@ -1,3 +1,5 @@ -from pandas.io.sas.sasreader import read_sas +from pandas.io.sas.sasreader import ( + read_sas, +) __all__ = ["read_sas"] diff --git a/pandas/io/sas/_sas.pyi b/pandas/io/sas/_sas.pyi index 5d65e2b56b591..18027f22d9fb7 100644 --- a/pandas/io/sas/_sas.pyi +++ b/pandas/io/sas/_sas.pyi @@ -1,4 +1,6 @@ -from pandas.io.sas.sas7bdat import SAS7BDATReader +from pandas.io.sas.sas7bdat import ( + SAS7BDATReader, +) class Parser: def __init__(self, parser: SAS7BDATReader) -> None: ... diff --git a/pandas/io/sas/byteswap.pyx b/pandas/io/sas/byteswap.pyx index 511af5140b563..bff31d51ef7a8 100644 --- a/pandas/io/sas/byteswap.pyx +++ b/pandas/io/sas/byteswap.pyx @@ -4,7 +4,9 @@ function calls. In the SAS7BDAT parser, they may be called up to (n_rows * n_cols) times. """ -from cython cimport Py_ssize_t +from cython cimport ( + Py_ssize_t, +) from libc.stdint cimport ( uint16_t, uint32_t, diff --git a/pandas/io/sas/sas.pyx b/pandas/io/sas/sas.pyx index cf2e0e4d80bb5..168d375981226 100644 --- a/pandas/io/sas/sas.pyx +++ b/pandas/io/sas/sas.pyx @@ -1,7 +1,11 @@ # cython: language_level=3, initializedcheck=False # cython: warn.maybe_uninitialized=True, warn.unused=True -from cython cimport Py_ssize_t -from libc.stddef cimport size_t +from cython cimport ( + Py_ssize_t, +) +from libc.stddef cimport ( + size_t, +) from libc.stdint cimport ( int64_t, uint8_t, diff --git a/pandas/io/sas/sas7bdat.py b/pandas/io/sas/sas7bdat.py index 7fd93e7ed0e23..6925584ccc3b6 100644 --- a/pandas/io/sas/sas7bdat.py +++ b/pandas/io/sas/sas7bdat.py @@ -13,15 +13,21 @@ Reference for binary data compression: http://collaboration.cmc.ec.gc.ca/science/rpn/biblio/ddj/Website/articles/CUJ/1992/9210/ross/ross.htm """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from collections import abc +from collections import ( + abc, +) from datetime import ( datetime, timedelta, ) import sys -from typing import cast +from typing import ( + cast, +) import numpy as np @@ -41,7 +47,9 @@ isna, ) -from pandas.io.common import get_handle +from pandas.io.common import ( + get_handle, +) from pandas.io.sas._byteswap import ( read_double_with_byteswap, read_float_with_byteswap, @@ -54,7 +62,9 @@ get_subheader_index, ) import pandas.io.sas.sas_constants as const -from pandas.io.sas.sasreader import ReaderBase +from pandas.io.sas.sasreader import ( + ReaderBase, +) def _parse_datetime(sas_datetime: float, unit: str): diff --git a/pandas/io/sas/sas_constants.py b/pandas/io/sas/sas_constants.py index 62c17bd03927e..53457446baac4 100644 --- a/pandas/io/sas/sas_constants.py +++ b/pandas/io/sas/sas_constants.py @@ -1,6 +1,10 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from typing import Final +from typing import ( + Final, +) magic: Final = ( b"\x00\x00\x00\x00\x00\x00\x00\x00" diff --git a/pandas/io/sas/sas_xport.py b/pandas/io/sas/sas_xport.py index 6767dec6e4528..5030684deb54f 100644 --- a/pandas/io/sas/sas_xport.py +++ b/pandas/io/sas/sas_xport.py @@ -7,10 +7,16 @@ https://support.sas.com/content/dam/SAS/support/en/technical-papers/record-layout-of-a-sas-version-5-or-6-data-set-in-sas-transport-xport-format.pdf """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from collections import abc -from datetime import datetime +from collections import ( + abc, +) +from datetime import ( + datetime, +) import struct import warnings @@ -22,13 +28,21 @@ FilePath, ReadBuffer, ) -from pandas.util._decorators import Appender -from pandas.util._exceptions import find_stack_level +from pandas.util._decorators import ( + Appender, +) +from pandas.util._exceptions import ( + find_stack_level, +) import pandas as pd -from pandas.io.common import get_handle -from pandas.io.sas.sasreader import ReaderBase +from pandas.io.common import ( + get_handle, +) +from pandas.io.sas.sasreader import ( + ReaderBase, +) _correct_line1 = ( "HEADER RECORD*******LIBRARY HEADER RECORD!!!!!!!" diff --git a/pandas/io/sas/sasreader.py b/pandas/io/sas/sasreader.py index 22910484876a6..5b884823042a8 100644 --- a/pandas/io/sas/sasreader.py +++ b/pandas/io/sas/sasreader.py @@ -1,13 +1,17 @@ """ Read SAS sas7bdat or xport files. """ -from __future__ import annotations +from __future__ import ( + annotations, +) from abc import ( ABCMeta, abstractmethod, ) -from types import TracebackType +from types import ( + TracebackType, +) from typing import ( TYPE_CHECKING, Hashable, @@ -19,14 +23,22 @@ FilePath, ReadBuffer, ) -from pandas.util._decorators import doc +from pandas.util._decorators import ( + doc, +) -from pandas.core.shared_docs import _shared_docs +from pandas.core.shared_docs import ( + _shared_docs, +) -from pandas.io.common import stringify_path +from pandas.io.common import ( + stringify_path, +) if TYPE_CHECKING: - from pandas import DataFrame + from pandas import ( + DataFrame, + ) # TODO(PY38): replace with Protocol in Python 3.8 @@ -151,7 +163,9 @@ def read_sas( reader: ReaderBase if format.lower() == "xport": - from pandas.io.sas.sas_xport import XportReader + from pandas.io.sas.sas_xport import ( + XportReader, + ) reader = XportReader( filepath_or_buffer, @@ -161,7 +175,9 @@ def read_sas( compression=compression, ) elif format.lower() == "sas7bdat": - from pandas.io.sas.sas7bdat import SAS7BDATReader + from pandas.io.sas.sas7bdat import ( + SAS7BDATReader, + ) reader = SAS7BDATReader( filepath_or_buffer, diff --git a/pandas/io/spss.py b/pandas/io/spss.py index bb9ace600e6f2..699880e7e0409 100644 --- a/pandas/io/spss.py +++ b/pandas/io/spss.py @@ -1,22 +1,38 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from pathlib import Path +from pathlib import ( + Path, +) from typing import ( TYPE_CHECKING, Sequence, ) -from pandas._config import using_nullable_dtypes +from pandas._config import ( + using_nullable_dtypes, +) -from pandas._libs import lib -from pandas.compat._optional import import_optional_dependency +from pandas._libs import ( + lib, +) +from pandas.compat._optional import ( + import_optional_dependency, +) -from pandas.core.dtypes.inference import is_list_like +from pandas.core.dtypes.inference import ( + is_list_like, +) -from pandas.io.common import stringify_path +from pandas.io.common import ( + stringify_path, +) if TYPE_CHECKING: - from pandas import DataFrame + from pandas import ( + DataFrame, + ) def read_spss( diff --git a/pandas/io/sql.py b/pandas/io/sql.py index 7dedd705f8c70..a0d349b7b9e2d 100644 --- a/pandas/io/sql.py +++ b/pandas/io/sql.py @@ -3,7 +3,9 @@ retrieval and to reduce dependency on DB-specific API. """ -from __future__ import annotations +from __future__ import ( + annotations, +) from abc import ( ABC, @@ -18,7 +20,9 @@ datetime, time, ) -from functools import partial +from functools import ( + partial, +) import re from typing import ( TYPE_CHECKING, @@ -32,20 +36,28 @@ import numpy as np -from pandas._config import using_nullable_dtypes +from pandas._config import ( + using_nullable_dtypes, +) -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._typing import ( DateTimeErrorChoices, DtypeArg, IndexLabel, ) -from pandas.compat._optional import import_optional_dependency +from pandas.compat._optional import ( + import_optional_dependency, +) from pandas.errors import ( AbstractMethodError, DatabaseError, ) -from pandas.util._exceptions import find_stack_level +from pandas.util._exceptions import ( + find_stack_level, +) from pandas.core.dtypes.common import ( is_datetime64tz_dtype, @@ -53,22 +65,38 @@ is_integer, is_list_like, ) -from pandas.core.dtypes.dtypes import DatetimeTZDtype -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.dtypes import ( + DatetimeTZDtype, +) +from pandas.core.dtypes.missing import ( + isna, +) -from pandas import get_option +from pandas import ( + get_option, +) from pandas.core.api import ( DataFrame, Series, ) -from pandas.core.arrays import ArrowExtensionArray -from pandas.core.base import PandasObject +from pandas.core.arrays import ( + ArrowExtensionArray, +) +from pandas.core.base import ( + PandasObject, +) import pandas.core.common as com -from pandas.core.internals.construction import convert_object_array -from pandas.core.tools.datetimes import to_datetime +from pandas.core.internals.construction import ( + convert_object_array, +) +from pandas.core.tools.datetimes import ( + to_datetime, +) if TYPE_CHECKING: - from sqlalchemy import Table + from sqlalchemy import ( + Table, + ) from sqlalchemy.sql.expression import ( Select, TextClause, @@ -908,7 +936,9 @@ def exists(self): return self.pd_sql.has_table(self.name, self.schema) def sql_schema(self) -> str: - from sqlalchemy.schema import CreateTable + from sqlalchemy.schema import ( + CreateTable, + ) return str(CreateTable(self.table).compile(self.pd_sql.con)) @@ -957,7 +987,9 @@ def _execute_insert_multi(self, conn, keys: list[str], data_iter) -> int: but performance degrades quickly with increase of columns. """ - from sqlalchemy import insert + from sqlalchemy import ( + insert, + ) data = [dict(zip(keys, row)) for row in data_iter] stmt = insert(self.table).values(data) @@ -1091,7 +1123,9 @@ def read( chunksize=None, use_nullable_dtypes: bool = False, ) -> DataFrame | Iterator[DataFrame]: - from sqlalchemy import select + from sqlalchemy import ( + select, + ) if columns is not None and len(columns) > 0: cols = [self.table.c[n] for n in columns] @@ -1181,7 +1215,9 @@ def _create_table_setup(self): PrimaryKeyConstraint, Table, ) - from sqlalchemy.schema import MetaData + from sqlalchemy.schema import ( + MetaData, + ) column_names_and_types = self._get_column_names_and_types(self._sqlalchemy_type) @@ -1470,7 +1506,9 @@ def insert_records( method=None, **engine_kwargs, ) -> int | None: - from sqlalchemy import exc + from sqlalchemy import ( + exc, + ) try: return table.insert(chunksize=chunksize, method=method) @@ -1538,9 +1576,15 @@ class SQLDatabase(PandasSQL): def __init__( self, con, schema: str | None = None, need_transaction: bool = False ) -> None: - from sqlalchemy import create_engine - from sqlalchemy.engine import Engine - from sqlalchemy.schema import MetaData + from sqlalchemy import ( + create_engine, + ) + from sqlalchemy.engine import ( + Engine, + ) + from sqlalchemy.schema import ( + MetaData, + ) # self.exit_stack cleans up the Engine and Connection and commits the # transaction if any of those objects was created below. @@ -1811,7 +1855,9 @@ def prep_table( else: dtype = cast(dict, dtype) - from sqlalchemy.types import TypeEngine + from sqlalchemy.types import ( + TypeEngine, + ) for col, my_type in dtype.items(): if isinstance(my_type, type) and issubclass(my_type, TypeEngine): @@ -1846,7 +1892,9 @@ def check_case_sensitive( if not name.isdigit() and not name.islower(): # check for potentially case sensitivity issues (GH7815) # Only check when name is not a number and name is not lower case - from sqlalchemy import inspect as sqlalchemy_inspect + from sqlalchemy import ( + inspect as sqlalchemy_inspect, + ) insp = sqlalchemy_inspect(self.con) table_names = insp.get_table_names(schema=schema or self.meta.schema) @@ -1957,7 +2005,9 @@ def tables(self): return self.meta.tables def has_table(self, name: str, schema: str | None = None) -> bool: - from sqlalchemy import inspect as sqlalchemy_inspect + from sqlalchemy import ( + inspect as sqlalchemy_inspect, + ) insp = sqlalchemy_inspect(self.con) return insp.has_table(name, schema or self.meta.schema) diff --git a/pandas/io/stata.py b/pandas/io/stata.py index 5cc13892224c5..76d43d16c8190 100644 --- a/pandas/io/stata.py +++ b/pandas/io/stata.py @@ -9,15 +9,23 @@ You can find more information on http://presbrey.mit.edu/PyDTA and https://www.statsmodels.org/devel/ """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from collections import abc +from collections import ( + abc, +) import datetime -from io import BytesIO +from io import ( + BytesIO, +) import os import struct import sys -from types import TracebackType +from types import ( + TracebackType, +) from typing import ( IO, TYPE_CHECKING, @@ -31,11 +39,17 @@ ) import warnings -from dateutil.relativedelta import relativedelta +from dateutil.relativedelta import ( + relativedelta, +) import numpy as np -from pandas._libs.lib import infer_dtype -from pandas._libs.writers import max_len_string_array +from pandas._libs.lib import ( + infer_dtype, +) +from pandas._libs.writers import ( + max_len_string_array, +) from pandas._typing import ( CompressionOptions, FilePath, @@ -53,7 +67,9 @@ Appender, doc, ) -from pandas.util._exceptions import find_stack_level +from pandas.util._exceptions import ( + find_stack_level, +) from pandas.core.dtypes.common import ( ensure_object, @@ -71,17 +87,33 @@ to_datetime, to_timedelta, ) -from pandas.core.arrays.boolean import BooleanDtype -from pandas.core.arrays.integer import IntegerDtype -from pandas.core.frame import DataFrame -from pandas.core.indexes.base import Index -from pandas.core.series import Series -from pandas.core.shared_docs import _shared_docs +from pandas.core.arrays.boolean import ( + BooleanDtype, +) +from pandas.core.arrays.integer import ( + IntegerDtype, +) +from pandas.core.frame import ( + DataFrame, +) +from pandas.core.indexes.base import ( + Index, +) +from pandas.core.series import ( + Series, +) +from pandas.core.shared_docs import ( + _shared_docs, +) -from pandas.io.common import get_handle +from pandas.io.common import ( + get_handle, +) if TYPE_CHECKING: - from typing import Literal + from typing import ( + Literal, + ) _version_error = ( "Version of given Stata file is {version}. pandas supports importing " diff --git a/pandas/io/xml.py b/pandas/io/xml.py index 90d67ac45d4fd..cd29507342f68 100644 --- a/pandas/io/xml.py +++ b/pandas/io/xml.py @@ -2,7 +2,9 @@ :mod:`pandas.io.xml` is a module for reading XML. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import io from typing import ( @@ -11,9 +13,13 @@ Sequence, ) -from pandas._config import using_nullable_dtypes +from pandas._config import ( + using_nullable_dtypes, +) -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._typing import ( TYPE_CHECKING, CompressionOptions, @@ -25,16 +31,24 @@ StorageOptions, XMLParsers, ) -from pandas.compat._optional import import_optional_dependency +from pandas.compat._optional import ( + import_optional_dependency, +) from pandas.errors import ( AbstractMethodError, ParserError, ) -from pandas.util._decorators import doc +from pandas.util._decorators import ( + doc, +) -from pandas.core.dtypes.common import is_list_like +from pandas.core.dtypes.common import ( + is_list_like, +) -from pandas.core.shared_docs import _shared_docs +from pandas.core.shared_docs import ( + _shared_docs, +) from pandas.io.common import ( file_exists, @@ -44,14 +58,22 @@ is_url, stringify_path, ) -from pandas.io.parsers import TextParser +from pandas.io.parsers import ( + TextParser, +) if TYPE_CHECKING: - from xml.etree.ElementTree import Element + from xml.etree.ElementTree import ( + Element, + ) - from lxml import etree + from lxml import ( + etree, + ) - from pandas import DataFrame + from pandas import ( + DataFrame, + ) @doc( @@ -439,7 +461,9 @@ class _EtreeFrameParser(_XMLFrameParser): """ def parse_data(self) -> list[dict[str, str | None]]: - from xml.etree.ElementTree import iterparse + from xml.etree.ElementTree import ( + iterparse, + ) if self.stylesheet is not None: raise ValueError( @@ -558,7 +582,9 @@ def parse_data(self) -> list[dict[str, str | None]]: validate xpath, names, optionally parse and run XSLT, and parse original or transformed XML and return specific nodes. """ - from lxml.etree import iterparse + from lxml.etree import ( + iterparse, + ) if self.iterparse is None: self.xml_doc = self._parse_doc(self.path_or_buffer) @@ -668,7 +694,9 @@ def _transform_doc(self) -> etree._XSLTResultTree: am ideally flatter xml document for easier parsing and migration to Data Frame. """ - from lxml.etree import XSLT + from lxml.etree import ( + XSLT, + ) transformer = XSLT(self.xsl_doc) new_doc = transformer(self.xml_doc) diff --git a/pandas/plotting/_core.py b/pandas/plotting/_core.py index 51c95808506a8..b53ce7570cffd 100644 --- a/pandas/plotting/_core.py +++ b/pandas/plotting/_core.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import importlib import types @@ -7,9 +9,13 @@ Sequence, ) -from pandas._config import get_option +from pandas._config import ( + get_option, +) -from pandas._typing import IndexLabel +from pandas._typing import ( + IndexLabel, +) from pandas.util._decorators import ( Appender, Substitution, @@ -24,12 +30,18 @@ ABCSeries, ) -from pandas.core.base import PandasObject +from pandas.core.base import ( + PandasObject, +) if TYPE_CHECKING: - from matplotlib.axes import Axes + from matplotlib.axes import ( + Axes, + ) - from pandas import DataFrame + from pandas import ( + DataFrame, + ) def hist_series( @@ -1783,7 +1795,9 @@ def _load_backend(backend: str) -> types.ModuleType: types.ModuleType The imported backend. """ - from importlib.metadata import entry_points + from importlib.metadata import ( + entry_points, + ) if backend == "matplotlib": # Because matplotlib is an optional dependency and first-party backend, diff --git a/pandas/plotting/_matplotlib/__init__.py b/pandas/plotting/_matplotlib/__init__.py index 75c61da03795a..89ef0230f1998 100644 --- a/pandas/plotting/_matplotlib/__init__.py +++ b/pandas/plotting/_matplotlib/__init__.py @@ -1,6 +1,10 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from typing import TYPE_CHECKING +from typing import ( + TYPE_CHECKING, +) from pandas.plotting._matplotlib.boxplot import ( BoxPlot, @@ -36,10 +40,14 @@ radviz, scatter_matrix, ) -from pandas.plotting._matplotlib.tools import table +from pandas.plotting._matplotlib.tools import ( + table, +) if TYPE_CHECKING: - from pandas.plotting._matplotlib.core import MPLPlot + from pandas.plotting._matplotlib.core import ( + MPLPlot, + ) PLOT_CLASSES: dict[str, type[MPLPlot]] = { "line": LinePlot, diff --git a/pandas/plotting/_matplotlib/boxplot.py b/pandas/plotting/_matplotlib/boxplot.py index e2f30da1b839c..f9b4d94cb13fa 100644 --- a/pandas/plotting/_matplotlib/boxplot.py +++ b/pandas/plotting/_matplotlib/boxplot.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, @@ -8,25 +10,41 @@ ) import warnings -from matplotlib.artist import setp +from matplotlib.artist import ( + setp, +) import numpy as np -from pandas._typing import MatplotlibColor -from pandas.util._exceptions import find_stack_level +from pandas._typing import ( + MatplotlibColor, +) +from pandas.util._exceptions import ( + find_stack_level, +) -from pandas.core.dtypes.common import is_dict_like -from pandas.core.dtypes.missing import remove_na_arraylike +from pandas.core.dtypes.common import ( + is_dict_like, +) +from pandas.core.dtypes.missing import ( + remove_na_arraylike, +) import pandas as pd import pandas.core.common as com -from pandas.io.formats.printing import pprint_thing +from pandas.io.formats.printing import ( + pprint_thing, +) from pandas.plotting._matplotlib.core import ( LinePlot, MPLPlot, ) -from pandas.plotting._matplotlib.groupby import create_iter_data_given_by -from pandas.plotting._matplotlib.style import get_standard_colors +from pandas.plotting._matplotlib.groupby import ( + create_iter_data_given_by, +) +from pandas.plotting._matplotlib.style import ( + get_standard_colors, +) from pandas.plotting._matplotlib.tools import ( create_subplots, flatten_axes, @@ -34,8 +52,12 @@ ) if TYPE_CHECKING: - from matplotlib.axes import Axes - from matplotlib.lines import Line2D + from matplotlib.axes import ( + Axes, + ) + from matplotlib.lines import ( + Line2D, + ) class BoxPlot(LinePlot): diff --git a/pandas/plotting/_matplotlib/converter.py b/pandas/plotting/_matplotlib/converter.py index 9b0fe99e2d61e..cbeea444c0891 100644 --- a/pandas/plotting/_matplotlib/converter.py +++ b/pandas/plotting/_matplotlib/converter.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import contextlib import datetime as pydt @@ -16,24 +18,34 @@ cast, ) -from dateutil.relativedelta import relativedelta +from dateutil.relativedelta import ( + relativedelta, +) import matplotlib.dates as mdates from matplotlib.ticker import ( AutoLocator, Formatter, Locator, ) -from matplotlib.transforms import nonsingular +from matplotlib.transforms import ( + nonsingular, +) import matplotlib.units as munits import numpy as np -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._libs.tslibs import ( Timestamp, to_offset, ) -from pandas._libs.tslibs.dtypes import FreqGroup -from pandas._typing import F +from pandas._libs.tslibs.dtypes import ( + FreqGroup, +) +from pandas._typing import ( + F, +) from pandas.core.dtypes.common import ( is_float, @@ -49,7 +61,9 @@ get_option, ) import pandas.core.common as com -from pandas.core.indexes.datetimes import date_range +from pandas.core.indexes.datetimes import ( + date_range, +) from pandas.core.indexes.period import ( Period, PeriodIndex, @@ -58,7 +72,9 @@ import pandas.core.tools.datetimes as tools if TYPE_CHECKING: - from pandas._libs.tslibs.offsets import BaseOffset + from pandas._libs.tslibs.offsets import ( + BaseOffset, + ) # constants HOURS_PER_DAY: Final = 24.0 diff --git a/pandas/plotting/_matplotlib/core.py b/pandas/plotting/_matplotlib/core.py index 754cc94b6ded6..586fe091075e0 100644 --- a/pandas/plotting/_matplotlib/core.py +++ b/pandas/plotting/_matplotlib/core.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from abc import ( ABC, @@ -14,7 +16,9 @@ import warnings import matplotlib as mpl -from matplotlib.artist import Artist +from matplotlib.artist import ( + Artist, +) import numpy as np from pandas._typing import ( @@ -22,9 +26,15 @@ PlottingOrientation, npt, ) -from pandas.errors import AbstractMethodError -from pandas.util._decorators import cache_readonly -from pandas.util._exceptions import find_stack_level +from pandas.errors import ( + AbstractMethodError, +) +from pandas.util._decorators import ( + cache_readonly, +) +from pandas.util._exceptions import ( + find_stack_level, +) from pandas.core.dtypes.common import ( is_any_real_numeric_dtype, @@ -53,15 +63,31 @@ ) import pandas.core.common as com -from pandas.core.frame import DataFrame -from pandas.util.version import Version - -from pandas.io.formats.printing import pprint_thing -from pandas.plotting._matplotlib import tools -from pandas.plotting._matplotlib.converter import register_pandas_matplotlib_converters -from pandas.plotting._matplotlib.groupby import reconstruct_data_with_by -from pandas.plotting._matplotlib.misc import unpack_single_str_list -from pandas.plotting._matplotlib.style import get_standard_colors +from pandas.core.frame import ( + DataFrame, +) +from pandas.util.version import ( + Version, +) + +from pandas.io.formats.printing import ( + pprint_thing, +) +from pandas.plotting._matplotlib import ( + tools, +) +from pandas.plotting._matplotlib.converter import ( + register_pandas_matplotlib_converters, +) +from pandas.plotting._matplotlib.groupby import ( + reconstruct_data_with_by, +) +from pandas.plotting._matplotlib.misc import ( + unpack_single_str_list, +) +from pandas.plotting._matplotlib.style import ( + get_standard_colors, +) from pandas.plotting._matplotlib.timeseries import ( decorate_axes, format_dateaxis, @@ -79,15 +105,21 @@ ) if TYPE_CHECKING: - from matplotlib.axes import Axes - from matplotlib.axis import Axis + from matplotlib.axes import ( + Axes, + ) + from matplotlib.axis import ( + Axis, + ) def _color_in_style(style: str) -> bool: """ Check if there is a color letter in the style string. """ - from matplotlib.colors import BASE_COLORS + from matplotlib.colors import ( + BASE_COLORS, + ) return not set(BASE_COLORS).isdisjoint(style) @@ -1109,7 +1141,9 @@ def _get_errorbars( return errors def _get_subplots(self): - from matplotlib.axes import Subplot + from matplotlib.axes import ( + Subplot, + ) return [ ax for ax in self.axes[0].get_figure().get_axes() if isinstance(ax, Subplot) @@ -1235,7 +1269,9 @@ def _make_plot(self): cmap = None if color_by_categorical: - from matplotlib import colors + from matplotlib import ( + colors, + ) n_cats = len(self.data[c].cat.categories) cmap = colors.ListedColormap([cmap(i) for i in range(cmap.N)]) @@ -1332,7 +1368,9 @@ def _kind(self) -> Literal["line", "area", "hist", "kde", "box"]: return "line" def __init__(self, data, **kwargs) -> None: - from pandas.plotting import plot_params + from pandas.plotting import ( + plot_params, + ) MPLPlot.__init__(self, data, **kwargs) if self.stacked: @@ -1481,7 +1519,9 @@ def _args_adjust(self) -> None: pass def _post_plot_logic(self, ax: Axes, data) -> None: - from matplotlib.ticker import FixedLocator + from matplotlib.ticker import ( + FixedLocator, + ) def get_label(i): if is_float(i) and i.is_integer(): diff --git a/pandas/plotting/_matplotlib/groupby.py b/pandas/plotting/_matplotlib/groupby.py index 17a214292608b..f90066fe416bf 100644 --- a/pandas/plotting/_matplotlib/groupby.py +++ b/pandas/plotting/_matplotlib/groupby.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import numpy as np @@ -7,7 +9,9 @@ IndexLabel, ) -from pandas.core.dtypes.missing import remove_na_arraylike +from pandas.core.dtypes.missing import ( + remove_na_arraylike, +) from pandas import ( DataFrame, @@ -16,7 +20,9 @@ concat, ) -from pandas.plotting._matplotlib.misc import unpack_single_str_list +from pandas.plotting._matplotlib.misc import ( + unpack_single_str_list, +) def create_iter_data_given_by( diff --git a/pandas/plotting/_matplotlib/hist.py b/pandas/plotting/_matplotlib/hist.py index bc8e6ed753d99..330a7bde691b4 100644 --- a/pandas/plotting/_matplotlib/hist.py +++ b/pandas/plotting/_matplotlib/hist.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, @@ -7,7 +9,9 @@ import numpy as np -from pandas._typing import PlottingOrientation +from pandas._typing import ( + PlottingOrientation, +) from pandas.core.dtypes.common import ( is_integer, @@ -22,7 +26,9 @@ remove_na_arraylike, ) -from pandas.io.formats.printing import pprint_thing +from pandas.io.formats.printing import ( + pprint_thing, +) from pandas.plotting._matplotlib.core import ( LinePlot, MPLPlot, @@ -31,7 +37,9 @@ create_iter_data_given_by, reformat_hist_y_given_by, ) -from pandas.plotting._matplotlib.misc import unpack_single_str_list +from pandas.plotting._matplotlib.misc import ( + unpack_single_str_list, +) from pandas.plotting._matplotlib.tools import ( create_subplots, flatten_axes, @@ -40,9 +48,13 @@ ) if TYPE_CHECKING: - from matplotlib.axes import Axes + from matplotlib.axes import ( + Axes, + ) - from pandas import DataFrame + from pandas import ( + DataFrame, + ) class HistPlot(LinePlot): @@ -245,7 +257,9 @@ def _plot( stacking_id=None, **kwds, ): - from scipy.stats import gaussian_kde + from scipy.stats import ( + gaussian_kde, + ) y = remove_na_arraylike(y) gkde = gaussian_kde(y, bw_method=bw_method) diff --git a/pandas/plotting/_matplotlib/misc.py b/pandas/plotting/_matplotlib/misc.py index 291a6dff9650d..5f182812dcce5 100644 --- a/pandas/plotting/_matplotlib/misc.py +++ b/pandas/plotting/_matplotlib/misc.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import random from typing import ( @@ -6,14 +8,22 @@ Hashable, ) -from matplotlib import patches +from matplotlib import ( + patches, +) import matplotlib.lines as mlines import numpy as np -from pandas.core.dtypes.missing import notna +from pandas.core.dtypes.missing import ( + notna, +) -from pandas.io.formats.printing import pprint_thing -from pandas.plotting._matplotlib.style import get_standard_colors +from pandas.io.formats.printing import ( + pprint_thing, +) +from pandas.plotting._matplotlib.style import ( + get_standard_colors, +) from pandas.plotting._matplotlib.tools import ( create_subplots, do_adjust_figure, @@ -22,8 +32,12 @@ ) if TYPE_CHECKING: - from matplotlib.axes import Axes - from matplotlib.figure import Figure + from matplotlib.axes import ( + Axes, + ) + from matplotlib.figure import ( + Figure, + ) from pandas import ( DataFrame, @@ -82,7 +96,9 @@ def scatter_matrix( ax.hist(values, **hist_kwds) elif diagonal in ("kde", "density"): - from scipy.stats import gaussian_kde + from scipy.stats import ( + gaussian_kde, + ) y = values gkde = gaussian_kde(y) diff --git a/pandas/plotting/_matplotlib/style.py b/pandas/plotting/_matplotlib/style.py index 839da35a8ae83..10c28e6115916 100644 --- a/pandas/plotting/_matplotlib/style.py +++ b/pandas/plotting/_matplotlib/style.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import itertools from typing import ( @@ -13,15 +15,23 @@ import matplotlib.colors import numpy as np -from pandas._typing import MatplotlibColor as Color -from pandas.util._exceptions import find_stack_level +from pandas._typing import ( + MatplotlibColor as Color, +) +from pandas.util._exceptions import ( + find_stack_level, +) -from pandas.core.dtypes.common import is_list_like +from pandas.core.dtypes.common import ( + is_list_like, +) import pandas.core.common as com if TYPE_CHECKING: - from matplotlib.colors import Colormap + from matplotlib.colors import ( + Colormap, + ) def get_standard_colors( diff --git a/pandas/plotting/_matplotlib/timeseries.py b/pandas/plotting/_matplotlib/timeseries.py index 8e21b2c691185..8103df7cc051a 100644 --- a/pandas/plotting/_matplotlib/timeseries.py +++ b/pandas/plotting/_matplotlib/timeseries.py @@ -1,8 +1,12 @@ # TODO: Use the fact that axis can have units to simplify the process -from __future__ import annotations +from __future__ import ( + annotations, +) -from datetime import timedelta +from datetime import ( + timedelta, +) import functools from typing import ( TYPE_CHECKING, @@ -16,7 +20,9 @@ Period, to_offset, ) -from pandas._libs.tslibs.dtypes import FreqGroup +from pandas._libs.tslibs.dtypes import ( + FreqGroup, +) from pandas.core.dtypes.generic import ( ABCDatetimeIndex, @@ -24,7 +30,9 @@ ABCTimedeltaIndex, ) -from pandas.io.formats.printing import pprint_thing +from pandas.io.formats.printing import ( + pprint_thing, +) from pandas.plotting._matplotlib.converter import ( TimeSeries_DateFormatter, TimeSeries_DateLocator, @@ -37,7 +45,9 @@ ) if TYPE_CHECKING: - from matplotlib.axes import Axes + from matplotlib.axes import ( + Axes, + ) from pandas import ( DataFrame, @@ -136,7 +146,9 @@ def _replot_ax(ax: Axes, freq, kwargs): # for tsplot if isinstance(plotf, str): - from pandas.plotting._matplotlib import PLOT_CLASSES + from pandas.plotting._matplotlib import ( + PLOT_CLASSES, + ) plotf = PLOT_CLASSES[plotf]._plot @@ -300,7 +312,9 @@ def format_dateaxis(subplot, freq, index) -> None: default, changing the limits of the x axis will intelligently change the positions of the ticks. """ - from matplotlib import pylab + from matplotlib import ( + pylab, + ) # handle index specific formatting # Note: DatetimeIndex does not use this diff --git a/pandas/plotting/_matplotlib/tools.py b/pandas/plotting/_matplotlib/tools.py index 7d3c857eea2dd..38c6322fd63a5 100644 --- a/pandas/plotting/_matplotlib/tools.py +++ b/pandas/plotting/_matplotlib/tools.py @@ -1,7 +1,11 @@ # being a bit too dynamic -from __future__ import annotations +from __future__ import ( + annotations, +) -from math import ceil +from math import ( + ceil, +) from typing import ( TYPE_CHECKING, Iterable, @@ -9,13 +13,19 @@ ) import warnings -from matplotlib import ticker +from matplotlib import ( + ticker, +) import matplotlib.table import numpy as np -from pandas.util._exceptions import find_stack_level +from pandas.util._exceptions import ( + find_stack_level, +) -from pandas.core.dtypes.common import is_list_like +from pandas.core.dtypes.common import ( + is_list_like, +) from pandas.core.dtypes.generic import ( ABCDataFrame, ABCIndex, @@ -23,11 +33,21 @@ ) if TYPE_CHECKING: - from matplotlib.axes import Axes - from matplotlib.axis import Axis - from matplotlib.figure import Figure - from matplotlib.lines import Line2D - from matplotlib.table import Table + from matplotlib.axes import ( + Axes, + ) + from matplotlib.axis import ( + Axis, + ) + from matplotlib.figure import ( + Figure, + ) + from matplotlib.lines import ( + Line2D, + ) + from matplotlib.table import ( + Table, + ) from pandas import ( DataFrame, diff --git a/pandas/plotting/_misc.py b/pandas/plotting/_misc.py index 791e7c0214b58..f161df6100c1e 100644 --- a/pandas/plotting/_misc.py +++ b/pandas/plotting/_misc.py @@ -1,16 +1,26 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from contextlib import contextmanager +from contextlib import ( + contextmanager, +) from typing import ( TYPE_CHECKING, Generator, ) -from pandas.plotting._core import _get_plot_backend +from pandas.plotting._core import ( + _get_plot_backend, +) if TYPE_CHECKING: - from matplotlib.axes import Axes - from matplotlib.figure import Figure + from matplotlib.axes import ( + Axes, + ) + from matplotlib.figure import ( + Figure, + ) import numpy as np from pandas import ( diff --git a/pandas/tests/api/test_api.py b/pandas/tests/api/test_api.py index 94430e23b054a..dbf65f6e0793c 100644 --- a/pandas/tests/api/test_api.py +++ b/pandas/tests/api/test_api.py @@ -1,9 +1,13 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import pytest import pandas as pd -from pandas import api +from pandas import ( + api, +) import pandas._testing as tm @@ -249,7 +253,9 @@ class TestTesting(Base): ] def test_testing(self): - from pandas import testing + from pandas import ( + testing, + ) self.check(testing, self.funcs) diff --git a/pandas/tests/api/test_types.py b/pandas/tests/api/test_types.py index fbaa6e7e18bca..4e5066e247000 100644 --- a/pandas/tests/api/test_types.py +++ b/pandas/tests/api/test_types.py @@ -1,8 +1,14 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import pandas._testing as tm -from pandas.api import types -from pandas.tests.api.test_api import Base +from pandas.api import ( + types, +) +from pandas.tests.api.test_api import ( + Base, +) class TestTypes(Base): diff --git a/pandas/tests/apply/common.py b/pandas/tests/apply/common.py index b4d153df54059..5bc2a7e85638b 100644 --- a/pandas/tests/apply/common.py +++ b/pandas/tests/apply/common.py @@ -1,4 +1,6 @@ -from pandas.core.groupby.base import transformation_kernels +from pandas.core.groupby.base import ( + transformation_kernels, +) # There is no Series.cumcount or DataFrame.cumcount series_transform_kernels = [ diff --git a/pandas/tests/apply/conftest.py b/pandas/tests/apply/conftest.py index b68c6235cb0b8..82df346e9eea4 100644 --- a/pandas/tests/apply/conftest.py +++ b/pandas/tests/apply/conftest.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas import DataFrame +from pandas import ( + DataFrame, +) @pytest.fixture diff --git a/pandas/tests/apply/test_frame_apply.py b/pandas/tests/apply/test_frame_apply.py index 6ed3f6140d361..0a40f855a55da 100644 --- a/pandas/tests/apply/test_frame_apply.py +++ b/pandas/tests/apply/test_frame_apply.py @@ -1,10 +1,14 @@ -from datetime import datetime +from datetime import ( + datetime, +) import warnings import numpy as np import pytest -from pandas.core.dtypes.dtypes import CategoricalDtype +from pandas.core.dtypes.dtypes import ( + CategoricalDtype, +) import pandas as pd from pandas import ( @@ -15,7 +19,9 @@ date_range, ) import pandas._testing as tm -from pandas.tests.frame.common import zip_frames +from pandas.tests.frame.common import ( + zip_frames, +) def test_apply(float_frame): @@ -649,7 +655,9 @@ def test_applymap_box(): def test_frame_apply_dont_convert_datetime64(): - from pandas.tseries.offsets import BDay + from pandas.tseries.offsets import ( + BDay, + ) df = DataFrame({"x1": [datetime(1996, 1, 1)]}) diff --git a/pandas/tests/apply/test_frame_transform.py b/pandas/tests/apply/test_frame_transform.py index 8e385de0b48e0..e89c8ba9da7c6 100644 --- a/pandas/tests/apply/test_frame_transform.py +++ b/pandas/tests/apply/test_frame_transform.py @@ -7,8 +7,12 @@ Series, ) import pandas._testing as tm -from pandas.tests.apply.common import frame_transform_kernels -from pandas.tests.frame.common import zip_frames +from pandas.tests.apply.common import ( + frame_transform_kernels, +) +from pandas.tests.frame.common import ( + zip_frames, +) def unpack_obj(obj, klass, axis): diff --git a/pandas/tests/apply/test_invalid_arg.py b/pandas/tests/apply/test_invalid_arg.py index 294693df7340a..8db5c0f4eced4 100644 --- a/pandas/tests/apply/test_invalid_arg.py +++ b/pandas/tests/apply/test_invalid_arg.py @@ -6,13 +6,17 @@ # 4. invalid result shape/type # If your test does not fit into one of these categories, add to this list. -from itertools import chain +from itertools import ( + chain, +) import re import numpy as np import pytest -from pandas.errors import SpecificationError +from pandas.errors import ( + SpecificationError, +) from pandas import ( Categorical, diff --git a/pandas/tests/apply/test_series_apply.py b/pandas/tests/apply/test_series_apply.py index 7b8a6204cf2c6..d34ae7385ad3e 100644 --- a/pandas/tests/apply/test_series_apply.py +++ b/pandas/tests/apply/test_series_apply.py @@ -2,7 +2,9 @@ Counter, defaultdict, ) -from decimal import Decimal +from decimal import ( + Decimal, +) import math import numpy as np @@ -19,7 +21,9 @@ timedelta_range, ) import pandas._testing as tm -from pandas.tests.apply.common import series_transform_kernels +from pandas.tests.apply.common import ( + series_transform_kernels, +) def test_series_map_box_timedelta(): diff --git a/pandas/tests/apply/test_str.py b/pandas/tests/apply/test_str.py index 64f93e48b255c..ecf99e291ccba 100644 --- a/pandas/tests/apply/test_str.py +++ b/pandas/tests/apply/test_str.py @@ -1,10 +1,14 @@ -from itertools import chain +from itertools import ( + chain, +) import operator import numpy as np import pytest -from pandas.core.dtypes.common import is_number +from pandas.core.dtypes.common import ( + is_number, +) from pandas import ( DataFrame, diff --git a/pandas/tests/arithmetic/conftest.py b/pandas/tests/arithmetic/conftest.py index 7dd5169202ba4..9f10f0b8d951a 100644 --- a/pandas/tests/arithmetic/conftest.py +++ b/pandas/tests/arithmetic/conftest.py @@ -7,7 +7,9 @@ RangeIndex, ) import pandas._testing as tm -from pandas.core.computation import expressions as expr +from pandas.core.computation import ( + expressions as expr, +) @pytest.fixture(autouse=True, params=[0, 1000000], ids=["numexpr", "python"]) diff --git a/pandas/tests/arithmetic/test_datetime64.py b/pandas/tests/arithmetic/test_datetime64.py index 8bbb0452e822f..58424655d9153 100644 --- a/pandas/tests/arithmetic/test_datetime64.py +++ b/pandas/tests/arithmetic/test_datetime64.py @@ -17,9 +17,15 @@ import pytest import pytz -from pandas._libs.tslibs.conversion import localize_pydatetime -from pandas._libs.tslibs.offsets import shift_months -from pandas.errors import PerformanceWarning +from pandas._libs.tslibs.conversion import ( + localize_pydatetime, +) +from pandas._libs.tslibs.offsets import ( + shift_months, +) +from pandas.errors import ( + PerformanceWarning, +) import pandas as pd from pandas import ( @@ -34,7 +40,9 @@ date_range, ) import pandas._testing as tm -from pandas.core.ops import roperator +from pandas.core.ops import ( + roperator, +) from pandas.tests.arithmetic.common import ( assert_cannot_add, assert_invalid_addsub_type, diff --git a/pandas/tests/arithmetic/test_interval.py b/pandas/tests/arithmetic/test_interval.py index 0e316cf419cb0..0af88f9220051 100644 --- a/pandas/tests/arithmetic/test_interval.py +++ b/pandas/tests/arithmetic/test_interval.py @@ -3,7 +3,9 @@ import numpy as np import pytest -from pandas.core.dtypes.common import is_list_like +from pandas.core.dtypes.common import ( + is_list_like, +) import pandas as pd from pandas import ( @@ -24,7 +26,9 @@ BooleanArray, IntervalArray, ) -from pandas.tests.arithmetic.common import get_upcast_box +from pandas.tests.arithmetic.common import ( + get_upcast_box, +) @pytest.fixture( diff --git a/pandas/tests/arithmetic/test_numeric.py b/pandas/tests/arithmetic/test_numeric.py index eaf80f4768458..c2556bdd5b92d 100644 --- a/pandas/tests/arithmetic/test_numeric.py +++ b/pandas/tests/arithmetic/test_numeric.py @@ -1,11 +1,19 @@ # Arithmetic tests for DataFrame/Series/Index/Array classes that should # behave identically. # Specifically for numeric dtypes -from __future__ import annotations +from __future__ import ( + annotations, +) -from collections import abc -from datetime import timedelta -from decimal import Decimal +from collections import ( + abc, +) +from datetime import ( + timedelta, +) +from decimal import ( + Decimal, +) import operator import numpy as np @@ -21,8 +29,12 @@ array, ) import pandas._testing as tm -from pandas.core import ops -from pandas.core.computation import expressions as expr +from pandas.core import ( + ops, +) +from pandas.core.computation import ( + expressions as expr, +) from pandas.tests.arithmetic.common import ( assert_invalid_addsub_type, assert_invalid_comparison, diff --git a/pandas/tests/arithmetic/test_object.py b/pandas/tests/arithmetic/test_object.py index cacd580658149..05b4df0d47914 100644 --- a/pandas/tests/arithmetic/test_object.py +++ b/pandas/tests/arithmetic/test_object.py @@ -2,7 +2,9 @@ # behave identically. # Specifically for object dtype import datetime -from decimal import Decimal +from decimal import ( + Decimal, +) import operator import numpy as np @@ -14,7 +16,9 @@ Timestamp, ) import pandas._testing as tm -from pandas.core import ops +from pandas.core import ( + ops, +) # ------------------------------------------------------------------ # Comparisons diff --git a/pandas/tests/arithmetic/test_period.py b/pandas/tests/arithmetic/test_period.py index 7a079ae7795e6..8aabd5d762ef9 100644 --- a/pandas/tests/arithmetic/test_period.py +++ b/pandas/tests/arithmetic/test_period.py @@ -12,7 +12,9 @@ Timestamp, to_offset, ) -from pandas.errors import PerformanceWarning +from pandas.errors import ( + PerformanceWarning, +) import pandas as pd from pandas import ( @@ -23,8 +25,12 @@ period_range, ) import pandas._testing as tm -from pandas.core import ops -from pandas.core.arrays import TimedeltaArray +from pandas.core import ( + ops, +) +from pandas.core.arrays import ( + TimedeltaArray, +) from pandas.tests.arithmetic.common import ( assert_invalid_addsub_type, assert_invalid_comparison, diff --git a/pandas/tests/arithmetic/test_timedelta64.py b/pandas/tests/arithmetic/test_timedelta64.py index 33fc63938407c..31d8f19b174e1 100644 --- a/pandas/tests/arithmetic/test_timedelta64.py +++ b/pandas/tests/arithmetic/test_timedelta64.py @@ -27,7 +27,9 @@ timedelta_range, ) import pandas._testing as tm -from pandas.core.arrays import PandasArray +from pandas.core.arrays import ( + PandasArray, +) from pandas.tests.arithmetic.common import ( assert_invalid_addsub_type, assert_invalid_comparison, diff --git a/pandas/tests/arrays/boolean/test_comparison.py b/pandas/tests/arrays/boolean/test_comparison.py index 2eeb9da574b1e..8a29a92a5712d 100644 --- a/pandas/tests/arrays/boolean/test_comparison.py +++ b/pandas/tests/arrays/boolean/test_comparison.py @@ -3,8 +3,12 @@ import pandas as pd import pandas._testing as tm -from pandas.arrays import BooleanArray -from pandas.tests.arrays.masked_shared import ComparisonOps +from pandas.arrays import ( + BooleanArray, +) +from pandas.tests.arrays.masked_shared import ( + ComparisonOps, +) @pytest.fixture diff --git a/pandas/tests/arrays/boolean/test_construction.py b/pandas/tests/arrays/boolean/test_construction.py index d26eea19c06e9..b812820f0042c 100644 --- a/pandas/tests/arrays/boolean/test_construction.py +++ b/pandas/tests/arrays/boolean/test_construction.py @@ -3,8 +3,12 @@ import pandas as pd import pandas._testing as tm -from pandas.arrays import BooleanArray -from pandas.core.arrays.boolean import coerce_to_array +from pandas.arrays import ( + BooleanArray, +) +from pandas.core.arrays.boolean import ( + coerce_to_array, +) def test_boolean_array_constructor(): diff --git a/pandas/tests/arrays/boolean/test_logical.py b/pandas/tests/arrays/boolean/test_logical.py index 66c117ea3fc66..c6cc18b286ec0 100644 --- a/pandas/tests/arrays/boolean/test_logical.py +++ b/pandas/tests/arrays/boolean/test_logical.py @@ -5,13 +5,17 @@ import pandas as pd import pandas._testing as tm -from pandas.arrays import BooleanArray +from pandas.arrays import ( + BooleanArray, +) from pandas.core.ops.mask_ops import ( kleene_and, kleene_or, kleene_xor, ) -from pandas.tests.extension.base import BaseOpsUtil +from pandas.tests.extension.base import ( + BaseOpsUtil, +) class TestLogicalOps(BaseOpsUtil): diff --git a/pandas/tests/arrays/categorical/conftest.py b/pandas/tests/arrays/categorical/conftest.py index d5b49e3e5e8c8..d770e775c7036 100644 --- a/pandas/tests/arrays/categorical/conftest.py +++ b/pandas/tests/arrays/categorical/conftest.py @@ -1,6 +1,8 @@ import pytest -from pandas import Categorical +from pandas import ( + Categorical, +) @pytest.fixture(params=[True, False]) diff --git a/pandas/tests/arrays/categorical/test_analytics.py b/pandas/tests/arrays/categorical/test_analytics.py index 55d39cf84eb30..fa90d2a48688f 100644 --- a/pandas/tests/arrays/categorical/test_analytics.py +++ b/pandas/tests/arrays/categorical/test_analytics.py @@ -4,7 +4,9 @@ import numpy as np import pytest -from pandas.compat import PYPY +from pandas.compat import ( + PYPY, +) from pandas import ( Categorical, @@ -15,7 +17,9 @@ date_range, ) import pandas._testing as tm -from pandas.api.types import is_scalar +from pandas.api.types import ( + is_scalar, +) class TestCategoricalAnalytics: diff --git a/pandas/tests/arrays/categorical/test_api.py b/pandas/tests/arrays/categorical/test_api.py index aa02585ee81a5..bf05f712c4b0d 100644 --- a/pandas/tests/arrays/categorical/test_api.py +++ b/pandas/tests/arrays/categorical/test_api.py @@ -3,7 +3,9 @@ import numpy as np import pytest -from pandas.compat import PY311 +from pandas.compat import ( + PY311, +) from pandas import ( Categorical, @@ -14,7 +16,9 @@ StringDtype, ) import pandas._testing as tm -from pandas.core.arrays.categorical import recode_for_categories +from pandas.core.arrays.categorical import ( + recode_for_categories, +) class TestCategoricalAPI: diff --git a/pandas/tests/arrays/categorical/test_constructors.py b/pandas/tests/arrays/categorical/test_constructors.py index 6cb0e31eb0a5d..5001064643414 100644 --- a/pandas/tests/arrays/categorical/test_constructors.py +++ b/pandas/tests/arrays/categorical/test_constructors.py @@ -10,7 +10,9 @@ is_float_dtype, is_integer_dtype, ) -from pandas.core.dtypes.dtypes import CategoricalDtype +from pandas.core.dtypes.dtypes import ( + CategoricalDtype, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/arrays/categorical/test_dtypes.py b/pandas/tests/arrays/categorical/test_dtypes.py index c905916772bff..ba5b44c28571a 100644 --- a/pandas/tests/arrays/categorical/test_dtypes.py +++ b/pandas/tests/arrays/categorical/test_dtypes.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.core.dtypes.dtypes import CategoricalDtype +from pandas.core.dtypes.dtypes import ( + CategoricalDtype, +) from pandas import ( Categorical, diff --git a/pandas/tests/arrays/categorical/test_missing.py b/pandas/tests/arrays/categorical/test_missing.py index 95748f619172b..53412fde15eb7 100644 --- a/pandas/tests/arrays/categorical/test_missing.py +++ b/pandas/tests/arrays/categorical/test_missing.py @@ -3,7 +3,9 @@ import numpy as np import pytest -from pandas.core.dtypes.dtypes import CategoricalDtype +from pandas.core.dtypes.dtypes import ( + CategoricalDtype, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/arrays/categorical/test_replace.py b/pandas/tests/arrays/categorical/test_replace.py index ee9e1dbc81e12..b60a8288f2578 100644 --- a/pandas/tests/arrays/categorical/test_replace.py +++ b/pandas/tests/arrays/categorical/test_replace.py @@ -1,7 +1,9 @@ import pytest import pandas as pd -from pandas import Categorical +from pandas import ( + Categorical, +) import pandas._testing as tm diff --git a/pandas/tests/arrays/categorical/test_subclass.py b/pandas/tests/arrays/categorical/test_subclass.py index b80d0ff41aba6..97d04cd676ac5 100644 --- a/pandas/tests/arrays/categorical/test_subclass.py +++ b/pandas/tests/arrays/categorical/test_subclass.py @@ -1,4 +1,6 @@ -from pandas import Categorical +from pandas import ( + Categorical, +) import pandas._testing as tm diff --git a/pandas/tests/arrays/categorical/test_take.py b/pandas/tests/arrays/categorical/test_take.py index fb79fe4923522..9aeafd709f45e 100644 --- a/pandas/tests/arrays/categorical/test_take.py +++ b/pandas/tests/arrays/categorical/test_take.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas import Categorical +from pandas import ( + Categorical, +) import pandas._testing as tm diff --git a/pandas/tests/arrays/categorical/test_warnings.py b/pandas/tests/arrays/categorical/test_warnings.py index 656da89c70196..9fa2962e51712 100644 --- a/pandas/tests/arrays/categorical/test_warnings.py +++ b/pandas/tests/arrays/categorical/test_warnings.py @@ -1,6 +1,8 @@ import pytest -from pandas.util._test_decorators import async_mark +from pandas.util._test_decorators import ( + async_mark, +) import pandas._testing as tm @@ -10,7 +12,9 @@ class TestCategoricalWarnings: async def test_tab_complete_warning(self, ip): # https://github.com/pandas-dev/pandas/issues/16409 pytest.importorskip("IPython", minversion="6.0.0") - from IPython.core.completer import provisionalcompleter + from IPython.core.completer import ( + provisionalcompleter, + ) code = "import pandas as pd; c = pd.Categorical([])" await ip.run_code(code) diff --git a/pandas/tests/arrays/datetimes/test_constructors.py b/pandas/tests/arrays/datetimes/test_constructors.py index 6670d07a4c075..b8297790cedd6 100644 --- a/pandas/tests/arrays/datetimes/test_constructors.py +++ b/pandas/tests/arrays/datetimes/test_constructors.py @@ -1,12 +1,18 @@ import numpy as np import pytest -from pandas.core.dtypes.dtypes import DatetimeTZDtype +from pandas.core.dtypes.dtypes import ( + DatetimeTZDtype, +) import pandas as pd import pandas._testing as tm -from pandas.core.arrays import DatetimeArray -from pandas.core.arrays.datetimes import _sequence_to_dt64ns +from pandas.core.arrays import ( + DatetimeArray, +) +from pandas.core.arrays.datetimes import ( + _sequence_to_dt64ns, +) class TestDatetimeArrayConstructor: diff --git a/pandas/tests/arrays/datetimes/test_cumulative.py b/pandas/tests/arrays/datetimes/test_cumulative.py index ca9760d58770a..5b96081aa34b2 100644 --- a/pandas/tests/arrays/datetimes/test_cumulative.py +++ b/pandas/tests/arrays/datetimes/test_cumulative.py @@ -1,7 +1,9 @@ import pytest import pandas._testing as tm -from pandas.core.arrays import DatetimeArray +from pandas.core.arrays import ( + DatetimeArray, +) class TestAccumulator: diff --git a/pandas/tests/arrays/datetimes/test_reductions.py b/pandas/tests/arrays/datetimes/test_reductions.py index 59a4443ac9e19..50eb0969b4166 100644 --- a/pandas/tests/arrays/datetimes/test_reductions.py +++ b/pandas/tests/arrays/datetimes/test_reductions.py @@ -1,12 +1,18 @@ import numpy as np import pytest -from pandas.core.dtypes.dtypes import DatetimeTZDtype +from pandas.core.dtypes.dtypes import ( + DatetimeTZDtype, +) import pandas as pd -from pandas import NaT +from pandas import ( + NaT, +) import pandas._testing as tm -from pandas.core.arrays import DatetimeArray +from pandas.core.arrays import ( + DatetimeArray, +) class TestReductions: diff --git a/pandas/tests/arrays/floating/test_arithmetic.py b/pandas/tests/arrays/floating/test_arithmetic.py index 056c22d8c1131..76c1b38058469 100644 --- a/pandas/tests/arrays/floating/test_arithmetic.py +++ b/pandas/tests/arrays/floating/test_arithmetic.py @@ -5,7 +5,9 @@ import pandas as pd import pandas._testing as tm -from pandas.core.arrays import FloatingArray +from pandas.core.arrays import ( + FloatingArray, +) # Basic test for the arithmetic array ops # ----------------------------------------------------------------------------- diff --git a/pandas/tests/arrays/floating/test_comparison.py b/pandas/tests/arrays/floating/test_comparison.py index a429649f1ce1d..8566f258143e0 100644 --- a/pandas/tests/arrays/floating/test_comparison.py +++ b/pandas/tests/arrays/floating/test_comparison.py @@ -3,7 +3,9 @@ import pandas as pd import pandas._testing as tm -from pandas.core.arrays import FloatingArray +from pandas.core.arrays import ( + FloatingArray, +) from pandas.tests.arrays.masked_shared import ( ComparisonOps, NumericOps, diff --git a/pandas/tests/arrays/floating/test_construction.py b/pandas/tests/arrays/floating/test_construction.py index 2dcd54f443029..362a6626e53fa 100644 --- a/pandas/tests/arrays/floating/test_construction.py +++ b/pandas/tests/arrays/floating/test_construction.py @@ -3,7 +3,9 @@ import pandas as pd import pandas._testing as tm -from pandas.core.arrays import FloatingArray +from pandas.core.arrays import ( + FloatingArray, +) from pandas.core.arrays.floating import ( Float32Dtype, Float64Dtype, diff --git a/pandas/tests/arrays/floating/test_function.py b/pandas/tests/arrays/floating/test_function.py index 40fd66fd049a6..5cf3956cc64f2 100644 --- a/pandas/tests/arrays/floating/test_function.py +++ b/pandas/tests/arrays/floating/test_function.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.compat import IS64 +from pandas.compat import ( + IS64, +) import pandas as pd import pandas._testing as tm diff --git a/pandas/tests/arrays/floating/test_to_numpy.py b/pandas/tests/arrays/floating/test_to_numpy.py index 2ed52439adf53..427ea9496e267 100644 --- a/pandas/tests/arrays/floating/test_to_numpy.py +++ b/pandas/tests/arrays/floating/test_to_numpy.py @@ -3,7 +3,9 @@ import pandas as pd import pandas._testing as tm -from pandas.core.arrays import FloatingArray +from pandas.core.arrays import ( + FloatingArray, +) @pytest.mark.parametrize("box", [True, False], ids=["series", "array"]) diff --git a/pandas/tests/arrays/integer/test_arithmetic.py b/pandas/tests/arrays/integer/test_arithmetic.py index a6e91b05efbe9..f20f2b46784f2 100644 --- a/pandas/tests/arrays/integer/test_arithmetic.py +++ b/pandas/tests/arrays/integer/test_arithmetic.py @@ -5,8 +5,12 @@ import pandas as pd import pandas._testing as tm -from pandas.core import ops -from pandas.core.arrays import FloatingArray +from pandas.core import ( + ops, +) +from pandas.core.arrays import ( + FloatingArray, +) # Basic test for the arithmetic array ops # ----------------------------------------------------------------------------- diff --git a/pandas/tests/arrays/integer/test_construction.py b/pandas/tests/arrays/integer/test_construction.py index 43ef46ddfb581..f228bf77b3564 100644 --- a/pandas/tests/arrays/integer/test_construction.py +++ b/pandas/tests/arrays/integer/test_construction.py @@ -3,8 +3,12 @@ import pandas as pd import pandas._testing as tm -from pandas.api.types import is_integer -from pandas.core.arrays import IntegerArray +from pandas.api.types import ( + is_integer, +) +from pandas.core.arrays import ( + IntegerArray, +) from pandas.core.arrays.integer import ( Int8Dtype, Int32Dtype, diff --git a/pandas/tests/arrays/integer/test_dtypes.py b/pandas/tests/arrays/integer/test_dtypes.py index f50b4cfd0b520..3042288f4577b 100644 --- a/pandas/tests/arrays/integer/test_dtypes.py +++ b/pandas/tests/arrays/integer/test_dtypes.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.core.dtypes.generic import ABCIndex +from pandas.core.dtypes.generic import ( + ABCIndex, +) import pandas as pd import pandas._testing as tm diff --git a/pandas/tests/arrays/integer/test_function.py b/pandas/tests/arrays/integer/test_function.py index d48b636a98feb..ddb11a46c2fe6 100644 --- a/pandas/tests/arrays/integer/test_function.py +++ b/pandas/tests/arrays/integer/test_function.py @@ -3,7 +3,9 @@ import pandas as pd import pandas._testing as tm -from pandas.core.arrays import FloatingArray +from pandas.core.arrays import ( + FloatingArray, +) @pytest.mark.parametrize("ufunc", [np.abs, np.sign]) diff --git a/pandas/tests/arrays/interval/test_interval.py b/pandas/tests/arrays/interval/test_interval.py index b97eb32a60838..8aebb7e6b8148 100644 --- a/pandas/tests/arrays/interval/test_interval.py +++ b/pandas/tests/arrays/interval/test_interval.py @@ -14,7 +14,9 @@ timedelta_range, ) import pandas._testing as tm -from pandas.core.arrays import IntervalArray +from pandas.core.arrays import ( + IntervalArray, +) @pytest.fixture( @@ -256,7 +258,9 @@ def test_min_max(self, left_right_dtypes, index_or_series_or_array): def test_arrow_extension_type(): import pyarrow as pa - from pandas.core.arrays.arrow.extension_types import ArrowIntervalType + from pandas.core.arrays.arrow.extension_types import ( + ArrowIntervalType, + ) p1 = ArrowIntervalType(pa.int64(), "left") p2 = ArrowIntervalType(pa.int64(), "left") @@ -273,7 +277,9 @@ def test_arrow_extension_type(): def test_arrow_array(): import pyarrow as pa - from pandas.core.arrays.arrow.extension_types import ArrowIntervalType + from pandas.core.arrays.arrow.extension_types import ( + ArrowIntervalType, + ) intervals = pd.interval_range(1, 5, freq=1).array @@ -303,7 +309,9 @@ def test_arrow_array(): def test_arrow_array_missing(): import pyarrow as pa - from pandas.core.arrays.arrow.extension_types import ArrowIntervalType + from pandas.core.arrays.arrow.extension_types import ( + ArrowIntervalType, + ) arr = IntervalArray.from_breaks([0.0, 1.0, 2.0, 3.0]) arr[1] = None @@ -338,7 +346,9 @@ def test_arrow_array_missing(): def test_arrow_table_roundtrip(breaks): import pyarrow as pa - from pandas.core.arrays.arrow.extension_types import ArrowIntervalType + from pandas.core.arrays.arrow.extension_types import ( + ArrowIntervalType, + ) arr = IntervalArray.from_breaks(breaks) arr[1] = None diff --git a/pandas/tests/arrays/interval/test_ops.py b/pandas/tests/arrays/interval/test_ops.py index 4853bec51106c..ffe0544e5fccd 100644 --- a/pandas/tests/arrays/interval/test_ops.py +++ b/pandas/tests/arrays/interval/test_ops.py @@ -9,7 +9,9 @@ Timestamp, ) import pandas._testing as tm -from pandas.core.arrays import IntervalArray +from pandas.core.arrays import ( + IntervalArray, +) @pytest.fixture(params=[IntervalArray, IntervalIndex]) diff --git a/pandas/tests/arrays/masked/test_arithmetic.py b/pandas/tests/arrays/masked/test_arithmetic.py index f4b571ca627b3..3dbaf2cd03c23 100644 --- a/pandas/tests/arrays/masked/test_arithmetic.py +++ b/pandas/tests/arrays/masked/test_arithmetic.py @@ -1,6 +1,10 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from typing import Any +from typing import ( + Any, +) import numpy as np import pytest diff --git a/pandas/tests/arrays/masked/test_arrow_compat.py b/pandas/tests/arrays/masked/test_arrow_compat.py index 6b0081321ef22..cbd1bde3093eb 100644 --- a/pandas/tests/arrays/masked/test_arrow_compat.py +++ b/pandas/tests/arrays/masked/test_arrow_compat.py @@ -6,7 +6,9 @@ pa = pytest.importorskip("pyarrow", minversion="1.0.1") -from pandas.core.arrays.arrow._arrow_utils import pyarrow_array_to_numpy_and_mask +from pandas.core.arrays.arrow._arrow_utils import ( + pyarrow_array_to_numpy_and_mask, +) arrays = [pd.array([1, 2, 3, None], dtype=dtype) for dtype in tm.ALL_INT_EA_DTYPES] arrays += [pd.array([0.1, 0.2, 0.3, None], dtype=dtype) for dtype in tm.FLOAT_EA_DTYPES] diff --git a/pandas/tests/arrays/masked/test_function.py b/pandas/tests/arrays/masked/test_function.py index 4c7bd6e293ef4..9e8b1b12f4946 100644 --- a/pandas/tests/arrays/masked/test_function.py +++ b/pandas/tests/arrays/masked/test_function.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.core.dtypes.common import is_integer_dtype +from pandas.core.dtypes.common import ( + is_integer_dtype, +) import pandas as pd import pandas._testing as tm diff --git a/pandas/tests/arrays/masked_shared.py b/pandas/tests/arrays/masked_shared.py index 831fc64512b98..37f01b8a1d774 100644 --- a/pandas/tests/arrays/masked_shared.py +++ b/pandas/tests/arrays/masked_shared.py @@ -6,7 +6,9 @@ import pandas as pd import pandas._testing as tm -from pandas.tests.extension.base import BaseOpsUtil +from pandas.tests.extension.base import ( + BaseOpsUtil, +) class ComparisonOps(BaseOpsUtil): diff --git a/pandas/tests/arrays/numpy_/test_indexing.py b/pandas/tests/arrays/numpy_/test_indexing.py index 225d64ad7d258..204aebc8b0e7a 100644 --- a/pandas/tests/arrays/numpy_/test_indexing.py +++ b/pandas/tests/arrays/numpy_/test_indexing.py @@ -1,6 +1,8 @@ import numpy as np -from pandas.core.dtypes.common import is_scalar +from pandas.core.dtypes.common import ( + is_scalar, +) import pandas as pd import pandas._testing as tm diff --git a/pandas/tests/arrays/numpy_/test_numpy.py b/pandas/tests/arrays/numpy_/test_numpy.py index c748d487a2f9c..9b2ef3c5bd9c5 100644 --- a/pandas/tests/arrays/numpy_/test_numpy.py +++ b/pandas/tests/arrays/numpy_/test_numpy.py @@ -5,11 +5,15 @@ import numpy as np import pytest -from pandas.core.dtypes.dtypes import PandasDtype +from pandas.core.dtypes.dtypes import ( + PandasDtype, +) import pandas as pd import pandas._testing as tm -from pandas.arrays import PandasArray +from pandas.arrays import ( + PandasArray, +) @pytest.fixture( diff --git a/pandas/tests/arrays/period/test_arrow_compat.py b/pandas/tests/arrays/period/test_arrow_compat.py index d76b04df4c9d7..3198fb5943fe5 100644 --- a/pandas/tests/arrays/period/test_arrow_compat.py +++ b/pandas/tests/arrays/period/test_arrow_compat.py @@ -1,8 +1,12 @@ import pytest -from pandas.compat.pyarrow import pa_version_under10p0 +from pandas.compat.pyarrow import ( + pa_version_under10p0, +) -from pandas.core.dtypes.dtypes import PeriodDtype +from pandas.core.dtypes.dtypes import ( + PeriodDtype, +) import pandas as pd import pandas._testing as tm @@ -15,7 +19,9 @@ def test_arrow_extension_type(): - from pandas.core.arrays.arrow.extension_types import ArrowPeriodType + from pandas.core.arrays.arrow.extension_types import ( + ArrowPeriodType, + ) p1 = ArrowPeriodType("D") p2 = ArrowPeriodType("D") @@ -37,7 +43,9 @@ def test_arrow_extension_type(): ], ) def test_arrow_array(data, freq): - from pandas.core.arrays.arrow.extension_types import ArrowPeriodType + from pandas.core.arrays.arrow.extension_types import ( + ArrowPeriodType, + ) periods = period_array(data, freq=freq) result = pa.array(periods) @@ -60,7 +68,9 @@ def test_arrow_array(data, freq): def test_arrow_array_missing(): - from pandas.core.arrays.arrow.extension_types import ArrowPeriodType + from pandas.core.arrays.arrow.extension_types import ( + ArrowPeriodType, + ) arr = PeriodArray([1, 2, 3], freq="D") arr[1] = pd.NaT @@ -73,7 +83,9 @@ def test_arrow_array_missing(): def test_arrow_table_roundtrip(): - from pandas.core.arrays.arrow.extension_types import ArrowPeriodType + from pandas.core.arrays.arrow.extension_types import ( + ArrowPeriodType, + ) arr = PeriodArray([1, 2, 3], freq="D") arr[1] = pd.NaT @@ -94,7 +106,9 @@ def test_arrow_table_roundtrip(): def test_arrow_load_from_zero_chunks(): # GH-41040 - from pandas.core.arrays.arrow.extension_types import ArrowPeriodType + from pandas.core.arrays.arrow.extension_types import ( + ArrowPeriodType, + ) arr = PeriodArray([], freq="D") df = pd.DataFrame({"a": arr}) diff --git a/pandas/tests/arrays/period/test_astype.py b/pandas/tests/arrays/period/test_astype.py index 57634cf07bdb9..7df7710b4fe73 100644 --- a/pandas/tests/arrays/period/test_astype.py +++ b/pandas/tests/arrays/period/test_astype.py @@ -1,11 +1,15 @@ import numpy as np import pytest -from pandas.core.dtypes.dtypes import PeriodDtype +from pandas.core.dtypes.dtypes import ( + PeriodDtype, +) import pandas as pd import pandas._testing as tm -from pandas.core.arrays import period_array +from pandas.core.arrays import ( + period_array, +) @pytest.mark.parametrize("dtype", [int, np.int32, np.int64, "uint32", "uint64"]) diff --git a/pandas/tests/arrays/period/test_constructors.py b/pandas/tests/arrays/period/test_constructors.py index cf9749058d1d1..a77720bcccb3f 100644 --- a/pandas/tests/arrays/period/test_constructors.py +++ b/pandas/tests/arrays/period/test_constructors.py @@ -1,8 +1,12 @@ import numpy as np import pytest -from pandas._libs.tslibs import iNaT -from pandas._libs.tslibs.period import IncompatibleFrequency +from pandas._libs.tslibs import ( + iNaT, +) +from pandas._libs.tslibs.period import ( + IncompatibleFrequency, +) import pandas as pd import pandas._testing as tm diff --git a/pandas/tests/arrays/period/test_reductions.py b/pandas/tests/arrays/period/test_reductions.py index 2889cc786dd71..2c472d21b3d15 100644 --- a/pandas/tests/arrays/period/test_reductions.py +++ b/pandas/tests/arrays/period/test_reductions.py @@ -1,7 +1,9 @@ import pytest import pandas as pd -from pandas.core.arrays import period_array +from pandas.core.arrays import ( + period_array, +) class TestReductions: diff --git a/pandas/tests/arrays/sparse/test_array.py b/pandas/tests/arrays/sparse/test_array.py index 54c8e359b2859..2c680f4870c5e 100644 --- a/pandas/tests/arrays/sparse/test_array.py +++ b/pandas/tests/arrays/sparse/test_array.py @@ -3,10 +3,14 @@ import numpy as np import pytest -from pandas._libs.sparse import IntIndex +from pandas._libs.sparse import ( + IntIndex, +) import pandas as pd -from pandas import isna +from pandas import ( + isna, +) import pandas._testing as tm from pandas.core.arrays.sparse import ( SparseArray, diff --git a/pandas/tests/arrays/sparse/test_astype.py b/pandas/tests/arrays/sparse/test_astype.py index 86d69610059b3..6709308f71b6b 100644 --- a/pandas/tests/arrays/sparse/test_astype.py +++ b/pandas/tests/arrays/sparse/test_astype.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas._libs.sparse import IntIndex +from pandas._libs.sparse import ( + IntIndex, +) from pandas import ( DataFrame, diff --git a/pandas/tests/arrays/sparse/test_combine_concat.py b/pandas/tests/arrays/sparse/test_combine_concat.py index 0f09af269148b..be6af713fffc7 100644 --- a/pandas/tests/arrays/sparse/test_combine_concat.py +++ b/pandas/tests/arrays/sparse/test_combine_concat.py @@ -3,7 +3,9 @@ import pandas as pd import pandas._testing as tm -from pandas.core.arrays.sparse import SparseArray +from pandas.core.arrays.sparse import ( + SparseArray, +) class TestSparseArrayConcat: diff --git a/pandas/tests/arrays/sparse/test_constructors.py b/pandas/tests/arrays/sparse/test_constructors.py index 7c9d2977ffed8..8107ba708e031 100644 --- a/pandas/tests/arrays/sparse/test_constructors.py +++ b/pandas/tests/arrays/sparse/test_constructors.py @@ -1,11 +1,15 @@ import numpy as np import pytest -from pandas._libs.sparse import IntIndex +from pandas._libs.sparse import ( + IntIndex, +) import pandas.util._test_decorators as td import pandas as pd -from pandas import isna +from pandas import ( + isna, +) import pandas._testing as tm from pandas.core.arrays.sparse import ( SparseArray, diff --git a/pandas/tests/arrays/sparse/test_dtype.py b/pandas/tests/arrays/sparse/test_dtype.py index 58fedbd3e4231..cb58ebe0f4733 100644 --- a/pandas/tests/arrays/sparse/test_dtype.py +++ b/pandas/tests/arrays/sparse/test_dtype.py @@ -4,7 +4,9 @@ import pytest import pandas as pd -from pandas.core.arrays.sparse import SparseDtype +from pandas.core.arrays.sparse import ( + SparseDtype, +) @pytest.mark.parametrize( diff --git a/pandas/tests/arrays/sparse/test_libsparse.py b/pandas/tests/arrays/sparse/test_libsparse.py index 018de26ec1f92..35781af572215 100644 --- a/pandas/tests/arrays/sparse/test_libsparse.py +++ b/pandas/tests/arrays/sparse/test_libsparse.py @@ -6,7 +6,9 @@ import pandas._libs.sparse as splib import pandas.util._test_decorators as td -from pandas import Series +from pandas import ( + Series, +) import pandas._testing as tm from pandas.core.arrays.sparse import ( BlockIndex, diff --git a/pandas/tests/arrays/sparse/test_unary.py b/pandas/tests/arrays/sparse/test_unary.py index 605023a407a06..7a69e3c41ec71 100644 --- a/pandas/tests/arrays/sparse/test_unary.py +++ b/pandas/tests/arrays/sparse/test_unary.py @@ -5,7 +5,9 @@ import pandas as pd import pandas._testing as tm -from pandas.core.arrays import SparseArray +from pandas.core.arrays import ( + SparseArray, +) @pytest.mark.parametrize("fill_value", [0, np.nan]) diff --git a/pandas/tests/arrays/string_/test_string.py b/pandas/tests/arrays/string_/test_string.py index 0b41abc3b3a73..e129704c2244d 100644 --- a/pandas/tests/arrays/string_/test_string.py +++ b/pandas/tests/arrays/string_/test_string.py @@ -7,11 +7,15 @@ import pandas.util._test_decorators as td -from pandas.core.dtypes.common import is_dtype_equal +from pandas.core.dtypes.common import ( + is_dtype_equal, +) import pandas as pd import pandas._testing as tm -from pandas.core.arrays.string_arrow import ArrowStringArray +from pandas.core.arrays.string_arrow import ( + ArrowStringArray, +) @pytest.fixture diff --git a/pandas/tests/arrays/string_/test_string_arrow.py b/pandas/tests/arrays/string_/test_string_arrow.py index 07c6bca67311b..f741058d6059d 100644 --- a/pandas/tests/arrays/string_/test_string_arrow.py +++ b/pandas/tests/arrays/string_/test_string_arrow.py @@ -4,7 +4,9 @@ import numpy as np import pytest -from pandas.compat import pa_version_under7p0 +from pandas.compat import ( + pa_version_under7p0, +) import pandas as pd import pandas._testing as tm @@ -12,7 +14,9 @@ StringArray, StringDtype, ) -from pandas.core.arrays.string_arrow import ArrowStringArray +from pandas.core.arrays.string_arrow import ( + ArrowStringArray, +) skip_if_no_pyarrow = pytest.mark.skipif( pa_version_under7p0, diff --git a/pandas/tests/arrays/test_array.py b/pandas/tests/arrays/test_array.py index 59e5c6fa2dda3..87cf90dda9fb5 100644 --- a/pandas/tests/arrays/test_array.py +++ b/pandas/tests/arrays/test_array.py @@ -5,11 +5,15 @@ import pytest import pytz -from pandas.core.dtypes.base import _registry as registry +from pandas.core.dtypes.base import ( + _registry as registry, +) import pandas as pd import pandas._testing as tm -from pandas.api.extensions import register_extension_dtype +from pandas.api.extensions import ( + register_extension_dtype, +) from pandas.arrays import ( BooleanArray, DatetimeArray, diff --git a/pandas/tests/arrays/test_datetimelike.py b/pandas/tests/arrays/test_datetimelike.py index 8db056b8fef58..9a2830abd70b0 100644 --- a/pandas/tests/arrays/test_datetimelike.py +++ b/pandas/tests/arrays/test_datetimelike.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import array import re @@ -27,8 +29,12 @@ PeriodArray, TimedeltaArray, ) -from pandas.core.arrays.datetimes import _sequence_to_dt64ns -from pandas.core.arrays.timedeltas import sequence_to_td64ns +from pandas.core.arrays.datetimes import ( + _sequence_to_dt64ns, +) +from pandas.core.arrays.timedeltas import ( + sequence_to_td64ns, +) # TODO: more freq variants diff --git a/pandas/tests/arrays/test_datetimes.py b/pandas/tests/arrays/test_datetimes.py index 4bd6fd745d56d..db864b2f8adad 100644 --- a/pandas/tests/arrays/test_datetimes.py +++ b/pandas/tests/arrays/test_datetimes.py @@ -1,11 +1,15 @@ """ Tests for DatetimeArray """ -from datetime import timedelta +from datetime import ( + timedelta, +) import operator try: - from zoneinfo import ZoneInfo + from zoneinfo import ( + ZoneInfo, + ) except ImportError: ZoneInfo = None @@ -17,7 +21,9 @@ tz_compare, ) -from pandas.core.dtypes.dtypes import DatetimeTZDtype +from pandas.core.dtypes.dtypes import ( + DatetimeTZDtype, +) import pandas as pd import pandas._testing as tm diff --git a/pandas/tests/arrays/test_period.py b/pandas/tests/arrays/test_period.py index a4b442ff526e9..c5257007a4407 100644 --- a/pandas/tests/arrays/test_period.py +++ b/pandas/tests/arrays/test_period.py @@ -1,11 +1,19 @@ import numpy as np import pytest -from pandas._libs.tslibs import iNaT -from pandas._libs.tslibs.period import IncompatibleFrequency +from pandas._libs.tslibs import ( + iNaT, +) +from pandas._libs.tslibs.period import ( + IncompatibleFrequency, +) -from pandas.core.dtypes.base import _registry as registry -from pandas.core.dtypes.dtypes import PeriodDtype +from pandas.core.dtypes.base import ( + _registry as registry, +) +from pandas.core.dtypes.dtypes import ( + PeriodDtype, +) import pandas as pd import pandas._testing as tm diff --git a/pandas/tests/arrays/test_timedeltas.py b/pandas/tests/arrays/test_timedeltas.py index 69d92b1551e14..ba7307354095b 100644 --- a/pandas/tests/arrays/test_timedeltas.py +++ b/pandas/tests/arrays/test_timedeltas.py @@ -1,10 +1,14 @@ -from datetime import timedelta +from datetime import ( + timedelta, +) import numpy as np import pytest import pandas as pd -from pandas import Timedelta +from pandas import ( + Timedelta, +) import pandas._testing as tm from pandas.core.arrays import ( DatetimeArray, diff --git a/pandas/tests/arrays/timedeltas/test_constructors.py b/pandas/tests/arrays/timedeltas/test_constructors.py index 3a076a6828a98..afffe89d083f4 100644 --- a/pandas/tests/arrays/timedeltas/test_constructors.py +++ b/pandas/tests/arrays/timedeltas/test_constructors.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.core.arrays import TimedeltaArray +from pandas.core.arrays import ( + TimedeltaArray, +) class TestTimedeltaArrayConstructor: diff --git a/pandas/tests/arrays/timedeltas/test_cumulative.py b/pandas/tests/arrays/timedeltas/test_cumulative.py index b321dc05bef27..ef00b3c72309d 100644 --- a/pandas/tests/arrays/timedeltas/test_cumulative.py +++ b/pandas/tests/arrays/timedeltas/test_cumulative.py @@ -1,7 +1,9 @@ import pytest import pandas._testing as tm -from pandas.core.arrays import TimedeltaArray +from pandas.core.arrays import ( + TimedeltaArray, +) class TestAccumulator: diff --git a/pandas/tests/arrays/timedeltas/test_reductions.py b/pandas/tests/arrays/timedeltas/test_reductions.py index 72d45f5b9a78c..e746a138cf491 100644 --- a/pandas/tests/arrays/timedeltas/test_reductions.py +++ b/pandas/tests/arrays/timedeltas/test_reductions.py @@ -2,10 +2,16 @@ import pytest import pandas as pd -from pandas import Timedelta +from pandas import ( + Timedelta, +) import pandas._testing as tm -from pandas.core import nanops -from pandas.core.arrays import TimedeltaArray +from pandas.core import ( + nanops, +) +from pandas.core.arrays import ( + TimedeltaArray, +) class TestReductions: diff --git a/pandas/tests/base/common.py b/pandas/tests/base/common.py index 30cf9311c98bc..8b91eb473388f 100644 --- a/pandas/tests/base/common.py +++ b/pandas/tests/base/common.py @@ -1,7 +1,13 @@ -from typing import Any +from typing import ( + Any, +) -from pandas import Index -from pandas.api.types import is_bool_dtype +from pandas import ( + Index, +) +from pandas.api.types import ( + is_bool_dtype, +) def allow_na_ops(obj: Any) -> bool: diff --git a/pandas/tests/base/test_constructors.py b/pandas/tests/base/test_constructors.py index 4e954891c2d98..f03093bff6219 100644 --- a/pandas/tests/base/test_constructors.py +++ b/pandas/tests/base/test_constructors.py @@ -1,10 +1,14 @@ -from datetime import datetime +from datetime import ( + datetime, +) import sys import numpy as np import pytest -from pandas.compat import PYPY +from pandas.compat import ( + PYPY, +) import pandas as pd from pandas import ( @@ -13,7 +17,9 @@ Series, ) import pandas._testing as tm -from pandas.core.accessor import PandasDelegate +from pandas.core.accessor import ( + PandasDelegate, +) from pandas.core.base import ( NoNewAttributesMixin, PandasObject, diff --git a/pandas/tests/base/test_conversion.py b/pandas/tests/base/test_conversion.py index a910b20c476ff..416cc5b34190d 100644 --- a/pandas/tests/base/test_conversion.py +++ b/pandas/tests/base/test_conversion.py @@ -5,7 +5,9 @@ is_datetime64_dtype, is_timedelta64_dtype, ) -from pandas.core.dtypes.dtypes import DatetimeTZDtype +from pandas.core.dtypes.dtypes import ( + DatetimeTZDtype, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/base/test_fillna.py b/pandas/tests/base/test_fillna.py index 7300d3013305a..13c73c736c840 100644 --- a/pandas/tests/base/test_fillna.py +++ b/pandas/tests/base/test_fillna.py @@ -6,9 +6,13 @@ import numpy as np import pytest -from pandas import MultiIndex +from pandas import ( + MultiIndex, +) import pandas._testing as tm -from pandas.tests.base.common import allow_na_ops +from pandas.tests.base.common import ( + allow_na_ops, +) def test_fillna(index_or_series_obj): diff --git a/pandas/tests/base/test_misc.py b/pandas/tests/base/test_misc.py index 01705ca31adcd..57bed6ec5a515 100644 --- a/pandas/tests/base/test_misc.py +++ b/pandas/tests/base/test_misc.py @@ -3,7 +3,9 @@ import numpy as np import pytest -from pandas.compat import PYPY +from pandas.compat import ( + PYPY, +) from pandas.core.dtypes.common import ( is_categorical_dtype, diff --git a/pandas/tests/base/test_unique.py b/pandas/tests/base/test_unique.py index 624d3d68d37fd..7253c16c06fea 100644 --- a/pandas/tests/base/test_unique.py +++ b/pandas/tests/base/test_unique.py @@ -1,11 +1,15 @@ import numpy as np import pytest -from pandas.core.dtypes.common import is_datetime64tz_dtype +from pandas.core.dtypes.common import ( + is_datetime64tz_dtype, +) import pandas as pd import pandas._testing as tm -from pandas.tests.base.common import allow_na_ops +from pandas.tests.base.common import ( + allow_na_ops, +) def test_unique(index_or_series_obj): diff --git a/pandas/tests/base/test_value_counts.py b/pandas/tests/base/test_value_counts.py index 89f3c005c52f0..1efbda447e8cd 100644 --- a/pandas/tests/base/test_value_counts.py +++ b/pandas/tests/base/test_value_counts.py @@ -1,5 +1,7 @@ import collections -from datetime import timedelta +from datetime import ( + timedelta, +) import numpy as np import pytest @@ -16,7 +18,9 @@ TimedeltaIndex, ) import pandas._testing as tm -from pandas.tests.base.common import allow_na_ops +from pandas.tests.base.common import ( + allow_na_ops, +) def test_value_counts(index_or_series_obj): diff --git a/pandas/tests/computation/test_compat.py b/pandas/tests/computation/test_compat.py index f3566e040dc85..7fa6001318959 100644 --- a/pandas/tests/computation/test_compat.py +++ b/pandas/tests/computation/test_compat.py @@ -1,17 +1,27 @@ import pytest -from pandas.compat._optional import VERSIONS +from pandas.compat._optional import ( + VERSIONS, +) import pandas as pd -from pandas.core.computation import expr -from pandas.core.computation.engines import ENGINES -from pandas.util.version import Version +from pandas.core.computation import ( + expr, +) +from pandas.core.computation.engines import ( + ENGINES, +) +from pandas.util.version import ( + Version, +) def test_compat(): # test we have compat with our version of numexpr - from pandas.core.computation.check import NUMEXPR_INSTALLED + from pandas.core.computation.check import ( + NUMEXPR_INSTALLED, + ) ne = pytest.importorskip("numexpr") diff --git a/pandas/tests/computation/test_eval.py b/pandas/tests/computation/test_eval.py index 9374b232f3cd2..1e389bfef62c3 100644 --- a/pandas/tests/computation/test_eval.py +++ b/pandas/tests/computation/test_eval.py @@ -1,7 +1,13 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from functools import reduce -from itertools import product +from functools import ( + reduce, +) +from itertools import ( + product, +) import operator import random import warnings @@ -34,7 +40,9 @@ expr, pytables, ) -from pandas.core.computation.engines import ENGINES +from pandas.core.computation.engines import ( + ENGINES, +) from pandas.core.computation.expr import ( BaseExprVisitor, PandasExprVisitor, @@ -51,7 +59,9 @@ _binary_ops_dict, _unary_math_ops, ) -from pandas.core.computation.scope import DEFAULT_GLOBALS +from pandas.core.computation.scope import ( + DEFAULT_GLOBALS, +) @pytest.fixture( @@ -1678,7 +1688,9 @@ def test_invalid_engine(): ) def test_numexpr_option_respected(use_numexpr, expected): # GH 32556 - from pandas.core.computation.eval import _check_engine + from pandas.core.computation.eval import ( + _check_engine, + ) with pd.option_context("compute.use_numexpr", use_numexpr): result = _check_engine(None) diff --git a/pandas/tests/config/test_config.py b/pandas/tests/config/test_config.py index aad42b27cb80b..e837aaddde9fe 100644 --- a/pandas/tests/config/test_config.py +++ b/pandas/tests/config/test_config.py @@ -2,8 +2,12 @@ import pytest -from pandas._config import config as cf -from pandas._config.config import OptionError +from pandas._config import ( + config as cf, +) +from pandas._config.config import ( + OptionError, +) import pandas as pd diff --git a/pandas/tests/construction/test_extract_array.py b/pandas/tests/construction/test_extract_array.py index 4dd3eda8c995c..32ba3fac6b5a2 100644 --- a/pandas/tests/construction/test_extract_array.py +++ b/pandas/tests/construction/test_extract_array.py @@ -1,6 +1,10 @@ -from pandas import Index +from pandas import ( + Index, +) import pandas._testing as tm -from pandas.core.construction import extract_array +from pandas.core.construction import ( + extract_array, +) def test_extract_array_rangeindex(): diff --git a/pandas/tests/copy_view/test_astype.py b/pandas/tests/copy_view/test_astype.py index 73343976e92fb..34ce9a6635812 100644 --- a/pandas/tests/copy_view/test_astype.py +++ b/pandas/tests/copy_view/test_astype.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.compat import pa_version_under7p0 +from pandas.compat import ( + pa_version_under7p0, +) from pandas import ( DataFrame, @@ -10,7 +12,9 @@ date_range, ) import pandas._testing as tm -from pandas.tests.copy_view.util import get_array +from pandas.tests.copy_view.util import ( + get_array, +) def test_astype_single_dtype(using_copy_on_write): diff --git a/pandas/tests/copy_view/test_clip.py b/pandas/tests/copy_view/test_clip.py index 30140ed4ddb6d..fc05e03ad1cb7 100644 --- a/pandas/tests/copy_view/test_clip.py +++ b/pandas/tests/copy_view/test_clip.py @@ -1,8 +1,12 @@ import numpy as np -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm -from pandas.tests.copy_view.util import get_array +from pandas.tests.copy_view.util import ( + get_array, +) def test_clip_inplace_reference(using_copy_on_write): diff --git a/pandas/tests/copy_view/test_constructors.py b/pandas/tests/copy_view/test_constructors.py index 6cf45c194707e..658aacbe44c46 100644 --- a/pandas/tests/copy_view/test_constructors.py +++ b/pandas/tests/copy_view/test_constructors.py @@ -6,7 +6,9 @@ Series, ) import pandas._testing as tm -from pandas.tests.copy_view.util import get_array +from pandas.tests.copy_view.util import ( + get_array, +) # ----------------------------------------------------------------------------- # Copy/view behaviour for Series / DataFrame constructors diff --git a/pandas/tests/copy_view/test_core_functionalities.py b/pandas/tests/copy_view/test_core_functionalities.py index 204e26b35d680..7fecd74c5345a 100644 --- a/pandas/tests/copy_view/test_core_functionalities.py +++ b/pandas/tests/copy_view/test_core_functionalities.py @@ -1,9 +1,13 @@ import numpy as np import pytest -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm -from pandas.tests.copy_view.util import get_array +from pandas.tests.copy_view.util import ( + get_array, +) def test_assigning_to_same_variable_removes_references(using_copy_on_write): diff --git a/pandas/tests/copy_view/test_functions.py b/pandas/tests/copy_view/test_functions.py index b6f2f0543cb2b..df9718754e1bc 100644 --- a/pandas/tests/copy_view/test_functions.py +++ b/pandas/tests/copy_view/test_functions.py @@ -8,7 +8,9 @@ merge, ) import pandas._testing as tm -from pandas.tests.copy_view.util import get_array +from pandas.tests.copy_view.util import ( + get_array, +) def test_concat_frames(using_copy_on_write): diff --git a/pandas/tests/copy_view/test_indexing.py b/pandas/tests/copy_view/test_indexing.py index ca2954f0d390e..40dd2aef31b27 100644 --- a/pandas/tests/copy_view/test_indexing.py +++ b/pandas/tests/copy_view/test_indexing.py @@ -1,9 +1,13 @@ import numpy as np import pytest -from pandas.errors import SettingWithCopyWarning +from pandas.errors import ( + SettingWithCopyWarning, +) -from pandas.core.dtypes.common import is_float_dtype +from pandas.core.dtypes.common import ( + is_float_dtype, +) import pandas as pd from pandas import ( @@ -11,7 +15,9 @@ Series, ) import pandas._testing as tm -from pandas.tests.copy_view.util import get_array +from pandas.tests.copy_view.util import ( + get_array, +) @pytest.fixture(params=["numpy", "nullable"]) diff --git a/pandas/tests/copy_view/test_internals.py b/pandas/tests/copy_view/test_internals.py index 9180bd5a3a426..7a293d9e8e5fc 100644 --- a/pandas/tests/copy_view/test_internals.py +++ b/pandas/tests/copy_view/test_internals.py @@ -4,9 +4,13 @@ import pandas.util._test_decorators as td import pandas as pd -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm -from pandas.tests.copy_view.util import get_array +from pandas.tests.copy_view.util import ( + get_array, +) @td.skip_array_manager_invalid_test diff --git a/pandas/tests/copy_view/test_interp_fillna.py b/pandas/tests/copy_view/test_interp_fillna.py index 35bd5d47b36dc..4728943e6ae0c 100644 --- a/pandas/tests/copy_view/test_interp_fillna.py +++ b/pandas/tests/copy_view/test_interp_fillna.py @@ -11,7 +11,9 @@ interval_range, ) import pandas._testing as tm -from pandas.tests.copy_view.util import get_array +from pandas.tests.copy_view.util import ( + get_array, +) @pytest.mark.parametrize("method", ["pad", "nearest", "linear"]) diff --git a/pandas/tests/copy_view/test_methods.py b/pandas/tests/copy_view/test_methods.py index 7042d6e4f9478..b69142b257b4b 100644 --- a/pandas/tests/copy_view/test_methods.py +++ b/pandas/tests/copy_view/test_methods.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.errors import SettingWithCopyWarning +from pandas.errors import ( + SettingWithCopyWarning, +) import pandas as pd from pandas import ( @@ -15,7 +17,9 @@ period_range, ) import pandas._testing as tm -from pandas.tests.copy_view.util import get_array +from pandas.tests.copy_view.util import ( + get_array, +) def test_copy(using_copy_on_write): diff --git a/pandas/tests/copy_view/test_replace.py b/pandas/tests/copy_view/test_replace.py index 13991ac8b81cb..86db273d58817 100644 --- a/pandas/tests/copy_view/test_replace.py +++ b/pandas/tests/copy_view/test_replace.py @@ -6,7 +6,9 @@ DataFrame, ) import pandas._testing as tm -from pandas.tests.copy_view.util import get_array +from pandas.tests.copy_view.util import ( + get_array, +) @pytest.mark.parametrize( diff --git a/pandas/tests/copy_view/test_util.py b/pandas/tests/copy_view/test_util.py index ff55330d70b28..4b726a3429817 100644 --- a/pandas/tests/copy_view/test_util.py +++ b/pandas/tests/copy_view/test_util.py @@ -1,7 +1,11 @@ import numpy as np -from pandas import DataFrame -from pandas.tests.copy_view.util import get_array +from pandas import ( + DataFrame, +) +from pandas.tests.copy_view.util import ( + get_array, +) def test_get_array_numpy(): diff --git a/pandas/tests/copy_view/util.py b/pandas/tests/copy_view/util.py index f15560f91ae01..7baa2bcb4eae7 100644 --- a/pandas/tests/copy_view/util.py +++ b/pandas/tests/copy_view/util.py @@ -1,5 +1,9 @@ -from pandas import Series -from pandas.core.arrays import BaseMaskedArray +from pandas import ( + Series, +) +from pandas.core.arrays import ( + BaseMaskedArray, +) def get_array(obj, col=None): diff --git a/pandas/tests/dtypes/cast/test_can_hold_element.py b/pandas/tests/dtypes/cast/test_can_hold_element.py index 3b7d76ead119a..9c3cdd680a9b2 100644 --- a/pandas/tests/dtypes/cast/test_can_hold_element.py +++ b/pandas/tests/dtypes/cast/test_can_hold_element.py @@ -1,6 +1,8 @@ import numpy as np -from pandas.core.dtypes.cast import can_hold_element +from pandas.core.dtypes.cast import ( + can_hold_element, +) def test_can_hold_element_range(any_int_numpy_dtype): diff --git a/pandas/tests/dtypes/cast/test_construct_from_scalar.py b/pandas/tests/dtypes/cast/test_construct_from_scalar.py index 0ce04ce2e64cd..63137970d2208 100644 --- a/pandas/tests/dtypes/cast/test_construct_from_scalar.py +++ b/pandas/tests/dtypes/cast/test_construct_from_scalar.py @@ -1,8 +1,12 @@ import numpy as np import pytest -from pandas.core.dtypes.cast import construct_1d_arraylike_from_scalar -from pandas.core.dtypes.dtypes import CategoricalDtype +from pandas.core.dtypes.cast import ( + construct_1d_arraylike_from_scalar, +) +from pandas.core.dtypes.dtypes import ( + CategoricalDtype, +) from pandas import ( Categorical, diff --git a/pandas/tests/dtypes/cast/test_construct_ndarray.py b/pandas/tests/dtypes/cast/test_construct_ndarray.py index 10085ddde5c8f..5afcbbec0adb6 100644 --- a/pandas/tests/dtypes/cast/test_construct_ndarray.py +++ b/pandas/tests/dtypes/cast/test_construct_ndarray.py @@ -2,7 +2,9 @@ import pytest import pandas._testing as tm -from pandas.core.construction import sanitize_array +from pandas.core.construction import ( + sanitize_array, +) @pytest.mark.parametrize( diff --git a/pandas/tests/dtypes/cast/test_construct_object_arr.py b/pandas/tests/dtypes/cast/test_construct_object_arr.py index cb44f91f34dec..599848eb5cd4c 100644 --- a/pandas/tests/dtypes/cast/test_construct_object_arr.py +++ b/pandas/tests/dtypes/cast/test_construct_object_arr.py @@ -1,6 +1,8 @@ import pytest -from pandas.core.dtypes.cast import construct_1d_object_array_from_listlike +from pandas.core.dtypes.cast import ( + construct_1d_object_array_from_listlike, +) @pytest.mark.parametrize("datum1", [1, 2.0, "3", (4, 5), [6, 7], None]) diff --git a/pandas/tests/dtypes/cast/test_dict_compat.py b/pandas/tests/dtypes/cast/test_dict_compat.py index 13dc82d779f95..7f6e7a0fa7fff 100644 --- a/pandas/tests/dtypes/cast/test_dict_compat.py +++ b/pandas/tests/dtypes/cast/test_dict_compat.py @@ -1,8 +1,12 @@ import numpy as np -from pandas.core.dtypes.cast import dict_compat +from pandas.core.dtypes.cast import ( + dict_compat, +) -from pandas import Timestamp +from pandas import ( + Timestamp, +) def test_dict_compat(): diff --git a/pandas/tests/dtypes/cast/test_downcast.py b/pandas/tests/dtypes/cast/test_downcast.py index c01eac746455c..ba18a83aa14c7 100644 --- a/pandas/tests/dtypes/cast/test_downcast.py +++ b/pandas/tests/dtypes/cast/test_downcast.py @@ -3,7 +3,9 @@ import numpy as np import pytest -from pandas.core.dtypes.cast import maybe_downcast_to_dtype +from pandas.core.dtypes.cast import ( + maybe_downcast_to_dtype, +) from pandas import ( Series, diff --git a/pandas/tests/dtypes/cast/test_find_common_type.py b/pandas/tests/dtypes/cast/test_find_common_type.py index 8484b5525a92a..29ef5bd632da6 100644 --- a/pandas/tests/dtypes/cast/test_find_common_type.py +++ b/pandas/tests/dtypes/cast/test_find_common_type.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.core.dtypes.cast import find_common_type +from pandas.core.dtypes.cast import ( + find_common_type, +) from pandas.core.dtypes.dtypes import ( CategoricalDtype, DatetimeTZDtype, diff --git a/pandas/tests/dtypes/cast/test_infer_dtype.py b/pandas/tests/dtypes/cast/test_infer_dtype.py index 902130bf93d54..61d9220aeb3f9 100644 --- a/pandas/tests/dtypes/cast/test_infer_dtype.py +++ b/pandas/tests/dtypes/cast/test_infer_dtype.py @@ -12,7 +12,9 @@ infer_dtype_from_array, infer_dtype_from_scalar, ) -from pandas.core.dtypes.common import is_dtype_equal +from pandas.core.dtypes.common import ( + is_dtype_equal, +) from pandas import ( Categorical, diff --git a/pandas/tests/dtypes/cast/test_maybe_box_native.py b/pandas/tests/dtypes/cast/test_maybe_box_native.py index 3f62f31dac219..f480fb2d750ef 100644 --- a/pandas/tests/dtypes/cast/test_maybe_box_native.py +++ b/pandas/tests/dtypes/cast/test_maybe_box_native.py @@ -1,9 +1,13 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest -from pandas.core.dtypes.cast import maybe_box_native +from pandas.core.dtypes.cast import ( + maybe_box_native, +) from pandas import ( Interval, diff --git a/pandas/tests/dtypes/cast/test_promote.py b/pandas/tests/dtypes/cast/test_promote.py index 1848872335518..c9097cd3be047 100644 --- a/pandas/tests/dtypes/cast/test_promote.py +++ b/pandas/tests/dtypes/cast/test_promote.py @@ -3,14 +3,20 @@ """ import datetime -from decimal import Decimal +from decimal import ( + Decimal, +) import numpy as np import pytest -from pandas._libs.tslibs import NaT +from pandas._libs.tslibs import ( + NaT, +) -from pandas.core.dtypes.cast import maybe_promote +from pandas.core.dtypes.cast import ( + maybe_promote, +) from pandas.core.dtypes.common import ( is_complex_dtype, is_datetime64_dtype, @@ -21,8 +27,12 @@ is_scalar, is_timedelta64_dtype, ) -from pandas.core.dtypes.dtypes import DatetimeTZDtype -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.dtypes import ( + DatetimeTZDtype, +) +from pandas.core.dtypes.missing import ( + isna, +) import pandas as pd diff --git a/pandas/tests/dtypes/test_common.py b/pandas/tests/dtypes/test_common.py index 638cfa9d82bc2..2668d1084fb8f 100644 --- a/pandas/tests/dtypes/test_common.py +++ b/pandas/tests/dtypes/test_common.py @@ -1,11 +1,15 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import numpy as np import pytest import pandas.util._test_decorators as td -from pandas.core.dtypes.astype import astype_array +from pandas.core.dtypes.astype import ( + astype_array, +) import pandas.core.dtypes.common as com from pandas.core.dtypes.dtypes import ( CategoricalDtype, @@ -15,12 +19,18 @@ IntervalDtype, PeriodDtype, ) -from pandas.core.dtypes.missing import isna +from pandas.core.dtypes.missing import ( + isna, +) import pandas as pd import pandas._testing as tm -from pandas.api.types import pandas_dtype -from pandas.arrays import SparseArray +from pandas.api.types import ( + pandas_dtype, +) +from pandas.arrays import ( + SparseArray, +) # EA & Actual Dtypes @@ -197,7 +207,9 @@ def test_is_sparse(check_scipy): @td.skip_if_no_scipy def test_is_scipy_sparse(): - from scipy.sparse import bsr_matrix + from scipy.sparse import ( + bsr_matrix, + ) assert com.is_scipy_sparse(bsr_matrix([1, 2, 3])) diff --git a/pandas/tests/dtypes/test_concat.py b/pandas/tests/dtypes/test_concat.py index 772dfdfe8fb03..cf6d37072000b 100644 --- a/pandas/tests/dtypes/test_concat.py +++ b/pandas/tests/dtypes/test_concat.py @@ -3,7 +3,9 @@ import pandas.core.dtypes.concat as _concat import pandas as pd -from pandas import Series +from pandas import ( + Series, +) import pandas._testing as tm diff --git a/pandas/tests/dtypes/test_dtypes.py b/pandas/tests/dtypes/test_dtypes.py index 590cedeb6b373..106a065bf2e72 100644 --- a/pandas/tests/dtypes/test_dtypes.py +++ b/pandas/tests/dtypes/test_dtypes.py @@ -4,9 +4,13 @@ import pytest import pytz -from pandas._libs.tslibs.dtypes import NpyDatetimeUnit +from pandas._libs.tslibs.dtypes import ( + NpyDatetimeUnit, +) -from pandas.core.dtypes.base import _registry as registry +from pandas.core.dtypes.base import ( + _registry as registry, +) from pandas.core.dtypes.common import ( is_bool_dtype, is_categorical_dtype, diff --git a/pandas/tests/dtypes/test_generic.py b/pandas/tests/dtypes/test_generic.py index 6459942c99190..1e5963b2f6894 100644 --- a/pandas/tests/dtypes/test_generic.py +++ b/pandas/tests/dtypes/test_generic.py @@ -1,10 +1,14 @@ import re -from warnings import catch_warnings +from warnings import ( + catch_warnings, +) import numpy as np import pytest -from pandas.core.dtypes import generic as gt +from pandas.core.dtypes import ( + generic as gt, +) import pandas as pd import pandas._testing as tm diff --git a/pandas/tests/dtypes/test_inference.py b/pandas/tests/dtypes/test_inference.py index 650eb033dcd9e..71404c41c6521 100644 --- a/pandas/tests/dtypes/test_inference.py +++ b/pandas/tests/dtypes/test_inference.py @@ -4,18 +4,28 @@ """ import collections -from collections import namedtuple +from collections import ( + namedtuple, +) from datetime import ( date, datetime, time, timedelta, ) -from decimal import Decimal -from fractions import Fraction -from io import StringIO +from decimal import ( + Decimal, +) +from fractions import ( + Fraction, +) +from io import ( + StringIO, +) import itertools -from numbers import Number +from numbers import ( + Number, +) import re import sys from typing import ( @@ -35,7 +45,9 @@ ) import pandas.util._test_decorators as td -from pandas.core.dtypes import inference +from pandas.core.dtypes import ( + inference, +) from pandas.core.dtypes.common import ( ensure_int32, is_bool, diff --git a/pandas/tests/dtypes/test_missing.py b/pandas/tests/dtypes/test_missing.py index db6c51d0f6991..aa9c0f1193e62 100644 --- a/pandas/tests/dtypes/test_missing.py +++ b/pandas/tests/dtypes/test_missing.py @@ -1,15 +1,29 @@ -from contextlib import nullcontext -from datetime import datetime -from decimal import Decimal +from contextlib import ( + nullcontext, +) +from datetime import ( + datetime, +) +from decimal import ( + Decimal, +) import numpy as np import pytest -from pandas._config import config as cf +from pandas._config import ( + config as cf, +) -from pandas._libs import missing as libmissing -from pandas._libs.tslibs import iNaT -from pandas.compat import is_numpy_dev +from pandas._libs import ( + missing as libmissing, +) +from pandas._libs.tslibs import ( + iNaT, +) +from pandas.compat import ( + is_numpy_dev, +) from pandas.core.dtypes.common import ( is_float, diff --git a/pandas/tests/extension/array_with_attr/array.py b/pandas/tests/extension/array_with_attr/array.py index d9327ca9f2f3f..1d712d9d11e29 100644 --- a/pandas/tests/extension/array_with_attr/array.py +++ b/pandas/tests/extension/array_with_attr/array.py @@ -2,18 +2,26 @@ Test extension array that has custom attribute information (not stored on the dtype). """ -from __future__ import annotations +from __future__ import ( + annotations, +) import numbers import numpy as np -from pandas._typing import type_t +from pandas._typing import ( + type_t, +) -from pandas.core.dtypes.base import ExtensionDtype +from pandas.core.dtypes.base import ( + ExtensionDtype, +) import pandas as pd -from pandas.core.arrays import ExtensionArray +from pandas.core.arrays import ( + ExtensionArray, +) class FloatAttrDtype(ExtensionDtype): @@ -65,7 +73,9 @@ def isna(self): return np.isnan(self.data) def take(self, indexer, allow_fill=False, fill_value=None): - from pandas.api.extensions import take + from pandas.api.extensions import ( + take, + ) data = self.data if allow_fill and fill_value is None: diff --git a/pandas/tests/extension/array_with_attr/test_array_with_attr.py b/pandas/tests/extension/array_with_attr/test_array_with_attr.py index 3735fe40a0d67..87b7ad60aeb05 100644 --- a/pandas/tests/extension/array_with_attr/test_array_with_attr.py +++ b/pandas/tests/extension/array_with_attr/test_array_with_attr.py @@ -2,7 +2,9 @@ import pandas as pd import pandas._testing as tm -from pandas.tests.extension.array_with_attr import FloatAttrArray +from pandas.tests.extension.array_with_attr import ( + FloatAttrArray, +) def test_concat_with_all_na(): diff --git a/pandas/tests/extension/base/accumulate.py b/pandas/tests/extension/base/accumulate.py index 868172f930844..ed08bb60b542a 100644 --- a/pandas/tests/extension/base/accumulate.py +++ b/pandas/tests/extension/base/accumulate.py @@ -1,7 +1,9 @@ import pytest import pandas as pd -from pandas.tests.extension.base.base import BaseExtensionTests +from pandas.tests.extension.base.base import ( + BaseExtensionTests, +) class BaseAccumulateTests(BaseExtensionTests): diff --git a/pandas/tests/extension/base/casting.py b/pandas/tests/extension/base/casting.py index 89ea1670d9e7b..c902658c3e79e 100644 --- a/pandas/tests/extension/base/casting.py +++ b/pandas/tests/extension/base/casting.py @@ -1,12 +1,18 @@ import numpy as np import pytest -from pandas.compat import np_version_under1p21 +from pandas.compat import ( + np_version_under1p21, +) import pandas.util._test_decorators as td import pandas as pd -from pandas.core.internals import ObjectBlock -from pandas.tests.extension.base.base import BaseExtensionTests +from pandas.core.internals import ( + ObjectBlock, +) +from pandas.tests.extension.base.base import ( + BaseExtensionTests, +) class BaseCastingTests(BaseExtensionTests): diff --git a/pandas/tests/extension/base/constructors.py b/pandas/tests/extension/base/constructors.py index 29766ff392296..45338bc9c7f87 100644 --- a/pandas/tests/extension/base/constructors.py +++ b/pandas/tests/extension/base/constructors.py @@ -2,9 +2,15 @@ import pytest import pandas as pd -from pandas.api.extensions import ExtensionArray -from pandas.core.internals.blocks import EABackedBlock -from pandas.tests.extension.base.base import BaseExtensionTests +from pandas.api.extensions import ( + ExtensionArray, +) +from pandas.core.internals.blocks import ( + EABackedBlock, +) +from pandas.tests.extension.base.base import ( + BaseExtensionTests, +) class BaseConstructorsTests(BaseExtensionTests): diff --git a/pandas/tests/extension/base/dim2.py b/pandas/tests/extension/base/dim2.py index 6371411f9992c..084f6fa6d9e1c 100644 --- a/pandas/tests/extension/base/dim2.py +++ b/pandas/tests/extension/base/dim2.py @@ -4,7 +4,9 @@ import numpy as np import pytest -from pandas._libs.missing import is_matching_na +from pandas._libs.missing import ( + is_matching_na, +) from pandas.core.dtypes.common import ( is_bool_dtype, @@ -13,8 +15,12 @@ import pandas as pd import pandas._testing as tm -from pandas.core.arrays.integer import INT_STR_TO_DTYPE -from pandas.tests.extension.base.base import BaseExtensionTests +from pandas.core.arrays.integer import ( + INT_STR_TO_DTYPE, +) +from pandas.tests.extension.base.base import ( + BaseExtensionTests, +) class Dim2CompatTests(BaseExtensionTests): diff --git a/pandas/tests/extension/base/dtype.py b/pandas/tests/extension/base/dtype.py index 392a75f8a69a7..9518ab4d99a2e 100644 --- a/pandas/tests/extension/base/dtype.py +++ b/pandas/tests/extension/base/dtype.py @@ -7,7 +7,9 @@ is_object_dtype, is_string_dtype, ) -from pandas.tests.extension.base.base import BaseExtensionTests +from pandas.tests.extension.base.base import ( + BaseExtensionTests, +) class BaseDtypeTests(BaseExtensionTests): diff --git a/pandas/tests/extension/base/getitem.py b/pandas/tests/extension/base/getitem.py index cf51d9d693155..fd4c2084762af 100644 --- a/pandas/tests/extension/base/getitem.py +++ b/pandas/tests/extension/base/getitem.py @@ -3,7 +3,9 @@ import pandas as pd import pandas._testing as tm -from pandas.tests.extension.base.base import BaseExtensionTests +from pandas.tests.extension.base.base import ( + BaseExtensionTests, +) class BaseGetitemTests(BaseExtensionTests): diff --git a/pandas/tests/extension/base/groupby.py b/pandas/tests/extension/base/groupby.py index 9b8f3a43fbe64..964197cf1fbb3 100644 --- a/pandas/tests/extension/base/groupby.py +++ b/pandas/tests/extension/base/groupby.py @@ -9,7 +9,9 @@ import pandas as pd import pandas._testing as tm -from pandas.tests.extension.base.base import BaseExtensionTests +from pandas.tests.extension.base.base import ( + BaseExtensionTests, +) class BaseGroupbyTests(BaseExtensionTests): diff --git a/pandas/tests/extension/base/index.py b/pandas/tests/extension/base/index.py index 2539c38733a6c..93be8c6edd980 100644 --- a/pandas/tests/extension/base/index.py +++ b/pandas/tests/extension/base/index.py @@ -2,7 +2,9 @@ Tests for Indexes backed by arbitrary ExtensionArrays. """ import pandas as pd -from pandas.tests.extension.base.base import BaseExtensionTests +from pandas.tests.extension.base.base import ( + BaseExtensionTests, +) class BaseIndexTests(BaseExtensionTests): diff --git a/pandas/tests/extension/base/interface.py b/pandas/tests/extension/base/interface.py index 3e8a754c8c527..9d4e8b5504299 100644 --- a/pandas/tests/extension/base/interface.py +++ b/pandas/tests/extension/base/interface.py @@ -1,11 +1,17 @@ import numpy as np -from pandas.core.dtypes.common import is_extension_array_dtype -from pandas.core.dtypes.dtypes import ExtensionDtype +from pandas.core.dtypes.common import ( + is_extension_array_dtype, +) +from pandas.core.dtypes.dtypes import ( + ExtensionDtype, +) import pandas as pd import pandas._testing as tm -from pandas.tests.extension.base.base import BaseExtensionTests +from pandas.tests.extension.base.base import ( + BaseExtensionTests, +) class BaseInterfaceTests(BaseExtensionTests): diff --git a/pandas/tests/extension/base/io.py b/pandas/tests/extension/base/io.py index a8c25db3181d0..24822d78e375d 100644 --- a/pandas/tests/extension/base/io.py +++ b/pandas/tests/extension/base/io.py @@ -1,10 +1,14 @@ -from io import StringIO +from io import ( + StringIO, +) import numpy as np import pytest import pandas as pd -from pandas.tests.extension.base.base import BaseExtensionTests +from pandas.tests.extension.base.base import ( + BaseExtensionTests, +) class BaseParsingTests(BaseExtensionTests): diff --git a/pandas/tests/extension/base/methods.py b/pandas/tests/extension/base/methods.py index ca867ffb77296..f93744b00a861 100644 --- a/pandas/tests/extension/base/methods.py +++ b/pandas/tests/extension/base/methods.py @@ -4,15 +4,25 @@ import numpy as np import pytest -from pandas._typing import Dtype +from pandas._typing import ( + Dtype, +) -from pandas.core.dtypes.common import is_bool_dtype -from pandas.core.dtypes.missing import na_value_for_dtype +from pandas.core.dtypes.common import ( + is_bool_dtype, +) +from pandas.core.dtypes.missing import ( + na_value_for_dtype, +) import pandas as pd import pandas._testing as tm -from pandas.core.sorting import nargsort -from pandas.tests.extension.base.base import BaseExtensionTests +from pandas.core.sorting import ( + nargsort, +) +from pandas.tests.extension.base.base import ( + BaseExtensionTests, +) class BaseMethodsTests(BaseExtensionTests): diff --git a/pandas/tests/extension/base/missing.py b/pandas/tests/extension/base/missing.py index cab81f864d8d8..1cd39a94631eb 100644 --- a/pandas/tests/extension/base/missing.py +++ b/pandas/tests/extension/base/missing.py @@ -3,8 +3,12 @@ import pandas as pd import pandas._testing as tm -from pandas.api.types import is_sparse -from pandas.tests.extension.base.base import BaseExtensionTests +from pandas.api.types import ( + is_sparse, +) +from pandas.tests.extension.base.base import ( + BaseExtensionTests, +) class BaseMissingTests(BaseExtensionTests): diff --git a/pandas/tests/extension/base/ops.py b/pandas/tests/extension/base/ops.py index 24ccedda31f74..87499d0ecab4a 100644 --- a/pandas/tests/extension/base/ops.py +++ b/pandas/tests/extension/base/ops.py @@ -1,12 +1,18 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import numpy as np import pytest import pandas as pd import pandas._testing as tm -from pandas.core import ops -from pandas.tests.extension.base.base import BaseExtensionTests +from pandas.core import ( + ops, +) +from pandas.tests.extension.base.base import ( + BaseExtensionTests, +) class BaseOpsUtil(BaseExtensionTests): diff --git a/pandas/tests/extension/base/printing.py b/pandas/tests/extension/base/printing.py index eab75be66080f..bafe512b76243 100644 --- a/pandas/tests/extension/base/printing.py +++ b/pandas/tests/extension/base/printing.py @@ -3,7 +3,9 @@ import pytest import pandas as pd -from pandas.tests.extension.base.base import BaseExtensionTests +from pandas.tests.extension.base.base import ( + BaseExtensionTests, +) class BasePrintingTests(BaseExtensionTests): diff --git a/pandas/tests/extension/base/reduce.py b/pandas/tests/extension/base/reduce.py index cf161a7f4b906..947d4b6ed0a29 100644 --- a/pandas/tests/extension/base/reduce.py +++ b/pandas/tests/extension/base/reduce.py @@ -4,7 +4,9 @@ import pandas as pd import pandas._testing as tm -from pandas.tests.extension.base.base import BaseExtensionTests +from pandas.tests.extension.base.base import ( + BaseExtensionTests, +) class BaseReduceTests(BaseExtensionTests): diff --git a/pandas/tests/extension/base/reshaping.py b/pandas/tests/extension/base/reshaping.py index cc970c690529d..b3626071bb7ef 100644 --- a/pandas/tests/extension/base/reshaping.py +++ b/pandas/tests/extension/base/reshaping.py @@ -4,9 +4,15 @@ import pytest import pandas as pd -from pandas.api.extensions import ExtensionArray -from pandas.core.internals.blocks import EABackedBlock -from pandas.tests.extension.base.base import BaseExtensionTests +from pandas.api.extensions import ( + ExtensionArray, +) +from pandas.core.internals.blocks import ( + EABackedBlock, +) +from pandas.tests.extension.base.base import ( + BaseExtensionTests, +) class BaseReshapingTests(BaseExtensionTests): diff --git a/pandas/tests/extension/base/setitem.py b/pandas/tests/extension/base/setitem.py index 73445a96f4a03..4778d72e894e5 100644 --- a/pandas/tests/extension/base/setitem.py +++ b/pandas/tests/extension/base/setitem.py @@ -3,7 +3,9 @@ import pandas as pd import pandas._testing as tm -from pandas.tests.extension.base.base import BaseExtensionTests +from pandas.tests.extension.base.base import ( + BaseExtensionTests, +) class BaseSetitemTests(BaseExtensionTests): diff --git a/pandas/tests/extension/date/array.py b/pandas/tests/extension/date/array.py index eca935cdc9128..2f2ed1e9bb089 100644 --- a/pandas/tests/extension/date/array.py +++ b/pandas/tests/extension/date/array.py @@ -15,13 +15,17 @@ PositionalIndexer, ) -from pandas.core.dtypes.dtypes import register_extension_dtype +from pandas.core.dtypes.dtypes import ( + register_extension_dtype, +) from pandas.api.extensions import ( ExtensionArray, ExtensionDtype, ) -from pandas.api.types import pandas_dtype +from pandas.api.types import ( + pandas_dtype, +) @register_extension_dtype diff --git a/pandas/tests/extension/decimal/array.py b/pandas/tests/extension/decimal/array.py index afeca326a9fd4..d4452c629e891 100644 --- a/pandas/tests/extension/decimal/array.py +++ b/pandas/tests/extension/decimal/array.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import decimal import numbers @@ -7,9 +9,13 @@ import numpy as np -from pandas._typing import type_t +from pandas._typing import ( + type_t, +) -from pandas.core.dtypes.base import ExtensionDtype +from pandas.core.dtypes.base import ( + ExtensionDtype, +) from pandas.core.dtypes.common import ( is_dtype_equal, is_float, @@ -25,13 +31,19 @@ is_list_like, is_scalar, ) -from pandas.core import arraylike -from pandas.core.arraylike import OpsMixin +from pandas.core import ( + arraylike, +) +from pandas.core.arraylike import ( + OpsMixin, +) from pandas.core.arrays import ( ExtensionArray, ExtensionScalarOpsMixin, ) -from pandas.core.indexers import check_array_indexer +from pandas.core.indexers import ( + check_array_indexer, +) @register_extension_dtype @@ -165,7 +177,9 @@ def __getitem__(self, item): return type(self)(self._data[item]) def take(self, indexer, allow_fill=False, fill_value=None): - from pandas.api.extensions import take + from pandas.api.extensions import ( + take, + ) data = self._data if allow_fill and fill_value is None: @@ -271,7 +285,9 @@ def convert_values(param): return np.asarray(res, dtype=bool) def value_counts(self, dropna: bool = True): - from pandas.core.algorithms import value_counts + from pandas.core.algorithms import ( + value_counts, + ) return value_counts(self.to_numpy(), dropna=dropna) diff --git a/pandas/tests/extension/decimal/test_decimal.py b/pandas/tests/extension/decimal/test_decimal.py index 3544d025f0230..32fa1ce479899 100644 --- a/pandas/tests/extension/decimal/test_decimal.py +++ b/pandas/tests/extension/decimal/test_decimal.py @@ -6,8 +6,12 @@ import pandas as pd import pandas._testing as tm -from pandas.api.types import infer_dtype -from pandas.tests.extension import base +from pandas.api.types import ( + infer_dtype, +) +from pandas.tests.extension import ( + base, +) from pandas.tests.extension.decimal.array import ( DecimalArray, DecimalDtype, diff --git a/pandas/tests/extension/json/array.py b/pandas/tests/extension/json/array.py index f7de31e58b104..bfe6b4ecc6310 100644 --- a/pandas/tests/extension/json/array.py +++ b/pandas/tests/extension/json/array.py @@ -11,7 +11,9 @@ in that case. We *want* the dictionaries to be treated as scalars, so we hack around pandas by using UserDicts. """ -from __future__ import annotations +from __future__ import ( + annotations, +) from collections import ( UserDict, @@ -29,9 +31,13 @@ import numpy as np -from pandas._typing import type_t +from pandas._typing import ( + type_t, +) -from pandas.core.dtypes.cast import construct_1d_object_array_from_listlike +from pandas.core.dtypes.cast import ( + construct_1d_object_array_from_listlike, +) from pandas.core.dtypes.common import ( is_bool_dtype, is_list_like, @@ -43,7 +49,9 @@ ExtensionArray, ExtensionDtype, ) -from pandas.core.indexers import unpack_tuple_and_ellipses +from pandas.core.indexers import ( + unpack_tuple_and_ellipses, +) class JSONDtype(ExtensionDtype): @@ -194,7 +202,9 @@ def astype(self, dtype, copy=True): # NumPy has issues when all the dicts are the same length. # np.array([UserDict(...), UserDict(...)]) fails, # but np.array([{...}, {...}]) works, so cast. - from pandas.core.arrays.string_ import StringDtype + from pandas.core.arrays.string_ import ( + StringDtype, + ) dtype = pandas_dtype(dtype) # needed to add this check for the Series constructor diff --git a/pandas/tests/extension/json/test_json.py b/pandas/tests/extension/json/test_json.py index 37a7d78d3aa3d..52647592b409c 100644 --- a/pandas/tests/extension/json/test_json.py +++ b/pandas/tests/extension/json/test_json.py @@ -6,7 +6,9 @@ import pandas as pd import pandas._testing as tm -from pandas.tests.extension import base +from pandas.tests.extension import ( + base, +) from pandas.tests.extension.json.array import ( JSONArray, JSONDtype, diff --git a/pandas/tests/extension/list/array.py b/pandas/tests/extension/list/array.py index f281a0f82e0e7..d56f3528cba58 100644 --- a/pandas/tests/extension/list/array.py +++ b/pandas/tests/extension/list/array.py @@ -3,7 +3,9 @@ The ListArray stores an ndarray of lists. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import numbers import random @@ -11,16 +13,22 @@ import numpy as np -from pandas._typing import type_t +from pandas._typing import ( + type_t, +) -from pandas.core.dtypes.base import ExtensionDtype +from pandas.core.dtypes.base import ( + ExtensionDtype, +) import pandas as pd from pandas.api.types import ( is_object_dtype, is_string_dtype, ) -from pandas.core.arrays import ExtensionArray +from pandas.core.arrays import ( + ExtensionArray, +) class ListDtype(ExtensionDtype): diff --git a/pandas/tests/extension/test_arrow.py b/pandas/tests/extension/test_arrow.py index f9af3a3063386..1884801afbd8a 100644 --- a/pandas/tests/extension/test_arrow.py +++ b/pandas/tests/extension/test_arrow.py @@ -16,7 +16,9 @@ time, timedelta, ) -from decimal import Decimal +from decimal import ( + Decimal, +) from io import ( BytesIO, StringIO, @@ -36,9 +38,13 @@ pa_version_under9p0, pa_version_under11p0, ) -from pandas.errors import PerformanceWarning +from pandas.errors import ( + PerformanceWarning, +) -from pandas.core.dtypes.common import is_any_int_dtype +from pandas.core.dtypes.common import ( + is_any_int_dtype, +) import pandas as pd import pandas._testing as tm @@ -51,11 +57,15 @@ is_string_dtype, is_unsigned_integer_dtype, ) -from pandas.tests.extension import base +from pandas.tests.extension import ( + base, +) pa = pytest.importorskip("pyarrow", minversion="7.0.0") -from pandas.core.arrays.arrow.array import ArrowExtensionArray +from pandas.core.arrays.arrow.array import ( + ArrowExtensionArray, +) from pandas.core.arrays.arrow.dtype import ArrowDtype # isort:skip diff --git a/pandas/tests/extension/test_boolean.py b/pandas/tests/extension/test_boolean.py index 8c8cbfa5200b1..c32d8e8256117 100644 --- a/pandas/tests/extension/test_boolean.py +++ b/pandas/tests/extension/test_boolean.py @@ -16,12 +16,18 @@ import numpy as np import pytest -from pandas.core.dtypes.common import is_bool_dtype +from pandas.core.dtypes.common import ( + is_bool_dtype, +) import pandas as pd import pandas._testing as tm -from pandas.core.arrays.boolean import BooleanDtype -from pandas.tests.extension import base +from pandas.core.arrays.boolean import ( + BooleanDtype, +) +from pandas.tests.extension import ( + base, +) def make_data(): diff --git a/pandas/tests/extension/test_categorical.py b/pandas/tests/extension/test_categorical.py index 9a363c6a0f022..7b04cdd729764 100644 --- a/pandas/tests/extension/test_categorical.py +++ b/pandas/tests/extension/test_categorical.py @@ -25,8 +25,12 @@ Timestamp, ) import pandas._testing as tm -from pandas.api.types import CategoricalDtype -from pandas.tests.extension import base +from pandas.api.types import ( + CategoricalDtype, +) +from pandas.tests.extension import ( + base, +) def make_data(): diff --git a/pandas/tests/extension/test_common.py b/pandas/tests/extension/test_common.py index a3c0b328da075..e1b9af8f5481f 100644 --- a/pandas/tests/extension/test_common.py +++ b/pandas/tests/extension/test_common.py @@ -1,12 +1,18 @@ import numpy as np import pytest -from pandas.core.dtypes import dtypes -from pandas.core.dtypes.common import is_extension_array_dtype +from pandas.core.dtypes import ( + dtypes, +) +from pandas.core.dtypes.common import ( + is_extension_array_dtype, +) import pandas as pd import pandas._testing as tm -from pandas.core.arrays import ExtensionArray +from pandas.core.arrays import ( + ExtensionArray, +) class DummyDtype(dtypes.ExtensionDtype): diff --git a/pandas/tests/extension/test_datetime.py b/pandas/tests/extension/test_datetime.py index 92796c604333d..c5526d48d8660 100644 --- a/pandas/tests/extension/test_datetime.py +++ b/pandas/tests/extension/test_datetime.py @@ -16,11 +16,17 @@ import numpy as np import pytest -from pandas.core.dtypes.dtypes import DatetimeTZDtype +from pandas.core.dtypes.dtypes import ( + DatetimeTZDtype, +) import pandas as pd -from pandas.core.arrays import DatetimeArray -from pandas.tests.extension import base +from pandas.core.arrays import ( + DatetimeArray, +) +from pandas.tests.extension import ( + base, +) @pytest.fixture(params=["US/Central"]) diff --git a/pandas/tests/extension/test_extension.py b/pandas/tests/extension/test_extension.py index 1ed626cd51080..aa193e4565692 100644 --- a/pandas/tests/extension/test_extension.py +++ b/pandas/tests/extension/test_extension.py @@ -4,7 +4,9 @@ import numpy as np import pytest -from pandas.core.arrays import ExtensionArray +from pandas.core.arrays import ( + ExtensionArray, +) class MyEA(ExtensionArray): diff --git a/pandas/tests/extension/test_external_block.py b/pandas/tests/extension/test_external_block.py index 1b5b46c6a01bb..ff1961aba4154 100644 --- a/pandas/tests/extension/test_external_block.py +++ b/pandas/tests/extension/test_external_block.py @@ -1,12 +1,18 @@ import numpy as np import pytest -from pandas._libs.internals import BlockPlacement +from pandas._libs.internals import ( + BlockPlacement, +) import pandas.util._test_decorators as td import pandas as pd -from pandas.core.internals import BlockManager -from pandas.core.internals.blocks import ExtensionBlock +from pandas.core.internals import ( + BlockManager, +) +from pandas.core.internals.blocks import ( + ExtensionBlock, +) pytestmark = td.skip_array_manager_invalid_test diff --git a/pandas/tests/extension/test_floating.py b/pandas/tests/extension/test_floating.py index 60c78b46a4832..a40ab21d22b60 100644 --- a/pandas/tests/extension/test_floating.py +++ b/pandas/tests/extension/test_floating.py @@ -16,16 +16,22 @@ import numpy as np import pytest -from pandas.core.dtypes.common import is_extension_array_dtype +from pandas.core.dtypes.common import ( + is_extension_array_dtype, +) import pandas as pd import pandas._testing as tm -from pandas.api.types import is_float_dtype +from pandas.api.types import ( + is_float_dtype, +) from pandas.core.arrays.floating import ( Float32Dtype, Float64Dtype, ) -from pandas.tests.extension import base +from pandas.tests.extension import ( + base, +) def make_data(): diff --git a/pandas/tests/extension/test_integer.py b/pandas/tests/extension/test_integer.py index 936764c3627d0..f4e25d1188044 100644 --- a/pandas/tests/extension/test_integer.py +++ b/pandas/tests/extension/test_integer.py @@ -37,7 +37,9 @@ UInt32Dtype, UInt64Dtype, ) -from pandas.tests.extension import base +from pandas.tests.extension import ( + base, +) def make_data(): diff --git a/pandas/tests/extension/test_interval.py b/pandas/tests/extension/test_interval.py index 0f916cea9d518..cccb90e4f3646 100644 --- a/pandas/tests/extension/test_interval.py +++ b/pandas/tests/extension/test_interval.py @@ -16,14 +16,20 @@ import numpy as np import pytest -from pandas.core.dtypes.dtypes import IntervalDtype +from pandas.core.dtypes.dtypes import ( + IntervalDtype, +) from pandas import ( Interval, Series, ) -from pandas.core.arrays import IntervalArray -from pandas.tests.extension import base +from pandas.core.arrays import ( + IntervalArray, +) +from pandas.tests.extension import ( + base, +) def make_data(): diff --git a/pandas/tests/extension/test_numpy.py b/pandas/tests/extension/test_numpy.py index 9cf7a08357720..fd6f8f6cf6b57 100644 --- a/pandas/tests/extension/test_numpy.py +++ b/pandas/tests/extension/test_numpy.py @@ -18,7 +18,9 @@ import numpy as np import pytest -from pandas.core.dtypes.cast import can_hold_element +from pandas.core.dtypes.cast import ( + can_hold_element, +) from pandas.core.dtypes.dtypes import ( ExtensionDtype, PandasDtype, @@ -26,10 +28,18 @@ import pandas as pd import pandas._testing as tm -from pandas.api.types import is_object_dtype -from pandas.core.arrays.numpy_ import PandasArray -from pandas.core.internals import blocks -from pandas.tests.extension import base +from pandas.api.types import ( + is_object_dtype, +) +from pandas.core.arrays.numpy_ import ( + PandasArray, +) +from pandas.core.internals import ( + blocks, +) +from pandas.tests.extension import ( + base, +) def _can_hold_element_patched(obj, element) -> bool: diff --git a/pandas/tests/extension/test_period.py b/pandas/tests/extension/test_period.py index cb1ebd87875e1..75f24c90cd111 100644 --- a/pandas/tests/extension/test_period.py +++ b/pandas/tests/extension/test_period.py @@ -16,16 +16,28 @@ import numpy as np import pytest -from pandas._libs import iNaT -from pandas.compat import is_platform_windows -from pandas.compat.numpy import np_version_gte1p24 - -from pandas.core.dtypes.dtypes import PeriodDtype +from pandas._libs import ( + iNaT, +) +from pandas.compat import ( + is_platform_windows, +) +from pandas.compat.numpy import ( + np_version_gte1p24, +) + +from pandas.core.dtypes.dtypes import ( + PeriodDtype, +) import pandas as pd import pandas._testing as tm -from pandas.core.arrays import PeriodArray -from pandas.tests.extension import base +from pandas.core.arrays import ( + PeriodArray, +) +from pandas.tests.extension import ( + base, +) @pytest.fixture(params=["D", "2D"]) diff --git a/pandas/tests/extension/test_sparse.py b/pandas/tests/extension/test_sparse.py index 2aeb2af567ea0..a7e5902e32d3d 100644 --- a/pandas/tests/extension/test_sparse.py +++ b/pandas/tests/extension/test_sparse.py @@ -17,13 +17,21 @@ import numpy as np import pytest -from pandas.errors import PerformanceWarning +from pandas.errors import ( + PerformanceWarning, +) import pandas as pd -from pandas import SparseDtype +from pandas import ( + SparseDtype, +) import pandas._testing as tm -from pandas.arrays import SparseArray -from pandas.tests.extension import base +from pandas.arrays import ( + SparseArray, +) +from pandas.tests.extension import ( + base, +) def make_data(fill_value): diff --git a/pandas/tests/extension/test_string.py b/pandas/tests/extension/test_string.py index a2e438b858e59..abf6c12bac902 100644 --- a/pandas/tests/extension/test_string.py +++ b/pandas/tests/extension/test_string.py @@ -18,14 +18,24 @@ import numpy as np import pytest -from pandas.errors import PerformanceWarning +from pandas.errors import ( + PerformanceWarning, +) import pandas as pd import pandas._testing as tm -from pandas.api.types import is_string_dtype -from pandas.core.arrays import ArrowStringArray -from pandas.core.arrays.string_ import StringDtype -from pandas.tests.extension import base +from pandas.api.types import ( + is_string_dtype, +) +from pandas.core.arrays import ( + ArrowStringArray, +) +from pandas.core.arrays.string_ import ( + StringDtype, +) +from pandas.tests.extension import ( + base, +) def split_array(arr): diff --git a/pandas/tests/frame/common.py b/pandas/tests/frame/common.py index 70115f8679337..e885b7bacf035 100644 --- a/pandas/tests/frame/common.py +++ b/pandas/tests/frame/common.py @@ -1,6 +1,10 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from pandas._typing import AxisInt +from pandas._typing import ( + AxisInt, +) from pandas import ( DataFrame, diff --git a/pandas/tests/frame/constructors/test_from_dict.py b/pandas/tests/frame/constructors/test_from_dict.py index c04213c215f0d..fddffa0a55a2d 100644 --- a/pandas/tests/frame/constructors/test_from_dict.py +++ b/pandas/tests/frame/constructors/test_from_dict.py @@ -1,4 +1,6 @@ -from collections import OrderedDict +from collections import ( + OrderedDict, +) import numpy as np import pytest diff --git a/pandas/tests/frame/constructors/test_from_records.py b/pandas/tests/frame/constructors/test_from_records.py index 18bf633d60186..e0ea3f27d603b 100644 --- a/pandas/tests/frame/constructors/test_from_records.py +++ b/pandas/tests/frame/constructors/test_from_records.py @@ -1,12 +1,20 @@ -from datetime import datetime -from decimal import Decimal -from typing import Iterator +from datetime import ( + datetime, +) +from decimal import ( + Decimal, +) +from typing import ( + Iterator, +) import numpy as np import pytest import pytz -from pandas.compat import is_platform_little_endian +from pandas.compat import ( + is_platform_little_endian, +) from pandas import ( CategoricalIndex, diff --git a/pandas/tests/frame/indexing/test_get.py b/pandas/tests/frame/indexing/test_get.py index 5f2651eec683c..894164075f35e 100644 --- a/pandas/tests/frame/indexing/test_get.py +++ b/pandas/tests/frame/indexing/test_get.py @@ -1,6 +1,8 @@ import pytest -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm diff --git a/pandas/tests/frame/indexing/test_getitem.py b/pandas/tests/frame/indexing/test_getitem.py index 7880916f66812..9bbf706b4813e 100644 --- a/pandas/tests/frame/indexing/test_getitem.py +++ b/pandas/tests/frame/indexing/test_getitem.py @@ -20,7 +20,9 @@ period_range, ) import pandas._testing as tm -from pandas.core.arrays import SparseArray +from pandas.core.arrays import ( + SparseArray, +) class TestGetitem: diff --git a/pandas/tests/frame/indexing/test_indexing.py b/pandas/tests/frame/indexing/test_indexing.py index efbd7058dc3b0..44dc8b340942a 100644 --- a/pandas/tests/frame/indexing/test_indexing.py +++ b/pandas/tests/frame/indexing/test_indexing.py @@ -1,15 +1,21 @@ -from collections import namedtuple +from collections import ( + namedtuple, +) from datetime import ( datetime, timedelta, ) -from decimal import Decimal +from decimal import ( + Decimal, +) import re import numpy as np import pytest -from pandas._libs import iNaT +from pandas._libs import ( + iNaT, +) from pandas.errors import ( InvalidIndexError, PerformanceWarning, @@ -17,7 +23,9 @@ ) import pandas.util._test_decorators as td -from pandas.core.dtypes.common import is_integer +from pandas.core.dtypes.common import ( + is_integer, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/frame/indexing/test_insert.py b/pandas/tests/frame/indexing/test_insert.py index 5d0a51ea0d462..ba5a172bb9009 100644 --- a/pandas/tests/frame/indexing/test_insert.py +++ b/pandas/tests/frame/indexing/test_insert.py @@ -6,7 +6,9 @@ import numpy as np import pytest -from pandas.errors import PerformanceWarning +from pandas.errors import ( + PerformanceWarning, +) from pandas import ( DataFrame, diff --git a/pandas/tests/frame/indexing/test_set_value.py b/pandas/tests/frame/indexing/test_set_value.py index 8d7a5cbcc08e0..142e59d4ba112 100644 --- a/pandas/tests/frame/indexing/test_set_value.py +++ b/pandas/tests/frame/indexing/test_set_value.py @@ -1,6 +1,8 @@ import numpy as np -from pandas.core.dtypes.common import is_float_dtype +from pandas.core.dtypes.common import ( + is_float_dtype, +) from pandas import ( DataFrame, diff --git a/pandas/tests/frame/indexing/test_setitem.py b/pandas/tests/frame/indexing/test_setitem.py index c20db86904d06..3d4bba0b98a7e 100644 --- a/pandas/tests/frame/indexing/test_setitem.py +++ b/pandas/tests/frame/indexing/test_setitem.py @@ -1,11 +1,15 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest import pandas.util._test_decorators as td -from pandas.core.dtypes.base import _registry as ea_registry +from pandas.core.dtypes.base import ( + _registry as ea_registry, +) from pandas.core.dtypes.common import ( is_categorical_dtype, is_interval_dtype, @@ -38,9 +42,13 @@ period_range, ) import pandas._testing as tm -from pandas.core.arrays import SparseArray +from pandas.core.arrays import ( + SparseArray, +) -from pandas.tseries.offsets import BDay +from pandas.tseries.offsets import ( + BDay, +) class TestDataFrameSetItem: diff --git a/pandas/tests/frame/indexing/test_where.py b/pandas/tests/frame/indexing/test_where.py index f0fb0a0595cbd..d47f576217ce7 100644 --- a/pandas/tests/frame/indexing/test_where.py +++ b/pandas/tests/frame/indexing/test_where.py @@ -1,10 +1,16 @@ -from datetime import datetime +from datetime import ( + datetime, +) -from hypothesis import given +from hypothesis import ( + given, +) import numpy as np import pytest -from pandas.core.dtypes.common import is_scalar +from pandas.core.dtypes.common import ( + is_scalar, +) import pandas as pd from pandas import ( @@ -18,7 +24,9 @@ isna, ) import pandas._testing as tm -from pandas._testing._hypothesis import OPTIONAL_ONE_OF_ALL +from pandas._testing._hypothesis import ( + OPTIONAL_ONE_OF_ALL, +) @pytest.fixture(params=["default", "float_string", "mixed_float", "mixed_int"]) diff --git a/pandas/tests/frame/indexing/test_xs.py b/pandas/tests/frame/indexing/test_xs.py index 7e0623f7beaa9..3756af8ec2a2d 100644 --- a/pandas/tests/frame/indexing/test_xs.py +++ b/pandas/tests/frame/indexing/test_xs.py @@ -3,7 +3,9 @@ import numpy as np import pytest -from pandas.errors import SettingWithCopyError +from pandas.errors import ( + SettingWithCopyError, +) from pandas import ( DataFrame, @@ -15,7 +17,9 @@ ) import pandas._testing as tm -from pandas.tseries.offsets import BDay +from pandas.tseries.offsets import ( + BDay, +) @pytest.fixture diff --git a/pandas/tests/frame/methods/test_add_prefix_suffix.py b/pandas/tests/frame/methods/test_add_prefix_suffix.py index 92d7cdd7990e1..1d9060beb5936 100644 --- a/pandas/tests/frame/methods/test_add_prefix_suffix.py +++ b/pandas/tests/frame/methods/test_add_prefix_suffix.py @@ -1,6 +1,8 @@ import pytest -from pandas import Index +from pandas import ( + Index, +) import pandas._testing as tm diff --git a/pandas/tests/frame/methods/test_align.py b/pandas/tests/frame/methods/test_align.py index ec7d75ef4debb..718944aa38967 100644 --- a/pandas/tests/frame/methods/test_align.py +++ b/pandas/tests/frame/methods/test_align.py @@ -1,4 +1,6 @@ -from datetime import timezone +from datetime import ( + timezone, +) import numpy as np import pytest diff --git a/pandas/tests/frame/methods/test_asfreq.py b/pandas/tests/frame/methods/test_asfreq.py index 2cff2c4b2bc57..999cd818faba1 100644 --- a/pandas/tests/frame/methods/test_asfreq.py +++ b/pandas/tests/frame/methods/test_asfreq.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest @@ -13,7 +15,9 @@ ) import pandas._testing as tm -from pandas.tseries import offsets +from pandas.tseries import ( + offsets, +) class TestAsFreq: diff --git a/pandas/tests/frame/methods/test_asof.py b/pandas/tests/frame/methods/test_asof.py index a08f8bf5f502e..01068ab93dfa9 100644 --- a/pandas/tests/frame/methods/test_asof.py +++ b/pandas/tests/frame/methods/test_asof.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas._libs.tslibs import IncompatibleFrequency +from pandas._libs.tslibs import ( + IncompatibleFrequency, +) from pandas import ( DataFrame, diff --git a/pandas/tests/frame/methods/test_assign.py b/pandas/tests/frame/methods/test_assign.py index 0ae501d43e742..bec48a6e7b542 100644 --- a/pandas/tests/frame/methods/test_assign.py +++ b/pandas/tests/frame/methods/test_assign.py @@ -1,6 +1,8 @@ import pytest -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm diff --git a/pandas/tests/frame/methods/test_astype.py b/pandas/tests/frame/methods/test_astype.py index 08546f03cee69..737d15b177804 100644 --- a/pandas/tests/frame/methods/test_astype.py +++ b/pandas/tests/frame/methods/test_astype.py @@ -3,7 +3,9 @@ import numpy as np import pytest -from pandas.compat import pa_version_under7p0 +from pandas.compat import ( + pa_version_under7p0, +) import pandas.util._test_decorators as td import pandas as pd diff --git a/pandas/tests/frame/methods/test_at_time.py b/pandas/tests/frame/methods/test_at_time.py index 8537c32c24e3a..b4b9267c8a38d 100644 --- a/pandas/tests/frame/methods/test_at_time.py +++ b/pandas/tests/frame/methods/test_at_time.py @@ -1,10 +1,14 @@ -from datetime import time +from datetime import ( + time, +) import numpy as np import pytest import pytz -from pandas._libs.tslibs import timezones +from pandas._libs.tslibs import ( + timezones, +) from pandas import ( DataFrame, diff --git a/pandas/tests/frame/methods/test_between_time.py b/pandas/tests/frame/methods/test_between_time.py index 4573e83c8eecc..bb9476ff98b1b 100644 --- a/pandas/tests/frame/methods/test_between_time.py +++ b/pandas/tests/frame/methods/test_between_time.py @@ -6,7 +6,9 @@ import numpy as np import pytest -from pandas._libs.tslibs import timezones +from pandas._libs.tslibs import ( + timezones, +) import pandas.util._test_decorators as td from pandas import ( diff --git a/pandas/tests/frame/methods/test_combine_first.py b/pandas/tests/frame/methods/test_combine_first.py index 7983aace587c6..f58e531b60148 100644 --- a/pandas/tests/frame/methods/test_combine_first.py +++ b/pandas/tests/frame/methods/test_combine_first.py @@ -1,10 +1,16 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest -from pandas.core.dtypes.cast import find_common_type -from pandas.core.dtypes.common import is_dtype_equal +from pandas.core.dtypes.cast import ( + find_common_type, +) +from pandas.core.dtypes.common import ( + is_dtype_equal, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/frame/methods/test_compare.py b/pandas/tests/frame/methods/test_compare.py index fe74ec8077bc9..08cac969d0bd0 100644 --- a/pandas/tests/frame/methods/test_compare.py +++ b/pandas/tests/frame/methods/test_compare.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.compat import is_numpy_dev +from pandas.compat import ( + is_numpy_dev, +) import pandas as pd import pandas._testing as tm diff --git a/pandas/tests/frame/methods/test_copy.py b/pandas/tests/frame/methods/test_copy.py index 1c0b0755e7d94..3bfd48f6d62cc 100644 --- a/pandas/tests/frame/methods/test_copy.py +++ b/pandas/tests/frame/methods/test_copy.py @@ -3,7 +3,9 @@ import pandas.util._test_decorators as td -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm diff --git a/pandas/tests/frame/methods/test_drop.py b/pandas/tests/frame/methods/test_drop.py index ac0b0866c467f..9ed396ec008a4 100644 --- a/pandas/tests/frame/methods/test_drop.py +++ b/pandas/tests/frame/methods/test_drop.py @@ -3,7 +3,9 @@ import numpy as np import pytest -from pandas.errors import PerformanceWarning +from pandas.errors import ( + PerformanceWarning, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/frame/methods/test_drop_duplicates.py b/pandas/tests/frame/methods/test_drop_duplicates.py index df12139258a6d..4aeb190957bca 100644 --- a/pandas/tests/frame/methods/test_drop_duplicates.py +++ b/pandas/tests/frame/methods/test_drop_duplicates.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import re import numpy as np diff --git a/pandas/tests/frame/methods/test_dtypes.py b/pandas/tests/frame/methods/test_dtypes.py index f3b77c27d75bd..34751e3e762c5 100644 --- a/pandas/tests/frame/methods/test_dtypes.py +++ b/pandas/tests/frame/methods/test_dtypes.py @@ -1,9 +1,13 @@ -from datetime import timedelta +from datetime import ( + timedelta, +) import numpy as np import pytest -from pandas.core.dtypes.dtypes import DatetimeTZDtype +from pandas.core.dtypes.dtypes import ( + DatetimeTZDtype, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/frame/methods/test_fillna.py b/pandas/tests/frame/methods/test_fillna.py index f161cf7b3c525..c575c81d2497d 100644 --- a/pandas/tests/frame/methods/test_fillna.py +++ b/pandas/tests/frame/methods/test_fillna.py @@ -16,7 +16,9 @@ to_datetime, ) import pandas._testing as tm -from pandas.tests.frame.common import _check_mixed_float +from pandas.tests.frame.common import ( + _check_mixed_float, +) class TestFillNA: diff --git a/pandas/tests/frame/methods/test_filter.py b/pandas/tests/frame/methods/test_filter.py index af77db4058b43..6461c7913365b 100644 --- a/pandas/tests/frame/methods/test_filter.py +++ b/pandas/tests/frame/methods/test_filter.py @@ -2,7 +2,9 @@ import pytest import pandas as pd -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm diff --git a/pandas/tests/frame/methods/test_get_numeric_data.py b/pandas/tests/frame/methods/test_get_numeric_data.py index bed611b3a969e..63e7c4d9aae9a 100644 --- a/pandas/tests/frame/methods/test_get_numeric_data.py +++ b/pandas/tests/frame/methods/test_get_numeric_data.py @@ -9,7 +9,9 @@ Timestamp, ) import pandas._testing as tm -from pandas.core.arrays import IntervalArray +from pandas.core.arrays import ( + IntervalArray, +) class TestGetNumericData: diff --git a/pandas/tests/frame/methods/test_head_tail.py b/pandas/tests/frame/methods/test_head_tail.py index 99cb7840c3eb6..c8aa77f3ef0f3 100644 --- a/pandas/tests/frame/methods/test_head_tail.py +++ b/pandas/tests/frame/methods/test_head_tail.py @@ -1,6 +1,8 @@ import numpy as np -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm diff --git a/pandas/tests/frame/methods/test_infer_objects.py b/pandas/tests/frame/methods/test_infer_objects.py index a824a615b5c29..5fe869b17dbc3 100644 --- a/pandas/tests/frame/methods/test_infer_objects.py +++ b/pandas/tests/frame/methods/test_infer_objects.py @@ -1,6 +1,10 @@ -from datetime import datetime +from datetime import ( + datetime, +) -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm diff --git a/pandas/tests/frame/methods/test_join.py b/pandas/tests/frame/methods/test_join.py index e158a99eedc1e..b23bc9cc2208e 100644 --- a/pandas/tests/frame/methods/test_join.py +++ b/pandas/tests/frame/methods/test_join.py @@ -1,9 +1,13 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest -from pandas.errors import MergeError +from pandas.errors import ( + MergeError, +) import pandas as pd from pandas import ( @@ -14,7 +18,9 @@ period_range, ) import pandas._testing as tm -from pandas.core.reshape.concat import concat +from pandas.core.reshape.concat import ( + concat, +) @pytest.fixture diff --git a/pandas/tests/frame/methods/test_nlargest.py b/pandas/tests/frame/methods/test_nlargest.py index b5c33a41dd780..f46efcb5fa491 100644 --- a/pandas/tests/frame/methods/test_nlargest.py +++ b/pandas/tests/frame/methods/test_nlargest.py @@ -2,7 +2,9 @@ Note: for naming purposes, most tests are title with as e.g. "test_nlargest_foo" but are implicitly also testing nsmallest_foo. """ -from string import ascii_lowercase +from string import ( + ascii_lowercase, +) import numpy as np import pytest diff --git a/pandas/tests/frame/methods/test_rank.py b/pandas/tests/frame/methods/test_rank.py index e07ff7e919509..55eb62e249ec0 100644 --- a/pandas/tests/frame/methods/test_rank.py +++ b/pandas/tests/frame/methods/test_rank.py @@ -41,7 +41,9 @@ def method(self, request): @td.skip_if_no_scipy def test_rank(self, float_frame): import scipy.stats # noqa:F401 - from scipy.stats import rankdata + from scipy.stats import ( + rankdata, + ) float_frame.loc[::2, "A"] = np.nan float_frame.loc[::3, "B"] = np.nan @@ -143,7 +145,9 @@ def test_rank_mixed_frame(self, float_string_frame): @td.skip_if_no_scipy def test_rank_na_option(self, float_frame): import scipy.stats # noqa:F401 - from scipy.stats import rankdata + from scipy.stats import ( + rankdata, + ) float_frame.loc[::2, "A"] = np.nan float_frame.loc[::3, "B"] = np.nan @@ -227,7 +231,9 @@ def test_rank_axis(self): @td.skip_if_no_scipy def test_rank_methods_frame(self): import scipy.stats # noqa:F401 - from scipy.stats import rankdata + from scipy.stats import ( + rankdata, + ) xs = np.random.randint(0, 21, (100, 26)) xs = (xs - 10.0) / 10.0 diff --git a/pandas/tests/frame/methods/test_reindex.py b/pandas/tests/frame/methods/test_reindex.py index ceea53e3dd8bf..b36bb1d88c74a 100644 --- a/pandas/tests/frame/methods/test_reindex.py +++ b/pandas/tests/frame/methods/test_reindex.py @@ -7,7 +7,9 @@ import numpy as np import pytest -from pandas._libs.tslibs.timezones import dateutil_gettz as gettz +from pandas._libs.tslibs.timezones import ( + dateutil_gettz as gettz, +) import pandas.util._test_decorators as td import pandas as pd @@ -22,7 +24,9 @@ isna, ) import pandas._testing as tm -from pandas.api.types import CategoricalDtype as CDT +from pandas.api.types import ( + CategoricalDtype as CDT, +) import pandas.core.common as com diff --git a/pandas/tests/frame/methods/test_reindex_like.py b/pandas/tests/frame/methods/test_reindex_like.py index ce68ec28eec3d..020733c226c36 100644 --- a/pandas/tests/frame/methods/test_reindex_like.py +++ b/pandas/tests/frame/methods/test_reindex_like.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm diff --git a/pandas/tests/frame/methods/test_rename.py b/pandas/tests/frame/methods/test_rename.py index 6d8af97a5d210..1a0bfd6ce29f0 100644 --- a/pandas/tests/frame/methods/test_rename.py +++ b/pandas/tests/frame/methods/test_rename.py @@ -1,4 +1,6 @@ -from collections import ChainMap +from collections import ( + ChainMap, +) import inspect import numpy as np diff --git a/pandas/tests/frame/methods/test_replace.py b/pandas/tests/frame/methods/test_replace.py index 466d48fba4779..95783c28b70cc 100644 --- a/pandas/tests/frame/methods/test_replace.py +++ b/pandas/tests/frame/methods/test_replace.py @@ -1,6 +1,10 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from datetime import datetime +from datetime import ( + datetime, +) import re import numpy as np diff --git a/pandas/tests/frame/methods/test_reset_index.py b/pandas/tests/frame/methods/test_reset_index.py index 8a11a59cdcb58..e9b224012929f 100644 --- a/pandas/tests/frame/methods/test_reset_index.py +++ b/pandas/tests/frame/methods/test_reset_index.py @@ -1,5 +1,9 @@ -from datetime import datetime -from itertools import product +from datetime import ( + datetime, +) +from itertools import ( + product, +) import numpy as np import pytest diff --git a/pandas/tests/frame/methods/test_select_dtypes.py b/pandas/tests/frame/methods/test_select_dtypes.py index 2e9c75fe25652..40e93f4b1d312 100644 --- a/pandas/tests/frame/methods/test_select_dtypes.py +++ b/pandas/tests/frame/methods/test_select_dtypes.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.core.dtypes.dtypes import ExtensionDtype +from pandas.core.dtypes.dtypes import ( + ExtensionDtype, +) import pandas as pd from pandas import ( @@ -9,7 +11,9 @@ Timestamp, ) import pandas._testing as tm -from pandas.core.arrays import ExtensionArray +from pandas.core.arrays import ( + ExtensionArray, +) class DummyDtype(ExtensionDtype): diff --git a/pandas/tests/frame/methods/test_swapaxes.py b/pandas/tests/frame/methods/test_swapaxes.py index 5da2c2292f137..b39dd43fce645 100644 --- a/pandas/tests/frame/methods/test_swapaxes.py +++ b/pandas/tests/frame/methods/test_swapaxes.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm diff --git a/pandas/tests/frame/methods/test_swaplevel.py b/pandas/tests/frame/methods/test_swaplevel.py index 5511ac7d6b1b2..e8742ea9d9303 100644 --- a/pandas/tests/frame/methods/test_swaplevel.py +++ b/pandas/tests/frame/methods/test_swaplevel.py @@ -1,6 +1,8 @@ import pytest -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm diff --git a/pandas/tests/frame/methods/test_to_csv.py b/pandas/tests/frame/methods/test_to_csv.py index 8a68876d7e11a..6a4b7c915aeb3 100644 --- a/pandas/tests/frame/methods/test_to_csv.py +++ b/pandas/tests/frame/methods/test_to_csv.py @@ -1,11 +1,15 @@ import csv -from io import StringIO +from io import ( + StringIO, +) import os import numpy as np import pytest -from pandas.errors import ParserError +from pandas.errors import ( + ParserError, +) import pandas as pd from pandas import ( @@ -22,7 +26,9 @@ import pandas._testing as tm import pandas.core.common as com -from pandas.io.common import get_handle +from pandas.io.common import ( + get_handle, +) class TestDataFrameToCSV: diff --git a/pandas/tests/frame/methods/test_to_dict.py b/pandas/tests/frame/methods/test_to_dict.py index e64b212a8513c..8951cdacc6a6b 100644 --- a/pandas/tests/frame/methods/test_to_dict.py +++ b/pandas/tests/frame/methods/test_to_dict.py @@ -2,7 +2,9 @@ OrderedDict, defaultdict, ) -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest diff --git a/pandas/tests/frame/methods/test_to_dict_of_blocks.py b/pandas/tests/frame/methods/test_to_dict_of_blocks.py index cc4860beea491..df14fa5488c21 100644 --- a/pandas/tests/frame/methods/test_to_dict_of_blocks.py +++ b/pandas/tests/frame/methods/test_to_dict_of_blocks.py @@ -8,7 +8,9 @@ MultiIndex, ) import pandas._testing as tm -from pandas.core.arrays import PandasArray +from pandas.core.arrays import ( + PandasArray, +) pytestmark = td.skip_array_manager_invalid_test diff --git a/pandas/tests/frame/methods/test_to_records.py b/pandas/tests/frame/methods/test_to_records.py index f2eea452764a6..73a034e82982b 100644 --- a/pandas/tests/frame/methods/test_to_records.py +++ b/pandas/tests/frame/methods/test_to_records.py @@ -1,6 +1,10 @@ -from collections import abc +from collections import ( + abc, +) import email -from email.parser import Parser +from email.parser import ( + Parser, +) import numpy as np import pytest diff --git a/pandas/tests/frame/methods/test_to_timestamp.py b/pandas/tests/frame/methods/test_to_timestamp.py index fea070a3c0b38..d556f23e6b13d 100644 --- a/pandas/tests/frame/methods/test_to_timestamp.py +++ b/pandas/tests/frame/methods/test_to_timestamp.py @@ -1,4 +1,6 @@ -from datetime import timedelta +from datetime import ( + timedelta, +) import numpy as np import pytest diff --git a/pandas/tests/frame/methods/test_tz_localize.py b/pandas/tests/frame/methods/test_tz_localize.py index ed2b0b247e62c..afbeb42078a8f 100644 --- a/pandas/tests/frame/methods/test_tz_localize.py +++ b/pandas/tests/frame/methods/test_tz_localize.py @@ -1,4 +1,6 @@ -from datetime import timezone +from datetime import ( + timezone, +) import numpy as np import pytest diff --git a/pandas/tests/frame/test_alter_axes.py b/pandas/tests/frame/test_alter_axes.py index c68171ab254c7..92f7a12fe3a69 100644 --- a/pandas/tests/frame/test_alter_axes.py +++ b/pandas/tests/frame/test_alter_axes.py @@ -1,8 +1,12 @@ -from datetime import datetime +from datetime import ( + datetime, +) import pytz -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm diff --git a/pandas/tests/frame/test_api.py b/pandas/tests/frame/test_api.py index e5787a7f16a35..af9946ed8b21a 100644 --- a/pandas/tests/frame/test_api.py +++ b/pandas/tests/frame/test_api.py @@ -1,11 +1,15 @@ -from copy import deepcopy +from copy import ( + deepcopy, +) import inspect import pydoc import numpy as np import pytest -from pandas._config.config import option_context +from pandas._config.config import ( + option_context, +) from pandas.util._test_decorators import ( async_mark, @@ -295,7 +299,9 @@ def _check_f(base, f): async def test_tab_complete_warning(self, ip, frame_or_series): # GH 16409 pytest.importorskip("IPython", minversion="6.0.0") - from IPython.core.completer import provisionalcompleter + from IPython.core.completer import ( + provisionalcompleter, + ) if frame_or_series is DataFrame: code = "from pandas import DataFrame; obj = DataFrame()" diff --git a/pandas/tests/frame/test_arithmetic.py b/pandas/tests/frame/test_arithmetic.py index bcc1ae0183b97..33075910250ac 100644 --- a/pandas/tests/frame/test_arithmetic.py +++ b/pandas/tests/frame/test_arithmetic.py @@ -1,9 +1,13 @@ -from collections import deque +from collections import ( + deque, +) from datetime import ( datetime, timezone, ) -from enum import Enum +from enum import ( + Enum, +) import functools import operator import re @@ -22,7 +26,9 @@ ) import pandas._testing as tm import pandas.core.common as com -from pandas.core.computation import expressions as expr +from pandas.core.computation import ( + expressions as expr, +) from pandas.core.computation.expressions import ( _MIN_ELEMENTS, NUMEXPR_INSTALLED, diff --git a/pandas/tests/frame/test_block_internals.py b/pandas/tests/frame/test_block_internals.py index 8b0ac237f1480..2b7078b068d6d 100644 --- a/pandas/tests/frame/test_block_internals.py +++ b/pandas/tests/frame/test_block_internals.py @@ -7,7 +7,9 @@ import numpy as np import pytest -from pandas.errors import PerformanceWarning +from pandas.errors import ( + PerformanceWarning, +) import pandas.util._test_decorators as td import pandas as pd diff --git a/pandas/tests/frame/test_constructors.py b/pandas/tests/frame/test_constructors.py index 569ec613cbcb9..53f8383677aed 100644 --- a/pandas/tests/frame/test_constructors.py +++ b/pandas/tests/frame/test_constructors.py @@ -5,7 +5,9 @@ defaultdict, namedtuple, ) -from dataclasses import make_dataclass +from dataclasses import ( + make_dataclass, +) from datetime import ( date, datetime, @@ -14,19 +16,29 @@ import functools import random import re -from typing import Iterator +from typing import ( + Iterator, +) import warnings import numpy as np -from numpy import ma -from numpy.ma import mrecords +from numpy import ( + ma, +) +from numpy.ma import ( + mrecords, +) import pytest import pytz -from pandas.errors import IntCastingNaNError +from pandas.errors import ( + IntCastingNaNError, +) import pandas.util._test_decorators as td -from pandas.core.dtypes.common import is_integer_dtype +from pandas.core.dtypes.common import ( + is_integer_dtype, +) from pandas.core.dtypes.dtypes import ( DatetimeTZDtype, IntervalDtype, diff --git a/pandas/tests/frame/test_query_eval.py b/pandas/tests/frame/test_query_eval.py index fc0c81339de08..8a93b8ab5627b 100644 --- a/pandas/tests/frame/test_query_eval.py +++ b/pandas/tests/frame/test_query_eval.py @@ -18,7 +18,9 @@ date_range, ) import pandas._testing as tm -from pandas.core.computation.check import NUMEXPR_INSTALLED +from pandas.core.computation.check import ( + NUMEXPR_INSTALLED, +) @pytest.fixture(params=["python", "pandas"], ids=lambda x: x) diff --git a/pandas/tests/frame/test_reductions.py b/pandas/tests/frame/test_reductions.py index 28809e2ecb788..8b80537d40444 100644 --- a/pandas/tests/frame/test_reductions.py +++ b/pandas/tests/frame/test_reductions.py @@ -1,15 +1,25 @@ -from datetime import timedelta -from decimal import Decimal +from datetime import ( + timedelta, +) +from decimal import ( + Decimal, +) import re -from dateutil.tz import tzlocal +from dateutil.tz import ( + tzlocal, +) import numpy as np import pytest -from pandas.compat import is_platform_windows +from pandas.compat import ( + is_platform_windows, +) import pandas.util._test_decorators as td -from pandas.core.dtypes.common import is_categorical_dtype +from pandas.core.dtypes.common import ( + is_categorical_dtype, +) import pandas as pd from pandas import ( @@ -264,14 +274,18 @@ def sem(x): @td.skip_if_no_scipy def test_stat_op_calc_skew_kurtosis(self, float_frame_with_na): def skewness(x): - from scipy.stats import skew + from scipy.stats import ( + skew, + ) if len(x) < 3: return np.nan return skew(x, bias=False) def kurt(x): - from scipy.stats import kurtosis + from scipy.stats import ( + kurtosis, + ) if len(x) < 4: return np.nan diff --git a/pandas/tests/frame/test_repr_info.py b/pandas/tests/frame/test_repr_info.py index 66d8084abea68..68ff24dd76b03 100644 --- a/pandas/tests/frame/test_repr_info.py +++ b/pandas/tests/frame/test_repr_info.py @@ -2,7 +2,9 @@ datetime, timedelta, ) -from io import StringIO +from io import ( + StringIO, +) import numpy as np import pytest diff --git a/pandas/tests/frame/test_stack_unstack.py b/pandas/tests/frame/test_stack_unstack.py index 4a23e750e7875..c793b73bb3623 100644 --- a/pandas/tests/frame/test_stack_unstack.py +++ b/pandas/tests/frame/test_stack_unstack.py @@ -1,11 +1,17 @@ -from datetime import datetime -from io import StringIO +from datetime import ( + datetime, +) +from io import ( + StringIO, +) import itertools import numpy as np import pytest -from pandas.errors import PerformanceWarning +from pandas.errors import ( + PerformanceWarning, +) import pandas as pd from pandas import ( @@ -18,7 +24,9 @@ date_range, ) import pandas._testing as tm -from pandas.core.reshape import reshape as reshape_lib +from pandas.core.reshape import ( + reshape as reshape_lib, +) class TestDataFrameReshape: diff --git a/pandas/tests/frame/test_ufunc.py b/pandas/tests/frame/test_ufunc.py index 74afb573793a9..2a8feed8f754f 100644 --- a/pandas/tests/frame/test_ufunc.py +++ b/pandas/tests/frame/test_ufunc.py @@ -1,4 +1,6 @@ -from functools import partial +from functools import ( + partial, +) import re import numpy as np @@ -8,7 +10,9 @@ import pandas as pd import pandas._testing as tm -from pandas.api.types import is_extension_array_dtype +from pandas.api.types import ( + is_extension_array_dtype, +) dtypes = [ "int64", diff --git a/pandas/tests/frame/test_unary.py b/pandas/tests/frame/test_unary.py index a9ec726ab443e..6951f19d34191 100644 --- a/pandas/tests/frame/test_unary.py +++ b/pandas/tests/frame/test_unary.py @@ -1,9 +1,13 @@ -from decimal import Decimal +from decimal import ( + Decimal, +) import numpy as np import pytest -from pandas.compat import is_numpy_dev +from pandas.compat import ( + is_numpy_dev, +) import pandas as pd import pandas._testing as tm diff --git a/pandas/tests/frame/test_validate.py b/pandas/tests/frame/test_validate.py index e99e0a6863848..b1c258c2bb51d 100644 --- a/pandas/tests/frame/test_validate.py +++ b/pandas/tests/frame/test_validate.py @@ -1,6 +1,8 @@ import pytest -from pandas.core.frame import DataFrame +from pandas.core.frame import ( + DataFrame, +) @pytest.fixture diff --git a/pandas/tests/generic/test_frame.py b/pandas/tests/generic/test_frame.py index 8a1e0f0923531..b637300085c65 100644 --- a/pandas/tests/generic/test_frame.py +++ b/pandas/tests/generic/test_frame.py @@ -1,5 +1,9 @@ -from copy import deepcopy -from operator import methodcaller +from copy import ( + deepcopy, +) +from operator import ( + methodcaller, +) import numpy as np import pytest diff --git a/pandas/tests/generic/test_generic.py b/pandas/tests/generic/test_generic.py index 54d08b577a47a..f9fd2e2a22ced 100644 --- a/pandas/tests/generic/test_generic.py +++ b/pandas/tests/generic/test_generic.py @@ -6,7 +6,9 @@ import numpy as np import pytest -from pandas.core.dtypes.common import is_scalar +from pandas.core.dtypes.common import ( + is_scalar, +) from pandas import ( DataFrame, diff --git a/pandas/tests/generic/test_label_or_level_utils.py b/pandas/tests/generic/test_label_or_level_utils.py index 97be46f716d7d..81a7fe3fcb2ac 100644 --- a/pandas/tests/generic/test_label_or_level_utils.py +++ b/pandas/tests/generic/test_label_or_level_utils.py @@ -1,6 +1,8 @@ import pytest -from pandas.core.dtypes.missing import array_equivalent +from pandas.core.dtypes.missing import ( + array_equivalent, +) import pandas as pd diff --git a/pandas/tests/generic/test_series.py b/pandas/tests/generic/test_series.py index 5098897f057a5..57674fca9e745 100644 --- a/pandas/tests/generic/test_series.py +++ b/pandas/tests/generic/test_series.py @@ -1,4 +1,6 @@ -from operator import methodcaller +from operator import ( + methodcaller, +) import numpy as np import pytest diff --git a/pandas/tests/generic/test_to_xarray.py b/pandas/tests/generic/test_to_xarray.py index 1fbd82f01213b..2e9423f625017 100644 --- a/pandas/tests/generic/test_to_xarray.py +++ b/pandas/tests/generic/test_to_xarray.py @@ -36,7 +36,9 @@ def test_to_xarray_index_types(self, index_flat, df): if len(index) == 0: pytest.skip("Test doesn't make sense for empty index") - from xarray import Dataset + from xarray import ( + Dataset, + ) df.index = index[:3] df.index.name = "foo" @@ -57,7 +59,9 @@ def test_to_xarray_index_types(self, index_flat, df): tm.assert_frame_equal(result.to_dataframe(), expected) def test_to_xarray_empty(self, df): - from xarray import Dataset + from xarray import ( + Dataset, + ) df.index.name = "foo" result = df[0:0].to_xarray() @@ -65,7 +69,9 @@ def test_to_xarray_empty(self, df): assert isinstance(result, Dataset) def test_to_xarray_with_multiindex(self, df): - from xarray import Dataset + from xarray import ( + Dataset, + ) # MultiIndex df.index = MultiIndex.from_product([["a"], range(3)], names=["one", "two"]) @@ -90,7 +96,9 @@ def test_to_xarray_index_types(self, index_flat): index = index_flat # MultiIndex is tested in test_to_xarray_with_multiindex - from xarray import DataArray + from xarray import ( + DataArray, + ) ser = Series(range(len(index)), index=index, dtype="int64") ser.index.name = "foo" @@ -105,7 +113,9 @@ def test_to_xarray_index_types(self, index_flat): tm.assert_series_equal(result.to_series(), ser) def test_to_xarray_empty(self): - from xarray import DataArray + from xarray import ( + DataArray, + ) ser = Series([], dtype=object) ser.index.name = "foo" @@ -116,7 +126,9 @@ def test_to_xarray_empty(self): assert isinstance(result, DataArray) def test_to_xarray_with_multiindex(self): - from xarray import DataArray + from xarray import ( + DataArray, + ) mi = MultiIndex.from_product([["a", "b"], range(3)], names=["one", "two"]) ser = Series(range(6), dtype="int64", index=mi) diff --git a/pandas/tests/groupby/aggregate/test_aggregate.py b/pandas/tests/groupby/aggregate/test_aggregate.py index d658de4a7d7c3..b3e9a4576da8f 100644 --- a/pandas/tests/groupby/aggregate/test_aggregate.py +++ b/pandas/tests/groupby/aggregate/test_aggregate.py @@ -3,15 +3,21 @@ """ import datetime import functools -from functools import partial +from functools import ( + partial, +) import re import numpy as np import pytest -from pandas.errors import SpecificationError +from pandas.errors import ( + SpecificationError, +) -from pandas.core.dtypes.common import is_integer_dtype +from pandas.core.dtypes.common import ( + is_integer_dtype, +) import pandas as pd from pandas import ( @@ -23,7 +29,9 @@ to_datetime, ) import pandas._testing as tm -from pandas.core.groupby.grouper import Grouping +from pandas.core.groupby.grouper import ( + Grouping, +) def test_groupby_agg_no_extra_calls(): diff --git a/pandas/tests/groupby/aggregate/test_numba.py b/pandas/tests/groupby/aggregate/test_numba.py index 9dd3d1d45abf0..9cee3617937f4 100644 --- a/pandas/tests/groupby/aggregate/test_numba.py +++ b/pandas/tests/groupby/aggregate/test_numba.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.errors import NumbaUtilError +from pandas.errors import ( + NumbaUtilError, +) import pandas.util._test_decorators as td from pandas import ( diff --git a/pandas/tests/groupby/aggregate/test_other.py b/pandas/tests/groupby/aggregate/test_other.py index aad1218190a84..cf3e5b0600df9 100644 --- a/pandas/tests/groupby/aggregate/test_other.py +++ b/pandas/tests/groupby/aggregate/test_other.py @@ -3,12 +3,16 @@ """ import datetime as dt -from functools import partial +from functools import ( + partial, +) import numpy as np import pytest -from pandas.errors import SpecificationError +from pandas.errors import ( + SpecificationError, +) import pandas as pd from pandas import ( @@ -22,7 +26,9 @@ ) import pandas._testing as tm -from pandas.io.formats.printing import pprint_thing +from pandas.io.formats.printing import ( + pprint_thing, +) def test_agg_partial_failure_raises(): diff --git a/pandas/tests/groupby/conftest.py b/pandas/tests/groupby/conftest.py index 7e7b97d9273dc..2192dce436f21 100644 --- a/pandas/tests/groupby/conftest.py +++ b/pandas/tests/groupby/conftest.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm from pandas.core.groupby.base import ( reduction_kernels, diff --git a/pandas/tests/groupby/test_allowlist.py b/pandas/tests/groupby/test_allowlist.py index c7657d3e8eea5..0254ddf1bf9c9 100644 --- a/pandas/tests/groupby/test_allowlist.py +++ b/pandas/tests/groupby/test_allowlist.py @@ -3,7 +3,9 @@ the so-called white/black lists """ -from string import ascii_lowercase +from string import ( + ascii_lowercase, +) import numpy as np import pytest diff --git a/pandas/tests/groupby/test_apply.py b/pandas/tests/groupby/test_apply.py index 5fa7ed15a01d4..0c61d5cfa6872 100644 --- a/pandas/tests/groupby/test_apply.py +++ b/pandas/tests/groupby/test_apply.py @@ -2,7 +2,9 @@ date, datetime, ) -from io import StringIO +from io import ( + StringIO, +) import numpy as np import pytest @@ -16,7 +18,9 @@ bdate_range, ) import pandas._testing as tm -from pandas.tests.groupby import get_groupby_method_args +from pandas.tests.groupby import ( + get_groupby_method_args, +) def test_apply_issues(): diff --git a/pandas/tests/groupby/test_bin_groupby.py b/pandas/tests/groupby/test_bin_groupby.py index 49b2e621b7adc..22d3d2f1d33ed 100644 --- a/pandas/tests/groupby/test_bin_groupby.py +++ b/pandas/tests/groupby/test_bin_groupby.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas._libs import lib +from pandas._libs import ( + lib, +) import pandas.util._test_decorators as td import pandas as pd diff --git a/pandas/tests/groupby/test_categorical.py b/pandas/tests/groupby/test_categorical.py index fa8df166d56ac..b4d2d39e5858c 100644 --- a/pandas/tests/groupby/test_categorical.py +++ b/pandas/tests/groupby/test_categorical.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest @@ -14,7 +16,9 @@ qcut, ) import pandas._testing as tm -from pandas.tests.groupby import get_groupby_method_args +from pandas.tests.groupby import ( + get_groupby_method_args, +) def cartesian_product_for_groupers(result, args, names, fill_value=np.NaN): diff --git a/pandas/tests/groupby/test_counting.py b/pandas/tests/groupby/test_counting.py index 7e7f1a628da6e..50dced5571e9a 100644 --- a/pandas/tests/groupby/test_counting.py +++ b/pandas/tests/groupby/test_counting.py @@ -1,5 +1,9 @@ -from itertools import product -from string import ascii_lowercase +from itertools import ( + product, +) +from string import ( + ascii_lowercase, +) import numpy as np import pytest diff --git a/pandas/tests/groupby/test_filters.py b/pandas/tests/groupby/test_filters.py index f534a0c65fdbc..8e0ad9780ce77 100644 --- a/pandas/tests/groupby/test_filters.py +++ b/pandas/tests/groupby/test_filters.py @@ -1,4 +1,6 @@ -from string import ascii_lowercase +from string import ( + ascii_lowercase, +) import numpy as np import pytest diff --git a/pandas/tests/groupby/test_function.py b/pandas/tests/groupby/test_function.py index 535e8fa5b9354..a67a72980067d 100644 --- a/pandas/tests/groupby/test_function.py +++ b/pandas/tests/groupby/test_function.py @@ -1,11 +1,17 @@ import builtins -from io import StringIO +from io import ( + StringIO, +) import numpy as np import pytest -from pandas._libs import lib -from pandas.errors import UnsupportedFunctionCall +from pandas._libs import ( + lib, +) +from pandas.errors import ( + UnsupportedFunctionCall, +) import pandas as pd from pandas import ( @@ -17,9 +23,15 @@ date_range, ) import pandas._testing as tm -from pandas.core import nanops -from pandas.tests.groupby import get_groupby_method_args -from pandas.util import _test_decorators as td +from pandas.core import ( + nanops, +) +from pandas.tests.groupby import ( + get_groupby_method_args, +) +from pandas.util import ( + _test_decorators as td, +) @pytest.fixture( @@ -634,7 +646,9 @@ def test_groupby_cumprod_nan_influences_other_columns(): def scipy_sem(*args, **kwargs): - from scipy.stats import sem + from scipy.stats import ( + sem, + ) return sem(*args, ddof=1, **kwargs) diff --git a/pandas/tests/groupby/test_groupby.py b/pandas/tests/groupby/test_groupby.py index e225ff5a0fa43..d0bebef3a45ff 100644 --- a/pandas/tests/groupby/test_groupby.py +++ b/pandas/tests/groupby/test_groupby.py @@ -1,10 +1,16 @@ -from datetime import datetime -from decimal import Decimal +from datetime import ( + datetime, +) +from decimal import ( + Decimal, +) import numpy as np import pytest -from pandas.compat import IS64 +from pandas.compat import ( + IS64, +) from pandas.errors import ( PerformanceWarning, SpecificationError, @@ -25,9 +31,13 @@ to_datetime, ) import pandas._testing as tm -from pandas.core.arrays import BooleanArray +from pandas.core.arrays import ( + BooleanArray, +) import pandas.core.common as com -from pandas.tests.groupby import get_groupby_method_args +from pandas.tests.groupby import ( + get_groupby_method_args, +) def test_repr(): diff --git a/pandas/tests/groupby/test_groupby_dropna.py b/pandas/tests/groupby/test_groupby_dropna.py index 31a8e7a7d36ac..48cb30c8deb29 100644 --- a/pandas/tests/groupby/test_groupby_dropna.py +++ b/pandas/tests/groupby/test_groupby_dropna.py @@ -1,13 +1,19 @@ import numpy as np import pytest -from pandas.compat.pyarrow import pa_version_under7p0 +from pandas.compat.pyarrow import ( + pa_version_under7p0, +) -from pandas.core.dtypes.missing import na_value_for_dtype +from pandas.core.dtypes.missing import ( + na_value_for_dtype, +) import pandas as pd import pandas._testing as tm -from pandas.tests.groupby import get_groupby_method_args +from pandas.tests.groupby import ( + get_groupby_method_args, +) @pytest.mark.parametrize( diff --git a/pandas/tests/groupby/test_groupby_subclass.py b/pandas/tests/groupby/test_groupby_subclass.py index 773c1e60e97af..c7f3952ea63c7 100644 --- a/pandas/tests/groupby/test_groupby_subclass.py +++ b/pandas/tests/groupby/test_groupby_subclass.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest @@ -9,7 +11,9 @@ Series, ) import pandas._testing as tm -from pandas.tests.groupby import get_groupby_method_args +from pandas.tests.groupby import ( + get_groupby_method_args, +) @pytest.mark.parametrize( diff --git a/pandas/tests/groupby/test_grouping.py b/pandas/tests/groupby/test_grouping.py index f5bbfce560d33..ac32615377bb5 100644 --- a/pandas/tests/groupby/test_grouping.py +++ b/pandas/tests/groupby/test_grouping.py @@ -21,7 +21,9 @@ date_range, ) import pandas._testing as tm -from pandas.core.groupby.grouper import Grouping +from pandas.core.groupby.grouper import ( + Grouping, +) # selection # -------------------------------- diff --git a/pandas/tests/groupby/test_libgroupby.py b/pandas/tests/groupby/test_libgroupby.py index 4cea6d10af9e0..e877b1a3b5bf6 100644 --- a/pandas/tests/groupby/test_libgroupby.py +++ b/pandas/tests/groupby/test_libgroupby.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas._libs import groupby as libgroupby +from pandas._libs import ( + groupby as libgroupby, +) from pandas._libs.groupby import ( group_cumprod, group_cumsum, @@ -9,9 +11,13 @@ group_var, ) -from pandas.core.dtypes.common import ensure_platform_int +from pandas.core.dtypes.common import ( + ensure_platform_int, +) -from pandas import isna +from pandas import ( + isna, +) import pandas._testing as tm diff --git a/pandas/tests/groupby/test_min_max.py b/pandas/tests/groupby/test_min_max.py index 11f62c5d03c49..c149047e4dd9d 100644 --- a/pandas/tests/groupby/test_min_max.py +++ b/pandas/tests/groupby/test_min_max.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas._libs.tslibs import iNaT +from pandas._libs.tslibs import ( + iNaT, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/groupby/test_nunique.py b/pandas/tests/groupby/test_nunique.py index 282c91c82f5b1..0da9bdca8f89b 100644 --- a/pandas/tests/groupby/test_nunique.py +++ b/pandas/tests/groupby/test_nunique.py @@ -1,5 +1,7 @@ import datetime as dt -from string import ascii_lowercase +from string import ( + ascii_lowercase, +) import numpy as np import pytest diff --git a/pandas/tests/groupby/test_raises.py b/pandas/tests/groupby/test_raises.py index 0dd845bc35482..f39eefa64836a 100644 --- a/pandas/tests/groupby/test_raises.py +++ b/pandas/tests/groupby/test_raises.py @@ -13,7 +13,9 @@ Grouper, Series, ) -from pandas.tests.groupby import get_groupby_method_args +from pandas.tests.groupby import ( + get_groupby_method_args, +) @pytest.fixture( diff --git a/pandas/tests/groupby/test_rank.py b/pandas/tests/groupby/test_rank.py index d0b848a567346..eebb959a151fb 100644 --- a/pandas/tests/groupby/test_rank.py +++ b/pandas/tests/groupby/test_rank.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest diff --git a/pandas/tests/groupby/test_timegrouper.py b/pandas/tests/groupby/test_timegrouper.py index f9a1349081529..a1c090c79450a 100644 --- a/pandas/tests/groupby/test_timegrouper.py +++ b/pandas/tests/groupby/test_timegrouper.py @@ -5,7 +5,9 @@ datetime, timedelta, ) -from io import StringIO +from io import ( + StringIO, +) import numpy as np import pytest @@ -25,8 +27,12 @@ offsets, ) import pandas._testing as tm -from pandas.core.groupby.grouper import Grouper -from pandas.core.groupby.ops import BinGrouper +from pandas.core.groupby.grouper import ( + Grouper, +) +from pandas.core.groupby.ops import ( + BinGrouper, +) @pytest.fixture diff --git a/pandas/tests/groupby/test_value_counts.py b/pandas/tests/groupby/test_value_counts.py index 2c3c2277ed627..20dfa3abf9bd7 100644 --- a/pandas/tests/groupby/test_value_counts.py +++ b/pandas/tests/groupby/test_value_counts.py @@ -4,7 +4,9 @@ and proper parameter handling """ -from itertools import product +from itertools import ( + product, +) import numpy as np import pytest diff --git a/pandas/tests/groupby/transform/test_numba.py b/pandas/tests/groupby/transform/test_numba.py index 0264d2a09778f..1751469875a3a 100644 --- a/pandas/tests/groupby/transform/test_numba.py +++ b/pandas/tests/groupby/transform/test_numba.py @@ -1,6 +1,8 @@ import pytest -from pandas.errors import NumbaUtilError +from pandas.errors import ( + NumbaUtilError, +) import pandas.util._test_decorators as td from pandas import ( diff --git a/pandas/tests/groupby/transform/test_transform.py b/pandas/tests/groupby/transform/test_transform.py index 8abcc52db0500..674b6b3844a18 100644 --- a/pandas/tests/groupby/transform/test_transform.py +++ b/pandas/tests/groupby/transform/test_transform.py @@ -1,5 +1,7 @@ """ test with the .transform """ -from io import StringIO +from io import ( + StringIO, +) import numpy as np import pytest @@ -20,7 +22,9 @@ date_range, ) import pandas._testing as tm -from pandas.tests.groupby import get_groupby_method_args +from pandas.tests.groupby import ( + get_groupby_method_args, +) def assert_fp_equal(a, b): diff --git a/pandas/tests/indexes/base_class/test_formats.py b/pandas/tests/indexes/base_class/test_formats.py index 9053d45dee623..89d430b3ebfe1 100644 --- a/pandas/tests/indexes/base_class/test_formats.py +++ b/pandas/tests/indexes/base_class/test_formats.py @@ -3,7 +3,9 @@ import pandas._config.config as cf -from pandas import Index +from pandas import ( + Index, +) class TestIndexRendering: diff --git a/pandas/tests/indexes/base_class/test_pickle.py b/pandas/tests/indexes/base_class/test_pickle.py index c670921decb78..c1468884ac69a 100644 --- a/pandas/tests/indexes/base_class/test_pickle.py +++ b/pandas/tests/indexes/base_class/test_pickle.py @@ -1,4 +1,6 @@ -from pandas import Index +from pandas import ( + Index, +) import pandas._testing as tm diff --git a/pandas/tests/indexes/base_class/test_reshape.py b/pandas/tests/indexes/base_class/test_reshape.py index 5ecb2c753644d..a2d5ffc87d244 100644 --- a/pandas/tests/indexes/base_class/test_reshape.py +++ b/pandas/tests/indexes/base_class/test_reshape.py @@ -4,7 +4,9 @@ import numpy as np import pytest -from pandas import Index +from pandas import ( + Index, +) import pandas._testing as tm diff --git a/pandas/tests/indexes/base_class/test_setops.py b/pandas/tests/indexes/base_class/test_setops.py index 21d1630af9de2..5c1c3afd287b9 100644 --- a/pandas/tests/indexes/base_class/test_setops.py +++ b/pandas/tests/indexes/base_class/test_setops.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest @@ -9,7 +11,9 @@ Series, ) import pandas._testing as tm -from pandas.core.algorithms import safe_sort +from pandas.core.algorithms import ( + safe_sort, +) class TestIndexSetOps: diff --git a/pandas/tests/indexes/base_class/test_where.py b/pandas/tests/indexes/base_class/test_where.py index 0c8969735e14e..0a8f01a045ea4 100644 --- a/pandas/tests/indexes/base_class/test_where.py +++ b/pandas/tests/indexes/base_class/test_where.py @@ -1,6 +1,8 @@ import numpy as np -from pandas import Index +from pandas import ( + Index, +) import pandas._testing as tm diff --git a/pandas/tests/indexes/categorical/test_astype.py b/pandas/tests/indexes/categorical/test_astype.py index da1d692f9eb2d..cd66efbaa425e 100644 --- a/pandas/tests/indexes/categorical/test_astype.py +++ b/pandas/tests/indexes/categorical/test_astype.py @@ -1,4 +1,6 @@ -from datetime import date +from datetime import ( + date, +) import numpy as np import pytest diff --git a/pandas/tests/indexes/categorical/test_category.py b/pandas/tests/indexes/categorical/test_category.py index d7fdbb39f3e69..cfa183682c208 100644 --- a/pandas/tests/indexes/categorical/test_category.py +++ b/pandas/tests/indexes/categorical/test_category.py @@ -1,8 +1,12 @@ import numpy as np import pytest -from pandas._libs import index as libindex -from pandas._libs.arrays import NDArrayBacked +from pandas._libs import ( + index as libindex, +) +from pandas._libs.arrays import ( + NDArrayBacked, +) import pandas as pd from pandas import ( @@ -14,7 +18,9 @@ CategoricalIndex, Index, ) -from pandas.tests.indexes.common import Base +from pandas.tests.indexes.common import ( + Base, +) class TestCategoricalIndex(Base): diff --git a/pandas/tests/indexes/categorical/test_fillna.py b/pandas/tests/indexes/categorical/test_fillna.py index 09de578f3c649..3b0a6c445d043 100644 --- a/pandas/tests/indexes/categorical/test_fillna.py +++ b/pandas/tests/indexes/categorical/test_fillna.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas import CategoricalIndex +from pandas import ( + CategoricalIndex, +) import pandas._testing as tm diff --git a/pandas/tests/indexes/categorical/test_formats.py b/pandas/tests/indexes/categorical/test_formats.py index 8e09f68c16707..5e2b28cd60b9f 100644 --- a/pandas/tests/indexes/categorical/test_formats.py +++ b/pandas/tests/indexes/categorical/test_formats.py @@ -3,7 +3,9 @@ """ import pandas._config.config as cf -from pandas import CategoricalIndex +from pandas import ( + CategoricalIndex, +) class TestCategoricalIndexRepr: diff --git a/pandas/tests/indexes/categorical/test_indexing.py b/pandas/tests/indexes/categorical/test_indexing.py index 01077616c50db..77a6245429133 100644 --- a/pandas/tests/indexes/categorical/test_indexing.py +++ b/pandas/tests/indexes/categorical/test_indexing.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.errors import InvalidIndexError +from pandas.errors import ( + InvalidIndexError, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/indexes/common.py b/pandas/tests/indexes/common.py index 272166e25e8a5..b92c4edb26e7f 100644 --- a/pandas/tests/indexes/common.py +++ b/pandas/tests/indexes/common.py @@ -1,18 +1,26 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from datetime import datetime +from datetime import ( + datetime, +) import gc import numpy as np import pytest -from pandas._libs.tslibs import Timestamp +from pandas._libs.tslibs import ( + Timestamp, +) from pandas.core.dtypes.common import ( is_datetime64tz_dtype, is_integer_dtype, ) -from pandas.core.dtypes.dtypes import CategoricalDtype +from pandas.core.dtypes.dtypes import ( + CategoricalDtype, +) import pandas as pd from pandas import ( @@ -28,7 +36,9 @@ isna, ) import pandas._testing as tm -from pandas.core.arrays import BaseMaskedArray +from pandas.core.arrays import ( + BaseMaskedArray, +) class Base: diff --git a/pandas/tests/indexes/datetimelike.py b/pandas/tests/indexes/datetimelike.py index dade67795bc81..0de7e228178bd 100644 --- a/pandas/tests/indexes/datetimelike.py +++ b/pandas/tests/indexes/datetimelike.py @@ -5,7 +5,9 @@ import pandas as pd import pandas._testing as tm -from pandas.tests.indexes.common import Base +from pandas.tests.indexes.common import ( + Base, +) class DatetimeLike(Base): diff --git a/pandas/tests/indexes/datetimes/methods/test_astype.py b/pandas/tests/indexes/datetimes/methods/test_astype.py index 94cf86b7fb9c5..e691c18eb9ba0 100644 --- a/pandas/tests/indexes/datetimes/methods/test_astype.py +++ b/pandas/tests/indexes/datetimes/methods/test_astype.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import dateutil import numpy as np diff --git a/pandas/tests/indexes/datetimes/methods/test_insert.py b/pandas/tests/indexes/datetimes/methods/test_insert.py index cedf8cd54b81e..fc47b1385526b 100644 --- a/pandas/tests/indexes/datetimes/methods/test_insert.py +++ b/pandas/tests/indexes/datetimes/methods/test_insert.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest diff --git a/pandas/tests/indexes/datetimes/methods/test_shift.py b/pandas/tests/indexes/datetimes/methods/test_shift.py index 65bdfc9053e5e..ecb33aada39be 100644 --- a/pandas/tests/indexes/datetimes/methods/test_shift.py +++ b/pandas/tests/indexes/datetimes/methods/test_shift.py @@ -1,9 +1,13 @@ -from datetime import datetime +from datetime import ( + datetime, +) import pytest import pytz -from pandas.errors import NullFrequencyError +from pandas.errors import ( + NullFrequencyError, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/indexes/datetimes/methods/test_to_period.py b/pandas/tests/indexes/datetimes/methods/test_to_period.py index e4f8aef277f87..5ad6afebda145 100644 --- a/pandas/tests/indexes/datetimes/methods/test_to_period.py +++ b/pandas/tests/indexes/datetimes/methods/test_to_period.py @@ -1,12 +1,18 @@ import warnings import dateutil.tz -from dateutil.tz import tzlocal +from dateutil.tz import ( + tzlocal, +) import pytest import pytz -from pandas._libs.tslibs.ccalendar import MONTHS -from pandas._libs.tslibs.period import INVALID_FREQ_ERR_MSG +from pandas._libs.tslibs.ccalendar import ( + MONTHS, +) +from pandas._libs.tslibs.period import ( + INVALID_FREQ_ERR_MSG, +) from pandas import ( DatetimeIndex, diff --git a/pandas/tests/indexes/datetimes/test_asof.py b/pandas/tests/indexes/datetimes/test_asof.py index 7adc400302cb9..b3395511b653d 100644 --- a/pandas/tests/indexes/datetimes/test_asof.py +++ b/pandas/tests/indexes/datetimes/test_asof.py @@ -1,4 +1,6 @@ -from datetime import timedelta +from datetime import ( + timedelta, +) from pandas import ( Index, diff --git a/pandas/tests/indexes/datetimes/test_constructors.py b/pandas/tests/indexes/datetimes/test_constructors.py index 689e6cdb47058..aae1af0aa1575 100644 --- a/pandas/tests/indexes/datetimes/test_constructors.py +++ b/pandas/tests/indexes/datetimes/test_constructors.py @@ -3,8 +3,12 @@ timedelta, timezone, ) -from functools import partial -from operator import attrgetter +from functools import ( + partial, +) +from operator import ( + attrgetter, +) import dateutil import numpy as np diff --git a/pandas/tests/indexes/datetimes/test_date_range.py b/pandas/tests/indexes/datetimes/test_date_range.py index ef909feccfcd3..76096627fcac1 100644 --- a/pandas/tests/indexes/datetimes/test_date_range.py +++ b/pandas/tests/indexes/datetimes/test_date_range.py @@ -11,9 +11,13 @@ import numpy as np import pytest import pytz -from pytz import timezone +from pytz import ( + timezone, +) -from pandas._libs.tslibs import timezones +from pandas._libs.tslibs import ( + timezones, +) from pandas._libs.tslibs.offsets import ( BDay, CDay, @@ -21,7 +25,9 @@ MonthEnd, prefix_mapping, ) -from pandas.errors import OutOfBoundsDatetime +from pandas.errors import ( + OutOfBoundsDatetime, +) import pandas.util._test_decorators as td import pandas as pd @@ -34,7 +40,9 @@ offsets, ) import pandas._testing as tm -from pandas.core.arrays.datetimes import _generate_range as generate_range +from pandas.core.arrays.datetimes import ( + _generate_range as generate_range, +) START, END = datetime(2009, 1, 1), datetime(2010, 1, 1) @@ -96,7 +104,9 @@ def test_date_range_timestamp_equiv_explicit_pytz(self): @td.skip_if_windows def test_date_range_timestamp_equiv_explicit_dateutil(self): - from pandas._libs.tslibs.timezones import dateutil_gettz as gettz + from pandas._libs.tslibs.timezones import ( + dateutil_gettz as gettz, + ) rng = date_range("20090415", "20090519", tz=gettz("US/Eastern")) stamp = rng[0] @@ -591,7 +601,9 @@ def test_range_tz_dateutil(self): # see gh-2906 # Use maybe_get_tz to fix filename in tz under dateutil. - from pandas._libs.tslibs.timezones import maybe_get_tz + from pandas._libs.tslibs.timezones import ( + maybe_get_tz, + ) tz = lambda x: maybe_get_tz("dateutil/" + x) @@ -824,7 +836,9 @@ def test_date_range_timezone_str_argument(self, tzstr): tm.assert_index_equal(result, expected) def test_date_range_with_fixedoffset_noname(self): - from pandas.tests.indexes.datetimes.test_timezones import fixed_off_no_name + from pandas.tests.indexes.datetimes.test_timezones import ( + fixed_off_no_name, + ) off = fixed_off_no_name start = datetime(2012, 3, 11, 5, 0, 0, tzinfo=off) diff --git a/pandas/tests/indexes/datetimes/test_datetime.py b/pandas/tests/indexes/datetimes/test_datetime.py index af1a94391a353..fe575f5488b5d 100644 --- a/pandas/tests/indexes/datetimes/test_datetime.py +++ b/pandas/tests/indexes/datetimes/test_datetime.py @@ -1,4 +1,6 @@ -from datetime import date +from datetime import ( + date, +) import dateutil import numpy as np diff --git a/pandas/tests/indexes/datetimes/test_datetimelike.py b/pandas/tests/indexes/datetimes/test_datetimelike.py index 31ec8c497299e..e413cd23cf79f 100644 --- a/pandas/tests/indexes/datetimes/test_datetimelike.py +++ b/pandas/tests/indexes/datetimes/test_datetimelike.py @@ -6,7 +6,9 @@ date_range, ) import pandas._testing as tm -from pandas.tests.indexes.datetimelike import DatetimeLike +from pandas.tests.indexes.datetimelike import ( + DatetimeLike, +) class TestDatetimeIndex(DatetimeLike): diff --git a/pandas/tests/indexes/datetimes/test_formats.py b/pandas/tests/indexes/datetimes/test_formats.py index a927799e39783..460ac9ab4f3d3 100644 --- a/pandas/tests/indexes/datetimes/test_formats.py +++ b/pandas/tests/indexes/datetimes/test_formats.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import dateutil.tz import numpy as np diff --git a/pandas/tests/indexes/datetimes/test_indexing.py b/pandas/tests/indexes/datetimes/test_indexing.py index ecdea9ea25c9d..2a7642615cae0 100644 --- a/pandas/tests/indexes/datetimes/test_indexing.py +++ b/pandas/tests/indexes/datetimes/test_indexing.py @@ -19,7 +19,9 @@ ) import pandas._testing as tm -from pandas.tseries.frequencies import to_offset +from pandas.tseries.frequencies import ( + to_offset, +) START, END = datetime(2009, 1, 1), datetime(2010, 1, 1) @@ -418,7 +420,9 @@ def test_get_loc_time_obj(self): def test_get_loc_time_obj2(self): # GH#8667 - from pandas._libs.index import _SIZE_CUTOFF + from pandas._libs.index import ( + _SIZE_CUTOFF, + ) ns = _SIZE_CUTOFF + np.array([-100, 100], dtype=np.int64) key = time(15, 11, 30) diff --git a/pandas/tests/indexes/datetimes/test_misc.py b/pandas/tests/indexes/datetimes/test_misc.py index f13dfcd5c20bd..625a91aa04ca2 100644 --- a/pandas/tests/indexes/datetimes/test_misc.py +++ b/pandas/tests/indexes/datetimes/test_misc.py @@ -1,5 +1,7 @@ import calendar -from datetime import datetime +from datetime import ( + datetime, +) import locale import unicodedata @@ -16,9 +18,13 @@ offsets, ) import pandas._testing as tm -from pandas.core.arrays import DatetimeArray +from pandas.core.arrays import ( + DatetimeArray, +) -from pandas.tseries.frequencies import to_offset +from pandas.tseries.frequencies import ( + to_offset, +) class TestDatetime64: diff --git a/pandas/tests/indexes/datetimes/test_npfuncs.py b/pandas/tests/indexes/datetimes/test_npfuncs.py index 301466c0da41c..e295577ca5fdf 100644 --- a/pandas/tests/indexes/datetimes/test_npfuncs.py +++ b/pandas/tests/indexes/datetimes/test_npfuncs.py @@ -1,6 +1,8 @@ import numpy as np -from pandas import date_range +from pandas import ( + date_range, +) import pandas._testing as tm diff --git a/pandas/tests/indexes/datetimes/test_ops.py b/pandas/tests/indexes/datetimes/test_ops.py index d6ef4198fad2e..8abfb08d12c86 100644 --- a/pandas/tests/indexes/datetimes/test_ops.py +++ b/pandas/tests/indexes/datetimes/test_ops.py @@ -1,9 +1,15 @@ -from datetime import datetime +from datetime import ( + datetime, +) -from dateutil.tz import tzlocal +from dateutil.tz import ( + tzlocal, +) import pytest -from pandas.compat import IS64 +from pandas.compat import ( + IS64, +) from pandas import ( DatetimeIndex, diff --git a/pandas/tests/indexes/datetimes/test_partial_slicing.py b/pandas/tests/indexes/datetimes/test_partial_slicing.py index f030f4101512e..8c3e980a227ed 100644 --- a/pandas/tests/indexes/datetimes/test_partial_slicing.py +++ b/pandas/tests/indexes/datetimes/test_partial_slicing.py @@ -1,6 +1,8 @@ """ test partial slicing on Series/Frame """ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest diff --git a/pandas/tests/indexes/datetimes/test_reindex.py b/pandas/tests/indexes/datetimes/test_reindex.py index e4911aa3c4a29..d6b8d194cd721 100644 --- a/pandas/tests/indexes/datetimes/test_reindex.py +++ b/pandas/tests/indexes/datetimes/test_reindex.py @@ -1,4 +1,6 @@ -from datetime import timedelta +from datetime import ( + timedelta, +) import numpy as np diff --git a/pandas/tests/indexes/datetimes/test_scalar_compat.py b/pandas/tests/indexes/datetimes/test_scalar_compat.py index f07a9dce5f6ae..2a1e756a8cbe7 100644 --- a/pandas/tests/indexes/datetimes/test_scalar_compat.py +++ b/pandas/tests/indexes/datetimes/test_scalar_compat.py @@ -1,7 +1,9 @@ """ Tests for DatetimeIndex methods behaving like their Timestamp counterparts """ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest @@ -10,7 +12,9 @@ OutOfBoundsDatetime, to_offset, ) -from pandas._libs.tslibs.offsets import INVALID_FREQ_ERR_MSG +from pandas._libs.tslibs.offsets import ( + INVALID_FREQ_ERR_MSG, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/indexes/datetimes/test_setops.py b/pandas/tests/indexes/datetimes/test_setops.py index c1b74319e2679..f6ebf577eca22 100644 --- a/pandas/tests/indexes/datetimes/test_setops.py +++ b/pandas/tests/indexes/datetimes/test_setops.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest @@ -133,7 +135,9 @@ def test_union_bug_1745(self, sort): tm.assert_index_equal(result, exp) def test_union_bug_4564(self, sort): - from pandas import DateOffset + from pandas import ( + DateOffset, + ) left = date_range("2013-01-01", "2013-02-01") right = left + DateOffset(minutes=15) @@ -298,7 +302,9 @@ def test_intersection_empty(self, tz_aware_fixture, freq): assert result.freq == rng.freq def test_intersection_bug_1708(self): - from pandas import DateOffset + from pandas import ( + DateOffset, + ) index_1 = date_range("1/1/2012", periods=4, freq="12H") index_2 = index_1 + DateOffset(hours=1) @@ -496,7 +502,9 @@ def test_intersection_list(self): tm.assert_index_equal(res, idx) def test_month_range_union_tz_pytz(self, sort): - from pytz import timezone + from pytz import ( + timezone, + ) tz = timezone("US/Eastern") @@ -513,7 +521,9 @@ def test_month_range_union_tz_pytz(self, sort): @td.skip_if_windows def test_month_range_union_tz_dateutil(self, sort): - from pandas._libs.tslibs.timezones import dateutil_gettz + from pandas._libs.tslibs.timezones import ( + dateutil_gettz, + ) tz = dateutil_gettz("US/Eastern") diff --git a/pandas/tests/indexes/datetimes/test_timezones.py b/pandas/tests/indexes/datetimes/test_timezones.py index 05700841de7e1..a25d05613b802 100644 --- a/pandas/tests/indexes/datetimes/test_timezones.py +++ b/pandas/tests/indexes/datetimes/test_timezones.py @@ -20,7 +20,9 @@ import pytz try: - from zoneinfo import ZoneInfo + from zoneinfo import ( + ZoneInfo, + ) except ImportError: ZoneInfo = None diff --git a/pandas/tests/indexes/interval/test_base.py b/pandas/tests/indexes/interval/test_base.py index de9d8be21ae60..d3cf6b6597f11 100644 --- a/pandas/tests/indexes/interval/test_base.py +++ b/pandas/tests/indexes/interval/test_base.py @@ -1,9 +1,13 @@ import numpy as np import pytest -from pandas import IntervalIndex +from pandas import ( + IntervalIndex, +) import pandas._testing as tm -from pandas.tests.indexes.common import Base +from pandas.tests.indexes.common import ( + Base, +) class TestBase(Base): diff --git a/pandas/tests/indexes/interval/test_constructors.py b/pandas/tests/indexes/interval/test_constructors.py index b7511a72e31da..60223ff777246 100644 --- a/pandas/tests/indexes/interval/test_constructors.py +++ b/pandas/tests/indexes/interval/test_constructors.py @@ -1,10 +1,16 @@ -from functools import partial +from functools import ( + partial, +) import numpy as np import pytest -from pandas.core.dtypes.common import is_categorical_dtype -from pandas.core.dtypes.dtypes import IntervalDtype +from pandas.core.dtypes.common import ( + is_categorical_dtype, +) +from pandas.core.dtypes.dtypes import ( + IntervalDtype, +) from pandas import ( Categorical, @@ -18,7 +24,9 @@ timedelta_range, ) import pandas._testing as tm -from pandas.core.arrays import IntervalArray +from pandas.core.arrays import ( + IntervalArray, +) import pandas.core.common as com diff --git a/pandas/tests/indexes/interval/test_indexing.py b/pandas/tests/indexes/interval/test_indexing.py index e7db8076efa2b..a38cfdaad82de 100644 --- a/pandas/tests/indexes/interval/test_indexing.py +++ b/pandas/tests/indexes/interval/test_indexing.py @@ -3,7 +3,9 @@ import numpy as np import pytest -from pandas.errors import InvalidIndexError +from pandas.errors import ( + InvalidIndexError, +) from pandas import ( NA, diff --git a/pandas/tests/indexes/interval/test_interval.py b/pandas/tests/indexes/interval/test_interval.py index 49e8df2b71f22..c27e9e2900f5f 100644 --- a/pandas/tests/indexes/interval/test_interval.py +++ b/pandas/tests/indexes/interval/test_interval.py @@ -1,4 +1,6 @@ -from itertools import permutations +from itertools import ( + permutations, +) import re import numpy as np diff --git a/pandas/tests/indexes/interval/test_interval_range.py b/pandas/tests/indexes/interval/test_interval_range.py index 18b5af00c8d5d..9c5acc041b92d 100644 --- a/pandas/tests/indexes/interval/test_interval_range.py +++ b/pandas/tests/indexes/interval/test_interval_range.py @@ -1,9 +1,13 @@ -from datetime import timedelta +from datetime import ( + timedelta, +) import numpy as np import pytest -from pandas.core.dtypes.common import is_integer +from pandas.core.dtypes.common import ( + is_integer, +) from pandas import ( DateOffset, @@ -17,7 +21,9 @@ ) import pandas._testing as tm -from pandas.tseries.offsets import Day +from pandas.tseries.offsets import ( + Day, +) @pytest.fixture(params=[None, "foo"]) diff --git a/pandas/tests/indexes/interval/test_interval_tree.py b/pandas/tests/indexes/interval/test_interval_tree.py index 45b25f2533afd..b1e18be3c49f9 100644 --- a/pandas/tests/indexes/interval/test_interval_tree.py +++ b/pandas/tests/indexes/interval/test_interval_tree.py @@ -1,10 +1,16 @@ -from itertools import permutations +from itertools import ( + permutations, +) import numpy as np import pytest -from pandas._libs.interval import IntervalTree -from pandas.compat import IS64 +from pandas._libs.interval import ( + IntervalTree, +) +from pandas.compat import ( + IS64, +) import pandas._testing as tm diff --git a/pandas/tests/indexes/interval/test_pickle.py b/pandas/tests/indexes/interval/test_pickle.py index 308a90e72eab5..bd0ab083e83b7 100644 --- a/pandas/tests/indexes/interval/test_pickle.py +++ b/pandas/tests/indexes/interval/test_pickle.py @@ -1,6 +1,8 @@ import pytest -from pandas import IntervalIndex +from pandas import ( + IntervalIndex, +) import pandas._testing as tm diff --git a/pandas/tests/indexes/multi/test_astype.py b/pandas/tests/indexes/multi/test_astype.py index 29908537fbe59..b8228eec0b5a7 100644 --- a/pandas/tests/indexes/multi/test_astype.py +++ b/pandas/tests/indexes/multi/test_astype.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.core.dtypes.dtypes import CategoricalDtype +from pandas.core.dtypes.dtypes import ( + CategoricalDtype, +) import pandas._testing as tm diff --git a/pandas/tests/indexes/multi/test_compat.py b/pandas/tests/indexes/multi/test_compat.py index 60608e0def7f5..f9ae0bc16ca0d 100644 --- a/pandas/tests/indexes/multi/test_compat.py +++ b/pandas/tests/indexes/multi/test_compat.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas import MultiIndex +from pandas import ( + MultiIndex, +) import pandas._testing as tm diff --git a/pandas/tests/indexes/multi/test_constructors.py b/pandas/tests/indexes/multi/test_constructors.py index cabc2bfd61db6..af4ba29fd6668 100644 --- a/pandas/tests/indexes/multi/test_constructors.py +++ b/pandas/tests/indexes/multi/test_constructors.py @@ -7,9 +7,13 @@ import numpy as np import pytest -from pandas.compat import pa_version_under7p0 +from pandas.compat import ( + pa_version_under7p0, +) -from pandas.core.dtypes.cast import construct_1d_object_array_from_listlike +from pandas.core.dtypes.cast import ( + construct_1d_object_array_from_listlike, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/indexes/multi/test_copy.py b/pandas/tests/indexes/multi/test_copy.py index 2e09a580f9528..ebfa1a18a4df6 100644 --- a/pandas/tests/indexes/multi/test_copy.py +++ b/pandas/tests/indexes/multi/test_copy.py @@ -5,7 +5,9 @@ import pytest -from pandas import MultiIndex +from pandas import ( + MultiIndex, +) import pandas._testing as tm diff --git a/pandas/tests/indexes/multi/test_drop.py b/pandas/tests/indexes/multi/test_drop.py index 4bfba07332313..3ec962df5c8b9 100644 --- a/pandas/tests/indexes/multi/test_drop.py +++ b/pandas/tests/indexes/multi/test_drop.py @@ -3,7 +3,9 @@ import numpy as np import pytest -from pandas.errors import PerformanceWarning +from pandas.errors import ( + PerformanceWarning, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/indexes/multi/test_duplicates.py b/pandas/tests/indexes/multi/test_duplicates.py index 6c31caac4b42d..d2a666e488312 100644 --- a/pandas/tests/indexes/multi/test_duplicates.py +++ b/pandas/tests/indexes/multi/test_duplicates.py @@ -1,9 +1,13 @@ -from itertools import product +from itertools import ( + product, +) import numpy as np import pytest -from pandas._libs import hashtable +from pandas._libs import ( + hashtable, +) from pandas import ( NA, diff --git a/pandas/tests/indexes/multi/test_equivalence.py b/pandas/tests/indexes/multi/test_equivalence.py index 9babbd5b8d56d..af1683aa59772 100644 --- a/pandas/tests/indexes/multi/test_equivalence.py +++ b/pandas/tests/indexes/multi/test_equivalence.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.core.dtypes.common import is_any_real_numeric_dtype +from pandas.core.dtypes.common import ( + is_any_real_numeric_dtype, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/indexes/multi/test_get_set.py b/pandas/tests/indexes/multi/test_get_set.py index 70350f0df821b..8f71b11629a02 100644 --- a/pandas/tests/indexes/multi/test_get_set.py +++ b/pandas/tests/indexes/multi/test_get_set.py @@ -1,9 +1,13 @@ import numpy as np import pytest -from pandas.compat import PY311 +from pandas.compat import ( + PY311, +) -from pandas.core.dtypes.dtypes import DatetimeTZDtype +from pandas.core.dtypes.dtypes import ( + DatetimeTZDtype, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/indexes/multi/test_indexing.py b/pandas/tests/indexes/multi/test_indexing.py index 31c5ab333ecfa..a5e3bbdb8a1b9 100644 --- a/pandas/tests/indexes/multi/test_indexing.py +++ b/pandas/tests/indexes/multi/test_indexing.py @@ -1,4 +1,6 @@ -from datetime import timedelta +from datetime import ( + timedelta, +) import re import numpy as np diff --git a/pandas/tests/indexes/multi/test_integrity.py b/pandas/tests/indexes/multi/test_integrity.py index a650f7f81a19f..aa48591543257 100644 --- a/pandas/tests/indexes/multi/test_integrity.py +++ b/pandas/tests/indexes/multi/test_integrity.py @@ -3,7 +3,9 @@ import numpy as np import pytest -from pandas.core.dtypes.cast import construct_1d_object_array_from_listlike +from pandas.core.dtypes.cast import ( + construct_1d_object_array_from_listlike, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/indexes/multi/test_isin.py b/pandas/tests/indexes/multi/test_isin.py index 2723e7e4db8eb..b09d749f5b7f2 100644 --- a/pandas/tests/indexes/multi/test_isin.py +++ b/pandas/tests/indexes/multi/test_isin.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas import MultiIndex +from pandas import ( + MultiIndex, +) import pandas._testing as tm diff --git a/pandas/tests/indexes/multi/test_lexsort.py b/pandas/tests/indexes/multi/test_lexsort.py index fc16a4197a3a4..77d9d8c0ea7af 100644 --- a/pandas/tests/indexes/multi/test_lexsort.py +++ b/pandas/tests/indexes/multi/test_lexsort.py @@ -1,4 +1,6 @@ -from pandas import MultiIndex +from pandas import ( + MultiIndex, +) class TestIsLexsorted: diff --git a/pandas/tests/indexes/multi/test_missing.py b/pandas/tests/indexes/multi/test_missing.py index 14ffc42fb4b59..4cb05761166ea 100644 --- a/pandas/tests/indexes/multi/test_missing.py +++ b/pandas/tests/indexes/multi/test_missing.py @@ -2,7 +2,9 @@ import pytest import pandas as pd -from pandas import MultiIndex +from pandas import ( + MultiIndex, +) import pandas._testing as tm diff --git a/pandas/tests/indexes/multi/test_names.py b/pandas/tests/indexes/multi/test_names.py index 8ae643eb3626d..b32e8ab7f002a 100644 --- a/pandas/tests/indexes/multi/test_names.py +++ b/pandas/tests/indexes/multi/test_names.py @@ -1,7 +1,9 @@ import pytest import pandas as pd -from pandas import MultiIndex +from pandas import ( + MultiIndex, +) import pandas._testing as tm diff --git a/pandas/tests/indexes/multi/test_pickle.py b/pandas/tests/indexes/multi/test_pickle.py index 1d8b721404421..a3bfd4164f596 100644 --- a/pandas/tests/indexes/multi/test_pickle.py +++ b/pandas/tests/indexes/multi/test_pickle.py @@ -1,6 +1,8 @@ import pytest -from pandas import MultiIndex +from pandas import ( + MultiIndex, +) def test_pickle_compat_construction(): diff --git a/pandas/tests/indexes/multi/test_reshape.py b/pandas/tests/indexes/multi/test_reshape.py index da9838d4a2ed3..e50541f7bd2bb 100644 --- a/pandas/tests/indexes/multi/test_reshape.py +++ b/pandas/tests/indexes/multi/test_reshape.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest diff --git a/pandas/tests/indexes/multi/test_sorting.py b/pandas/tests/indexes/multi/test_sorting.py index 2746c12b120ef..cb21fdd1ee74c 100644 --- a/pandas/tests/indexes/multi/test_sorting.py +++ b/pandas/tests/indexes/multi/test_sorting.py @@ -17,7 +17,9 @@ Timestamp, ) import pandas._testing as tm -from pandas.core.indexes.frozen import FrozenList +from pandas.core.indexes.frozen import ( + FrozenList, +) def test_sortlevel(idx): diff --git a/pandas/tests/indexes/numeric/test_indexing.py b/pandas/tests/indexes/numeric/test_indexing.py index c99e912ce4c0f..8468ee893ef5a 100644 --- a/pandas/tests/indexes/numeric/test_indexing.py +++ b/pandas/tests/indexes/numeric/test_indexing.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.errors import InvalidIndexError +from pandas.errors import ( + InvalidIndexError, +) from pandas import ( NA, @@ -11,7 +13,9 @@ Timestamp, ) import pandas._testing as tm -from pandas.core.arrays import FloatingArray +from pandas.core.arrays import ( + FloatingArray, +) @pytest.fixture diff --git a/pandas/tests/indexes/numeric/test_join.py b/pandas/tests/indexes/numeric/test_join.py index 93ff6238b90ff..12c77828ee35e 100644 --- a/pandas/tests/indexes/numeric/test_join.py +++ b/pandas/tests/indexes/numeric/test_join.py @@ -2,7 +2,9 @@ import pytest import pandas._testing as tm -from pandas.core.indexes.api import Index +from pandas.core.indexes.api import ( + Index, +) class TestJoinInt64Index: diff --git a/pandas/tests/indexes/numeric/test_numeric.py b/pandas/tests/indexes/numeric/test_numeric.py index 284b7f782a3f2..9f83e50a6804a 100644 --- a/pandas/tests/indexes/numeric/test_numeric.py +++ b/pandas/tests/indexes/numeric/test_numeric.py @@ -7,7 +7,9 @@ Series, ) import pandas._testing as tm -from pandas.tests.indexes.common import NumericBase +from pandas.tests.indexes.common import ( + NumericBase, +) class TestFloatNumericIndex(NumericBase): diff --git a/pandas/tests/indexes/object/test_indexing.py b/pandas/tests/indexes/object/test_indexing.py index 87d3afc77d556..29a61b520e0fc 100644 --- a/pandas/tests/indexes/object/test_indexing.py +++ b/pandas/tests/indexes/object/test_indexing.py @@ -1,12 +1,18 @@ -from decimal import Decimal +from decimal import ( + Decimal, +) import numpy as np import pytest -from pandas._libs.missing import is_matching_na +from pandas._libs.missing import ( + is_matching_na, +) import pandas as pd -from pandas import Index +from pandas import ( + Index, +) import pandas._testing as tm diff --git a/pandas/tests/indexes/period/methods/test_is_full.py b/pandas/tests/indexes/period/methods/test_is_full.py index 490f199a59ed7..2b260a5e94777 100644 --- a/pandas/tests/indexes/period/methods/test_is_full.py +++ b/pandas/tests/indexes/period/methods/test_is_full.py @@ -1,6 +1,8 @@ import pytest -from pandas import PeriodIndex +from pandas import ( + PeriodIndex, +) def test_is_full(): diff --git a/pandas/tests/indexes/period/methods/test_to_timestamp.py b/pandas/tests/indexes/period/methods/test_to_timestamp.py index 164ed3ec43996..9c5557fe1612c 100644 --- a/pandas/tests/indexes/period/methods/test_to_timestamp.py +++ b/pandas/tests/indexes/period/methods/test_to_timestamp.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest diff --git a/pandas/tests/indexes/period/test_constructors.py b/pandas/tests/indexes/period/test_constructors.py index 60e50a757a271..f25557d90f915 100644 --- a/pandas/tests/indexes/period/test_constructors.py +++ b/pandas/tests/indexes/period/test_constructors.py @@ -1,9 +1,13 @@ import numpy as np import pytest -from pandas._libs.tslibs.period import IncompatibleFrequency +from pandas._libs.tslibs.period import ( + IncompatibleFrequency, +) -from pandas.core.dtypes.dtypes import PeriodDtype +from pandas.core.dtypes.dtypes import ( + PeriodDtype, +) from pandas import ( Index, @@ -16,7 +20,9 @@ period_range, ) import pandas._testing as tm -from pandas.core.arrays import PeriodArray +from pandas.core.arrays import ( + PeriodArray, +) class TestPeriodIndex: diff --git a/pandas/tests/indexes/period/test_freq_attr.py b/pandas/tests/indexes/period/test_freq_attr.py index e1ecffa4982bd..1e69e848c6a8b 100644 --- a/pandas/tests/indexes/period/test_freq_attr.py +++ b/pandas/tests/indexes/period/test_freq_attr.py @@ -1,6 +1,8 @@ import pytest -from pandas.compat import PY311 +from pandas.compat import ( + PY311, +) from pandas import ( offsets, diff --git a/pandas/tests/indexes/period/test_indexing.py b/pandas/tests/indexes/period/test_indexing.py index b5b595d5cc8b5..8bb02c4dfc246 100644 --- a/pandas/tests/indexes/period/test_indexing.py +++ b/pandas/tests/indexes/period/test_indexing.py @@ -1,11 +1,17 @@ -from datetime import datetime +from datetime import ( + datetime, +) import re import numpy as np import pytest -from pandas._libs.tslibs import period as libperiod -from pandas.errors import InvalidIndexError +from pandas._libs.tslibs import ( + period as libperiod, +) +from pandas.errors import ( + InvalidIndexError, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/indexes/period/test_join.py b/pandas/tests/indexes/period/test_join.py index 27cba8676d22b..0756ce2ab20e3 100644 --- a/pandas/tests/indexes/period/test_join.py +++ b/pandas/tests/indexes/period/test_join.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas._libs.tslibs import IncompatibleFrequency +from pandas._libs.tslibs import ( + IncompatibleFrequency, +) from pandas import ( Index, diff --git a/pandas/tests/indexes/period/test_period.py b/pandas/tests/indexes/period/test_period.py index e5c85edfaaffa..eed122304e052 100644 --- a/pandas/tests/indexes/period/test_period.py +++ b/pandas/tests/indexes/period/test_period.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas._libs.tslibs.period import IncompatibleFrequency +from pandas._libs.tslibs.period import ( + IncompatibleFrequency, +) from pandas import ( Index, @@ -14,7 +16,9 @@ period_range, ) import pandas._testing as tm -from pandas.tests.indexes.datetimelike import DatetimeLike +from pandas.tests.indexes.datetimelike import ( + DatetimeLike, +) class TestPeriodIndex(DatetimeLike): diff --git a/pandas/tests/indexes/period/test_pickle.py b/pandas/tests/indexes/period/test_pickle.py index 82f906d1e361f..5c819aa5a81e6 100644 --- a/pandas/tests/indexes/period/test_pickle.py +++ b/pandas/tests/indexes/period/test_pickle.py @@ -8,7 +8,9 @@ ) import pandas._testing as tm -from pandas.tseries import offsets +from pandas.tseries import ( + offsets, +) class TestPickle: diff --git a/pandas/tests/indexes/period/test_searchsorted.py b/pandas/tests/indexes/period/test_searchsorted.py index b9863d1bb019a..f3040211dc82c 100644 --- a/pandas/tests/indexes/period/test_searchsorted.py +++ b/pandas/tests/indexes/period/test_searchsorted.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas._libs.tslibs import IncompatibleFrequency +from pandas._libs.tslibs import ( + IncompatibleFrequency, +) from pandas import ( NaT, diff --git a/pandas/tests/indexes/ranges/test_constructors.py b/pandas/tests/indexes/ranges/test_constructors.py index 5e6f16075ae63..701717a2ac058 100644 --- a/pandas/tests/indexes/ranges/test_constructors.py +++ b/pandas/tests/indexes/ranges/test_constructors.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest diff --git a/pandas/tests/indexes/ranges/test_join.py b/pandas/tests/indexes/ranges/test_join.py index 958dd6aa9a563..e67c62e572a37 100644 --- a/pandas/tests/indexes/ranges/test_join.py +++ b/pandas/tests/indexes/ranges/test_join.py @@ -1,6 +1,8 @@ import numpy as np -from pandas.core.dtypes.common import is_int64_dtype +from pandas.core.dtypes.common import ( + is_int64_dtype, +) from pandas import ( Index, diff --git a/pandas/tests/indexes/ranges/test_range.py b/pandas/tests/indexes/ranges/test_range.py index 4edec0bf95982..fe3803183ba7a 100644 --- a/pandas/tests/indexes/ranges/test_range.py +++ b/pandas/tests/indexes/ranges/test_range.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.core.dtypes.common import ensure_platform_int +from pandas.core.dtypes.common import ( + ensure_platform_int, +) import pandas as pd from pandas import ( @@ -9,7 +11,9 @@ RangeIndex, ) import pandas._testing as tm -from pandas.tests.indexes.common import NumericBase +from pandas.tests.indexes.common import ( + NumericBase, +) # aliases to make some tests easier to read RI = RangeIndex diff --git a/pandas/tests/indexes/test_any_index.py b/pandas/tests/indexes/test_any_index.py index 3b3d6dbaf697f..4c6412b4fb6a9 100644 --- a/pandas/tests/indexes/test_any_index.py +++ b/pandas/tests/indexes/test_any_index.py @@ -6,7 +6,9 @@ import numpy as np import pytest -from pandas.errors import InvalidIndexError +from pandas.errors import ( + InvalidIndexError, +) import pandas._testing as tm diff --git a/pandas/tests/indexes/test_base.py b/pandas/tests/indexes/test_base.py index 6dbe61decfc73..e377df0f36da7 100644 --- a/pandas/tests/indexes/test_base.py +++ b/pandas/tests/indexes/test_base.py @@ -1,6 +1,12 @@ -from collections import defaultdict -from datetime import datetime -from io import StringIO +from collections import ( + defaultdict, +) +from datetime import ( + datetime, +) +from io import ( + StringIO, +) import math import operator import re @@ -8,9 +14,15 @@ import numpy as np import pytest -from pandas.compat import IS64 -from pandas.errors import InvalidIndexError -from pandas.util._test_decorators import async_mark +from pandas.compat import ( + IS64, +) +from pandas.errors import ( + InvalidIndexError, +) +from pandas.util._test_decorators import ( + async_mark, +) from pandas.core.dtypes.common import ( is_any_real_numeric_dtype, @@ -39,7 +51,9 @@ ensure_index, ensure_index_from_sequences, ) -from pandas.tests.indexes.common import Base +from pandas.tests.indexes.common import ( + Base, +) class TestIndex(Base): @@ -1217,7 +1231,9 @@ def test_cached_properties_not_settable(self): async def test_tab_complete_warning(self, ip): # https://github.com/pandas-dev/pandas/issues/16409 pytest.importorskip("IPython", minversion="6.0.0") - from IPython.core.completer import provisionalcompleter + from IPython.core.completer import ( + provisionalcompleter, + ) code = "import pandas as pd; idx = pd.Index([1, 2])" await ip.run_code(code) diff --git a/pandas/tests/indexes/test_common.py b/pandas/tests/indexes/test_common.py index 83b32bb1230c2..7a6eb9fd06031 100644 --- a/pandas/tests/indexes/test_common.py +++ b/pandas/tests/indexes/test_common.py @@ -12,7 +12,9 @@ import numpy as np import pytest -from pandas.compat import IS64 +from pandas.compat import ( + IS64, +) from pandas.core.dtypes.common import ( is_integer_dtype, diff --git a/pandas/tests/indexes/test_engines.py b/pandas/tests/indexes/test_engines.py index 468c2240c8192..b0ea92a70f01e 100644 --- a/pandas/tests/indexes/test_engines.py +++ b/pandas/tests/indexes/test_engines.py @@ -3,7 +3,9 @@ import numpy as np import pytest -from pandas._libs import index as libindex +from pandas._libs import ( + index as libindex, +) import pandas as pd diff --git a/pandas/tests/indexes/test_frozen.py b/pandas/tests/indexes/test_frozen.py index ace66b5b06a51..260665e71199f 100644 --- a/pandas/tests/indexes/test_frozen.py +++ b/pandas/tests/indexes/test_frozen.py @@ -2,7 +2,9 @@ import pytest -from pandas.core.indexes.frozen import FrozenList +from pandas.core.indexes.frozen import ( + FrozenList, +) @pytest.fixture diff --git a/pandas/tests/indexes/test_index_new.py b/pandas/tests/indexes/test_index_new.py index 564d3abc4f1fe..c70cd20735bf1 100644 --- a/pandas/tests/indexes/test_index_new.py +++ b/pandas/tests/indexes/test_index_new.py @@ -5,7 +5,9 @@ datetime, timedelta, ) -from decimal import Decimal +from decimal import ( + Decimal, +) import numpy as np import pytest diff --git a/pandas/tests/indexes/test_indexing.py b/pandas/tests/indexes/test_indexing.py index 52f09ac25873e..fe6e2037e04d5 100644 --- a/pandas/tests/indexes/test_indexing.py +++ b/pandas/tests/indexes/test_indexing.py @@ -17,9 +17,13 @@ import numpy as np import pytest -from pandas.errors import InvalidIndexError +from pandas.errors import ( + InvalidIndexError, +) -from pandas.core.dtypes.common import is_float_dtype +from pandas.core.dtypes.common import ( + is_float_dtype, +) from pandas import ( NA, diff --git a/pandas/tests/indexes/test_numpy_compat.py b/pandas/tests/indexes/test_numpy_compat.py index 07ebe6fa04beb..7a9fa88748dd9 100644 --- a/pandas/tests/indexes/test_numpy_compat.py +++ b/pandas/tests/indexes/test_numpy_compat.py @@ -14,8 +14,12 @@ is_complex_dtype, is_numeric_dtype, ) -from pandas.core.arrays import BooleanArray -from pandas.core.indexes.datetimelike import DatetimeIndexOpsMixin +from pandas.core.arrays import ( + BooleanArray, +) +from pandas.core.indexes.datetimelike import ( + DatetimeIndexOpsMixin, +) def test_numpy_ufuncs_out(index): diff --git a/pandas/tests/indexes/test_setops.py b/pandas/tests/indexes/test_setops.py index 1be4a1835de09..d33b82c9d84ec 100644 --- a/pandas/tests/indexes/test_setops.py +++ b/pandas/tests/indexes/test_setops.py @@ -2,13 +2,17 @@ The tests in this package are to ensure the proper resultant dtypes of set operations. """ -from datetime import datetime +from datetime import ( + datetime, +) import operator import numpy as np import pytest -from pandas.core.dtypes.cast import find_common_type +from pandas.core.dtypes.cast import ( + find_common_type, +) from pandas import ( CategoricalIndex, diff --git a/pandas/tests/indexes/timedeltas/methods/test_astype.py b/pandas/tests/indexes/timedeltas/methods/test_astype.py index 9b17a8af59ac5..df620b910f6e2 100644 --- a/pandas/tests/indexes/timedeltas/methods/test_astype.py +++ b/pandas/tests/indexes/timedeltas/methods/test_astype.py @@ -1,4 +1,6 @@ -from datetime import timedelta +from datetime import ( + timedelta, +) import numpy as np import pytest diff --git a/pandas/tests/indexes/timedeltas/methods/test_insert.py b/pandas/tests/indexes/timedeltas/methods/test_insert.py index f8164102815f6..f2b29b675e431 100644 --- a/pandas/tests/indexes/timedeltas/methods/test_insert.py +++ b/pandas/tests/indexes/timedeltas/methods/test_insert.py @@ -1,9 +1,13 @@ -from datetime import timedelta +from datetime import ( + timedelta, +) import numpy as np import pytest -from pandas._libs import lib +from pandas._libs import ( + lib, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/indexes/timedeltas/methods/test_shift.py b/pandas/tests/indexes/timedeltas/methods/test_shift.py index f49af73f9f499..14b0baba0404c 100644 --- a/pandas/tests/indexes/timedeltas/methods/test_shift.py +++ b/pandas/tests/indexes/timedeltas/methods/test_shift.py @@ -1,9 +1,13 @@ import pytest -from pandas.errors import NullFrequencyError +from pandas.errors import ( + NullFrequencyError, +) import pandas as pd -from pandas import TimedeltaIndex +from pandas import ( + TimedeltaIndex, +) import pandas._testing as tm diff --git a/pandas/tests/indexes/timedeltas/test_constructors.py b/pandas/tests/indexes/timedeltas/test_constructors.py index 4e817ee708614..06c624f614423 100644 --- a/pandas/tests/indexes/timedeltas/test_constructors.py +++ b/pandas/tests/indexes/timedeltas/test_constructors.py @@ -1,4 +1,6 @@ -from datetime import timedelta +from datetime import ( + timedelta, +) import numpy as np import pytest diff --git a/pandas/tests/indexes/timedeltas/test_freq_attr.py b/pandas/tests/indexes/timedeltas/test_freq_attr.py index 39b9c11aa833c..953d497c27ca7 100644 --- a/pandas/tests/indexes/timedeltas/test_freq_attr.py +++ b/pandas/tests/indexes/timedeltas/test_freq_attr.py @@ -1,6 +1,8 @@ import pytest -from pandas import TimedeltaIndex +from pandas import ( + TimedeltaIndex, +) from pandas.tseries.offsets import ( DateOffset, diff --git a/pandas/tests/indexes/timedeltas/test_indexing.py b/pandas/tests/indexes/timedeltas/test_indexing.py index 2d2711520d44f..c354963c3a772 100644 --- a/pandas/tests/indexes/timedeltas/test_indexing.py +++ b/pandas/tests/indexes/timedeltas/test_indexing.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import re import numpy as np diff --git a/pandas/tests/indexes/timedeltas/test_pickle.py b/pandas/tests/indexes/timedeltas/test_pickle.py index befe709728bdd..ea232356aaa09 100644 --- a/pandas/tests/indexes/timedeltas/test_pickle.py +++ b/pandas/tests/indexes/timedeltas/test_pickle.py @@ -1,4 +1,6 @@ -from pandas import timedelta_range +from pandas import ( + timedelta_range, +) import pandas._testing as tm diff --git a/pandas/tests/indexes/timedeltas/test_scalar_compat.py b/pandas/tests/indexes/timedeltas/test_scalar_compat.py index 9f470b40d1f58..802453248bfb8 100644 --- a/pandas/tests/indexes/timedeltas/test_scalar_compat.py +++ b/pandas/tests/indexes/timedeltas/test_scalar_compat.py @@ -5,7 +5,9 @@ import numpy as np import pytest -from pandas._libs.tslibs.offsets import INVALID_FREQ_ERR_MSG +from pandas._libs.tslibs.offsets import ( + INVALID_FREQ_ERR_MSG, +) from pandas import ( Index, diff --git a/pandas/tests/indexes/timedeltas/test_setops.py b/pandas/tests/indexes/timedeltas/test_setops.py index cb6dce1e7ad80..1d4d171b90971 100644 --- a/pandas/tests/indexes/timedeltas/test_setops.py +++ b/pandas/tests/indexes/timedeltas/test_setops.py @@ -9,7 +9,9 @@ ) import pandas._testing as tm -from pandas.tseries.offsets import Hour +from pandas.tseries.offsets import ( + Hour, +) class TestTimedeltaIndex: diff --git a/pandas/tests/indexes/timedeltas/test_timedelta.py b/pandas/tests/indexes/timedeltas/test_timedelta.py index 1170fd6a053d9..1c3ff89d7e0fe 100644 --- a/pandas/tests/indexes/timedeltas/test_timedelta.py +++ b/pandas/tests/indexes/timedeltas/test_timedelta.py @@ -1,4 +1,6 @@ -from datetime import timedelta +from datetime import ( + timedelta, +) import numpy as np import pytest @@ -13,8 +15,12 @@ timedelta_range, ) import pandas._testing as tm -from pandas.core.arrays import TimedeltaArray -from pandas.tests.indexes.datetimelike import DatetimeLike +from pandas.core.arrays import ( + TimedeltaArray, +) +from pandas.tests.indexes.datetimelike import ( + DatetimeLike, +) randn = np.random.randn diff --git a/pandas/tests/indexing/common.py b/pandas/tests/indexing/common.py index 2af76f69a4300..99421c0779cf8 100644 --- a/pandas/tests/indexing/common.py +++ b/pandas/tests/indexing/common.py @@ -1,5 +1,7 @@ """ common utilities """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( Any, diff --git a/pandas/tests/indexing/interval/test_interval_new.py b/pandas/tests/indexing/interval/test_interval_new.py index 62f44a363f5f0..3dce22b299711 100644 --- a/pandas/tests/indexing/interval/test_interval_new.py +++ b/pandas/tests/indexing/interval/test_interval_new.py @@ -3,7 +3,9 @@ import numpy as np import pytest -from pandas.compat import IS64 +from pandas.compat import ( + IS64, +) from pandas import ( Index, diff --git a/pandas/tests/indexing/multiindex/test_chaining_and_caching.py b/pandas/tests/indexing/multiindex/test_chaining_and_caching.py index 932457eebcd8e..e30f42936aa92 100644 --- a/pandas/tests/indexing/multiindex/test_chaining_and_caching.py +++ b/pandas/tests/indexing/multiindex/test_chaining_and_caching.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.errors import SettingWithCopyError +from pandas.errors import ( + SettingWithCopyError, +) import pandas.util._test_decorators as td from pandas import ( diff --git a/pandas/tests/indexing/multiindex/test_datetime.py b/pandas/tests/indexing/multiindex/test_datetime.py index a49cb0bc2c43e..15fd9562f8f87 100644 --- a/pandas/tests/indexing/multiindex/test_datetime.py +++ b/pandas/tests/indexing/multiindex/test_datetime.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np diff --git a/pandas/tests/indexing/multiindex/test_getitem.py b/pandas/tests/indexing/multiindex/test_getitem.py index f8ce59527d4fc..a7569f33ab47a 100644 --- a/pandas/tests/indexing/multiindex/test_getitem.py +++ b/pandas/tests/indexing/multiindex/test_getitem.py @@ -8,7 +8,9 @@ Series, ) import pandas._testing as tm -from pandas.core.indexing import IndexingError +from pandas.core.indexing import ( + IndexingError, +) # ---------------------------------------------------------------------------- # test indexing of Series with multi-level Index diff --git a/pandas/tests/indexing/multiindex/test_multiindex.py b/pandas/tests/indexing/multiindex/test_multiindex.py index 8e507212976ec..89a9888f6597e 100644 --- a/pandas/tests/indexing/multiindex/test_multiindex.py +++ b/pandas/tests/indexing/multiindex/test_multiindex.py @@ -2,7 +2,9 @@ import pytest import pandas._libs.index as _index -from pandas.errors import PerformanceWarning +from pandas.errors import ( + PerformanceWarning, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/indexing/multiindex/test_setitem.py b/pandas/tests/indexing/multiindex/test_setitem.py index c890754d2d433..ebf53b776ced3 100644 --- a/pandas/tests/indexing/multiindex/test_setitem.py +++ b/pandas/tests/indexing/multiindex/test_setitem.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.errors import SettingWithCopyError +from pandas.errors import ( + SettingWithCopyError, +) import pandas.util._test_decorators as td import pandas as pd diff --git a/pandas/tests/indexing/multiindex/test_slice.py b/pandas/tests/indexing/multiindex/test_slice.py index 6a78b2243f07e..63aa8d9905e08 100644 --- a/pandas/tests/indexing/multiindex/test_slice.py +++ b/pandas/tests/indexing/multiindex/test_slice.py @@ -6,7 +6,9 @@ import numpy as np import pytest -from pandas.errors import UnsortedIndexError +from pandas.errors import ( + UnsortedIndexError, +) import pandas as pd from pandas import ( @@ -17,7 +19,9 @@ Timestamp, ) import pandas._testing as tm -from pandas.tests.indexing.common import _mklbl +from pandas.tests.indexing.common import ( + _mklbl, +) class TestMultiIndexSlicers: diff --git a/pandas/tests/indexing/test_at.py b/pandas/tests/indexing/test_at.py index 9df6cb640257e..b7cc7de5286a0 100644 --- a/pandas/tests/indexing/test_at.py +++ b/pandas/tests/indexing/test_at.py @@ -6,7 +6,9 @@ import numpy as np import pytest -from pandas.errors import InvalidIndexError +from pandas.errors import ( + InvalidIndexError, +) from pandas import ( CategoricalDtype, diff --git a/pandas/tests/indexing/test_categorical.py b/pandas/tests/indexing/test_categorical.py index 747e7972aacf1..686ecdb1bfd94 100644 --- a/pandas/tests/indexing/test_categorical.py +++ b/pandas/tests/indexing/test_categorical.py @@ -3,7 +3,9 @@ import numpy as np import pytest -from pandas.core.dtypes.common import is_categorical_dtype +from pandas.core.dtypes.common import ( + is_categorical_dtype, +) import pandas as pd from pandas import ( @@ -17,7 +19,9 @@ Timestamp, ) import pandas._testing as tm -from pandas.api.types import CategoricalDtype as CDT +from pandas.api.types import ( + CategoricalDtype as CDT, +) @pytest.fixture diff --git a/pandas/tests/indexing/test_chaining_and_caching.py b/pandas/tests/indexing/test_chaining_and_caching.py index 12d7d04353d6f..87a79d753d627 100644 --- a/pandas/tests/indexing/test_chaining_and_caching.py +++ b/pandas/tests/indexing/test_chaining_and_caching.py @@ -1,4 +1,6 @@ -from string import ascii_letters as letters +from string import ( + ascii_letters as letters, +) import numpy as np import pytest diff --git a/pandas/tests/indexing/test_check_indexer.py b/pandas/tests/indexing/test_check_indexer.py index 975a31b873792..352507ac4b2d3 100644 --- a/pandas/tests/indexing/test_check_indexer.py +++ b/pandas/tests/indexing/test_check_indexer.py @@ -3,7 +3,9 @@ import pandas as pd import pandas._testing as tm -from pandas.api.indexers import check_array_indexer +from pandas.api.indexers import ( + check_array_indexer, +) @pytest.mark.parametrize( diff --git a/pandas/tests/indexing/test_coercion.py b/pandas/tests/indexing/test_coercion.py index 86d6246437ea1..cdffa22126e52 100644 --- a/pandas/tests/indexing/test_coercion.py +++ b/pandas/tests/indexing/test_coercion.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from datetime import ( datetime, diff --git a/pandas/tests/indexing/test_iloc.py b/pandas/tests/indexing/test_iloc.py index 86510c7be257b..7fb09d30032b6 100644 --- a/pandas/tests/indexing/test_iloc.py +++ b/pandas/tests/indexing/test_iloc.py @@ -1,6 +1,8 @@ """ test positional based indexing with iloc """ -from datetime import datetime +from datetime import ( + datetime, +) import re from warnings import ( catch_warnings, @@ -10,7 +12,9 @@ import numpy as np import pytest -from pandas.errors import IndexingError +from pandas.errors import ( + IndexingError, +) import pandas.util._test_decorators as td from pandas import ( @@ -31,8 +35,12 @@ to_datetime, ) import pandas._testing as tm -from pandas.api.types import is_scalar -from pandas.tests.indexing.common import check_indexing_smoketest_or_raises +from pandas.api.types import ( + is_scalar, +) +from pandas.tests.indexing.common import ( + check_indexing_smoketest_or_raises, +) # We pass through the error message from numpy _slice_iloc_msg = re.escape( diff --git a/pandas/tests/indexing/test_indexing.py b/pandas/tests/indexing/test_indexing.py index 3d45b238017ca..5f3defec89561 100644 --- a/pandas/tests/indexing/test_indexing.py +++ b/pandas/tests/indexing/test_indexing.py @@ -1,14 +1,18 @@ """ test fancy indexing & misc """ import array -from datetime import datetime +from datetime import ( + datetime, +) import re import weakref import numpy as np import pytest -from pandas.errors import IndexingError +from pandas.errors import ( + IndexingError, +) from pandas.core.dtypes.common import ( is_float_dtype, @@ -27,8 +31,12 @@ timedelta_range, ) import pandas._testing as tm -from pandas.tests.indexing.common import _mklbl -from pandas.tests.indexing.test_floats import gen_obj +from pandas.tests.indexing.common import ( + _mklbl, +) +from pandas.tests.indexing.test_floats import ( + gen_obj, +) # ------------------------------------------------------------------------ # Indexing test cases diff --git a/pandas/tests/indexing/test_loc.py b/pandas/tests/indexing/test_loc.py index bbea179843f3a..1262406e605ad 100644 --- a/pandas/tests/indexing/test_loc.py +++ b/pandas/tests/indexing/test_loc.py @@ -1,5 +1,7 @@ """ test label based indexing with loc """ -from collections import namedtuple +from collections import ( + namedtuple, +) from datetime import ( date, datetime, @@ -8,11 +10,15 @@ ) import re -from dateutil.tz import gettz +from dateutil.tz import ( + gettz, +) import numpy as np import pytest -from pandas.errors import IndexingError +from pandas.errors import ( + IndexingError, +) import pandas.util._test_decorators as td import pandas as pd @@ -41,8 +47,12 @@ is_bool_dtype, is_scalar, ) -from pandas.core.indexing import _one_ellipsis_message -from pandas.tests.indexing.common import check_indexing_smoketest_or_raises +from pandas.core.indexing import ( + _one_ellipsis_message, +) +from pandas.tests.indexing.common import ( + check_indexing_smoketest_or_raises, +) @pytest.mark.parametrize( @@ -1304,7 +1314,9 @@ def test_loc_getitem_listlike_all_retains_sparse(self): @td.skip_if_no_scipy def test_loc_getitem_sparse_frame(self): # GH34687 - from scipy.sparse import eye + from scipy.sparse import ( + eye, + ) df = DataFrame.sparse.from_spmatrix(eye(5)) result = df.loc[range(2)] diff --git a/pandas/tests/interchange/test_impl.py b/pandas/tests/interchange/test_impl.py index 078a17510d502..1f835269299f3 100644 --- a/pandas/tests/interchange/test_impl.py +++ b/pandas/tests/interchange/test_impl.py @@ -1,20 +1,28 @@ -from datetime import datetime +from datetime import ( + datetime, +) import random import numpy as np import pytest -from pandas._libs.tslibs import iNaT +from pandas._libs.tslibs import ( + iNaT, +) import pandas.util._test_decorators as td import pandas as pd import pandas._testing as tm -from pandas.core.interchange.column import PandasColumn +from pandas.core.interchange.column import ( + PandasColumn, +) from pandas.core.interchange.dataframe_protocol import ( ColumnNullType, DtypeKind, ) -from pandas.core.interchange.from_dataframe import from_dataframe +from pandas.core.interchange.from_dataframe import ( + from_dataframe, +) test_data_categorical = { "ordered": pd.Categorical(list("testdata") * 30, ordered=True), diff --git a/pandas/tests/interchange/test_utils.py b/pandas/tests/interchange/test_utils.py index 4fd42abb7f3f1..ba3f35da8a49a 100644 --- a/pandas/tests/interchange/test_utils.py +++ b/pandas/tests/interchange/test_utils.py @@ -2,7 +2,9 @@ import pytest import pandas as pd -from pandas.core.interchange.utils import dtype_to_arrow_c_fmt +from pandas.core.interchange.utils import ( + dtype_to_arrow_c_fmt, +) # TODO: use ArrowSchema to get reference C-string. # At the time, there is no way to access ArrowSchema holding a type format string diff --git a/pandas/tests/internals/test_api.py b/pandas/tests/internals/test_api.py index c759cc163106d..5ab74384f7980 100644 --- a/pandas/tests/internals/test_api.py +++ b/pandas/tests/internals/test_api.py @@ -4,8 +4,12 @@ """ import pandas as pd -from pandas.core import internals -from pandas.core.internals import api +from pandas.core import ( + internals, +) +from pandas.core.internals import ( + api, +) def test_internals_api(): diff --git a/pandas/tests/internals/test_internals.py b/pandas/tests/internals/test_internals.py index 964a4c4982481..86cdd2becd0e5 100644 --- a/pandas/tests/internals/test_internals.py +++ b/pandas/tests/internals/test_internals.py @@ -8,11 +8,17 @@ import numpy as np import pytest -from pandas._libs.internals import BlockPlacement -from pandas.compat import IS64 +from pandas._libs.internals import ( + BlockPlacement, +) +from pandas.compat import ( + IS64, +) import pandas.util._test_decorators as td -from pandas.core.dtypes.common import is_scalar +from pandas.core.dtypes.common import ( + is_scalar, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/internals/test_managers.py b/pandas/tests/internals/test_managers.py index 75aa901fce910..cf43885e56b0c 100644 --- a/pandas/tests/internals/test_managers.py +++ b/pandas/tests/internals/test_managers.py @@ -1,7 +1,9 @@ """ Testing interaction between the different managers (BlockManager, ArrayManager) """ -from pandas.core.dtypes.missing import array_equivalent +from pandas.core.dtypes.missing import ( + array_equivalent, +) import pandas as pd import pandas._testing as tm diff --git a/pandas/tests/io/conftest.py b/pandas/tests/io/conftest.py index b863e85cae457..5fc410bf3455d 100644 --- a/pandas/tests/io/conftest.py +++ b/pandas/tests/io/conftest.py @@ -15,7 +15,9 @@ import pandas._testing as tm -from pandas.io.parsers import read_csv +from pandas.io.parsers import ( + read_csv, +) @pytest.fixture diff --git a/pandas/tests/io/excel/conftest.py b/pandas/tests/io/excel/conftest.py index 15ff52d5bea48..97f83f5573814 100644 --- a/pandas/tests/io/excel/conftest.py +++ b/pandas/tests/io/excel/conftest.py @@ -2,7 +2,9 @@ import pandas._testing as tm -from pandas.io.parsers import read_csv +from pandas.io.parsers import ( + read_csv, +) @pytest.fixture diff --git a/pandas/tests/io/excel/test_odswriter.py b/pandas/tests/io/excel/test_odswriter.py index 21d31ec8a7fb5..0522eff48de5e 100644 --- a/pandas/tests/io/excel/test_odswriter.py +++ b/pandas/tests/io/excel/test_odswriter.py @@ -4,7 +4,9 @@ import pandas._testing as tm -from pandas.io.excel import ExcelWriter +from pandas.io.excel import ( + ExcelWriter, +) odf = pytest.importorskip("odf") diff --git a/pandas/tests/io/excel/test_openpyxl.py b/pandas/tests/io/excel/test_openpyxl.py index d28296ec2e380..162215a5fe59b 100644 --- a/pandas/tests/io/excel/test_openpyxl.py +++ b/pandas/tests/io/excel/test_openpyxl.py @@ -1,12 +1,16 @@ import contextlib -from pathlib import Path +from pathlib import ( + Path, +) import re import numpy as np import pytest import pandas as pd -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm from pandas.io.excel import ( @@ -20,7 +24,9 @@ def test_to_excel_styleconverter(ext): - from openpyxl import styles + from openpyxl import ( + styles, + ) hstyle = { "font": {"color": "00FF0000", "bold": True}, @@ -53,7 +59,9 @@ def test_to_excel_styleconverter(ext): def test_write_cells_merge_styled(ext): - from pandas.io.formats.excel import ExcelCell + from pandas.io.formats.excel import ( + ExcelCell, + ) sheet_name = "merge_styled" diff --git a/pandas/tests/io/excel/test_readers.py b/pandas/tests/io/excel/test_readers.py index 66e55fe86d964..a982f11eb97a4 100644 --- a/pandas/tests/io/excel/test_readers.py +++ b/pandas/tests/io/excel/test_readers.py @@ -2,12 +2,20 @@ datetime, time, ) -from functools import partial +from functools import ( + partial, +) import os -from pathlib import Path +from pathlib import ( + Path, +) import platform -from urllib.error import URLError -from zipfile import BadZipFile +from urllib.error import ( + URLError, +) +from zipfile import ( + BadZipFile, +) import numpy as np import pytest @@ -568,7 +576,9 @@ def test_use_nullable_dtypes(self, read_ext, dtype_backend, option): if dtype_backend == "pyarrow": import pyarrow as pa - from pandas.arrays import ArrowExtensionArray + from pandas.arrays import ( + ArrowExtensionArray, + ) expected = DataFrame( { @@ -824,7 +834,9 @@ def test_corrupt_bytes_raises(self, engine): "specify an engine manually." ) elif engine == "xlrd": - from xlrd import XLRDError + from xlrd import ( + XLRDError, + ) error = XLRDError msg = ( @@ -912,7 +924,9 @@ def test_read_from_pathlib_path(self, read_ext): @td.skip_if_no("py.path") def test_read_from_py_localpath(self, read_ext): # GH12655 - from py.path import local as LocalPath + from py.path import ( + local as LocalPath, + ) str_path = os.path.join("test1" + read_ext) expected = pd.read_excel(str_path, sheet_name="Sheet1", index_col=0) diff --git a/pandas/tests/io/excel/test_style.py b/pandas/tests/io/excel/test_style.py index b26d59b9bdebb..e8fc72770d370 100644 --- a/pandas/tests/io/excel/test_style.py +++ b/pandas/tests/io/excel/test_style.py @@ -12,8 +12,12 @@ ) import pandas._testing as tm -from pandas.io.excel import ExcelWriter -from pandas.io.formats.excel import ExcelFormatter +from pandas.io.excel import ( + ExcelWriter, +) +from pandas.io.formats.excel import ( + ExcelFormatter, +) pytest.importorskip("jinja2") # jinja2 is currently required for Styler.__init__(). Technically Styler.to_excel diff --git a/pandas/tests/io/excel/test_writers.py b/pandas/tests/io/excel/test_writers.py index 9a8e4eff5470a..ea4ce5a8dc7bd 100644 --- a/pandas/tests/io/excel/test_writers.py +++ b/pandas/tests/io/excel/test_writers.py @@ -3,8 +3,12 @@ datetime, timedelta, ) -from functools import partial -from io import BytesIO +from functools import ( + partial, +) +from io import ( + BytesIO, +) import os import re @@ -29,7 +33,9 @@ _XlsxWriter, register_writer, ) -from pandas.io.excel._util import _writers +from pandas.io.excel._util import ( + _writers, +) @pytest.fixture diff --git a/pandas/tests/io/excel/test_xlrd.py b/pandas/tests/io/excel/test_xlrd.py index 1f8fb4b801356..45ee5ce656d1e 100644 --- a/pandas/tests/io/excel/test_xlrd.py +++ b/pandas/tests/io/excel/test_xlrd.py @@ -5,8 +5,12 @@ import pandas as pd import pandas._testing as tm -from pandas.io.excel import ExcelFile -from pandas.io.excel._base import inspect_excel_format +from pandas.io.excel import ( + ExcelFile, +) +from pandas.io.excel._base import ( + inspect_excel_format, +) xlrd = pytest.importorskip("xlrd") @@ -39,7 +43,9 @@ def test_read_xlrd_book(read_ext_xlrd, datapath): def test_read_xlsx_fails(datapath): # GH 29375 - from xlrd.biffh import XLRDError + from xlrd.biffh import ( + XLRDError, + ) path = datapath("io", "data", "excel", "test1.xlsx") with pytest.raises(XLRDError, match="Excel xlsx file; not supported"): diff --git a/pandas/tests/io/excel/test_xlsxwriter.py b/pandas/tests/io/excel/test_xlsxwriter.py index c4d02d71390cc..eef084cda7cc2 100644 --- a/pandas/tests/io/excel/test_xlsxwriter.py +++ b/pandas/tests/io/excel/test_xlsxwriter.py @@ -2,10 +2,14 @@ import pytest -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm -from pandas.io.excel import ExcelWriter +from pandas.io.excel import ( + ExcelWriter, +) xlsxwriter = pytest.importorskip("xlsxwriter") diff --git a/pandas/tests/io/formats/style/test_bar.py b/pandas/tests/io/formats/style/test_bar.py index 19884aaac86a7..0f4cefd908933 100644 --- a/pandas/tests/io/formats/style/test_bar.py +++ b/pandas/tests/io/formats/style/test_bar.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas import DataFrame +from pandas import ( + DataFrame, +) pytest.importorskip("jinja2") diff --git a/pandas/tests/io/formats/style/test_exceptions.py b/pandas/tests/io/formats/style/test_exceptions.py index d52e3a37e7693..e56b3b526e396 100644 --- a/pandas/tests/io/formats/style/test_exceptions.py +++ b/pandas/tests/io/formats/style/test_exceptions.py @@ -7,7 +7,9 @@ MultiIndex, ) -from pandas.io.formats.style import Styler +from pandas.io.formats.style import ( + Styler, +) @pytest.fixture diff --git a/pandas/tests/io/formats/style/test_format.py b/pandas/tests/io/formats/style/test_format.py index 0b114ea128b0b..b78e993c0ea0e 100644 --- a/pandas/tests/io/formats/style/test_format.py +++ b/pandas/tests/io/formats/style/test_format.py @@ -12,8 +12,12 @@ ) pytest.importorskip("jinja2") -from pandas.io.formats.style import Styler -from pandas.io.formats.style_render import _str_escape +from pandas.io.formats.style import ( + Styler, +) +from pandas.io.formats.style_render import ( + _str_escape, +) @pytest.fixture diff --git a/pandas/tests/io/formats/style/test_highlight.py b/pandas/tests/io/formats/style/test_highlight.py index 3d59719010ee0..5a9406fd48412 100644 --- a/pandas/tests/io/formats/style/test_highlight.py +++ b/pandas/tests/io/formats/style/test_highlight.py @@ -9,7 +9,9 @@ pytest.importorskip("jinja2") -from pandas.io.formats.style import Styler +from pandas.io.formats.style import ( + Styler, +) @pytest.fixture(params=[(None, "float64"), (NA, "Int64")]) diff --git a/pandas/tests/io/formats/style/test_html.py b/pandas/tests/io/formats/style/test_html.py index 1867260fbc4b4..e2b0ea4ee613e 100644 --- a/pandas/tests/io/formats/style/test_html.py +++ b/pandas/tests/io/formats/style/test_html.py @@ -13,7 +13,9 @@ ) jinja2 = pytest.importorskip("jinja2") -from pandas.io.formats.style import Styler +from pandas.io.formats.style import ( + Styler, +) loader = jinja2.PackageLoader("pandas", "io/formats/templates") env = jinja2.Environment(loader=loader, trim_blocks=True) diff --git a/pandas/tests/io/formats/style/test_matplotlib.py b/pandas/tests/io/formats/style/test_matplotlib.py index 591fa7f72050e..cdd7bae9f1d3d 100644 --- a/pandas/tests/io/formats/style/test_matplotlib.py +++ b/pandas/tests/io/formats/style/test_matplotlib.py @@ -12,7 +12,9 @@ import matplotlib as mpl -from pandas.io.formats.style import Styler +from pandas.io.formats.style import ( + Styler, +) @pytest.fixture diff --git a/pandas/tests/io/formats/style/test_non_unique.py b/pandas/tests/io/formats/style/test_non_unique.py index b719bf3372038..78e694fe5e17e 100644 --- a/pandas/tests/io/formats/style/test_non_unique.py +++ b/pandas/tests/io/formats/style/test_non_unique.py @@ -1,4 +1,6 @@ -from textwrap import dedent +from textwrap import ( + dedent, +) import pytest @@ -9,7 +11,9 @@ pytest.importorskip("jinja2") -from pandas.io.formats.style import Styler +from pandas.io.formats.style import ( + Styler, +) @pytest.fixture diff --git a/pandas/tests/io/formats/style/test_style.py b/pandas/tests/io/formats/style/test_style.py index 0387f317c5c0d..22b77faa5c7fe 100644 --- a/pandas/tests/io/formats/style/test_style.py +++ b/pandas/tests/io/formats/style/test_style.py @@ -1,7 +1,9 @@ import contextlib import copy import re -from textwrap import dedent +from textwrap import ( + dedent, +) import numpy as np import pytest diff --git a/pandas/tests/io/formats/style/test_to_latex.py b/pandas/tests/io/formats/style/test_to_latex.py index 1c67d125664f8..555725789dd6f 100644 --- a/pandas/tests/io/formats/style/test_to_latex.py +++ b/pandas/tests/io/formats/style/test_to_latex.py @@ -1,4 +1,6 @@ -from textwrap import dedent +from textwrap import ( + dedent, +) import numpy as np import pytest @@ -10,7 +12,9 @@ ) pytest.importorskip("jinja2") -from pandas.io.formats.style import Styler +from pandas.io.formats.style import ( + Styler, +) from pandas.io.formats.style_render import ( _parse_latex_cell_styles, _parse_latex_css_conversion, diff --git a/pandas/tests/io/formats/style/test_to_string.py b/pandas/tests/io/formats/style/test_to_string.py index 913857396446c..756319bbe5074 100644 --- a/pandas/tests/io/formats/style/test_to_string.py +++ b/pandas/tests/io/formats/style/test_to_string.py @@ -1,11 +1,17 @@ -from textwrap import dedent +from textwrap import ( + dedent, +) import pytest -from pandas import DataFrame +from pandas import ( + DataFrame, +) pytest.importorskip("jinja2") -from pandas.io.formats.style import Styler +from pandas.io.formats.style import ( + Styler, +) @pytest.fixture diff --git a/pandas/tests/io/formats/style/test_tooltip.py b/pandas/tests/io/formats/style/test_tooltip.py index c49a0e05c6700..1b9273d6ec9e9 100644 --- a/pandas/tests/io/formats/style/test_tooltip.py +++ b/pandas/tests/io/formats/style/test_tooltip.py @@ -1,10 +1,14 @@ import numpy as np import pytest -from pandas import DataFrame +from pandas import ( + DataFrame, +) pytest.importorskip("jinja2") -from pandas.io.formats.style import Styler +from pandas.io.formats.style import ( + Styler, +) @pytest.fixture diff --git a/pandas/tests/io/formats/test_console.py b/pandas/tests/io/formats/test_console.py index dd7b57df9baed..8d0cbdf45d4d1 100644 --- a/pandas/tests/io/formats/test_console.py +++ b/pandas/tests/io/formats/test_console.py @@ -2,7 +2,9 @@ import pytest -from pandas._config import detect_console_encoding +from pandas._config import ( + detect_console_encoding, +) class MockEncoding: diff --git a/pandas/tests/io/formats/test_css.py b/pandas/tests/io/formats/test_css.py index db436d8283b99..e7b51e6828245 100644 --- a/pandas/tests/io/formats/test_css.py +++ b/pandas/tests/io/formats/test_css.py @@ -1,10 +1,14 @@ import pytest -from pandas.errors import CSSWarning +from pandas.errors import ( + CSSWarning, +) import pandas._testing as tm -from pandas.io.formats.css import CSSResolver +from pandas.io.formats.css import ( + CSSResolver, +) def assert_resolves(css, props, inherited=None): diff --git a/pandas/tests/io/formats/test_eng_formatting.py b/pandas/tests/io/formats/test_eng_formatting.py index 2f18623559557..fb030fa674252 100644 --- a/pandas/tests/io/formats/test_eng_formatting.py +++ b/pandas/tests/io/formats/test_eng_formatting.py @@ -1,6 +1,8 @@ import numpy as np -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm import pandas.io.formats.format as fmt diff --git a/pandas/tests/io/formats/test_format.py b/pandas/tests/io/formats/test_format.py index fccb053e73d4b..b85259ac78f37 100644 --- a/pandas/tests/io/formats/test_format.py +++ b/pandas/tests/io/formats/test_format.py @@ -1,19 +1,29 @@ """ Test output formatting for Series/DataFrame, including to_string & reprs """ -from contextlib import nullcontext +from contextlib import ( + nullcontext, +) from datetime import ( datetime, time, timedelta, ) -from io import StringIO +from io import ( + StringIO, +) import itertools import locale -from operator import methodcaller -from pathlib import Path +from operator import ( + methodcaller, +) +from pathlib import ( + Path, +) import re -from shutil import get_terminal_size +from shutil import ( + get_terminal_size, +) import sys import textwrap @@ -22,7 +32,9 @@ import pytest import pytz -from pandas._config import config +from pandas._config import ( + config, +) from pandas.compat import ( IS64, @@ -45,7 +57,9 @@ ) import pandas._testing as tm -from pandas.io.formats import printing +from pandas.io.formats import ( + printing, +) import pandas.io.formats.format as fmt use_32bit_repr = is_platform_windows() or not IS64 diff --git a/pandas/tests/io/formats/test_info.py b/pandas/tests/io/formats/test_info.py index 06c1aacc3eac0..0c36a8f041dba 100644 --- a/pandas/tests/io/formats/test_info.py +++ b/pandas/tests/io/formats/test_info.py @@ -1,6 +1,10 @@ -from io import StringIO +from io import ( + StringIO, +) import re -from string import ascii_uppercase as uppercase +from string import ( + ascii_uppercase as uppercase, +) import sys import textwrap diff --git a/pandas/tests/io/formats/test_printing.py b/pandas/tests/io/formats/test_printing.py index 803ed8d342a2f..d169adb630e9d 100644 --- a/pandas/tests/io/formats/test_printing.py +++ b/pandas/tests/io/formats/test_printing.py @@ -6,7 +6,9 @@ import pandas as pd -from pandas.io.formats import printing +from pandas.io.formats import ( + printing, +) import pandas.io.formats.format as fmt diff --git a/pandas/tests/io/formats/test_series_info.py b/pandas/tests/io/formats/test_series_info.py index 761dd07dbef51..ee0dbee846863 100644 --- a/pandas/tests/io/formats/test_series_info.py +++ b/pandas/tests/io/formats/test_series_info.py @@ -1,11 +1,17 @@ -from io import StringIO -from string import ascii_uppercase as uppercase +from io import ( + StringIO, +) +from string import ( + ascii_uppercase as uppercase, +) import textwrap import numpy as np import pytest -from pandas.compat import PYPY +from pandas.compat import ( + PYPY, +) from pandas import ( CategoricalIndex, diff --git a/pandas/tests/io/formats/test_to_csv.py b/pandas/tests/io/formats/test_to_csv.py index 4e47e4197c710..a2113dbf96e04 100644 --- a/pandas/tests/io/formats/test_to_csv.py +++ b/pandas/tests/io/formats/test_to_csv.py @@ -1,9 +1,13 @@ import io import os import sys -from zipfile import ZipFile +from zipfile import ( + ZipFile, +) -from _csv import Error +from _csv import ( + Error, +) import numpy as np import pytest @@ -13,7 +17,9 @@ compat, ) import pandas._testing as tm -from pandas.tests.io.test_compression import _compression_to_extension +from pandas.tests.io.test_compression import ( + _compression_to_extension, +) class TestToCSV: diff --git a/pandas/tests/io/formats/test_to_excel.py b/pandas/tests/io/formats/test_to_excel.py index 2a0f9f59972ef..b78cb15fe109e 100644 --- a/pandas/tests/io/formats/test_to_excel.py +++ b/pandas/tests/io/formats/test_to_excel.py @@ -6,7 +6,9 @@ import pytest -from pandas.errors import CSSWarning +from pandas.errors import ( + CSSWarning, +) import pandas.util._test_decorators as td import pandas._testing as tm @@ -338,7 +340,9 @@ def tests_css_named_colors_valid(): @td.skip_if_no_mpl def test_css_named_colors_from_mpl_present(): - from matplotlib.colors import CSS4_COLORS as mpl_colors + from matplotlib.colors import ( + CSS4_COLORS as mpl_colors, + ) pd_colors = CSSToExcelConverter.NAMED_COLORS for name, color in mpl_colors.items(): diff --git a/pandas/tests/io/formats/test_to_html.py b/pandas/tests/io/formats/test_to_html.py index a66858d3f983e..0c0453f58216c 100644 --- a/pandas/tests/io/formats/test_to_html.py +++ b/pandas/tests/io/formats/test_to_html.py @@ -1,5 +1,9 @@ -from datetime import datetime -from io import StringIO +from datetime import ( + datetime, +) +from io import ( + StringIO, +) import re import numpy as np diff --git a/pandas/tests/io/formats/test_to_latex.py b/pandas/tests/io/formats/test_to_latex.py index 8c66963bbb438..b54eba1b37467 100644 --- a/pandas/tests/io/formats/test_to_latex.py +++ b/pandas/tests/io/formats/test_to_latex.py @@ -1,6 +1,10 @@ import codecs -from datetime import datetime -from textwrap import dedent +from datetime import ( + datetime, +) +from textwrap import ( + dedent, +) import pytest @@ -11,7 +15,9 @@ ) import pandas._testing as tm -from pandas.io.formats.format import DataFrameFormatter +from pandas.io.formats.format import ( + DataFrameFormatter, +) from pandas.io.formats.latex import ( RegularTableBuilder, RowBodyIterator, diff --git a/pandas/tests/io/formats/test_to_markdown.py b/pandas/tests/io/formats/test_to_markdown.py index 437f079c5f2f9..ae3022a5c5d19 100644 --- a/pandas/tests/io/formats/test_to_markdown.py +++ b/pandas/tests/io/formats/test_to_markdown.py @@ -1,4 +1,6 @@ -from io import StringIO +from io import ( + StringIO, +) import pytest diff --git a/pandas/tests/io/formats/test_to_string.py b/pandas/tests/io/formats/test_to_string.py index 31ba018a178ca..6ea61ffa9d770 100644 --- a/pandas/tests/io/formats/test_to_string.py +++ b/pandas/tests/io/formats/test_to_string.py @@ -1,6 +1,12 @@ -from datetime import datetime -from io import StringIO -from textwrap import dedent +from datetime import ( + datetime, +) +from io import ( + StringIO, +) +from textwrap import ( + dedent, +) import numpy as np import pytest diff --git a/pandas/tests/io/generate_legacy_storage_files.py b/pandas/tests/io/generate_legacy_storage_files.py index 974a2174cb03b..82e9dcbd41aa8 100644 --- a/pandas/tests/io/generate_legacy_storage_files.py +++ b/pandas/tests/io/generate_legacy_storage_files.py @@ -32,7 +32,9 @@ """ -from datetime import timedelta +from datetime import ( + timedelta, +) import os import pickle import platform as pl @@ -57,7 +59,9 @@ period_range, timedelta_range, ) -from pandas.arrays import SparseArray +from pandas.arrays import ( + SparseArray, +) from pandas.tseries.offsets import ( FY5253, diff --git a/pandas/tests/io/json/test_compression.py b/pandas/tests/io/json/test_compression.py index 143d2431d4147..67dbd6732d0b3 100644 --- a/pandas/tests/io/json/test_compression.py +++ b/pandas/tests/io/json/test_compression.py @@ -1,4 +1,6 @@ -from io import BytesIO +from io import ( + BytesIO, +) import pytest @@ -6,7 +8,9 @@ import pandas as pd import pandas._testing as tm -from pandas.tests.io.test_compression import _compression_to_extension +from pandas.tests.io.test_compression import ( + _compression_to_extension, +) def test_compression_roundtrip(compression): diff --git a/pandas/tests/io/json/test_deprecated_kwargs.py b/pandas/tests/io/json/test_deprecated_kwargs.py index 7e3296db75323..5ce8c4e100fb2 100644 --- a/pandas/tests/io/json/test_deprecated_kwargs.py +++ b/pandas/tests/io/json/test_deprecated_kwargs.py @@ -5,7 +5,9 @@ import pandas as pd import pandas._testing as tm -from pandas.io.json import read_json +from pandas.io.json import ( + read_json, +) def test_good_kwargs(): diff --git a/pandas/tests/io/json/test_json_table_schema.py b/pandas/tests/io/json/test_json_table_schema.py index 8cd5b8adb27a5..12c816e9ea0fe 100644 --- a/pandas/tests/io/json/test_json_table_schema.py +++ b/pandas/tests/io/json/test_json_table_schema.py @@ -1,5 +1,7 @@ """Tests for Table Schema integration.""" -from collections import OrderedDict +from collections import ( + OrderedDict, +) import json import numpy as np @@ -12,7 +14,9 @@ ) import pandas as pd -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm from pandas.io.json._table_schema import ( diff --git a/pandas/tests/io/json/test_json_table_schema_ext_dtype.py b/pandas/tests/io/json/test_json_table_schema_ext_dtype.py index 75845148f6581..37fab49dc192a 100644 --- a/pandas/tests/io/json/test_json_table_schema_ext_dtype.py +++ b/pandas/tests/io/json/test_json_table_schema_ext_dtype.py @@ -1,6 +1,8 @@ """Tests for ExtensionDtype Table Schema integration.""" -from collections import OrderedDict +from collections import ( + OrderedDict, +) import datetime as dt import decimal import json @@ -15,9 +17,15 @@ read_json, ) import pandas._testing as tm -from pandas.core.arrays.integer import Int64Dtype -from pandas.core.arrays.string_ import StringDtype -from pandas.core.series import Series +from pandas.core.arrays.integer import ( + Int64Dtype, +) +from pandas.core.arrays.string_ import ( + StringDtype, +) +from pandas.core.series import ( + Series, +) from pandas.tests.extension.date import ( DateArray, DateDtype, diff --git a/pandas/tests/io/json/test_normalize.py b/pandas/tests/io/json/test_normalize.py index 78181fe2c4729..e07f6938d0afb 100644 --- a/pandas/tests/io/json/test_normalize.py +++ b/pandas/tests/io/json/test_normalize.py @@ -11,7 +11,9 @@ ) import pandas._testing as tm -from pandas.io.json._normalize import nested_to_record +from pandas.io.json._normalize import ( + nested_to_record, +) @pytest.fixture diff --git a/pandas/tests/io/json/test_pandas.py b/pandas/tests/io/json/test_pandas.py index 7e2d123c72b01..2cdf8e034aa74 100644 --- a/pandas/tests/io/json/test_pandas.py +++ b/pandas/tests/io/json/test_pandas.py @@ -1,7 +1,13 @@ import datetime -from datetime import timedelta -from decimal import Decimal -from io import StringIO +from datetime import ( + timedelta, +) +from decimal import ( + Decimal, +) +from io import ( + StringIO, +) import json import os import sys @@ -10,7 +16,9 @@ import numpy as np import pytest -from pandas.compat import IS64 +from pandas.compat import ( + IS64, +) import pandas.util._test_decorators as td import pandas as pd @@ -813,7 +821,9 @@ def test_date_index_and_values(self, date_format, as_object, date_typ): ) def test_convert_dates_infer(self, infer_word): # GH10747 - from pandas.io.json import dumps + from pandas.io.json import ( + dumps, + ) data = [{"id": 1, infer_word: 1036713600000}, {"id": 2}] expected = DataFrame( @@ -1032,7 +1042,9 @@ def test_default_handler(self): tm.assert_frame_equal(expected, result, check_index_type=False) def test_default_handler_indirect(self): - from pandas.io.json import dumps + from pandas.io.json import ( + dumps, + ) def default(obj): if isinstance(obj, complex): @@ -1134,7 +1146,9 @@ def test_sparse(self): ], ) def test_tz_is_utc(self, ts): - from pandas.io.json import dumps + from pandas.io.json import ( + dumps, + ) exp = '"2013-01-10T05:00:00.000Z"' @@ -1143,7 +1157,9 @@ def test_tz_is_utc(self, ts): assert dumps(dt, iso_dates=True) == exp def test_tz_is_naive(self): - from pandas.io.json import dumps + from pandas.io.json import ( + dumps, + ) ts = Timestamp("2013-01-10 05:00:00") exp = '"2013-01-10T05:00:00.000"' @@ -1161,7 +1177,9 @@ def test_tz_is_naive(self): ], ) def test_tz_range_is_utc(self, tz_range): - from pandas.io.json import dumps + from pandas.io.json import ( + dumps, + ) exp = '["2013-01-01T05:00:00.000Z","2013-01-02T05:00:00.000Z"]' dfexp = ( @@ -1182,7 +1200,9 @@ def test_tz_range_is_utc(self, tz_range): assert dumps(df.astype({"DT": object}), iso_dates=True) def test_tz_range_is_naive(self): - from pandas.io.json import dumps + from pandas.io.json import ( + dumps, + ) dti = pd.date_range("2013-01-01 05:00:00", periods=2) @@ -1915,7 +1935,9 @@ def test_read_json_nullable(self, string_storage, dtype_backend, orient, option) ) if dtype_backend == "pyarrow": - from pandas.arrays import ArrowExtensionArray + from pandas.arrays import ( + ArrowExtensionArray, + ) expected = DataFrame( { @@ -1945,7 +1967,9 @@ def test_read_json_nullable_series(self, string_storage, dtype_backend, orient): expected = Series([1, np.nan, 3], dtype="Int64") if dtype_backend == "pyarrow": - from pandas.arrays import ArrowExtensionArray + from pandas.arrays import ( + ArrowExtensionArray, + ) expected = Series(ArrowExtensionArray(pa.array(expected, from_pandas=True))) diff --git a/pandas/tests/io/json/test_readlines.py b/pandas/tests/io/json/test_readlines.py index 9b36423be73dd..7bfc7aa4d1dfc 100644 --- a/pandas/tests/io/json/test_readlines.py +++ b/pandas/tests/io/json/test_readlines.py @@ -1,6 +1,12 @@ -from io import StringIO -from pathlib import Path -from typing import Iterator +from io import ( + StringIO, +) +from pathlib import ( + Path, +) +from typing import ( + Iterator, +) import pytest @@ -11,7 +17,9 @@ ) import pandas._testing as tm -from pandas.io.json._json import JsonReader +from pandas.io.json._json import ( + JsonReader, +) @pytest.fixture diff --git a/pandas/tests/io/json/test_ujson.py b/pandas/tests/io/json/test_ujson.py index 6b635a4f46972..77a161d156c53 100644 --- a/pandas/tests/io/json/test_ujson.py +++ b/pandas/tests/io/json/test_ujson.py @@ -13,7 +13,9 @@ import pytz import pandas._libs.json as ujson -from pandas.compat import IS64 +from pandas.compat import ( + IS64, +) from pandas import ( DataFrame, diff --git a/pandas/tests/io/parser/common/test_chunksize.py b/pandas/tests/io/parser/common/test_chunksize.py index c8cef56c73902..e28b63a43d296 100644 --- a/pandas/tests/io/parser/common/test_chunksize.py +++ b/pandas/tests/io/parser/common/test_chunksize.py @@ -2,12 +2,16 @@ Tests that work on both the Python and C engines but do not have a specific classification into the other test modules. """ -from io import StringIO +from io import ( + StringIO, +) import numpy as np import pytest -from pandas.errors import DtypeWarning +from pandas.errors import ( + DtypeWarning, +) from pandas import ( DataFrame, diff --git a/pandas/tests/io/parser/common/test_common_basic.py b/pandas/tests/io/parser/common/test_common_basic.py index 6656face3be84..0378106d6b7e9 100644 --- a/pandas/tests/io/parser/common/test_common_basic.py +++ b/pandas/tests/io/parser/common/test_common_basic.py @@ -2,11 +2,19 @@ Tests that work on both the Python and C engines but do not have a specific classification into the other test modules. """ -from datetime import datetime -from inspect import signature -from io import StringIO +from datetime import ( + datetime, +) +from inspect import ( + signature, +) +from io import ( + StringIO, +) import os -from pathlib import Path +from pathlib import ( + Path, +) import sys import numpy as np @@ -26,8 +34,12 @@ ) import pandas._testing as tm -from pandas.io.parsers import TextFileReader -from pandas.io.parsers.c_parser_wrapper import CParserWrapper +from pandas.io.parsers import ( + TextFileReader, +) +from pandas.io.parsers.c_parser_wrapper import ( + CParserWrapper, +) xfail_pyarrow = pytest.mark.usefixtures("pyarrow_xfail") skip_pyarrow = pytest.mark.usefixtures("pyarrow_skip") diff --git a/pandas/tests/io/parser/common/test_data_list.py b/pandas/tests/io/parser/common/test_data_list.py index 8d484bba1cb9d..6951bfeec52da 100644 --- a/pandas/tests/io/parser/common/test_data_list.py +++ b/pandas/tests/io/parser/common/test_data_list.py @@ -3,14 +3,20 @@ specific classification into the other test modules. """ import csv -from io import StringIO +from io import ( + StringIO, +) import pytest -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm -from pandas.io.parsers import TextParser +from pandas.io.parsers import ( + TextParser, +) xfail_pyarrow = pytest.mark.usefixtures("pyarrow_xfail") diff --git a/pandas/tests/io/parser/common/test_decimal.py b/pandas/tests/io/parser/common/test_decimal.py index ab58ddff9c06e..d51d5f3c66f98 100644 --- a/pandas/tests/io/parser/common/test_decimal.py +++ b/pandas/tests/io/parser/common/test_decimal.py @@ -2,11 +2,15 @@ Tests that work on both the Python and C engines but do not have a specific classification into the other test modules. """ -from io import StringIO +from io import ( + StringIO, +) import pytest -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm pytestmark = pytest.mark.usefixtures("pyarrow_skip") diff --git a/pandas/tests/io/parser/common/test_file_buffer_url.py b/pandas/tests/io/parser/common/test_file_buffer_url.py index c11a59a8b4660..40ab260014b78 100644 --- a/pandas/tests/io/parser/common/test_file_buffer_url.py +++ b/pandas/tests/io/parser/common/test_file_buffer_url.py @@ -8,7 +8,9 @@ ) import os import platform -from urllib.error import URLError +from urllib.error import ( + URLError, +) import uuid import pytest @@ -19,7 +21,9 @@ ) import pandas.util._test_decorators as td -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm # TODO(1.4) Please xfail individual tests at release time diff --git a/pandas/tests/io/parser/common/test_float.py b/pandas/tests/io/parser/common/test_float.py index 2ca98de914f9e..2ae1d4daf37be 100644 --- a/pandas/tests/io/parser/common/test_float.py +++ b/pandas/tests/io/parser/common/test_float.py @@ -2,14 +2,20 @@ Tests that work on both the Python and C engines but do not have a specific classification into the other test modules. """ -from io import StringIO +from io import ( + StringIO, +) import numpy as np import pytest -from pandas.compat import is_platform_linux +from pandas.compat import ( + is_platform_linux, +) -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm pytestmark = pytest.mark.usefixtures("pyarrow_skip") diff --git a/pandas/tests/io/parser/common/test_index.py b/pandas/tests/io/parser/common/test_index.py index 69afb9fe56472..dedbb9015b30b 100644 --- a/pandas/tests/io/parser/common/test_index.py +++ b/pandas/tests/io/parser/common/test_index.py @@ -2,8 +2,12 @@ Tests that work on both the Python and C engines but do not have a specific classification into the other test modules. """ -from datetime import datetime -from io import StringIO +from datetime import ( + datetime, +) +from io import ( + StringIO, +) import os import pytest diff --git a/pandas/tests/io/parser/common/test_inf.py b/pandas/tests/io/parser/common/test_inf.py index d43fb2f5187e1..3a8c7b03ad039 100644 --- a/pandas/tests/io/parser/common/test_inf.py +++ b/pandas/tests/io/parser/common/test_inf.py @@ -2,7 +2,9 @@ Tests that work on both the Python and C engines but do not have a specific classification into the other test modules. """ -from io import StringIO +from io import ( + StringIO, +) import numpy as np import pytest diff --git a/pandas/tests/io/parser/common/test_ints.py b/pandas/tests/io/parser/common/test_ints.py index e3159ef3e6a42..66cf9ac5dab93 100644 --- a/pandas/tests/io/parser/common/test_ints.py +++ b/pandas/tests/io/parser/common/test_ints.py @@ -2,7 +2,9 @@ Tests that work on both the Python and C engines but do not have a specific classification into the other test modules. """ -from io import StringIO +from io import ( + StringIO, +) import numpy as np import pytest diff --git a/pandas/tests/io/parser/common/test_iterator.py b/pandas/tests/io/parser/common/test_iterator.py index 939ed0e73a5ee..7939d2ef5c0f8 100644 --- a/pandas/tests/io/parser/common/test_iterator.py +++ b/pandas/tests/io/parser/common/test_iterator.py @@ -2,7 +2,9 @@ Tests that work on both the Python and C engines but do not have a specific classification into the other test modules. """ -from io import StringIO +from io import ( + StringIO, +) import pytest diff --git a/pandas/tests/io/parser/common/test_read_errors.py b/pandas/tests/io/parser/common/test_read_errors.py index 817daad9849c0..cd04b968aec2a 100644 --- a/pandas/tests/io/parser/common/test_read_errors.py +++ b/pandas/tests/io/parser/common/test_read_errors.py @@ -4,21 +4,29 @@ """ import codecs import csv -from io import StringIO +from io import ( + StringIO, +) import os -from pathlib import Path +from pathlib import ( + Path, +) import warnings import numpy as np import pytest -from pandas.compat import PY311 +from pandas.compat import ( + PY311, +) from pandas.errors import ( EmptyDataError, ParserError, ) -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm pytestmark = pytest.mark.usefixtures("pyarrow_skip") diff --git a/pandas/tests/io/parser/common/test_verbose.py b/pandas/tests/io/parser/common/test_verbose.py index 335065db974dc..7d910821253ad 100644 --- a/pandas/tests/io/parser/common/test_verbose.py +++ b/pandas/tests/io/parser/common/test_verbose.py @@ -2,7 +2,9 @@ Tests that work on both the Python and C engines but do not have a specific classification into the other test modules. """ -from io import StringIO +from io import ( + StringIO, +) import pytest diff --git a/pandas/tests/io/parser/conftest.py b/pandas/tests/io/parser/conftest.py index 3ab40ff846cb6..c2458e6d540f9 100644 --- a/pandas/tests/io/parser/conftest.py +++ b/pandas/tests/io/parser/conftest.py @@ -1,10 +1,14 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import os import pytest -from pandas.compat._optional import VERSIONS +from pandas.compat._optional import ( + VERSIONS, +) from pandas import ( read_csv, diff --git a/pandas/tests/io/parser/dtypes/test_categorical.py b/pandas/tests/io/parser/dtypes/test_categorical.py index a0deebecdfff8..6ec54d0d1a525 100644 --- a/pandas/tests/io/parser/dtypes/test_categorical.py +++ b/pandas/tests/io/parser/dtypes/test_categorical.py @@ -2,13 +2,17 @@ Tests dtype specification during parsing for all of the parsers defined in parsers.py """ -from io import StringIO +from io import ( + StringIO, +) import os import numpy as np import pytest -from pandas.core.dtypes.dtypes import CategoricalDtype +from pandas.core.dtypes.dtypes import ( + CategoricalDtype, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/io/parser/dtypes/test_dtypes_basic.py b/pandas/tests/io/parser/dtypes/test_dtypes_basic.py index 21fec973897c0..65b9ce0363188 100644 --- a/pandas/tests/io/parser/dtypes/test_dtypes_basic.py +++ b/pandas/tests/io/parser/dtypes/test_dtypes_basic.py @@ -2,13 +2,19 @@ Tests dtype specification during parsing for all of the parsers defined in parsers.py """ -from collections import defaultdict -from io import StringIO +from collections import ( + defaultdict, +) +from io import ( + StringIO, +) import numpy as np import pytest -from pandas.errors import ParserWarning +from pandas.errors import ( + ParserWarning, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/io/parser/dtypes/test_empty.py b/pandas/tests/io/parser/dtypes/test_empty.py index 1f709a3cd8f28..e7c7678c175eb 100644 --- a/pandas/tests/io/parser/dtypes/test_empty.py +++ b/pandas/tests/io/parser/dtypes/test_empty.py @@ -2,7 +2,9 @@ Tests dtype specification during parsing for all of the parsers defined in parsers.py """ -from io import StringIO +from io import ( + StringIO, +) import numpy as np import pytest diff --git a/pandas/tests/io/parser/test_c_parser_only.py b/pandas/tests/io/parser/test_c_parser_only.py index 4c6bc3583676a..c0c27c430f86b 100644 --- a/pandas/tests/io/parser/test_c_parser_only.py +++ b/pandas/tests/io/parser/test_c_parser_only.py @@ -4,7 +4,9 @@ these tests out of this module as soon as the Python parser can accept further arguments when parsing. """ -from decimal import Decimal +from decimal import ( + Decimal, +) from io import ( BytesIO, StringIO, @@ -21,8 +23,12 @@ IS64, is_ci_environment, ) -from pandas.compat.numpy import np_version_gte1p24 -from pandas.errors import ParserError +from pandas.compat.numpy import ( + np_version_gte1p24, +) +from pandas.errors import ( + ParserError, +) import pandas.util._test_decorators as td from pandas import ( diff --git a/pandas/tests/io/parser/test_comment.py b/pandas/tests/io/parser/test_comment.py index 9a14e67c154b6..5f523484e6b89 100644 --- a/pandas/tests/io/parser/test_comment.py +++ b/pandas/tests/io/parser/test_comment.py @@ -2,12 +2,16 @@ Tests that comments are properly handled during parsing for all of the parsers defined in parsers.py """ -from io import StringIO +from io import ( + StringIO, +) import numpy as np import pytest -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm pytestmark = pytest.mark.usefixtures("pyarrow_skip") diff --git a/pandas/tests/io/parser/test_compression.py b/pandas/tests/io/parser/test_compression.py index 121784d5a45ed..70c10634aa0a0 100644 --- a/pandas/tests/io/parser/test_compression.py +++ b/pandas/tests/io/parser/test_compression.py @@ -4,15 +4,21 @@ """ import os -from pathlib import Path +from pathlib import ( + Path, +) import tarfile import zipfile import pytest -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm -from pandas.tests.io.test_compression import _compression_to_extension +from pandas.tests.io.test_compression import ( + _compression_to_extension, +) skip_pyarrow = pytest.mark.usefixtures("pyarrow_skip") diff --git a/pandas/tests/io/parser/test_converters.py b/pandas/tests/io/parser/test_converters.py index 85f3db0398080..827f12c36924e 100644 --- a/pandas/tests/io/parser/test_converters.py +++ b/pandas/tests/io/parser/test_converters.py @@ -2,9 +2,13 @@ Tests column conversion functionality during parsing for all of the parsers defined in parsers.py """ -from io import StringIO +from io import ( + StringIO, +) -from dateutil.parser import parse +from dateutil.parser import ( + parse, +) import numpy as np import pytest diff --git a/pandas/tests/io/parser/test_dialect.py b/pandas/tests/io/parser/test_dialect.py index 7d2bb6c083cda..7039acb5f6f60 100644 --- a/pandas/tests/io/parser/test_dialect.py +++ b/pandas/tests/io/parser/test_dialect.py @@ -4,13 +4,19 @@ """ import csv -from io import StringIO +from io import ( + StringIO, +) import pytest -from pandas.errors import ParserWarning +from pandas.errors import ( + ParserWarning, +) -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm pytestmark = pytest.mark.usefixtures("pyarrow_skip") @@ -100,7 +106,9 @@ def test_dialect_conflict_except_delimiter(all_parsers, custom_dialect, arg, val if value == "dialect": # No conflict --> no warning. kwds[arg] = dialect_kwargs[arg] elif value == "default": # Default --> no warning. - from pandas.io.parsers.base_parser import parser_defaults + from pandas.io.parsers.base_parser import ( + parser_defaults, + ) kwds[arg] = parser_defaults[arg] else: # Non-default + conflict with dialect --> warning. diff --git a/pandas/tests/io/parser/test_header.py b/pandas/tests/io/parser/test_header.py index 5cb54bb4e2916..7b917c448eb55 100644 --- a/pandas/tests/io/parser/test_header.py +++ b/pandas/tests/io/parser/test_header.py @@ -3,13 +3,19 @@ during parsing for all of the parsers defined in parsers.py """ -from collections import namedtuple -from io import StringIO +from collections import ( + namedtuple, +) +from io import ( + StringIO, +) import numpy as np import pytest -from pandas.errors import ParserError +from pandas.errors import ( + ParserError, +) from pandas import ( DataFrame, diff --git a/pandas/tests/io/parser/test_index_col.py b/pandas/tests/io/parser/test_index_col.py index 13c4216710f84..a2746ead0f872 100644 --- a/pandas/tests/io/parser/test_index_col.py +++ b/pandas/tests/io/parser/test_index_col.py @@ -3,7 +3,9 @@ is properly handled or inferred during parsing for all of the parsers defined in parsers.py """ -from io import StringIO +from io import ( + StringIO, +) import numpy as np import pytest diff --git a/pandas/tests/io/parser/test_mangle_dupes.py b/pandas/tests/io/parser/test_mangle_dupes.py index 5709e7e4027e8..7ac751da929ca 100644 --- a/pandas/tests/io/parser/test_mangle_dupes.py +++ b/pandas/tests/io/parser/test_mangle_dupes.py @@ -3,11 +3,15 @@ CSV engine. In general, the expected result is that they are either thoroughly de-duplicated (if mangling requested) or ignored otherwise. """ -from io import StringIO +from io import ( + StringIO, +) import pytest -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm skip_pyarrow = pytest.mark.usefixtures("pyarrow_skip") diff --git a/pandas/tests/io/parser/test_multi_thread.py b/pandas/tests/io/parser/test_multi_thread.py index ab278470934a5..8cf988c51c246 100644 --- a/pandas/tests/io/parser/test_multi_thread.py +++ b/pandas/tests/io/parser/test_multi_thread.py @@ -2,15 +2,23 @@ Tests multithreading behaviour for reading and parsing files for each parser defined in parsers.py """ -from contextlib import ExitStack -from io import BytesIO -from multiprocessing.pool import ThreadPool +from contextlib import ( + ExitStack, +) +from io import ( + BytesIO, +) +from multiprocessing.pool import ( + ThreadPool, +) import numpy as np import pytest import pandas as pd -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm # We'll probably always skip these for pyarrow diff --git a/pandas/tests/io/parser/test_na_values.py b/pandas/tests/io/parser/test_na_values.py index 0ca4884153b59..0559e861e8409 100644 --- a/pandas/tests/io/parser/test_na_values.py +++ b/pandas/tests/io/parser/test_na_values.py @@ -2,12 +2,16 @@ Tests that NA values are properly handled during parsing for all of the parsers defined in parsers.py """ -from io import StringIO +from io import ( + StringIO, +) import numpy as np import pytest -from pandas._libs.parsers import STR_NA_VALUES +from pandas._libs.parsers import ( + STR_NA_VALUES, +) from pandas import ( DataFrame, diff --git a/pandas/tests/io/parser/test_network.py b/pandas/tests/io/parser/test_network.py index 4a6443e22d690..1adc712a2387b 100644 --- a/pandas/tests/io/parser/test_network.py +++ b/pandas/tests/io/parser/test_network.py @@ -11,15 +11,25 @@ import numpy as np import pytest -from pandas.compat import is_ci_environment +from pandas.compat import ( + is_ci_environment, +) import pandas.util._test_decorators as td -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm -from pandas.tests.io.test_compression import _compression_to_extension +from pandas.tests.io.test_compression import ( + _compression_to_extension, +) -from pandas.io.feather_format import read_feather -from pandas.io.parsers import read_csv +from pandas.io.feather_format import ( + read_feather, +) +from pandas.io.parsers import ( + read_csv, +) @pytest.mark.network diff --git a/pandas/tests/io/parser/test_parse_dates.py b/pandas/tests/io/parser/test_parse_dates.py index 7bb7ca5c6d159..c13cb1a2ed94d 100644 --- a/pandas/tests/io/parser/test_parse_dates.py +++ b/pandas/tests/io/parser/test_parse_dates.py @@ -9,16 +9,26 @@ timedelta, timezone, ) -from io import StringIO +from io import ( + StringIO, +) -from dateutil.parser import parse as du_parse -from hypothesis import given +from dateutil.parser import ( + parse as du_parse, +) +from hypothesis import ( + given, +) import numpy as np import pytest import pytz -from pandas._libs.tslibs import parsing -from pandas._libs.tslibs.parsing import py_parse_datetime_string +from pandas._libs.tslibs import ( + parsing, +) +from pandas._libs.tslibs.parsing import ( + py_parse_datetime_string, +) import pandas as pd from pandas import ( @@ -30,10 +40,16 @@ Timestamp, ) import pandas._testing as tm -from pandas._testing._hypothesis import DATETIME_NO_TZ -from pandas.core.indexes.datetimes import date_range +from pandas._testing._hypothesis import ( + DATETIME_NO_TZ, +) +from pandas.core.indexes.datetimes import ( + date_range, +) -from pandas.io.parsers import read_csv +from pandas.io.parsers import ( + read_csv, +) xfail_pyarrow = pytest.mark.usefixtures("pyarrow_xfail") diff --git a/pandas/tests/io/parser/test_python_parser_only.py b/pandas/tests/io/parser/test_python_parser_only.py index ca5a757328ba7..c61690f3503f1 100644 --- a/pandas/tests/io/parser/test_python_parser_only.py +++ b/pandas/tests/io/parser/test_python_parser_only.py @@ -4,7 +4,9 @@ these tests out of this module as soon as the C parser can accept further arguments when parsing. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import csv from io import ( @@ -12,7 +14,9 @@ StringIO, TextIOWrapper, ) -from typing import Iterator +from typing import ( + Iterator, +) import pytest diff --git a/pandas/tests/io/parser/test_quoting.py b/pandas/tests/io/parser/test_quoting.py index 025a612dc47d2..ac8fc01408457 100644 --- a/pandas/tests/io/parser/test_quoting.py +++ b/pandas/tests/io/parser/test_quoting.py @@ -4,14 +4,22 @@ """ import csv -from io import StringIO +from io import ( + StringIO, +) import pytest -from pandas.compat import PY311 -from pandas.errors import ParserError +from pandas.compat import ( + PY311, +) +from pandas.errors import ( + ParserError, +) -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm pytestmark = pytest.mark.usefixtures("pyarrow_skip") diff --git a/pandas/tests/io/parser/test_read_fwf.py b/pandas/tests/io/parser/test_read_fwf.py index 47379aaab6feb..0f845af87bb6f 100644 --- a/pandas/tests/io/parser/test_read_fwf.py +++ b/pandas/tests/io/parser/test_read_fwf.py @@ -4,17 +4,23 @@ engine is set to 'python-fwf' internally. """ -from datetime import datetime +from datetime import ( + datetime, +) from io import ( BytesIO, StringIO, ) -from pathlib import Path +from pathlib import ( + Path, +) import numpy as np import pytest -from pandas.errors import EmptyDataError +from pandas.errors import ( + EmptyDataError, +) import pandas as pd from pandas import ( @@ -26,7 +32,9 @@ ArrowStringArray, StringArray, ) -from pandas.tests.io.test_compression import _compression_to_extension +from pandas.tests.io.test_compression import ( + _compression_to_extension, +) from pandas.io.parsers import ( read_csv, @@ -991,7 +999,9 @@ def test_use_nullable_dtypes(string_storage, dtype_backend): ) if dtype_backend == "pyarrow": pa = pytest.importorskip("pyarrow") - from pandas.arrays import ArrowExtensionArray + from pandas.arrays import ( + ArrowExtensionArray, + ) expected = DataFrame( { diff --git a/pandas/tests/io/parser/test_skiprows.py b/pandas/tests/io/parser/test_skiprows.py index c58e27aacfa00..358f4aff91da9 100644 --- a/pandas/tests/io/parser/test_skiprows.py +++ b/pandas/tests/io/parser/test_skiprows.py @@ -3,13 +3,19 @@ parsing for all of the parsers defined in parsers.py """ -from datetime import datetime -from io import StringIO +from datetime import ( + datetime, +) +from io import ( + StringIO, +) import numpy as np import pytest -from pandas.errors import EmptyDataError +from pandas.errors import ( + EmptyDataError, +) from pandas import ( DataFrame, diff --git a/pandas/tests/io/parser/test_textreader.py b/pandas/tests/io/parser/test_textreader.py index f150ed3903443..ba692a171cea1 100644 --- a/pandas/tests/io/parser/test_textreader.py +++ b/pandas/tests/io/parser/test_textreader.py @@ -11,16 +11,22 @@ import pytest import pandas._libs.parsers as parser -from pandas._libs.parsers import TextReader +from pandas._libs.parsers import ( + TextReader, +) -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm from pandas.io.parsers import ( TextFileReader, read_csv, ) -from pandas.io.parsers.c_parser_wrapper import ensure_dtype_objs +from pandas.io.parsers.c_parser_wrapper import ( + ensure_dtype_objs, +) class TestTextReader: diff --git a/pandas/tests/io/parser/test_unsupported.py b/pandas/tests/io/parser/test_unsupported.py index 185dc733df3c2..5a9e9aaadef69 100644 --- a/pandas/tests/io/parser/test_unsupported.py +++ b/pandas/tests/io/parser/test_unsupported.py @@ -6,9 +6,13 @@ Ultimately, the goal is to remove test cases from this test suite as new feature support is added to the parsers. """ -from io import StringIO +from io import ( + StringIO, +) import os -from pathlib import Path +from pathlib import ( + Path, +) import pytest @@ -17,11 +21,15 @@ is_platform_mac, is_platform_windows, ) -from pandas.errors import ParserError +from pandas.errors import ( + ParserError, +) import pandas._testing as tm -from pandas.io.parsers import read_csv +from pandas.io.parsers import ( + read_csv, +) import pandas.io.parsers.readers as parsers @@ -92,7 +100,9 @@ def test_c_engine(self): read_csv(StringIO(data), lineterminator="~~") def test_python_engine(self, python_engine): - from pandas.io.parsers.readers import _python_unsupported as py_unsupported + from pandas.io.parsers.readers import ( + _python_unsupported as py_unsupported, + ) data = """1,2,3,, 1,2,3,4, @@ -132,7 +142,9 @@ def readline(self): read_csv(NoNextBuffer(data), engine=python_engine) def test_pyarrow_engine(self): - from pandas.io.parsers.readers import _pyarrow_unsupported as pa_unsupported + from pandas.io.parsers.readers import ( + _pyarrow_unsupported as pa_unsupported, + ) data = """1,2,3,, 1,2,3,4, diff --git a/pandas/tests/io/parser/test_upcast.py b/pandas/tests/io/parser/test_upcast.py index a4111630d1256..0d55e72e2eaa2 100644 --- a/pandas/tests/io/parser/test_upcast.py +++ b/pandas/tests/io/parser/test_upcast.py @@ -8,7 +8,9 @@ import pandas.util._test_decorators as td import pandas as pd -from pandas import NA +from pandas import ( + NA, +) import pandas._testing as tm from pandas.core.arrays import ( ArrowStringArray, diff --git a/pandas/tests/io/parser/usecols/test_parse_dates.py b/pandas/tests/io/parser/usecols/test_parse_dates.py index 4823df1da9959..a73f0eb384e3b 100644 --- a/pandas/tests/io/parser/usecols/test_parse_dates.py +++ b/pandas/tests/io/parser/usecols/test_parse_dates.py @@ -2,7 +2,9 @@ Tests the usecols functionality during parsing for all of the parsers defined in parsers.py """ -from io import StringIO +from io import ( + StringIO, +) import pytest diff --git a/pandas/tests/io/parser/usecols/test_strings.py b/pandas/tests/io/parser/usecols/test_strings.py index 8cecf1fc981ee..5aa3d457bffef 100644 --- a/pandas/tests/io/parser/usecols/test_strings.py +++ b/pandas/tests/io/parser/usecols/test_strings.py @@ -2,11 +2,15 @@ Tests the usecols functionality during parsing for all of the parsers defined in parsers.py """ -from io import StringIO +from io import ( + StringIO, +) import pytest -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm _msg_validate_usecols_arg = ( diff --git a/pandas/tests/io/parser/usecols/test_usecols_basic.py b/pandas/tests/io/parser/usecols/test_usecols_basic.py index 032cb961103df..00f2f5b8e842e 100644 --- a/pandas/tests/io/parser/usecols/test_usecols_basic.py +++ b/pandas/tests/io/parser/usecols/test_usecols_basic.py @@ -2,12 +2,16 @@ Tests the usecols functionality during parsing for all of the parsers defined in parsers.py """ -from io import StringIO +from io import ( + StringIO, +) import numpy as np import pytest -from pandas.errors import ParserError +from pandas.errors import ( + ParserError, +) from pandas import ( DataFrame, diff --git a/pandas/tests/io/pytables/common.py b/pandas/tests/io/pytables/common.py index ef90d97a5a98c..d789d5e40ca65 100644 --- a/pandas/tests/io/pytables/common.py +++ b/pandas/tests/io/pytables/common.py @@ -1,11 +1,17 @@ -from contextlib import contextmanager +from contextlib import ( + contextmanager, +) import pathlib import tempfile -from typing import Generator +from typing import ( + Generator, +) import pytest -from pandas.io.pytables import HDFStore +from pandas.io.pytables import ( + HDFStore, +) tables = pytest.importorskip("tables") # set these parameters so we don't have file sharing diff --git a/pandas/tests/io/pytables/test_append.py b/pandas/tests/io/pytables/test_append.py index c37e68f537ebb..b81cf33d579b9 100644 --- a/pandas/tests/io/pytables/test_append.py +++ b/pandas/tests/io/pytables/test_append.py @@ -1,12 +1,18 @@ import datetime -from datetime import timedelta +from datetime import ( + timedelta, +) import re -from warnings import catch_warnings +from warnings import ( + catch_warnings, +) import numpy as np import pytest -from pandas._libs.tslibs import Timestamp +from pandas._libs.tslibs import ( + Timestamp, +) import pandas.util._test_decorators as td import pandas as pd diff --git a/pandas/tests/io/pytables/test_complex.py b/pandas/tests/io/pytables/test_complex.py index 051221d165060..8d323afe75750 100644 --- a/pandas/tests/io/pytables/test_complex.py +++ b/pandas/tests/io/pytables/test_complex.py @@ -1,4 +1,6 @@ -from warnings import catch_warnings +from warnings import ( + catch_warnings, +) import numpy as np import pytest @@ -9,9 +11,13 @@ Series, ) import pandas._testing as tm -from pandas.tests.io.pytables.common import ensure_clean_store +from pandas.tests.io.pytables.common import ( + ensure_clean_store, +) -from pandas.io.pytables import read_hdf +from pandas.io.pytables import ( + read_hdf, +) def test_complex_fixed(tmp_path, setup_path): diff --git a/pandas/tests/io/pytables/test_errors.py b/pandas/tests/io/pytables/test_errors.py index 295cce970889c..a6911c549181a 100644 --- a/pandas/tests/io/pytables/test_errors.py +++ b/pandas/tests/io/pytables/test_errors.py @@ -1,7 +1,11 @@ import datetime -from io import BytesIO +from io import ( + BytesIO, +) import re -from warnings import catch_warnings +from warnings import ( + catch_warnings, +) import numpy as np import pytest @@ -15,7 +19,9 @@ date_range, read_hdf, ) -from pandas.tests.io.pytables.common import ensure_clean_store +from pandas.tests.io.pytables.common import ( + ensure_clean_store, +) from pandas.io.pytables import ( Term, diff --git a/pandas/tests/io/pytables/test_file_handling.py b/pandas/tests/io/pytables/test_file_handling.py index 49190daa37442..03f2fadf29e0b 100644 --- a/pandas/tests/io/pytables/test_file_handling.py +++ b/pandas/tests/io/pytables/test_file_handling.py @@ -3,7 +3,9 @@ import numpy as np import pytest -from pandas.compat import is_platform_little_endian +from pandas.compat import ( + is_platform_little_endian, +) from pandas.errors import ( ClosedFileError, PossibleDataLossError, @@ -22,8 +24,12 @@ tables, ) -from pandas.io import pytables -from pandas.io.pytables import Term +from pandas.io import ( + pytables, +) +from pandas.io.pytables import ( + Term, +) pytestmark = pytest.mark.single_cpu diff --git a/pandas/tests/io/pytables/test_put.py b/pandas/tests/io/pytables/test_put.py index d2b0519d6cf3d..e7e1235e246b5 100644 --- a/pandas/tests/io/pytables/test_put.py +++ b/pandas/tests/io/pytables/test_put.py @@ -8,7 +8,9 @@ import numpy as np import pytest -from pandas._libs.tslibs import Timestamp +from pandas._libs.tslibs import ( + Timestamp, +) import pandas as pd from pandas import ( @@ -24,7 +26,9 @@ _maybe_remove, ensure_clean_store, ) -from pandas.util import _test_decorators as td +from pandas.util import ( + _test_decorators as td, +) pytestmark = pytest.mark.single_cpu diff --git a/pandas/tests/io/pytables/test_read.py b/pandas/tests/io/pytables/test_read.py index 2f2190a352045..9710625c0d27a 100644 --- a/pandas/tests/io/pytables/test_read.py +++ b/pandas/tests/io/pytables/test_read.py @@ -1,12 +1,20 @@ -from contextlib import closing -from pathlib import Path +from contextlib import ( + closing, +) +from pathlib import ( + Path, +) import re import numpy as np import pytest -from pandas._libs.tslibs import Timestamp -from pandas.compat import is_platform_windows +from pandas._libs.tslibs import ( + Timestamp, +) +from pandas.compat import ( + is_platform_windows, +) import pandas as pd from pandas import ( @@ -21,9 +29,13 @@ _maybe_remove, ensure_clean_store, ) -from pandas.util import _test_decorators as td +from pandas.util import ( + _test_decorators as td, +) -from pandas.io.pytables import TableIterator +from pandas.io.pytables import ( + TableIterator, +) pytestmark = pytest.mark.single_cpu @@ -302,7 +314,9 @@ def test_read_from_pathlib_path(tmp_path, setup_path): @td.skip_if_no("py.path") def test_read_from_py_localpath(tmp_path, setup_path): # GH11773 - from py.path import local as LocalPath + from py.path import ( + local as LocalPath, + ) expected = DataFrame( np.random.rand(4, 5), index=list("abcd"), columns=list("ABCDE") diff --git a/pandas/tests/io/pytables/test_retain_attributes.py b/pandas/tests/io/pytables/test_retain_attributes.py index 8ca8e624a6de2..da2b9b556d126 100644 --- a/pandas/tests/io/pytables/test_retain_attributes.py +++ b/pandas/tests/io/pytables/test_retain_attributes.py @@ -1,6 +1,8 @@ import pytest -from pandas._libs.tslibs import Timestamp +from pandas._libs.tslibs import ( + Timestamp, +) from pandas import ( DataFrame, diff --git a/pandas/tests/io/pytables/test_round_trip.py b/pandas/tests/io/pytables/test_round_trip.py index 163951a6ebc45..bce4ce1243ffd 100644 --- a/pandas/tests/io/pytables/test_round_trip.py +++ b/pandas/tests/io/pytables/test_round_trip.py @@ -8,8 +8,12 @@ import numpy as np import pytest -from pandas._libs.tslibs import Timestamp -from pandas.compat import is_platform_windows +from pandas._libs.tslibs import ( + Timestamp, +) +from pandas.compat import ( + is_platform_windows, +) import pandas as pd from pandas import ( @@ -24,7 +28,9 @@ _maybe_remove, ensure_clean_store, ) -from pandas.util import _test_decorators as td +from pandas.util import ( + _test_decorators as td, +) _default_compressor = "blosc" diff --git a/pandas/tests/io/pytables/test_select.py b/pandas/tests/io/pytables/test_select.py index 447d56ac91b24..3013121d6ccb0 100644 --- a/pandas/tests/io/pytables/test_select.py +++ b/pandas/tests/io/pytables/test_select.py @@ -1,9 +1,13 @@ -from warnings import catch_warnings +from warnings import ( + catch_warnings, +) import numpy as np import pytest -from pandas._libs.tslibs import Timestamp +from pandas._libs.tslibs import ( + Timestamp, +) import pandas as pd from pandas import ( @@ -24,7 +28,9 @@ ensure_clean_store, ) -from pandas.io.pytables import Term +from pandas.io.pytables import ( + Term, +) pytestmark = pytest.mark.single_cpu diff --git a/pandas/tests/io/pytables/test_time_series.py b/pandas/tests/io/pytables/test_time_series.py index 262f25e77b69c..402f9eed87bd8 100644 --- a/pandas/tests/io/pytables/test_time_series.py +++ b/pandas/tests/io/pytables/test_time_series.py @@ -8,7 +8,9 @@ Series, _testing as tm, ) -from pandas.tests.io.pytables.common import ensure_clean_store +from pandas.tests.io.pytables.common import ( + ensure_clean_store, +) pytestmark = pytest.mark.single_cpu diff --git a/pandas/tests/io/pytables/test_timezones.py b/pandas/tests/io/pytables/test_timezones.py index 7589eb8e96a10..d67dafaa68e85 100644 --- a/pandas/tests/io/pytables/test_timezones.py +++ b/pandas/tests/io/pytables/test_timezones.py @@ -6,7 +6,9 @@ import numpy as np import pytest -from pandas._libs.tslibs.timezones import maybe_get_tz +from pandas._libs.tslibs.timezones import ( + maybe_get_tz, +) import pandas.util._test_decorators as td import pandas as pd diff --git a/pandas/tests/io/sas/test_sas.py b/pandas/tests/io/sas/test_sas.py index 1e38baf4fc409..988bdd8b74066 100644 --- a/pandas/tests/io/sas/test_sas.py +++ b/pandas/tests/io/sas/test_sas.py @@ -1,8 +1,12 @@ -from io import StringIO +from io import ( + StringIO, +) import pytest -from pandas import read_sas +from pandas import ( + read_sas, +) import pandas._testing as tm diff --git a/pandas/tests/io/sas/test_sas7bdat.py b/pandas/tests/io/sas/test_sas7bdat.py index 348d2382976c3..58aa3820d68b7 100644 --- a/pandas/tests/io/sas/test_sas7bdat.py +++ b/pandas/tests/io/sas/test_sas7bdat.py @@ -1,14 +1,20 @@ import contextlib -from datetime import datetime +from datetime import ( + datetime, +) import io import os -from pathlib import Path +from pathlib import ( + Path, +) import dateutil.parser import numpy as np import pytest -from pandas.errors import EmptyDataError +from pandas.errors import ( + EmptyDataError, +) import pandas.util._test_decorators as td import pandas as pd @@ -83,7 +89,9 @@ def test_path_pathlib(self, dirpath, data_test_ix): @td.skip_if_no("py.path") @pytest.mark.slow def test_path_localpath(self, dirpath, data_test_ix): - from py.path import local as LocalPath + from py.path import ( + local as LocalPath, + ) df0, test_ix = data_test_ix for k in test_ix: @@ -127,7 +135,9 @@ def test_encoding_options(datapath): pass tm.assert_frame_equal(df1, df2) - from pandas.io.sas.sas7bdat import SAS7BDATReader + from pandas.io.sas.sas7bdat import ( + SAS7BDATReader, + ) with contextlib.closing(SAS7BDATReader(fname, convert_header_text=False)) as rdr: df3 = rdr.read() diff --git a/pandas/tests/io/sas/test_xport.py b/pandas/tests/io/sas/test_xport.py index 766c9c37d55b9..04489ab1aad7a 100644 --- a/pandas/tests/io/sas/test_xport.py +++ b/pandas/tests/io/sas/test_xport.py @@ -4,7 +4,9 @@ import pandas as pd import pandas._testing as tm -from pandas.io.sas.sasreader import read_sas +from pandas.io.sas.sasreader import ( + read_sas, +) # CSV versions of test xpt files were obtained using the R foreign library diff --git a/pandas/tests/io/test_clipboard.py b/pandas/tests/io/test_clipboard.py index eeadd8bc56c74..7e150d18964b5 100644 --- a/pandas/tests/io/test_clipboard.py +++ b/pandas/tests/io/test_clipboard.py @@ -1,6 +1,8 @@ import os import subprocess -from textwrap import dedent +from textwrap import ( + dedent, +) import numpy as np import pytest @@ -459,7 +461,9 @@ def test_read_clipboard_nullable_dtypes( } ) if dtype_backend == "pyarrow": - from pandas.arrays import ArrowExtensionArray + from pandas.arrays import ( + ArrowExtensionArray, + ) expected = DataFrame( { diff --git a/pandas/tests/io/test_common.py b/pandas/tests/io/test_common.py index b248c0c460c74..8c2007f2ddb82 100644 --- a/pandas/tests/io/test_common.py +++ b/pandas/tests/io/test_common.py @@ -3,7 +3,9 @@ """ import codecs import errno -from functools import partial +from functools import ( + partial, +) from io import ( BytesIO, StringIO, @@ -11,13 +13,17 @@ ) import mmap import os -from pathlib import Path +from pathlib import ( + Path, +) import pickle import tempfile import pytest -from pandas.compat import is_platform_windows +from pandas.compat import ( + is_platform_windows, +) import pandas.util._test_decorators as td import pandas as pd @@ -40,7 +46,9 @@ def __fspath__(self): path_types = [str, CustomFSPath, Path] try: - from py.path import local as LocalPath + from py.path import ( + local as LocalPath, + ) path_types.append(LocalPath) except ImportError: @@ -149,7 +157,9 @@ def test_bytesiowrapper_returns_correct_bytes(self): # Test that pyarrow can handle a file opened with get_handle @td.skip_if_no("pyarrow") def test_get_handle_pyarrow_compat(self): - from pyarrow import csv + from pyarrow import ( + csv, + ) # Test latin1, ucs-2, and ucs-4 chars data = """a,b,c diff --git a/pandas/tests/io/test_compression.py b/pandas/tests/io/test_compression.py index fc15ff3488ce9..0af9fdaf50e7f 100644 --- a/pandas/tests/io/test_compression.py +++ b/pandas/tests/io/test_compression.py @@ -1,7 +1,9 @@ import gzip import io import os -from pathlib import Path +from pathlib import ( + Path, +) import subprocess import sys import tarfile @@ -11,7 +13,9 @@ import pytest -from pandas.compat import is_platform_windows +from pandas.compat import ( + is_platform_windows, +) import pandas as pd import pandas._testing as tm diff --git a/pandas/tests/io/test_feather.py b/pandas/tests/io/test_feather.py index 35970da211c31..e44d211df4caf 100644 --- a/pandas/tests/io/test_feather.py +++ b/pandas/tests/io/test_feather.py @@ -240,7 +240,9 @@ def test_read_json_nullable(self, string_storage, dtype_backend, option): ) if dtype_backend == "pyarrow": - from pandas.arrays import ArrowExtensionArray + from pandas.arrays import ( + ArrowExtensionArray, + ) expected = pd.DataFrame( { diff --git a/pandas/tests/io/test_fsspec.py b/pandas/tests/io/test_fsspec.py index a5790bb456d44..32b36f19ba3bf 100644 --- a/pandas/tests/io/test_fsspec.py +++ b/pandas/tests/io/test_fsspec.py @@ -16,7 +16,9 @@ read_table, ) import pandas._testing as tm -from pandas.util import _test_decorators as td +from pandas.util import ( + _test_decorators as td, +) @pytest.fixture @@ -50,7 +52,9 @@ def test_read_csv(cleared_fs, df1): def test_reasonable_error(monkeypatch, cleared_fs): - from fsspec.registry import known_implementations + from fsspec.registry import ( + known_implementations, + ) with pytest.raises(ValueError, match="nosuchprotocol"): read_csv("nosuchprotocol://test/test.csv") diff --git a/pandas/tests/io/test_gcs.py b/pandas/tests/io/test_gcs.py index a609c1b5fc03d..2a578a4fd5c3c 100644 --- a/pandas/tests/io/test_gcs.py +++ b/pandas/tests/io/test_gcs.py @@ -1,4 +1,6 @@ -from io import BytesIO +from io import ( + BytesIO, +) import os import tarfile import zipfile @@ -15,8 +17,12 @@ read_parquet, ) import pandas._testing as tm -from pandas.tests.io.test_compression import _compression_to_extension -from pandas.util import _test_decorators as td +from pandas.tests.io.test_compression import ( + _compression_to_extension, +) +from pandas.util import ( + _test_decorators as td, +) @pytest.fixture @@ -164,7 +170,9 @@ def test_to_csv_compression_encoding_gcs(gcs_buffer, compression_only, encoding) @td.skip_if_no("gcsfs") def test_to_parquet_gcs_new_file(monkeypatch, tmpdir): """Regression test for writing to a not-yet-existent GCS Parquet file.""" - from fsspec import AbstractFileSystem + from fsspec import ( + AbstractFileSystem, + ) df1 = DataFrame( { diff --git a/pandas/tests/io/test_html.py b/pandas/tests/io/test_html.py index 514d96a4d9ec6..978f725be6eed 100644 --- a/pandas/tests/io/test_html.py +++ b/pandas/tests/io/test_html.py @@ -1,19 +1,29 @@ -from functools import partial +from functools import ( + partial, +) from io import ( BytesIO, StringIO, ) import os -from pathlib import Path +from pathlib import ( + Path, +) import re import threading -from typing import Iterator -from urllib.error import URLError +from typing import ( + Iterator, +) +from urllib.error import ( + URLError, +) import numpy as np import pytest -from pandas.compat import is_platform_windows +from pandas.compat import ( + is_platform_windows, +) import pandas.util._test_decorators as td import pandas as pd @@ -34,7 +44,9 @@ StringArray, ) -from pandas.io.common import file_path_to_url +from pandas.io.common import ( + file_path_to_url, +) import pandas.io.html @@ -182,7 +194,9 @@ def test_use_nullable_dtypes(self, string_storage, dtype_backend): if dtype_backend == "pyarrow": import pyarrow as pa - from pandas.arrays import ArrowExtensionArray + from pandas.arrays import ( + ArrowExtensionArray, + ) expected = DataFrame( { @@ -655,7 +669,9 @@ def test_parse_header_of_non_string_column(self): @pytest.mark.slow def test_banklist_header(self, banklist_data, datapath): - from pandas.io.html import _remove_whitespace + from pandas.io.html import ( + _remove_whitespace, + ) def try_remove_ws(x): try: diff --git a/pandas/tests/io/test_orc.py b/pandas/tests/io/test_orc.py index 9db19d4eb8448..f74d77299e7ef 100644 --- a/pandas/tests/io/test_orc.py +++ b/pandas/tests/io/test_orc.py @@ -1,7 +1,11 @@ """ test orc compat """ import datetime -from decimal import Decimal -from io import BytesIO +from decimal import ( + Decimal, +) +from io import ( + BytesIO, +) import os import pathlib @@ -11,9 +15,13 @@ import pandas.util._test_decorators as td import pandas as pd -from pandas import read_orc +from pandas import ( + read_orc, +) import pandas._testing as tm -from pandas.core.arrays import StringArray +from pandas.core.arrays import ( + StringArray, +) pytest.importorskip("pyarrow.orc") diff --git a/pandas/tests/io/test_parquet.py b/pandas/tests/io/test_parquet.py index 353dc4f1cbd8a..6afb6e82fd8d2 100644 --- a/pandas/tests/io/test_parquet.py +++ b/pandas/tests/io/test_parquet.py @@ -1,16 +1,24 @@ """ test parquet compat """ import datetime -from io import BytesIO +from io import ( + BytesIO, +) import os import pathlib -from warnings import catch_warnings +from warnings import ( + catch_warnings, +) import numpy as np import pytest -from pandas._config import get_option +from pandas._config import ( + get_option, +) -from pandas.compat import is_platform_windows +from pandas.compat import ( + is_platform_windows, +) from pandas.compat.pyarrow import ( pa_version_under7p0, pa_version_under8p0, @@ -19,7 +27,9 @@ import pandas as pd import pandas._testing as tm -from pandas.util.version import Version +from pandas.util.version import ( + Version, +) from pandas.io.parquet import ( FastParquetImpl, @@ -285,7 +295,9 @@ def test_options_get_engine(fp, pa): def test_get_engine_auto_error_message(): # Expect different error messages from get_engine(engine="auto") # if engines aren't installed vs. are installed but bad version - from pandas.compat._optional import VERSIONS + from pandas.compat._optional import ( + VERSIONS, + ) # Do we have engines installed, but a bad version of them? pa_min_ver = VERSIONS.get("pyarrow") diff --git a/pandas/tests/io/test_pickle.py b/pandas/tests/io/test_pickle.py index 60506aa2fbd0a..f746f8f209f80 100644 --- a/pandas/tests/io/test_pickle.py +++ b/pandas/tests/io/test_pickle.py @@ -10,20 +10,28 @@ 3. Move the created pickle to "data/legacy_pickle/" directory. """ -from array import array +from array import ( + array, +) import bz2 import datetime import functools -from functools import partial +from functools import ( + partial, +) import gzip import io import os -from pathlib import Path +from pathlib import ( + Path, +) import pickle import shutil import tarfile import uuid -from warnings import catch_warnings +from warnings import ( + catch_warnings, +) import zipfile import numpy as np @@ -33,8 +41,12 @@ get_lzma_file, is_platform_little_endian, ) -from pandas.compat._optional import import_optional_dependency -from pandas.compat.compressors import flatten_buffer +from pandas.compat._optional import ( + import_optional_dependency, +) +from pandas.compat.compressors import ( + flatten_buffer, +) import pandas.util._test_decorators as td import pandas as pd @@ -55,7 +67,9 @@ @pytest.fixture def current_pickle_data(): # our current version pickle data - from pandas.tests.io.generate_legacy_storage_files import create_pickle_data + from pandas.tests.io.generate_legacy_storage_files import ( + create_pickle_data, + ) with catch_warnings(): return create_pickle_data() diff --git a/pandas/tests/io/test_s3.py b/pandas/tests/io/test_s3.py index 6702d58c139af..4e363d38c27ff 100644 --- a/pandas/tests/io/test_s3.py +++ b/pandas/tests/io/test_s3.py @@ -1,11 +1,15 @@ -from io import BytesIO +from io import ( + BytesIO, +) import os import pytest import pandas.util._test_decorators as td -from pandas import read_csv +from pandas import ( + read_csv, +) import pandas._testing as tm @@ -13,7 +17,9 @@ def test_streaming_s3_objects(): # GH17135 # botocore gained iteration support in 1.10.47, can now be used in read_* pytest.importorskip("botocore", minversion="1.10.47") - from botocore.response import StreamingBody + from botocore.response import ( + StreamingBody, + ) data = [b"foo,bar,baz\n1,2,3\n4,5,6\n", b"just,the,header\n"] for el in data: diff --git a/pandas/tests/io/test_spss.py b/pandas/tests/io/test_spss.py index 7b19d2dafb34e..9ded28446f7fa 100644 --- a/pandas/tests/io/test_spss.py +++ b/pandas/tests/io/test_spss.py @@ -1,4 +1,6 @@ -from pathlib import Path +from pathlib import ( + Path, +) import numpy as np import pytest @@ -93,7 +95,9 @@ def test_spss_umlauts_use_nullable_dtypes(datapath, dtype_backend): if dtype_backend == "pyarrow": pa = pytest.importorskip("pyarrow") - from pandas.arrays import ArrowExtensionArray + from pandas.arrays import ( + ArrowExtensionArray, + ) expected = pd.DataFrame( { diff --git a/pandas/tests/io/test_sql.py b/pandas/tests/io/test_sql.py index b6f88746d53ea..2cf5fedf393d2 100644 --- a/pandas/tests/io/test_sql.py +++ b/pandas/tests/io/test_sql.py @@ -15,18 +15,26 @@ - Tests for the fallback mode (`TestSQLiteFallback`) """ -from __future__ import annotations +from __future__ import ( + annotations, +) import contextlib -from contextlib import closing +from contextlib import ( + closing, +) import csv from datetime import ( date, datetime, time, ) -from io import StringIO -from pathlib import Path +from io import ( + StringIO, +) +from pathlib import ( + Path, +) import sqlite3 import numpy as np @@ -58,7 +66,9 @@ StringArray, ) -from pandas.io import sql +from pandas.io import ( + sql, +) from pandas.io.sql import ( SQLAlchemyEngine, SQLDatabase, @@ -145,8 +155,12 @@ def create_and_load_iris_sqlite3(conn: sqlite3.Connection, iris_file: Path): def create_and_load_iris(conn, iris_file: Path, dialect: str): - from sqlalchemy import insert - from sqlalchemy.engine import Engine + from sqlalchemy import ( + insert, + ) + from sqlalchemy.engine import ( + Engine, + ) iris = iris_table_metadata(dialect) @@ -174,8 +188,12 @@ def create_and_load_iris_view(conn): cur = conn.cursor() cur.execute(stmt) else: - from sqlalchemy import text - from sqlalchemy.engine import Engine + from sqlalchemy import ( + text, + ) + from sqlalchemy.engine import ( + Engine, + ) stmt = text(stmt) if isinstance(conn, Engine): @@ -243,8 +261,12 @@ def create_and_load_types_sqlite3(conn: sqlite3.Connection, types_data: list[dic def create_and_load_types(conn, types_data: list[dict], dialect: str): - from sqlalchemy import insert - from sqlalchemy.engine import Engine + from sqlalchemy import ( + insert, + ) + from sqlalchemy.engine import ( + Engine, + ) types = types_table_metadata(dialect) @@ -276,8 +298,12 @@ def count_rows(conn, table_name: str): cur = conn.cursor() return cur.execute(stmt).fetchone()[0] else: - from sqlalchemy import create_engine - from sqlalchemy.engine import Engine + from sqlalchemy import ( + create_engine, + ) + from sqlalchemy.engine import ( + Engine, + ) if isinstance(conn, str): try: @@ -712,8 +738,12 @@ def test_read_procedure(conn, request): # GH 7324 # Although it is more an api test, it is added to the # mysql tests as sqlite does not have stored procedures - from sqlalchemy import text - from sqlalchemy.engine import Engine + from sqlalchemy import ( + text, + ) + from sqlalchemy.engine import ( + Engine, + ) df = DataFrame({"a": [1, 2, 3], "b": [0.1, 0.2, 0.3]}) df.to_sql("test_frame", conn, index=False) @@ -856,7 +886,9 @@ def drop_table(self, table_name, conn): sql.SQLDatabase(conn).drop_table(table_name) def _get_all_tables(self, conn): - from sqlalchemy import inspect + from sqlalchemy import ( + inspect, + ) return inspect(conn).get_table_names() @@ -870,7 +902,9 @@ def drop_view(self, view_name, conn): conn.exec_driver_sql(f"DROP VIEW IF EXISTS {quoted_view}") def _get_all_views(self, conn): - from sqlalchemy import inspect + from sqlalchemy import ( + inspect, + ) return inspect(conn).get_view_names() @@ -971,7 +1005,9 @@ def _transaction_test(self): if isinstance(self.pandasSQL, SQLiteDatabase): trans.execute(stmt) else: - from sqlalchemy import text + from sqlalchemy import ( + text, + ) stmt = text(stmt) trans.execute(stmt) @@ -982,7 +1018,9 @@ class DummyException(Exception): # Make sure when transaction is rolled back, no rows get inserted ins_sql = "INSERT INTO test_trans (A,B) VALUES (1, 'blah')" if isinstance(self.pandasSQL, SQLDatabase): - from sqlalchemy import text + from sqlalchemy import ( + text, + ) ins_sql = text(ins_sql) try: @@ -1368,7 +1406,9 @@ def test_get_schema_with_schema(self, test_frame1): def test_get_schema_dtypes(self): if self.mode == "sqlalchemy": - from sqlalchemy import Integer + from sqlalchemy import ( + Integer, + ) dtype = Integer else: @@ -1509,8 +1549,12 @@ def test_read_sql_delegate(self): tm.assert_frame_equal(iris_frame1, iris_frame2) def test_not_reflect_all_tables(self): - from sqlalchemy import text - from sqlalchemy.engine import Engine + from sqlalchemy import ( + text, + ) + from sqlalchemy.engine import ( + Engine, + ) # create invalid table query_list = [ @@ -1547,7 +1591,9 @@ def test_warning_case_insensitive_table_name(self, test_frame1): test_frame1.to_sql("CaseSensitive", self.conn) def _get_index_columns(self, tbl_name): - from sqlalchemy.engine import reflection + from sqlalchemy.engine import ( + reflection, + ) insp = reflection.Inspector.from_engine(self.conn) ixs = insp.get_indexes("test_index_saved") @@ -1555,7 +1601,9 @@ def _get_index_columns(self, tbl_name): return ixs def test_sqlalchemy_type_mapping(self): - from sqlalchemy import TIMESTAMP + from sqlalchemy import ( + TIMESTAMP, + ) # Test Timestamp objects (no datetime64 because of timezone) (GH9085) df = DataFrame( @@ -1632,7 +1680,9 @@ def test_pg8000_sqlalchemy_passthrough_error(self): def test_query_by_text_obj(self): # WIP : GH10846 - from sqlalchemy import text + from sqlalchemy import ( + text, + ) name_text = text("select * from iris where name=:name") iris_df = sql.read_sql(name_text, self.conn, params={"name": "Iris-versicolor"}) @@ -1795,7 +1845,9 @@ def test_to_sql_empty(self, test_frame1): self._to_sql_empty(test_frame1) def test_create_table(self): - from sqlalchemy import inspect + from sqlalchemy import ( + inspect, + ) temp_conn = self.connect() temp_frame = DataFrame( @@ -1812,7 +1864,9 @@ def test_create_table(self): pandasSQL.drop_table("temp_frame") def test_drop_table(self): - from sqlalchemy import inspect + from sqlalchemy import ( + inspect, + ) temp_conn = self.connect() temp_frame = DataFrame( @@ -2166,7 +2220,9 @@ def test_nan_string(self): tm.assert_frame_equal(result, df) def _get_index_columns(self, tbl_name): - from sqlalchemy import inspect + from sqlalchemy import ( + inspect, + ) insp = inspect(self.conn) @@ -2184,8 +2240,12 @@ def test_get_schema_create_table(self, test_frame3): # Use a dataframe without a bool column, since MySQL converts bool to # TINYINT (which read_sql_table returns as an int and causes a dtype # mismatch) - from sqlalchemy import text - from sqlalchemy.engine import Engine + from sqlalchemy import ( + text, + ) + from sqlalchemy.engine import ( + Engine, + ) tbl = "test_get_schema_create_table" create_sql = sql.get_schema(test_frame3, tbl, con=self.conn) @@ -2209,7 +2269,9 @@ def test_dtype(self): TEXT, String, ) - from sqlalchemy.schema import MetaData + from sqlalchemy.schema import ( + MetaData, + ) cols = ["A", "B"] data = [(0.8, True), (0.9, None)] @@ -2246,7 +2308,9 @@ def test_notna_dtype(self): Float, Integer, ) - from sqlalchemy.schema import MetaData + from sqlalchemy.schema import ( + MetaData, + ) cols = { "Bool": Series([True, None]), @@ -2274,7 +2338,9 @@ def test_double_precision(self): Float, Integer, ) - from sqlalchemy.schema import MetaData + from sqlalchemy.schema import ( + MetaData, + ) V = 1.23456789101112131415 @@ -2316,7 +2382,9 @@ def test_double_precision(self): def test_connectable_issue_example(self): # This tests the example raised in issue # https://github.com/pandas-dev/pandas/issues/10104 - from sqlalchemy.engine import Engine + from sqlalchemy.engine import ( + Engine, + ) def test_select(connection): query = "SELECT test_foo_data FROM test_foo_data" @@ -2546,7 +2614,9 @@ def nullable_expected(self, storage, dtype_backend) -> DataFrame: if dtype_backend == "pyarrow": pa = pytest.importorskip("pyarrow") - from pandas.arrays import ArrowExtensionArray + from pandas.arrays import ( + ArrowExtensionArray, + ) df = DataFrame( { @@ -2752,7 +2822,9 @@ def setup_driver(cls): cls.driver = "psycopg2" def test_schema_support(self): - from sqlalchemy.engine import Engine + from sqlalchemy.engine import ( + Engine, + ) # only test this for postgresql (schema's not supported in # mysql/sqlite) diff --git a/pandas/tests/io/test_stata.py b/pandas/tests/io/test_stata.py index 75e9f7b744caa..ec02dafb56aea 100644 --- a/pandas/tests/io/test_stata.py +++ b/pandas/tests/io/test_stata.py @@ -1,6 +1,8 @@ import bz2 import datetime as dt -from datetime import datetime +from datetime import ( + datetime, +) import gzip import io import os @@ -12,7 +14,9 @@ import numpy as np import pytest -from pandas.core.dtypes.common import is_categorical_dtype +from pandas.core.dtypes.common import ( + is_categorical_dtype, +) import pandas as pd import pandas._testing as tm @@ -20,9 +24,13 @@ DataFrame, Series, ) -from pandas.tests.io.test_compression import _compression_to_extension +from pandas.tests.io.test_compression import ( + _compression_to_extension, +) -from pandas.io.parsers import read_csv +from pandas.io.parsers import ( + read_csv, +) from pandas.io.stata import ( CategoricalConversionWarning, InvalidColumnName, diff --git a/pandas/tests/io/test_user_agent.py b/pandas/tests/io/test_user_agent.py index 3b552805198b5..d8cda9d413642 100644 --- a/pandas/tests/io/test_user_agent.py +++ b/pandas/tests/io/test_user_agent.py @@ -3,7 +3,9 @@ """ import gzip import http.server -from io import BytesIO +from io import ( + BytesIO, +) import multiprocessing import socket import time @@ -11,7 +13,9 @@ import pytest -from pandas.compat import is_ci_environment +from pandas.compat import ( + is_ci_environment, +) import pandas.util._test_decorators as td import pandas as pd diff --git a/pandas/tests/io/xml/test_to_xml.py b/pandas/tests/io/xml/test_to_xml.py index 5203506683be7..341438c61db20 100644 --- a/pandas/tests/io/xml/test_to_xml.py +++ b/pandas/tests/io/xml/test_to_xml.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from io import ( BytesIO, @@ -17,10 +19,16 @@ Index, ) import pandas._testing as tm -from pandas.tests.io.test_compression import _compression_to_extension +from pandas.tests.io.test_compression import ( + _compression_to_extension, +) -from pandas.io.common import get_handle -from pandas.io.xml import read_xml +from pandas.io.common import ( + get_handle, +) +from pandas.io.xml import ( + read_xml, +) # CHECKLIST @@ -1018,7 +1026,9 @@ def test_stylesheet_buffered_reader(datapath, mode): @td.skip_if_no("lxml") def test_stylesheet_wrong_path(): - from lxml.etree import XMLSyntaxError + from lxml.etree import ( + XMLSyntaxError, + ) xsl = os.path.join("data", "xml", "row_field_output.xslt") @@ -1032,7 +1042,9 @@ def test_stylesheet_wrong_path(): @td.skip_if_no("lxml") @pytest.mark.parametrize("val", ["", b""]) def test_empty_string_stylesheet(val): - from lxml.etree import XMLSyntaxError + from lxml.etree import ( + XMLSyntaxError, + ) msg = "|".join( [ @@ -1049,7 +1061,9 @@ def test_empty_string_stylesheet(val): @td.skip_if_no("lxml") def test_incorrect_xsl_syntax(): - from lxml.etree import XMLSyntaxError + from lxml.etree import ( + XMLSyntaxError, + ) xsl = """\ @@ -1078,7 +1092,9 @@ def test_incorrect_xsl_syntax(): @td.skip_if_no("lxml") def test_incorrect_xsl_eval(): - from lxml.etree import XSLTParseError + from lxml.etree import ( + XSLTParseError, + ) xsl = """\ @@ -1107,7 +1123,9 @@ def test_incorrect_xsl_eval(): @td.skip_if_no("lxml") def test_incorrect_xsl_apply(): - from lxml.etree import XSLTApplyError + from lxml.etree import ( + XSLTApplyError, + ) xsl = """\ diff --git a/pandas/tests/io/xml/test_xml.py b/pandas/tests/io/xml/test_xml.py index b73116519178e..ae7f35324237b 100644 --- a/pandas/tests/io/xml/test_xml.py +++ b/pandas/tests/io/xml/test_xml.py @@ -1,21 +1,37 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from io import ( BytesIO, StringIO, ) -from lzma import LZMAError +from lzma import ( + LZMAError, +) import os -from tarfile import ReadError -from urllib.error import HTTPError -from xml.etree.ElementTree import ParseError -from zipfile import BadZipFile +from tarfile import ( + ReadError, +) +from urllib.error import ( + HTTPError, +) +from xml.etree.ElementTree import ( + ParseError, +) +from zipfile import ( + BadZipFile, +) import numpy as np import pytest -from pandas.compat import is_ci_environment -from pandas.compat._optional import import_optional_dependency +from pandas.compat import ( + is_ci_environment, +) +from pandas.compat._optional import ( + import_optional_dependency, +) from pandas.errors import ( EmptyDataError, ParserError, @@ -34,8 +50,12 @@ StringArray, ) -from pandas.io.common import get_handle -from pandas.io.xml import read_xml +from pandas.io.common import ( + get_handle, +) +from pandas.io.xml import ( + read_xml, +) # CHECK LIST @@ -477,7 +497,9 @@ def test_file_handle_close(datapath, parser): @td.skip_if_no("lxml") @pytest.mark.parametrize("val", ["", b""]) def test_empty_string_lxml(val): - from lxml.etree import XMLSyntaxError + from lxml.etree import ( + XMLSyntaxError, + ) msg = "|".join( [ @@ -498,7 +520,9 @@ def test_empty_string_etree(val): @td.skip_if_no("lxml") def test_wrong_file_path_lxml(): - from lxml.etree import XMLSyntaxError + from lxml.etree import ( + XMLSyntaxError, + ) filename = os.path.join("data", "html", "books.xml") @@ -571,7 +595,9 @@ def test_bad_xpath_etree(datapath): @td.skip_if_no("lxml") def test_bad_xpath_lxml(datapath): - from lxml.etree import XPathEvalError + from lxml.etree import ( + XPathEvalError, + ) filename = datapath("io", "data", "xml", "books.xml") with pytest.raises(XPathEvalError, match=("Invalid expression")): @@ -685,7 +711,9 @@ def test_missing_prefix_definition_etree(datapath): @td.skip_if_no("lxml") def test_missing_prefix_definition_lxml(datapath): - from lxml.etree import XPathEvalError + from lxml.etree import ( + XPathEvalError, + ) filename = datapath("io", "data", "xml", "cta_rail_lines.kml") with pytest.raises(XPathEvalError, match=("Undefined namespace prefix")): @@ -1237,7 +1265,9 @@ def test_style_charset(): @td.skip_if_no("lxml") def test_not_stylesheet(datapath): - from lxml.etree import XSLTParseError + from lxml.etree import ( + XSLTParseError, + ) kml = datapath("io", "data", "xml", "cta_rail_lines.kml") xsl = datapath("io", "data", "xml", "books.xml") @@ -1248,7 +1278,9 @@ def test_not_stylesheet(datapath): @td.skip_if_no("lxml") def test_incorrect_xsl_syntax(datapath): - from lxml.etree import XMLSyntaxError + from lxml.etree import ( + XMLSyntaxError, + ) xsl = """\ @@ -1332,7 +1368,9 @@ def test_incorrect_xsl_apply(datapath): @td.skip_if_no("lxml") def test_wrong_stylesheet(): - from lxml.etree import XMLSyntaxError + from lxml.etree import ( + XMLSyntaxError, + ) kml = os.path.join("data", "xml", "cta_rail_lines.kml") xsl = os.path.join("data", "xml", "flatten.xsl") @@ -1376,7 +1414,9 @@ def test_stylesheet_with_etree(): @td.skip_if_no("lxml") @pytest.mark.parametrize("val", ["", b""]) def test_empty_stylesheet(val): - from lxml.etree import XMLSyntaxError + from lxml.etree import ( + XMLSyntaxError, + ) kml = os.path.join("data", "xml", "cta_rail_lines.kml") @@ -1879,7 +1919,9 @@ def test_read_xml_nullable_dtypes(parser, string_storage, dtype_backend): if dtype_backend == "pyarrow": pa = pytest.importorskip("pyarrow") - from pandas.arrays import ArrowExtensionArray + from pandas.arrays import ( + ArrowExtensionArray, + ) expected = DataFrame( { diff --git a/pandas/tests/io/xml/test_xml_dtypes.py b/pandas/tests/io/xml/test_xml_dtypes.py index 17d1e7e00653b..fce1878f0de69 100644 --- a/pandas/tests/io/xml/test_xml_dtypes.py +++ b/pandas/tests/io/xml/test_xml_dtypes.py @@ -1,8 +1,12 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import pytest -from pandas.errors import ParserWarning +from pandas.errors import ( + ParserWarning, +) import pandas.util._test_decorators as td from pandas import ( @@ -12,7 +16,9 @@ ) import pandas._testing as tm -from pandas.io.xml import read_xml +from pandas.io.xml import ( + read_xml, +) @pytest.fixture(params=[pytest.param("lxml", marks=td.skip_if_no("lxml")), "etree"]) diff --git a/pandas/tests/libs/test_hashtable.py b/pandas/tests/libs/test_hashtable.py index 4a5d5e0c85a09..24c17b5b5a496 100644 --- a/pandas/tests/libs/test_hashtable.py +++ b/pandas/tests/libs/test_hashtable.py @@ -1,17 +1,25 @@ -from contextlib import contextmanager +from contextlib import ( + contextmanager, +) import re import struct import tracemalloc -from typing import Generator +from typing import ( + Generator, +) import numpy as np import pytest -from pandas._libs import hashtable as ht +from pandas._libs import ( + hashtable as ht, +) import pandas as pd import pandas._testing as tm -from pandas.core.algorithms import isin +from pandas.core.algorithms import ( + isin, +) @contextmanager diff --git a/pandas/tests/libs/test_join.py b/pandas/tests/libs/test_join.py index ba2e6e7130929..1e1bb26eb01e8 100644 --- a/pandas/tests/libs/test_join.py +++ b/pandas/tests/libs/test_join.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas._libs import join as libjoin +from pandas._libs import ( + join as libjoin, +) from pandas._libs.join import ( inner_join, left_outer_join, diff --git a/pandas/tests/libs/test_lib.py b/pandas/tests/libs/test_lib.py index 383e1b81e17a7..7f6e3991650ad 100644 --- a/pandas/tests/libs/test_lib.py +++ b/pandas/tests/libs/test_lib.py @@ -7,7 +7,9 @@ writers as libwriters, ) -from pandas import Index +from pandas import ( + Index, +) import pandas._testing as tm diff --git a/pandas/tests/plotting/common.py b/pandas/tests/plotting/common.py index 921f2b3ef3368..19648cfee75da 100644 --- a/pandas/tests/plotting/common.py +++ b/pandas/tests/plotting/common.py @@ -2,7 +2,9 @@ Module consolidating common testing functions for checking plotting. """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( TYPE_CHECKING, @@ -11,17 +13,25 @@ import numpy as np -from pandas.util._decorators import cache_readonly +from pandas.util._decorators import ( + cache_readonly, +) import pandas.util._test_decorators as td -from pandas.core.dtypes.api import is_list_like +from pandas.core.dtypes.api import ( + is_list_like, +) import pandas as pd -from pandas import Series +from pandas import ( + Series, +) import pandas._testing as tm if TYPE_CHECKING: - from matplotlib.axes import Axes + from matplotlib.axes import ( + Axes, + ) @td.skip_if_no_mpl @@ -46,7 +56,9 @@ def plt(self): @cache_readonly def colorconverter(self): - from matplotlib import colors + from matplotlib import ( + colors, + ) return colors.colorConverter @@ -126,7 +138,9 @@ def _check_visible(self, collections, visible=True): visible : bool expected visibility """ - from matplotlib.collections import Collection + from matplotlib.collections import ( + Collection, + ) if not isinstance(collections, Collection) and not is_list_like(collections): collections = [collections] @@ -182,7 +196,9 @@ def _check_colors( LineCollection, PolyCollection, ) - from matplotlib.lines import Line2D + from matplotlib.lines import ( + Line2D, + ) conv = self.colorconverter if linecolors is not None: @@ -260,7 +276,9 @@ def _check_ticks_props( yrot : number expected yticks rotation """ - from matplotlib.ticker import NullFormatter + from matplotlib.ticker import ( + NullFormatter, + ) axes = self._flatten_visible(axes) for ax in axes: @@ -322,7 +340,9 @@ def _check_axes_shape(self, axes, axes_num=None, layout=None, figsize=None): figsize : tuple expected figsize. default is matplotlib default """ - from pandas.plotting._matplotlib.tools import flatten_axes + from pandas.plotting._matplotlib.tools import ( + flatten_axes, + ) if figsize is None: figsize = (6.4, 4.8) @@ -362,7 +382,9 @@ def _flatten_visible(self, axes): axes : matplotlib Axes object, or its list-like """ - from pandas.plotting._matplotlib.tools import flatten_axes + from pandas.plotting._matplotlib.tools import ( + flatten_axes, + ) axes = flatten_axes(axes) axes = [ax for ax in axes if ax.get_visible()] @@ -414,7 +436,9 @@ def _check_box_return_type( Intended to be checked by calling from ``boxplot``. Normal ``plot`` doesn't attach ``ax.title``, it must be disabled. """ - from matplotlib.axes import Axes + from matplotlib.axes import ( + Axes, + ) types = {"dict": dict, "axes": Axes, "both": tuple} if expected_keys is None: diff --git a/pandas/tests/plotting/frame/test_frame.py b/pandas/tests/plotting/frame/test_frame.py index 16be54124bda3..008f0619558a4 100644 --- a/pandas/tests/plotting/frame/test_frame.py +++ b/pandas/tests/plotting/frame/test_frame.py @@ -15,7 +15,9 @@ import pandas.util._test_decorators as td -from pandas.core.dtypes.api import is_list_like +from pandas.core.dtypes.api import ( + is_list_like, +) import pandas as pd from pandas import ( @@ -33,7 +35,9 @@ _check_plot_works, ) -from pandas.io.formats.printing import pprint_thing +from pandas.io.formats.printing import ( + pprint_thing, +) @td.skip_if_no_mpl @@ -945,7 +949,9 @@ def test_kde_missing_vals(self): _check_plot_works(df.plot, kind="kde") def test_hist_df(self): - from matplotlib.patches import Rectangle + from matplotlib.patches import ( + Rectangle, + ) df = DataFrame(np.random.randn(100, 4)) series = df[0] @@ -1812,7 +1818,9 @@ def test_memory_leak(self): def test_df_gridspec_patterns(self): # GH 10819 - from matplotlib import gridspec + from matplotlib import ( + gridspec, + ) import matplotlib.pyplot as plt ts = Series(np.random.randn(10), index=date_range("1/1/2000", periods=10)) @@ -1949,7 +1957,9 @@ def test_plain_axes(self): # other examples fig, ax = self.plt.subplots() - from mpl_toolkits.axes_grid1 import make_axes_locatable + from mpl_toolkits.axes_grid1 import ( + make_axes_locatable, + ) divider = make_axes_locatable(ax) cax = divider.append_axes("right", size="5%", pad=0.05) @@ -1957,7 +1967,9 @@ def test_plain_axes(self): Series(np.random.rand(10)).plot(ax=cax) fig, ax = self.plt.subplots() - from mpl_toolkits.axes_grid1.inset_locator import inset_axes + from mpl_toolkits.axes_grid1.inset_locator import ( + inset_axes, + ) iax = inset_axes(ax, width="30%", height=1.0, loc=3) Series(np.random.rand(10)).plot(ax=ax) diff --git a/pandas/tests/plotting/frame/test_frame_color.py b/pandas/tests/plotting/frame/test_frame_color.py index a2ab72ecb690e..7dbbead5c6caf 100644 --- a/pandas/tests/plotting/frame/test_frame_color.py +++ b/pandas/tests/plotting/frame/test_frame_color.py @@ -7,13 +7,17 @@ import pandas.util._test_decorators as td import pandas as pd -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm from pandas.tests.plotting.common import ( TestPlotBase, _check_plot_works, ) -from pandas.util.version import Version +from pandas.util.version import ( + Version, +) @td.skip_if_no_mpl @@ -96,7 +100,9 @@ def test_bar_colors(self): self._check_colors(ax.patches[::5], facecolors=custom_colors) tm.close() - from matplotlib import cm + from matplotlib import ( + cm, + ) # Test str -> colormap functionality ax = df.plot.bar(colormap="jet") @@ -235,7 +241,9 @@ def test_scatter_colorbar_different_cmap(self): assert ax.collections[1].cmap.name == "magma" def test_line_colors(self): - from matplotlib import cm + from matplotlib import ( + cm, + ) custom_colors = "rgcby" df = DataFrame(np.random.randn(5, 5)) @@ -285,7 +293,9 @@ def test_dont_modify_colors(self): def test_line_colors_and_styles_subplots(self): # GH 9894 - from matplotlib import cm + from matplotlib import ( + cm, + ) default_colors = self._unpack_cycler(self.plt.rcParams) @@ -352,8 +362,12 @@ def test_line_colors_and_styles_subplots(self): tm.close() def test_area_colors(self): - from matplotlib import cm - from matplotlib.collections import PolyCollection + from matplotlib import ( + cm, + ) + from matplotlib.collections import ( + PolyCollection, + ) custom_colors = "rgcby" df = DataFrame(np.random.rand(5, 5)) @@ -408,7 +422,9 @@ def test_hist_colors(self): self._check_colors(ax.patches[::10], facecolors=custom_colors) tm.close() - from matplotlib import cm + from matplotlib import ( + cm, + ) # Test str -> colormap functionality ax = df.plot.hist(colormap="jet") @@ -431,7 +447,9 @@ def test_hist_colors(self): @td.skip_if_no_scipy def test_kde_colors(self): - from matplotlib import cm + from matplotlib import ( + cm, + ) custom_colors = "rgcby" df = DataFrame(np.random.rand(5, 5)) @@ -451,7 +469,9 @@ def test_kde_colors(self): @td.skip_if_no_scipy def test_kde_colors_and_styles_subplots(self): - from matplotlib import cm + from matplotlib import ( + cm, + ) default_colors = self._unpack_cycler(self.plt.rcParams) @@ -556,7 +576,9 @@ def _check_colors(bp, box_c, whiskers_c, medians_c, caps_c="k", fliers_c=None): _check_colors(bp, default_colors[0], "c", "m", default_colors[0]) tm.close() - from matplotlib import cm + from matplotlib import ( + cm, + ) # Test str -> colormap functionality bp = df.plot.box(colormap="jet", return_type="dict") diff --git a/pandas/tests/plotting/frame/test_frame_groupby.py b/pandas/tests/plotting/frame/test_frame_groupby.py index 9c148645966ad..728c8c36b4a21 100644 --- a/pandas/tests/plotting/frame/test_frame_groupby.py +++ b/pandas/tests/plotting/frame/test_frame_groupby.py @@ -4,8 +4,12 @@ import pandas.util._test_decorators as td -from pandas import DataFrame -from pandas.tests.plotting.common import TestPlotBase +from pandas import ( + DataFrame, +) +from pandas.tests.plotting.common import ( + TestPlotBase, +) @td.skip_if_no_mpl diff --git a/pandas/tests/plotting/frame/test_frame_legend.py b/pandas/tests/plotting/frame/test_frame_legend.py index bad42ebc85cc8..a55fc16662c1d 100644 --- a/pandas/tests/plotting/frame/test_frame_legend.py +++ b/pandas/tests/plotting/frame/test_frame_legend.py @@ -7,8 +7,12 @@ DataFrame, date_range, ) -from pandas.tests.plotting.common import TestPlotBase -from pandas.util.version import Version +from pandas.tests.plotting.common import ( + TestPlotBase, +) +from pandas.util.version import ( + Version, +) class TestFrameLegend(TestPlotBase): @@ -21,8 +25,12 @@ class TestFrameLegend(TestPlotBase): def test_mixed_yerr(self): # https://github.com/pandas-dev/pandas/issues/39522 import matplotlib as mpl - from matplotlib.collections import LineCollection - from matplotlib.lines import Line2D + from matplotlib.collections import ( + LineCollection, + ) + from matplotlib.lines import ( + Line2D, + ) df = DataFrame([{"x": 1, "a": 1, "b": 1}, {"x": 2, "a": 2, "b": 3}]) diff --git a/pandas/tests/plotting/frame/test_frame_subplots.py b/pandas/tests/plotting/frame/test_frame_subplots.py index 4f55f9504f0db..0894f1e8afa21 100644 --- a/pandas/tests/plotting/frame/test_frame_subplots.py +++ b/pandas/tests/plotting/frame/test_frame_subplots.py @@ -6,8 +6,12 @@ import numpy as np import pytest -from pandas.compat import is_platform_linux -from pandas.compat.numpy import np_version_gte1p24 +from pandas.compat import ( + is_platform_linux, +) +from pandas.compat.numpy import ( + np_version_gte1p24, +) import pandas.util._test_decorators as td import pandas as pd @@ -17,9 +21,13 @@ date_range, ) import pandas._testing as tm -from pandas.tests.plotting.common import TestPlotBase +from pandas.tests.plotting.common import ( + TestPlotBase, +) -from pandas.io.formats.printing import pprint_thing +from pandas.io.formats.printing import ( + pprint_thing, +) @td.skip_if_no_mpl diff --git a/pandas/tests/plotting/frame/test_hist_box_by.py b/pandas/tests/plotting/frame/test_hist_box_by.py index 999118144b58d..ec6af5fff573b 100644 --- a/pandas/tests/plotting/frame/test_hist_box_by.py +++ b/pandas/tests/plotting/frame/test_hist_box_by.py @@ -5,7 +5,9 @@ import pandas.util._test_decorators as td -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm from pandas.tests.plotting.common import ( TestPlotBase, diff --git a/pandas/tests/plotting/test_boxplot_method.py b/pandas/tests/plotting/test_boxplot_method.py index 29276eba09346..6f08b1ea482aa 100644 --- a/pandas/tests/plotting/test_boxplot_method.py +++ b/pandas/tests/plotting/test_boxplot_method.py @@ -22,7 +22,9 @@ _check_plot_works, ) -from pandas.io.formats.printing import pprint_thing +from pandas.io.formats.printing import ( + pprint_thing, +) @td.skip_if_no_mpl diff --git a/pandas/tests/plotting/test_common.py b/pandas/tests/plotting/test_common.py index d4624cfc74872..8cb5238bc355f 100644 --- a/pandas/tests/plotting/test_common.py +++ b/pandas/tests/plotting/test_common.py @@ -2,7 +2,9 @@ import pandas.util._test_decorators as td -from pandas import DataFrame +from pandas import ( + DataFrame, +) from pandas.tests.plotting.common import ( TestPlotBase, _check_plot_works, diff --git a/pandas/tests/plotting/test_converter.py b/pandas/tests/plotting/test_converter.py index 8ab15abeca7fd..b2851e27a549c 100644 --- a/pandas/tests/plotting/test_converter.py +++ b/pandas/tests/plotting/test_converter.py @@ -33,7 +33,9 @@ ) try: - from pandas.plotting._matplotlib import converter + from pandas.plotting._matplotlib import ( + converter, + ) except ImportError: # try / except, rather than skip, to avoid internal refactoring # causing an improper skip diff --git a/pandas/tests/plotting/test_datetimelike.py b/pandas/tests/plotting/test_datetimelike.py index 8fc4170a8562c..7452878e7909e 100644 --- a/pandas/tests/plotting/test_datetimelike.py +++ b/pandas/tests/plotting/test_datetimelike.py @@ -36,10 +36,16 @@ PeriodIndex, period_range, ) -from pandas.core.indexes.timedeltas import timedelta_range -from pandas.tests.plotting.common import TestPlotBase +from pandas.core.indexes.timedeltas import ( + timedelta_range, +) +from pandas.tests.plotting.common import ( + TestPlotBase, +) -from pandas.tseries.offsets import WeekOfMonth +from pandas.tseries.offsets import ( + WeekOfMonth, +) @td.skip_if_no_mpl @@ -149,7 +155,9 @@ def test_high_freq(self, freq): _check_plot_works(ser.plot, ax=ax) def test_get_datevalue(self): - from pandas.plotting._matplotlib.converter import get_datevalue + from pandas.plotting._matplotlib.converter import ( + get_datevalue, + ) assert get_datevalue(None, "D") is None assert get_datevalue(1987, "A") == 1987 @@ -1243,7 +1251,9 @@ def test_mpl_nopandas(self): def test_irregular_ts_shared_ax_xlim(self): # GH 2960 - from pandas.plotting._matplotlib.converter import DatetimeConverter + from pandas.plotting._matplotlib.converter import ( + DatetimeConverter, + ) ts = tm.makeTimeSeries()[:20] ts_irregular = ts[[1, 4, 5, 6, 8, 9, 10, 12, 13, 14, 15, 17, 18]] @@ -1307,7 +1317,9 @@ def test_secondary_y_mixed_freq_ts_xlim(self): def test_secondary_y_irregular_ts_xlim(self): # GH 3490 - irregular-timeseries with secondary y - from pandas.plotting._matplotlib.converter import DatetimeConverter + from pandas.plotting._matplotlib.converter import ( + DatetimeConverter, + ) ts = tm.makeTimeSeries()[:20] ts_irregular = ts[[1, 4, 5, 6, 8, 9, 10, 12, 13, 14, 15, 17, 18]] diff --git a/pandas/tests/plotting/test_groupby.py b/pandas/tests/plotting/test_groupby.py index 8cde3062d09f9..e7fdefb3e656b 100644 --- a/pandas/tests/plotting/test_groupby.py +++ b/pandas/tests/plotting/test_groupby.py @@ -12,7 +12,9 @@ Series, ) import pandas._testing as tm -from pandas.tests.plotting.common import TestPlotBase +from pandas.tests.plotting.common import ( + TestPlotBase, +) @td.skip_if_no_mpl diff --git a/pandas/tests/plotting/test_hist_method.py b/pandas/tests/plotting/test_hist_method.py index 04228bde1c6b9..2be06c5669a83 100644 --- a/pandas/tests/plotting/test_hist_method.py +++ b/pandas/tests/plotting/test_hist_method.py @@ -127,7 +127,9 @@ def test_hist_by_no_extra_plots(self, hist_df): assert len(self.plt.get_fignums()) == 1 def test_plot_fails_when_ax_differs_from_figure(self, ts): - from pylab import figure + from pylab import ( + figure, + ) fig1 = figure() fig2 = figure() @@ -233,7 +235,9 @@ def test_hist_kde_color(self, ts): class TestDataFramePlots(TestPlotBase): @pytest.mark.slow def test_hist_df_legacy(self, hist_df): - from matplotlib.patches import Rectangle + from matplotlib.patches import ( + Rectangle, + ) with tm.assert_produces_warning(UserWarning, check_stacklevel=False): _check_plot_works(hist_df.hist) @@ -570,7 +574,9 @@ def test_hist_with_nans_and_weights(self): no_nan_df = DataFrame([[0.4, 0.2, 0.3], [0.7, 0.8, 0.9]], columns=list("abc")) no_nan_weights = np.array([[0.3, 0.25, 0.25], [0.45, 0.45, 0.45]]) - from matplotlib.patches import Rectangle + from matplotlib.patches import ( + Rectangle, + ) _, ax0 = self.plt.subplots() df.plot.hist(ax=ax0, weights=weights) @@ -593,9 +599,13 @@ def test_hist_with_nans_and_weights(self): @td.skip_if_no_mpl class TestDataFrameGroupByPlots(TestPlotBase): def test_grouped_hist_legacy(self): - from matplotlib.patches import Rectangle + from matplotlib.patches import ( + Rectangle, + ) - from pandas.plotting._matplotlib.hist import _grouped_hist + from pandas.plotting._matplotlib.hist import ( + _grouped_hist, + ) df = DataFrame(np.random.randn(500, 1), columns=["A"]) df["B"] = to_datetime( diff --git a/pandas/tests/plotting/test_misc.py b/pandas/tests/plotting/test_misc.py index a89956d1c14c8..bb785413c38ee 100644 --- a/pandas/tests/plotting/test_misc.py +++ b/pandas/tests/plotting/test_misc.py @@ -66,7 +66,9 @@ def test_get_accessor_args(): @td.skip_if_no_mpl class TestSeriesPlots(TestPlotBase): def test_autocorrelation_plot(self): - from pandas.plotting import autocorrelation_plot + from pandas.plotting import ( + autocorrelation_plot, + ) ser = tm.makeTimeSeries(name="ts") # Ensure no UserWarning when making plot @@ -79,13 +81,17 @@ def test_autocorrelation_plot(self): @pytest.mark.parametrize("kwargs", [{}, {"lag": 5}]) def test_lag_plot(self, kwargs): - from pandas.plotting import lag_plot + from pandas.plotting import ( + lag_plot, + ) ser = tm.makeTimeSeries(name="ts") _check_plot_works(lag_plot, series=ser, **kwargs) def test_bootstrap_plot(self): - from pandas.plotting import bootstrap_plot + from pandas.plotting import ( + bootstrap_plot, + ) ser = tm.makeTimeSeries(name="ts") _check_plot_works(bootstrap_plot, series=ser, size=10) @@ -136,9 +142,13 @@ def test_scatter_matrix_axis(self, pass_axis): @pytest.mark.slow def test_andrews_curves(self, iris): - from matplotlib import cm + from matplotlib import ( + cm, + ) - from pandas.plotting import andrews_curves + from pandas.plotting import ( + andrews_curves, + ) df = iris # Ensure no UserWarning when making plot @@ -213,9 +223,13 @@ def test_andrews_curves(self, iris): @pytest.mark.slow def test_parallel_coordinates(self, iris): - from matplotlib import cm + from matplotlib import ( + cm, + ) - from pandas.plotting import parallel_coordinates + from pandas.plotting import ( + parallel_coordinates, + ) df = iris @@ -262,7 +276,9 @@ def test_parallel_coordinates(self, iris): @pytest.mark.filterwarnings("ignore:Attempting to set:UserWarning") def test_parallel_coordinates_with_sorted_labels(self): """For #15908""" - from pandas.plotting import parallel_coordinates + from pandas.plotting import ( + parallel_coordinates, + ) df = DataFrame( { @@ -286,9 +302,13 @@ def test_parallel_coordinates_with_sorted_labels(self): assert prev[1] < nxt[1] and prev[0] < nxt[0] def test_radviz(self, iris): - from matplotlib import cm + from matplotlib import ( + cm, + ) - from pandas.plotting import radviz + from pandas.plotting import ( + radviz, + ) df = iris # Ensure no UserWarning when making plot @@ -367,14 +387,18 @@ def test_get_standard_colors_random_seed(self): assert rand1 != rand2 # Make sure it produces the same colors every time it's called - from pandas.plotting._matplotlib.style import get_standard_colors + from pandas.plotting._matplotlib.style import ( + get_standard_colors, + ) color1 = get_standard_colors(1, color_type="random") color2 = get_standard_colors(1, color_type="random") assert color1 == color2 def test_get_standard_colors_default_num_colors(self): - from pandas.plotting._matplotlib.style import get_standard_colors + from pandas.plotting._matplotlib.style import ( + get_standard_colors, + ) # Make sure the default color_types returns the specified amount color1 = get_standard_colors(1, color_type="default") @@ -405,9 +429,13 @@ def test_get_standard_colors_no_appending(self): # Make sure not to add more colors so that matplotlib can cycle # correctly. - from matplotlib import cm + from matplotlib import ( + cm, + ) - from pandas.plotting._matplotlib.style import get_standard_colors + from pandas.plotting._matplotlib.style import ( + get_standard_colors, + ) color_before = cm.gnuplot(range(5)) color_after = get_standard_colors(1, color=color_before) @@ -442,7 +470,9 @@ def test_dictionary_color(self): def test_bar_plot(self): # GH38947 # Test bar plot with string and int index - from matplotlib.text import Text + from matplotlib.text import ( + Text, + ) expected = [Text(0, 0, "0"), Text(1, 0, "Total")] @@ -461,7 +491,9 @@ def test_bar_plot(self): def test_barh_plot_labels_mixed_integer_string(self): # GH39126 # Test barh plot with string and integer at the same column - from matplotlib.text import Text + from matplotlib.text import ( + Text, + ) df = DataFrame([{"word": 1, "value": 0}, {"word": "knowledg", "value": 2}]) plot_barh = df.plot.barh(x="word", legend=None) @@ -598,7 +630,9 @@ def test_plot_bar_axis_units_timestamp_conversion(self): def test_bar_plt_xaxis_intervalrange(self): # GH 38969 # Ensure IntervalIndex x-axis produces a bar plot as expected - from matplotlib.text import Text + from matplotlib.text import ( + Text, + ) expected = [Text(0, 0, "([0, 1],)"), Text(1, 0, "([1, 2],)")] s = Series( diff --git a/pandas/tests/plotting/test_series.py b/pandas/tests/plotting/test_series.py index d21c42e3eeaf9..b6752e2e7de7a 100644 --- a/pandas/tests/plotting/test_series.py +++ b/pandas/tests/plotting/test_series.py @@ -1,12 +1,20 @@ """ Test cases for Series.plot """ -from datetime import datetime -from itertools import chain +from datetime import ( + datetime, +) +from itertools import ( + chain, +) import numpy as np import pytest -from pandas.compat import is_platform_linux -from pandas.compat.numpy import np_version_gte1p24 +from pandas.compat import ( + is_platform_linux, +) +from pandas.compat.numpy import ( + np_version_gte1p24, +) import pandas.util._test_decorators as td import pandas as pd @@ -308,7 +316,9 @@ def test_rotation(self): self._check_ticks_props(axes, xrot=30) def test_irregular_datetime(self): - from pandas.plotting._matplotlib.converter import DatetimeConverter + from pandas.plotting._matplotlib.converter import ( + DatetimeConverter, + ) rng = date_range("1/1/2000", "3/1/2000") rng = rng[[0, 1, 2, 3, 5, 9, 10, 11, 12]] @@ -637,7 +647,9 @@ def test_series_grid_settings(self): @pytest.mark.parametrize("c", ["r", "red", "green", "#FF0000"]) def test_standard_colors(self, c): - from pandas.plotting._matplotlib.style import get_standard_colors + from pandas.plotting._matplotlib.style import ( + get_standard_colors, + ) result = get_standard_colors(1, color=c) assert result == [c] @@ -652,9 +664,13 @@ def test_standard_colors(self, c): assert result == [c] * 3 def test_standard_colors_all(self): - from matplotlib import colors + from matplotlib import ( + colors, + ) - from pandas.plotting._matplotlib.style import get_standard_colors + from pandas.plotting._matplotlib.style import ( + get_standard_colors, + ) # multiple colors like mediumaquamarine for c in colors.cnames: @@ -729,7 +745,9 @@ def test_xtick_barPlot(self): def test_custom_business_day_freq(self): # GH7222 - from pandas.tseries.offsets import CustomBusinessDay + from pandas.tseries.offsets import ( + CustomBusinessDay, + ) s = Series( range(100, 121), diff --git a/pandas/tests/plotting/test_style.py b/pandas/tests/plotting/test_style.py index 665bda15724fd..dc624442c68ce 100644 --- a/pandas/tests/plotting/test_style.py +++ b/pandas/tests/plotting/test_style.py @@ -1,9 +1,13 @@ import pytest -from pandas import Series +from pandas import ( + Series, +) pytest.importorskip("matplotlib") -from pandas.plotting._matplotlib.style import get_standard_colors +from pandas.plotting._matplotlib.style import ( + get_standard_colors, +) class TestGetStandardColors: @@ -19,7 +23,9 @@ class TestGetStandardColors: ) def test_default_colors_named_from_prop_cycle(self, num_colors, expected): import matplotlib as mpl - from matplotlib.pyplot import cycler + from matplotlib.pyplot import ( + cycler, + ) mpl_params = { "axes.prop_cycle": cycler(color=["red", "green", "blue"]), @@ -40,7 +46,9 @@ def test_default_colors_named_from_prop_cycle(self, num_colors, expected): ) def test_default_colors_named_from_prop_cycle_string(self, num_colors, expected): import matplotlib as mpl - from matplotlib.pyplot import cycler + from matplotlib.pyplot import ( + cycler, + ) mpl_params = { "axes.prop_cycle": cycler(color="bgry"), diff --git a/pandas/tests/reductions/test_reductions.py b/pandas/tests/reductions/test_reductions.py index 5fa341c9eb74a..8f06beef95e26 100644 --- a/pandas/tests/reductions/test_reductions.py +++ b/pandas/tests/reductions/test_reductions.py @@ -26,7 +26,9 @@ to_timedelta, ) import pandas._testing as tm -from pandas.core import nanops +from pandas.core import ( + nanops, +) def get_objs(): diff --git a/pandas/tests/reductions/test_stat_reductions.py b/pandas/tests/reductions/test_stat_reductions.py index dd6aef04a2e6a..d7278d62e9e44 100644 --- a/pandas/tests/reductions/test_stat_reductions.py +++ b/pandas/tests/reductions/test_stat_reductions.py @@ -226,7 +226,9 @@ def test_sem(self): @td.skip_if_no_scipy def test_skew(self): - from scipy.stats import skew + from scipy.stats import ( + skew, + ) string_series = tm.makeStringSeries().rename("series") @@ -248,7 +250,9 @@ def test_skew(self): @td.skip_if_no_scipy def test_kurt(self): - from scipy.stats import kurtosis + from scipy.stats import ( + kurtosis, + ) string_series = tm.makeStringSeries().rename("series") diff --git a/pandas/tests/resample/conftest.py b/pandas/tests/resample/conftest.py index 38f682c9c4f5a..92e4cb3eee151 100644 --- a/pandas/tests/resample/conftest.py +++ b/pandas/tests/resample/conftest.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest @@ -7,8 +9,12 @@ DataFrame, Series, ) -from pandas.core.indexes.datetimes import date_range -from pandas.core.indexes.period import period_range +from pandas.core.indexes.datetimes import ( + date_range, +) +from pandas.core.indexes.period import ( + period_range, +) # The various methods we support downsample_methods = [ diff --git a/pandas/tests/resample/test_base.py b/pandas/tests/resample/test_base.py index 19445c35f0bb6..b5a4290b11974 100644 --- a/pandas/tests/resample/test_base.py +++ b/pandas/tests/resample/test_base.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest @@ -10,12 +12,24 @@ Series, ) import pandas._testing as tm -from pandas.core.groupby.groupby import DataError -from pandas.core.groupby.grouper import Grouper -from pandas.core.indexes.datetimes import date_range -from pandas.core.indexes.period import period_range -from pandas.core.indexes.timedeltas import timedelta_range -from pandas.core.resample import _asfreq_compat +from pandas.core.groupby.groupby import ( + DataError, +) +from pandas.core.groupby.grouper import ( + Grouper, +) +from pandas.core.indexes.datetimes import ( + date_range, +) +from pandas.core.indexes.period import ( + period_range, +) +from pandas.core.indexes.timedeltas import ( + timedelta_range, +) +from pandas.core.resample import ( + _asfreq_compat, +) # a fixture value can be overridden by the test parameter value. Note that the # value of the fixture can be overridden this way even if the test doesn't use diff --git a/pandas/tests/resample/test_datetime_index.py b/pandas/tests/resample/test_datetime_index.py index d7ee7744ebcd4..15620cf9cd251 100644 --- a/pandas/tests/resample/test_datetime_index.py +++ b/pandas/tests/resample/test_datetime_index.py @@ -1,14 +1,26 @@ -from datetime import datetime -from functools import partial -from io import StringIO -from typing import List +from datetime import ( + datetime, +) +from functools import ( + partial, +) +from io import ( + StringIO, +) +from typing import ( + List, +) import numpy as np import pytest import pytz -from pandas._libs import lib -from pandas._typing import DatetimeNaTType +from pandas._libs import ( + lib, +) +from pandas._typing import ( + DatetimeNaTType, +) import pandas as pd from pandas import ( @@ -20,8 +32,12 @@ notna, ) import pandas._testing as tm -from pandas.core.groupby.grouper import Grouper -from pandas.core.indexes.datetimes import date_range +from pandas.core.groupby.grouper import ( + Grouper, +) +from pandas.core.indexes.datetimes import ( + date_range, +) from pandas.core.indexes.period import ( Period, period_range, @@ -31,8 +47,12 @@ _get_timestamp_range_edges, ) -from pandas.tseries import offsets -from pandas.tseries.offsets import Minute +from pandas.tseries import ( + offsets, +) +from pandas.tseries.offsets import ( + Minute, +) @pytest.fixture() diff --git a/pandas/tests/resample/test_period_index.py b/pandas/tests/resample/test_period_index.py index 6d0a56a947065..960696737f4b6 100644 --- a/pandas/tests/resample/test_period_index.py +++ b/pandas/tests/resample/test_period_index.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import dateutil import numpy as np @@ -9,8 +11,12 @@ DAYS, MONTHS, ) -from pandas._libs.tslibs.period import IncompatibleFrequency -from pandas.errors import InvalidIndexError +from pandas._libs.tslibs.period import ( + IncompatibleFrequency, +) +from pandas.errors import ( + InvalidIndexError, +) import pandas as pd from pandas import ( @@ -19,15 +25,21 @@ Timestamp, ) import pandas._testing as tm -from pandas.core.indexes.datetimes import date_range +from pandas.core.indexes.datetimes import ( + date_range, +) from pandas.core.indexes.period import ( Period, PeriodIndex, period_range, ) -from pandas.core.resample import _get_period_range_edges +from pandas.core.resample import ( + _get_period_range_edges, +) -from pandas.tseries import offsets +from pandas.tseries import ( + offsets, +) @pytest.fixture() diff --git a/pandas/tests/resample/test_resample_api.py b/pandas/tests/resample/test_resample_api.py index 7ce4f482b6414..036c3e48bdb24 100644 --- a/pandas/tests/resample/test_resample_api.py +++ b/pandas/tests/resample/test_resample_api.py @@ -1,10 +1,16 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest -from pandas._libs import lib -from pandas.errors import UnsupportedFunctionCall +from pandas._libs import ( + lib, +) +from pandas.errors import ( + UnsupportedFunctionCall, +) import pandas as pd from pandas import ( @@ -13,7 +19,9 @@ Series, ) import pandas._testing as tm -from pandas.core.indexes.datetimes import date_range +from pandas.core.indexes.datetimes import ( + date_range, +) dti = date_range(start=datetime(2005, 1, 1), end=datetime(2005, 1, 10), freq="Min") diff --git a/pandas/tests/resample/test_resampler_grouper.py b/pandas/tests/resample/test_resampler_grouper.py index 425eef69c52ae..d4751feeadf00 100644 --- a/pandas/tests/resample/test_resampler_grouper.py +++ b/pandas/tests/resample/test_resampler_grouper.py @@ -1,9 +1,13 @@ -from textwrap import dedent +from textwrap import ( + dedent, +) import numpy as np import pytest -from pandas.util._test_decorators import async_mark +from pandas.util._test_decorators import ( + async_mark, +) import pandas as pd from pandas import ( @@ -14,7 +18,9 @@ Timestamp, ) import pandas._testing as tm -from pandas.core.indexes.datetimes import date_range +from pandas.core.indexes.datetimes import ( + date_range, +) test_frame = DataFrame( {"A": [1] * 20 + [2] * 12 + [3] * 8, "B": np.arange(40)}, @@ -24,7 +30,9 @@ @async_mark() async def test_tab_complete_ipython6_warning(ip): - from IPython.core.completer import provisionalcompleter + from IPython.core.completer import ( + provisionalcompleter, + ) code = dedent( """\ diff --git a/pandas/tests/resample/test_time_grouper.py b/pandas/tests/resample/test_time_grouper.py index debfb48c2b39c..16c9b05b0c6e8 100644 --- a/pandas/tests/resample/test_time_grouper.py +++ b/pandas/tests/resample/test_time_grouper.py @@ -1,5 +1,9 @@ -from datetime import datetime -from operator import methodcaller +from datetime import ( + datetime, +) +from operator import ( + methodcaller, +) import numpy as np import pytest @@ -11,8 +15,12 @@ Timestamp, ) import pandas._testing as tm -from pandas.core.groupby.grouper import Grouper -from pandas.core.indexes.datetimes import date_range +from pandas.core.groupby.grouper import ( + Grouper, +) +from pandas.core.indexes.datetimes import ( + date_range, +) test_series = Series(np.random.randn(1000), index=date_range("1/1/2000", periods=1000)) diff --git a/pandas/tests/resample/test_timedelta.py b/pandas/tests/resample/test_timedelta.py index 8b6e757c0a46a..0642b45550d47 100644 --- a/pandas/tests/resample/test_timedelta.py +++ b/pandas/tests/resample/test_timedelta.py @@ -1,4 +1,6 @@ -from datetime import timedelta +from datetime import ( + timedelta, +) import numpy as np import pytest @@ -9,7 +11,9 @@ Series, ) import pandas._testing as tm -from pandas.core.indexes.timedeltas import timedelta_range +from pandas.core.indexes.timedeltas import ( + timedelta_range, +) def test_asfreq_bug(): diff --git a/pandas/tests/reshape/concat/test_append.py b/pandas/tests/reshape/concat/test_append.py index b540cd514c0b5..8f21ee81dcb88 100644 --- a/pandas/tests/reshape/concat/test_append.py +++ b/pandas/tests/reshape/concat/test_append.py @@ -1,5 +1,7 @@ import datetime as dt -from itertools import combinations +from itertools import ( + combinations, +) import dateutil import numpy as np diff --git a/pandas/tests/reshape/concat/test_categorical.py b/pandas/tests/reshape/concat/test_categorical.py index 14c559db4b0b5..1263dc873aafa 100644 --- a/pandas/tests/reshape/concat/test_categorical.py +++ b/pandas/tests/reshape/concat/test_categorical.py @@ -1,6 +1,8 @@ import numpy as np -from pandas.core.dtypes.dtypes import CategoricalDtype +from pandas.core.dtypes.dtypes import ( + CategoricalDtype, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/reshape/concat/test_concat.py b/pandas/tests/reshape/concat/test_concat.py index b08d0a33d08c6..e31d5f4475cb3 100644 --- a/pandas/tests/reshape/concat/test_concat.py +++ b/pandas/tests/reshape/concat/test_concat.py @@ -2,9 +2,15 @@ abc, deque, ) -from datetime import datetime -from decimal import Decimal -from typing import Iterator +from datetime import ( + datetime, +) +from decimal import ( + Decimal, +) +from typing import ( + Iterator, +) from warnings import ( catch_warnings, simplefilter, @@ -30,8 +36,12 @@ date_range, ) import pandas._testing as tm -from pandas.core.arrays import SparseArray -from pandas.tests.extension.decimal import to_decimal +from pandas.core.arrays import ( + SparseArray, +) +from pandas.tests.extension.decimal import ( + to_decimal, +) class TestConcatenate: diff --git a/pandas/tests/reshape/concat/test_datetimes.py b/pandas/tests/reshape/concat/test_datetimes.py index f16358813488e..48d2a36391735 100644 --- a/pandas/tests/reshape/concat/test_datetimes.py +++ b/pandas/tests/reshape/concat/test_datetimes.py @@ -1,5 +1,7 @@ import datetime as dt -from datetime import datetime +from datetime import ( + datetime, +) import dateutil import numpy as np diff --git a/pandas/tests/reshape/concat/test_index.py b/pandas/tests/reshape/concat/test_index.py index e0ea09138ef3c..9d9a9cde609b0 100644 --- a/pandas/tests/reshape/concat/test_index.py +++ b/pandas/tests/reshape/concat/test_index.py @@ -1,9 +1,13 @@ -from copy import deepcopy +from copy import ( + deepcopy, +) import numpy as np import pytest -from pandas.errors import PerformanceWarning +from pandas.errors import ( + PerformanceWarning, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/reshape/concat/test_invalid.py b/pandas/tests/reshape/concat/test_invalid.py index a8c6ef97d1ccc..c382e874d6181 100644 --- a/pandas/tests/reshape/concat/test_invalid.py +++ b/pandas/tests/reshape/concat/test_invalid.py @@ -1,4 +1,6 @@ -from io import StringIO +from io import ( + StringIO, +) import numpy as np import pytest diff --git a/pandas/tests/reshape/concat/test_sort.py b/pandas/tests/reshape/concat/test_sort.py index 2724f81958893..5b7bd9ef5d8fa 100644 --- a/pandas/tests/reshape/concat/test_sort.py +++ b/pandas/tests/reshape/concat/test_sort.py @@ -2,7 +2,9 @@ import pytest import pandas as pd -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm diff --git a/pandas/tests/reshape/merge/test_merge.py b/pandas/tests/reshape/merge/test_merge.py index ad90d5ae147c8..c0fcb8054829a 100644 --- a/pandas/tests/reshape/merge/test_merge.py +++ b/pandas/tests/reshape/merge/test_merge.py @@ -12,7 +12,9 @@ is_categorical_dtype, is_object_dtype, ) -from pandas.core.dtypes.dtypes import CategoricalDtype +from pandas.core.dtypes.dtypes import ( + CategoricalDtype, +) import pandas as pd from pandas import ( @@ -29,8 +31,12 @@ TimedeltaIndex, ) import pandas._testing as tm -from pandas.api.types import CategoricalDtype as CDT -from pandas.core.reshape.concat import concat +from pandas.api.types import ( + CategoricalDtype as CDT, +) +from pandas.core.reshape.concat import ( + concat, +) from pandas.core.reshape.merge import ( MergeError, merge, diff --git a/pandas/tests/reshape/merge/test_merge_asof.py b/pandas/tests/reshape/merge/test_merge_asof.py index 0aa9026cc0808..ee67852fe47b8 100644 --- a/pandas/tests/reshape/merge/test_merge_asof.py +++ b/pandas/tests/reshape/merge/test_merge_asof.py @@ -13,7 +13,9 @@ to_datetime, ) import pandas._testing as tm -from pandas.core.reshape.merge import MergeError +from pandas.core.reshape.merge import ( + MergeError, +) @pytest.fixture(params=["s", "ms", "us", "ns"]) diff --git a/pandas/tests/reshape/merge/test_merge_cross.py b/pandas/tests/reshape/merge/test_merge_cross.py index 7e14b515836cf..a7c42b57d6a22 100644 --- a/pandas/tests/reshape/merge/test_merge_cross.py +++ b/pandas/tests/reshape/merge/test_merge_cross.py @@ -1,6 +1,8 @@ import pytest -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm from pandas.core.reshape.merge import ( MergeError, diff --git a/pandas/tests/reshape/merge/test_merge_index_as_string.py b/pandas/tests/reshape/merge/test_merge_index_as_string.py index b4271d4face4f..47b0988d134b7 100644 --- a/pandas/tests/reshape/merge/test_merge_index_as_string.py +++ b/pandas/tests/reshape/merge/test_merge_index_as_string.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm diff --git a/pandas/tests/reshape/merge/test_multi.py b/pandas/tests/reshape/merge/test_multi.py index 37ed45f0094ec..63faed4d04511 100644 --- a/pandas/tests/reshape/merge/test_multi.py +++ b/pandas/tests/reshape/merge/test_multi.py @@ -11,8 +11,12 @@ Timestamp, ) import pandas._testing as tm -from pandas.core.reshape.concat import concat -from pandas.core.reshape.merge import merge +from pandas.core.reshape.concat import ( + concat, +) +from pandas.core.reshape.merge import ( + merge, +) @pytest.fixture diff --git a/pandas/tests/reshape/test_crosstab.py b/pandas/tests/reshape/test_crosstab.py index 573f5d49afb89..ab622c73b001d 100644 --- a/pandas/tests/reshape/test_crosstab.py +++ b/pandas/tests/reshape/test_crosstab.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.core.dtypes.common import is_categorical_dtype +from pandas.core.dtypes.common import ( + is_categorical_dtype, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/reshape/test_cut.py b/pandas/tests/reshape/test_cut.py index e47e36ab55f10..a53df924f6119 100644 --- a/pandas/tests/reshape/test_cut.py +++ b/pandas/tests/reshape/test_cut.py @@ -21,7 +21,9 @@ to_datetime, ) import pandas._testing as tm -from pandas.api.types import CategoricalDtype as CDT +from pandas.api.types import ( + CategoricalDtype as CDT, +) import pandas.core.reshape.tile as tmod diff --git a/pandas/tests/reshape/test_get_dummies.py b/pandas/tests/reshape/test_get_dummies.py index fab9b0a5d1846..339d27d14ce9f 100644 --- a/pandas/tests/reshape/test_get_dummies.py +++ b/pandas/tests/reshape/test_get_dummies.py @@ -4,7 +4,9 @@ import numpy as np import pytest -from pandas.core.dtypes.common import is_integer_dtype +from pandas.core.dtypes.common import ( + is_integer_dtype, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/reshape/test_pivot.py b/pandas/tests/reshape/test_pivot.py index 93217fc4ce3b0..c3a5f32bc4491 100644 --- a/pandas/tests/reshape/test_pivot.py +++ b/pandas/tests/reshape/test_pivot.py @@ -3,12 +3,16 @@ datetime, timedelta, ) -from itertools import product +from itertools import ( + product, +) import numpy as np import pytest -from pandas.errors import PerformanceWarning +from pandas.errors import ( + PerformanceWarning, +) import pandas as pd from pandas import ( @@ -22,9 +26,15 @@ date_range, ) import pandas._testing as tm -from pandas.api.types import CategoricalDtype as CDT -from pandas.core.reshape import reshape as reshape_lib -from pandas.core.reshape.pivot import pivot_table +from pandas.api.types import ( + CategoricalDtype as CDT, +) +from pandas.core.reshape import ( + reshape as reshape_lib, +) +from pandas.core.reshape.pivot import ( + pivot_table, +) @pytest.fixture(params=[True, False]) diff --git a/pandas/tests/reshape/test_pivot_multilevel.py b/pandas/tests/reshape/test_pivot_multilevel.py index c6931a1961702..ebaed531984ac 100644 --- a/pandas/tests/reshape/test_pivot_multilevel.py +++ b/pandas/tests/reshape/test_pivot_multilevel.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas._libs import lib +from pandas._libs import ( + lib, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/reshape/test_qcut.py b/pandas/tests/reshape/test_qcut.py index f7c7204d02a49..02a2cd7c2b3fa 100644 --- a/pandas/tests/reshape/test_qcut.py +++ b/pandas/tests/reshape/test_qcut.py @@ -20,7 +20,9 @@ timedelta_range, ) import pandas._testing as tm -from pandas.api.types import CategoricalDtype as CDT +from pandas.api.types import ( + CategoricalDtype as CDT, +) from pandas.tseries.offsets import ( Day, diff --git a/pandas/tests/reshape/test_union_categoricals.py b/pandas/tests/reshape/test_union_categoricals.py index 7505d69aee134..c4839429a48fc 100644 --- a/pandas/tests/reshape/test_union_categoricals.py +++ b/pandas/tests/reshape/test_union_categoricals.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.core.dtypes.concat import union_categoricals +from pandas.core.dtypes.concat import ( + union_categoricals, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/reshape/test_util.py b/pandas/tests/reshape/test_util.py index 4d0be7464cb3d..4606c66dde9bf 100644 --- a/pandas/tests/reshape/test_util.py +++ b/pandas/tests/reshape/test_util.py @@ -6,7 +6,9 @@ date_range, ) import pandas._testing as tm -from pandas.core.reshape.util import cartesian_product +from pandas.core.reshape.util import ( + cartesian_product, +) class TestCartesianProduct: diff --git a/pandas/tests/scalar/interval/test_arithmetic.py b/pandas/tests/scalar/interval/test_arithmetic.py index 863446c64de42..e486bd95bd3e8 100644 --- a/pandas/tests/scalar/interval/test_arithmetic.py +++ b/pandas/tests/scalar/interval/test_arithmetic.py @@ -1,4 +1,6 @@ -from datetime import timedelta +from datetime import ( + timedelta, +) import numpy as np import pytest diff --git a/pandas/tests/scalar/period/test_asfreq.py b/pandas/tests/scalar/period/test_asfreq.py index e652c63d46f18..73c9605cbe1bd 100644 --- a/pandas/tests/scalar/period/test_asfreq.py +++ b/pandas/tests/scalar/period/test_asfreq.py @@ -1,8 +1,14 @@ import pytest -from pandas._libs.tslibs.dtypes import _period_code_map -from pandas._libs.tslibs.period import INVALID_FREQ_ERR_MSG -from pandas.errors import OutOfBoundsDatetime +from pandas._libs.tslibs.dtypes import ( + _period_code_map, +) +from pandas._libs.tslibs.period import ( + INVALID_FREQ_ERR_MSG, +) +from pandas.errors import ( + OutOfBoundsDatetime, +) from pandas import ( Period, diff --git a/pandas/tests/scalar/period/test_period.py b/pandas/tests/scalar/period/test_period.py index b8a0a8068ba31..929ff732dd7bb 100644 --- a/pandas/tests/scalar/period/test_period.py +++ b/pandas/tests/scalar/period/test_period.py @@ -15,8 +15,12 @@ DAYS, MONTHS, ) -from pandas._libs.tslibs.np_datetime import OutOfBoundsDatetime -from pandas._libs.tslibs.parsing import DateParseError +from pandas._libs.tslibs.np_datetime import ( + OutOfBoundsDatetime, +) +from pandas._libs.tslibs.parsing import ( + DateParseError, +) from pandas._libs.tslibs.period import ( INVALID_FREQ_ERR_MSG, IncompatibleFrequency, diff --git a/pandas/tests/scalar/test_na_scalar.py b/pandas/tests/scalar/test_na_scalar.py index 213fa1791838d..3d7c57f566304 100644 --- a/pandas/tests/scalar/test_na_scalar.py +++ b/pandas/tests/scalar/test_na_scalar.py @@ -8,9 +8,13 @@ import numpy as np import pytest -from pandas._libs.missing import NA +from pandas._libs.missing import ( + NA, +) -from pandas.core.dtypes.common import is_scalar +from pandas.core.dtypes.common import ( + is_scalar, +) import pandas as pd import pandas._testing as tm diff --git a/pandas/tests/scalar/test_nat.py b/pandas/tests/scalar/test_nat.py index 9aae76aab66c8..1e3a7b5823493 100644 --- a/pandas/tests/scalar/test_nat.py +++ b/pandas/tests/scalar/test_nat.py @@ -8,10 +8,16 @@ import pytest import pytz -from pandas._libs.tslibs import iNaT -from pandas.compat import is_numpy_dev +from pandas._libs.tslibs import ( + iNaT, +) +from pandas.compat import ( + is_numpy_dev, +) -from pandas.core.dtypes.common import is_datetime64_any_dtype +from pandas.core.dtypes.common import ( + is_datetime64_any_dtype, +) from pandas import ( DatetimeIndex, @@ -32,7 +38,9 @@ PeriodArray, TimedeltaArray, ) -from pandas.core.ops import roperator +from pandas.core.ops import ( + roperator, +) @pytest.mark.parametrize( diff --git a/pandas/tests/scalar/timedelta/test_arithmetic.py b/pandas/tests/scalar/timedelta/test_arithmetic.py index d67d451e4fc6d..e6ea940be40c1 100644 --- a/pandas/tests/scalar/timedelta/test_arithmetic.py +++ b/pandas/tests/scalar/timedelta/test_arithmetic.py @@ -10,7 +10,9 @@ import numpy as np import pytest -from pandas.errors import OutOfBoundsTimedelta +from pandas.errors import ( + OutOfBoundsTimedelta, +) import pandas as pd from pandas import ( @@ -20,7 +22,9 @@ offsets, ) import pandas._testing as tm -from pandas.core import ops +from pandas.core import ( + ops, +) class TestTimedeltaAdditionSubtraction: diff --git a/pandas/tests/scalar/timedelta/test_constructors.py b/pandas/tests/scalar/timedelta/test_constructors.py index ad9dd408fbeaf..8834360f66aed 100644 --- a/pandas/tests/scalar/timedelta/test_constructors.py +++ b/pandas/tests/scalar/timedelta/test_constructors.py @@ -1,11 +1,19 @@ -from datetime import timedelta -from itertools import product +from datetime import ( + timedelta, +) +from itertools import ( + product, +) import numpy as np import pytest -from pandas._libs.tslibs import OutOfBoundsTimedelta -from pandas._libs.tslibs.dtypes import NpyDatetimeUnit +from pandas._libs.tslibs import ( + OutOfBoundsTimedelta, +) +from pandas._libs.tslibs.dtypes import ( + NpyDatetimeUnit, +) from pandas import ( NaT, diff --git a/pandas/tests/scalar/timedelta/test_formats.py b/pandas/tests/scalar/timedelta/test_formats.py index 753186ee4b738..5fa1bf4bc9f7e 100644 --- a/pandas/tests/scalar/timedelta/test_formats.py +++ b/pandas/tests/scalar/timedelta/test_formats.py @@ -1,6 +1,8 @@ import pytest -from pandas import Timedelta +from pandas import ( + Timedelta, +) @pytest.mark.parametrize( diff --git a/pandas/tests/scalar/timedelta/test_timedelta.py b/pandas/tests/scalar/timedelta/test_timedelta.py index 7046055b5c0d5..91858d02bf460 100644 --- a/pandas/tests/scalar/timedelta/test_timedelta.py +++ b/pandas/tests/scalar/timedelta/test_timedelta.py @@ -1,5 +1,7 @@ """ test the scalar Timedelta """ -from datetime import timedelta +from datetime import ( + timedelta, +) from hypothesis import ( given, @@ -8,13 +10,19 @@ import numpy as np import pytest -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._libs.tslibs import ( NaT, iNaT, ) -from pandas._libs.tslibs.dtypes import NpyDatetimeUnit -from pandas.errors import OutOfBoundsTimedelta +from pandas._libs.tslibs.dtypes import ( + NpyDatetimeUnit, +) +from pandas.errors import ( + OutOfBoundsTimedelta, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/scalar/timestamp/test_comparisons.py b/pandas/tests/scalar/timestamp/test_comparisons.py index e7e5541cf499f..a2d16d57e934c 100644 --- a/pandas/tests/scalar/timestamp/test_comparisons.py +++ b/pandas/tests/scalar/timestamp/test_comparisons.py @@ -7,7 +7,9 @@ import numpy as np import pytest -from pandas import Timestamp +from pandas import ( + Timestamp, +) import pandas._testing as tm diff --git a/pandas/tests/scalar/timestamp/test_constructors.py b/pandas/tests/scalar/timestamp/test_constructors.py index ca0796e55f28d..c0cbb265f57f3 100644 --- a/pandas/tests/scalar/timestamp/test_constructors.py +++ b/pandas/tests/scalar/timestamp/test_constructors.py @@ -7,17 +7,23 @@ ) import dateutil.tz -from dateutil.tz import tzutc +from dateutil.tz import ( + tzutc, +) import numpy as np import pytest import pytz -from pandas._libs.tslibs.dtypes import NpyDatetimeUnit +from pandas._libs.tslibs.dtypes import ( + NpyDatetimeUnit, +) from pandas.compat import ( PY39, PY310, ) -from pandas.errors import OutOfBoundsDatetime +from pandas.errors import ( + OutOfBoundsDatetime, +) from pandas import ( Period, diff --git a/pandas/tests/scalar/timestamp/test_formats.py b/pandas/tests/scalar/timestamp/test_formats.py index 71dbf3539bdb2..6f517e7cae92b 100644 --- a/pandas/tests/scalar/timestamp/test_formats.py +++ b/pandas/tests/scalar/timestamp/test_formats.py @@ -1,6 +1,8 @@ import pytest -from pandas import Timestamp +from pandas import ( + Timestamp, +) ts_no_ns = Timestamp( year=2019, diff --git a/pandas/tests/scalar/timestamp/test_rendering.py b/pandas/tests/scalar/timestamp/test_rendering.py index 216a055120a46..b103cc808b89a 100644 --- a/pandas/tests/scalar/timestamp/test_rendering.py +++ b/pandas/tests/scalar/timestamp/test_rendering.py @@ -3,7 +3,9 @@ import pytest import pytz # noqa # a test below uses pytz but only inside a `eval` call -from pandas import Timestamp +from pandas import ( + Timestamp, +) class TestTimestampRendering: diff --git a/pandas/tests/scalar/timestamp/test_timestamp.py b/pandas/tests/scalar/timestamp/test_timestamp.py index afb4dd7422114..cc9c01bfa2711 100644 --- a/pandas/tests/scalar/timestamp/test_timestamp.py +++ b/pandas/tests/scalar/timestamp/test_timestamp.py @@ -17,17 +17,25 @@ import numpy as np import pytest import pytz -from pytz import utc +from pytz import ( + utc, +) -from pandas._libs.tslibs.dtypes import NpyDatetimeUnit +from pandas._libs.tslibs.dtypes import ( + NpyDatetimeUnit, +) from pandas._libs.tslibs.timezones import ( dateutil_gettz as gettz, get_timezone, maybe_get_tz, tz_compare, ) -from pandas.compat import IS64 -from pandas.errors import OutOfBoundsDatetime +from pandas.compat import ( + IS64, +) +from pandas.errors import ( + OutOfBoundsDatetime, +) import pandas.util._test_decorators as td from pandas import ( @@ -37,8 +45,12 @@ ) import pandas._testing as tm -from pandas.tseries import offsets -from pandas.tseries.frequencies import to_offset +from pandas.tseries import ( + offsets, +) +from pandas.tseries.frequencies import ( + to_offset, +) class TestTimestampProperties: diff --git a/pandas/tests/scalar/timestamp/test_timezones.py b/pandas/tests/scalar/timestamp/test_timezones.py index 820b2e17a9d3f..5a325be0cee50 100644 --- a/pandas/tests/scalar/timestamp/test_timezones.py +++ b/pandas/tests/scalar/timestamp/test_timezones.py @@ -21,9 +21,15 @@ NonExistentTimeError, ) -from pandas._libs.tslibs import timezones -from pandas._libs.tslibs.dtypes import NpyDatetimeUnit -from pandas.errors import OutOfBoundsDatetime +from pandas._libs.tslibs import ( + timezones, +) +from pandas._libs.tslibs.dtypes import ( + NpyDatetimeUnit, +) +from pandas.errors import ( + OutOfBoundsDatetime, +) import pandas.util._test_decorators as td from pandas import ( @@ -32,7 +38,9 @@ ) try: - from zoneinfo import ZoneInfo + from zoneinfo import ( + ZoneInfo, + ) except ImportError: ZoneInfo = None diff --git a/pandas/tests/scalar/timestamp/test_unary_ops.py b/pandas/tests/scalar/timestamp/test_unary_ops.py index 5a082fb91a03e..31b8e41d7d0fa 100644 --- a/pandas/tests/scalar/timestamp/test_unary_ops.py +++ b/pandas/tests/scalar/timestamp/test_unary_ops.py @@ -1,6 +1,10 @@ -from datetime import datetime +from datetime import ( + datetime, +) -from dateutil.tz import gettz +from dateutil.tz import ( + gettz, +) from hypothesis import ( given, strategies as st, @@ -8,9 +12,13 @@ import numpy as np import pytest import pytz -from pytz import utc +from pytz import ( + utc, +) -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas._libs.tslibs import ( NaT, OutOfBoundsDatetime, @@ -20,8 +28,12 @@ iNaT, to_offset, ) -from pandas._libs.tslibs.dtypes import NpyDatetimeUnit -from pandas._libs.tslibs.period import INVALID_FREQ_ERR_MSG +from pandas._libs.tslibs.dtypes import ( + NpyDatetimeUnit, +) +from pandas._libs.tslibs.period import ( + INVALID_FREQ_ERR_MSG, +) import pandas.util._test_decorators as td import pandas._testing as tm diff --git a/pandas/tests/series/accessors/test_cat_accessor.py b/pandas/tests/series/accessors/test_cat_accessor.py index a2ed590640465..caf8ac4e2b091 100644 --- a/pandas/tests/series/accessors/test_cat_accessor.py +++ b/pandas/tests/series/accessors/test_cat_accessor.py @@ -14,8 +14,12 @@ timedelta_range, ) import pandas._testing as tm -from pandas.core.arrays.categorical import CategoricalAccessor -from pandas.core.indexes.accessors import Properties +from pandas.core.arrays.categorical import ( + CategoricalAccessor, +) +from pandas.core.indexes.accessors import ( + Properties, +) class TestCatAccessor: diff --git a/pandas/tests/series/accessors/test_dt_accessor.py b/pandas/tests/series/accessors/test_dt_accessor.py index fa8e184285616..8e7db6c83ea5f 100644 --- a/pandas/tests/series/accessors/test_dt_accessor.py +++ b/pandas/tests/series/accessors/test_dt_accessor.py @@ -11,8 +11,12 @@ import pytest import pytz -from pandas._libs.tslibs.timezones import maybe_get_tz -from pandas.errors import SettingWithCopyError +from pandas._libs.tslibs.timezones import ( + maybe_get_tz, +) +from pandas.errors import ( + SettingWithCopyError, +) from pandas.core.dtypes.common import ( is_integer_dtype, diff --git a/pandas/tests/series/accessors/test_sparse_accessor.py b/pandas/tests/series/accessors/test_sparse_accessor.py index 118095b5dcdbc..c87eec6d5c6d1 100644 --- a/pandas/tests/series/accessors/test_sparse_accessor.py +++ b/pandas/tests/series/accessors/test_sparse_accessor.py @@ -1,4 +1,6 @@ -from pandas import Series +from pandas import ( + Series, +) class TestSparseAccessor: diff --git a/pandas/tests/series/accessors/test_str_accessor.py b/pandas/tests/series/accessors/test_str_accessor.py index 09d965ef1f322..d5bfc103ed6a9 100644 --- a/pandas/tests/series/accessors/test_str_accessor.py +++ b/pandas/tests/series/accessors/test_str_accessor.py @@ -1,6 +1,8 @@ import pytest -from pandas import Series +from pandas import ( + Series, +) import pandas._testing as tm diff --git a/pandas/tests/series/indexing/test_datetime.py b/pandas/tests/series/indexing/test_datetime.py index 64da669343147..47e109cc972bc 100644 --- a/pandas/tests/series/indexing/test_datetime.py +++ b/pandas/tests/series/indexing/test_datetime.py @@ -15,7 +15,9 @@ import pytest import pytz -from pandas._libs import index as libindex +from pandas._libs import ( + index as libindex, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/series/indexing/test_getitem.py b/pandas/tests/series/indexing/test_getitem.py index 91d6be01eef16..efecf0d2d99d6 100644 --- a/pandas/tests/series/indexing/test_getitem.py +++ b/pandas/tests/series/indexing/test_getitem.py @@ -15,7 +15,9 @@ timezones, ) -from pandas.core.dtypes.common import is_scalar +from pandas.core.dtypes.common import ( + is_scalar, +) import pandas as pd from pandas import ( @@ -30,9 +32,13 @@ timedelta_range, ) import pandas._testing as tm -from pandas.core.indexing import IndexingError +from pandas.core.indexing import ( + IndexingError, +) -from pandas.tseries.offsets import BDay +from pandas.tseries.offsets import ( + BDay, +) class TestSeriesGetitemScalars: diff --git a/pandas/tests/series/indexing/test_indexing.py b/pandas/tests/series/indexing/test_indexing.py index f12d752a1a764..693484280ae18 100644 --- a/pandas/tests/series/indexing/test_indexing.py +++ b/pandas/tests/series/indexing/test_indexing.py @@ -1,11 +1,15 @@ """ test get/set & misc """ -from datetime import timedelta +from datetime import ( + timedelta, +) import re import numpy as np import pytest -from pandas.errors import IndexingError +from pandas.errors import ( + IndexingError, +) from pandas import ( NA, diff --git a/pandas/tests/series/indexing/test_mask.py b/pandas/tests/series/indexing/test_mask.py index 28235a8918e3f..9d66abfc3e601 100644 --- a/pandas/tests/series/indexing/test_mask.py +++ b/pandas/tests/series/indexing/test_mask.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas import Series +from pandas import ( + Series, +) import pandas._testing as tm diff --git a/pandas/tests/series/indexing/test_set_value.py b/pandas/tests/series/indexing/test_set_value.py index cbe1a8bf296c8..8cef484e7f2e0 100644 --- a/pandas/tests/series/indexing/test_set_value.py +++ b/pandas/tests/series/indexing/test_set_value.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np diff --git a/pandas/tests/series/indexing/test_setitem.py b/pandas/tests/series/indexing/test_setitem.py index c36831ba60b89..ab0621fe90c5a 100644 --- a/pandas/tests/series/indexing/test_setitem.py +++ b/pandas/tests/series/indexing/test_setitem.py @@ -6,9 +6,13 @@ import numpy as np import pytest -from pandas.errors import IndexingError +from pandas.errors import ( + IndexingError, +) -from pandas.core.dtypes.common import is_list_like +from pandas.core.dtypes.common import ( + is_list_like, +) from pandas import ( NA, @@ -33,7 +37,9 @@ ) import pandas._testing as tm -from pandas.tseries.offsets import BDay +from pandas.tseries.offsets import ( + BDay, +) class TestSetitemDT64Values: diff --git a/pandas/tests/series/indexing/test_take.py b/pandas/tests/series/indexing/test_take.py index 91b44e9f65320..fa04bf3f0eb92 100644 --- a/pandas/tests/series/indexing/test_take.py +++ b/pandas/tests/series/indexing/test_take.py @@ -1,7 +1,9 @@ import pytest import pandas as pd -from pandas import Series +from pandas import ( + Series, +) import pandas._testing as tm diff --git a/pandas/tests/series/indexing/test_where.py b/pandas/tests/series/indexing/test_where.py index eabaf23bd36f8..cf85f487d6c1d 100644 --- a/pandas/tests/series/indexing/test_where.py +++ b/pandas/tests/series/indexing/test_where.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.core.dtypes.common import is_integer +from pandas.core.dtypes.common import ( + is_integer, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/series/methods/test_add_prefix_suffix.py b/pandas/tests/series/methods/test_add_prefix_suffix.py index 289a56b98b7e1..75242e26d86a5 100644 --- a/pandas/tests/series/methods/test_add_prefix_suffix.py +++ b/pandas/tests/series/methods/test_add_prefix_suffix.py @@ -1,6 +1,8 @@ import pytest -from pandas import Index +from pandas import ( + Index, +) import pandas._testing as tm diff --git a/pandas/tests/series/methods/test_align.py b/pandas/tests/series/methods/test_align.py index b2e03684bc902..77ba0674c4e91 100644 --- a/pandas/tests/series/methods/test_align.py +++ b/pandas/tests/series/methods/test_align.py @@ -1,4 +1,6 @@ -from datetime import timezone +from datetime import ( + timezone, +) import numpy as np import pytest diff --git a/pandas/tests/series/methods/test_asof.py b/pandas/tests/series/methods/test_asof.py index 9d8a8320eb978..fd7f9cfc28cc7 100644 --- a/pandas/tests/series/methods/test_asof.py +++ b/pandas/tests/series/methods/test_asof.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas._libs.tslibs import IncompatibleFrequency +from pandas._libs.tslibs import ( + IncompatibleFrequency, +) from pandas import ( DatetimeIndex, diff --git a/pandas/tests/series/methods/test_astype.py b/pandas/tests/series/methods/test_astype.py index aae51ebc5a017..3b462be40724d 100644 --- a/pandas/tests/series/methods/test_astype.py +++ b/pandas/tests/series/methods/test_astype.py @@ -2,14 +2,18 @@ datetime, timedelta, ) -from importlib import reload +from importlib import ( + reload, +) import string import sys import numpy as np import pytest -from pandas._libs.tslibs import iNaT +from pandas._libs.tslibs import ( + iNaT, +) import pandas.util._test_decorators as td from pandas import ( diff --git a/pandas/tests/series/methods/test_clip.py b/pandas/tests/series/methods/test_clip.py index c88a42697dbdf..198e6b76ddf32 100644 --- a/pandas/tests/series/methods/test_clip.py +++ b/pandas/tests/series/methods/test_clip.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest diff --git a/pandas/tests/series/methods/test_combine.py b/pandas/tests/series/methods/test_combine.py index 75d47e3daa103..69d54b85d6732 100644 --- a/pandas/tests/series/methods/test_combine.py +++ b/pandas/tests/series/methods/test_combine.py @@ -1,4 +1,6 @@ -from pandas import Series +from pandas import ( + Series, +) import pandas._testing as tm diff --git a/pandas/tests/series/methods/test_combine_first.py b/pandas/tests/series/methods/test_combine_first.py index aac3d4986e8ee..ce4378002684a 100644 --- a/pandas/tests/series/methods/test_combine_first.py +++ b/pandas/tests/series/methods/test_combine_first.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np diff --git a/pandas/tests/series/methods/test_convert_dtypes.py b/pandas/tests/series/methods/test_convert_dtypes.py index d91cd6a43daea..eee7ee5757dbd 100644 --- a/pandas/tests/series/methods/test_convert_dtypes.py +++ b/pandas/tests/series/methods/test_convert_dtypes.py @@ -1,4 +1,6 @@ -from itertools import product +from itertools import ( + product, +) import numpy as np import pytest diff --git a/pandas/tests/series/methods/test_cov_corr.py b/pandas/tests/series/methods/test_cov_corr.py index 6ab255cfa3d25..c8286578dd076 100644 --- a/pandas/tests/series/methods/test_cov_corr.py +++ b/pandas/tests/series/methods/test_cov_corr.py @@ -60,7 +60,9 @@ class TestSeriesCorr: @td.skip_if_no_scipy @pytest.mark.parametrize("dtype", ["float64", "Float64"]) def test_corr(self, datetime_series, dtype): - from scipy import stats + from scipy import ( + stats, + ) datetime_series = datetime_series.astype(dtype) @@ -92,7 +94,9 @@ def test_corr(self, datetime_series, dtype): @td.skip_if_no_scipy def test_corr_rank(self): - from scipy import stats + from scipy import ( + stats, + ) # kendall and spearman A = tm.makeTimeSeries() diff --git a/pandas/tests/series/methods/test_describe.py b/pandas/tests/series/methods/test_describe.py index ab4b8881d677d..1636c4e4cc865 100644 --- a/pandas/tests/series/methods/test_describe.py +++ b/pandas/tests/series/methods/test_describe.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.compat import is_numpy_dev +from pandas.compat import ( + is_numpy_dev, +) from pandas.core.dtypes.common import ( is_complex_dtype, diff --git a/pandas/tests/series/methods/test_drop.py b/pandas/tests/series/methods/test_drop.py index 5d9a469915cfb..38a7cbe37c39c 100644 --- a/pandas/tests/series/methods/test_drop.py +++ b/pandas/tests/series/methods/test_drop.py @@ -5,7 +5,9 @@ Series, ) import pandas._testing as tm -from pandas.api.types import is_bool_dtype +from pandas.api.types import ( + is_bool_dtype, +) @pytest.mark.parametrize( diff --git a/pandas/tests/series/methods/test_equals.py b/pandas/tests/series/methods/test_equals.py index 9278d1b51e1aa..9ca69280a75e7 100644 --- a/pandas/tests/series/methods/test_equals.py +++ b/pandas/tests/series/methods/test_equals.py @@ -1,13 +1,21 @@ -from contextlib import nullcontext +from contextlib import ( + nullcontext, +) import copy import numpy as np import pytest -from pandas._libs.missing import is_matching_na -from pandas.compat import is_numpy_dev +from pandas._libs.missing import ( + is_matching_na, +) +from pandas.compat import ( + is_numpy_dev, +) -from pandas.core.dtypes.common import is_float +from pandas.core.dtypes.common import ( + is_float, +) from pandas import ( Index, diff --git a/pandas/tests/series/methods/test_fillna.py b/pandas/tests/series/methods/test_fillna.py index 36967c5cad925..26e4206b91c8a 100644 --- a/pandas/tests/series/methods/test_fillna.py +++ b/pandas/tests/series/methods/test_fillna.py @@ -21,7 +21,9 @@ isna, ) import pandas._testing as tm -from pandas.core.arrays import period_array +from pandas.core.arrays import ( + period_array, +) class TestSeriesFillNA: diff --git a/pandas/tests/series/methods/test_is_unique.py b/pandas/tests/series/methods/test_is_unique.py index db77f77467b42..76762a2018a17 100644 --- a/pandas/tests/series/methods/test_is_unique.py +++ b/pandas/tests/series/methods/test_is_unique.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas import Series +from pandas import ( + Series, +) @pytest.mark.parametrize( diff --git a/pandas/tests/series/methods/test_isin.py b/pandas/tests/series/methods/test_isin.py index 3e4857b7abf38..d11d618d99b74 100644 --- a/pandas/tests/series/methods/test_isin.py +++ b/pandas/tests/series/methods/test_isin.py @@ -7,7 +7,9 @@ date_range, ) import pandas._testing as tm -from pandas.core.arrays import PeriodArray +from pandas.core.arrays import ( + PeriodArray, +) class TestSeriesIsIn: diff --git a/pandas/tests/series/methods/test_nlargest.py b/pandas/tests/series/methods/test_nlargest.py index 146ba2c42e0be..8a7542297e724 100644 --- a/pandas/tests/series/methods/test_nlargest.py +++ b/pandas/tests/series/methods/test_nlargest.py @@ -2,13 +2,17 @@ Note: for naming purposes, most tests are title with as e.g. "test_nlargest_foo" but are implicitly also testing nsmallest_foo. """ -from itertools import product +from itertools import ( + product, +) import numpy as np import pytest import pandas as pd -from pandas import Series +from pandas import ( + Series, +) import pandas._testing as tm main_dtypes = [ diff --git a/pandas/tests/series/methods/test_pop.py b/pandas/tests/series/methods/test_pop.py index 7453f98ab3735..f65a2e58f247c 100644 --- a/pandas/tests/series/methods/test_pop.py +++ b/pandas/tests/series/methods/test_pop.py @@ -1,4 +1,6 @@ -from pandas import Series +from pandas import ( + Series, +) import pandas._testing as tm diff --git a/pandas/tests/series/methods/test_quantile.py b/pandas/tests/series/methods/test_quantile.py index 190cdf5f57ea3..f2d1047a8589e 100644 --- a/pandas/tests/series/methods/test_quantile.py +++ b/pandas/tests/series/methods/test_quantile.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.core.dtypes.common import is_integer +from pandas.core.dtypes.common import ( + is_integer, +) import pandas as pd from pandas import ( @@ -9,7 +11,9 @@ Series, ) import pandas._testing as tm -from pandas.core.indexes.datetimes import Timestamp +from pandas.core.indexes.datetimes import ( + Timestamp, +) class TestSeriesQuantile: diff --git a/pandas/tests/series/methods/test_rank.py b/pandas/tests/series/methods/test_rank.py index 7c38d18d994ec..b104d4dd6e049 100644 --- a/pandas/tests/series/methods/test_rank.py +++ b/pandas/tests/series/methods/test_rank.py @@ -1,4 +1,6 @@ -from itertools import chain +from itertools import ( + chain, +) import operator import numpy as np @@ -18,7 +20,9 @@ date_range, ) import pandas._testing as tm -from pandas.api.types import CategoricalDtype +from pandas.api.types import ( + CategoricalDtype, +) @pytest.fixture @@ -57,7 +61,9 @@ def dtype(request): class TestSeriesRank: @td.skip_if_no_scipy def test_rank(self, datetime_series): - from scipy.stats import rankdata + from scipy.stats import ( + rankdata, + ) datetime_series[::2] = np.nan datetime_series[:10:3] = 4.0 @@ -320,7 +326,9 @@ def test_rank_desc_mix_nans_infs(self): ], ) def test_rank_methods_series(self, method, op, value): - from scipy.stats import rankdata + from scipy.stats import ( + rankdata, + ) xs = np.random.randn(9) xs = np.concatenate([xs[i:] for i in range(0, 9, 2)]) # add duplicates diff --git a/pandas/tests/series/methods/test_reindex_like.py b/pandas/tests/series/methods/test_reindex_like.py index 7f24c778feb1b..67c2248eed5df 100644 --- a/pandas/tests/series/methods/test_reindex_like.py +++ b/pandas/tests/series/methods/test_reindex_like.py @@ -1,8 +1,12 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np -from pandas import Series +from pandas import ( + Series, +) import pandas._testing as tm diff --git a/pandas/tests/series/methods/test_rename.py b/pandas/tests/series/methods/test_rename.py index 93c4fbb7f3c46..a588fe25e83ad 100644 --- a/pandas/tests/series/methods/test_rename.py +++ b/pandas/tests/series/methods/test_rename.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import re import numpy as np diff --git a/pandas/tests/series/methods/test_replace.py b/pandas/tests/series/methods/test_replace.py index 44c224c120ea6..c8671769e0eb2 100644 --- a/pandas/tests/series/methods/test_replace.py +++ b/pandas/tests/series/methods/test_replace.py @@ -5,7 +5,9 @@ import pandas as pd import pandas._testing as tm -from pandas.core.arrays import IntervalArray +from pandas.core.arrays import ( + IntervalArray, +) class TestSeriesReplace: diff --git a/pandas/tests/series/methods/test_reset_index.py b/pandas/tests/series/methods/test_reset_index.py index 9362b0b52a698..5a9ed0bae0ccc 100644 --- a/pandas/tests/series/methods/test_reset_index.py +++ b/pandas/tests/series/methods/test_reset_index.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest diff --git a/pandas/tests/series/methods/test_round.py b/pandas/tests/series/methods/test_round.py index 6c40e36419551..7750f74f53ebc 100644 --- a/pandas/tests/series/methods/test_round.py +++ b/pandas/tests/series/methods/test_round.py @@ -2,7 +2,9 @@ import pytest import pandas as pd -from pandas import Series +from pandas import ( + Series, +) import pandas._testing as tm diff --git a/pandas/tests/series/methods/test_searchsorted.py b/pandas/tests/series/methods/test_searchsorted.py index 239496052b99b..ff2a7b63e397b 100644 --- a/pandas/tests/series/methods/test_searchsorted.py +++ b/pandas/tests/series/methods/test_searchsorted.py @@ -8,7 +8,9 @@ date_range, ) import pandas._testing as tm -from pandas.api.types import is_scalar +from pandas.api.types import ( + is_scalar, +) class TestSeriesSearchSorted: diff --git a/pandas/tests/series/methods/test_set_name.py b/pandas/tests/series/methods/test_set_name.py index cbc8ebde7a8ab..2a840f51e4359 100644 --- a/pandas/tests/series/methods/test_set_name.py +++ b/pandas/tests/series/methods/test_set_name.py @@ -1,6 +1,10 @@ -from datetime import datetime +from datetime import ( + datetime, +) -from pandas import Series +from pandas import ( + Series, +) class TestSetName: diff --git a/pandas/tests/series/methods/test_to_csv.py b/pandas/tests/series/methods/test_to_csv.py index 990c3698a5036..997b09b828ab3 100644 --- a/pandas/tests/series/methods/test_to_csv.py +++ b/pandas/tests/series/methods/test_to_csv.py @@ -1,14 +1,22 @@ -from datetime import datetime -from io import StringIO +from datetime import ( + datetime, +) +from io import ( + StringIO, +) import numpy as np import pytest import pandas as pd -from pandas import Series +from pandas import ( + Series, +) import pandas._testing as tm -from pandas.io.common import get_handle +from pandas.io.common import ( + get_handle, +) class TestSeriesToCSV: diff --git a/pandas/tests/series/methods/test_to_dict.py b/pandas/tests/series/methods/test_to_dict.py index 4c3d9592eebe3..43524a625ac83 100644 --- a/pandas/tests/series/methods/test_to_dict.py +++ b/pandas/tests/series/methods/test_to_dict.py @@ -3,7 +3,9 @@ import numpy as np import pytest -from pandas import Series +from pandas import ( + Series, +) import pandas._testing as tm diff --git a/pandas/tests/series/methods/test_truncate.py b/pandas/tests/series/methods/test_truncate.py index 33eb5c10ae163..abd8b6beab266 100644 --- a/pandas/tests/series/methods/test_truncate.py +++ b/pandas/tests/series/methods/test_truncate.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import pytest diff --git a/pandas/tests/series/methods/test_tz_localize.py b/pandas/tests/series/methods/test_tz_localize.py index c2b1569d3f391..2b8a0133a4753 100644 --- a/pandas/tests/series/methods/test_tz_localize.py +++ b/pandas/tests/series/methods/test_tz_localize.py @@ -1,9 +1,13 @@ -from datetime import timezone +from datetime import ( + timezone, +) import pytest import pytz -from pandas._libs.tslibs import timezones +from pandas._libs.tslibs import ( + timezones, +) from pandas import ( DatetimeIndex, diff --git a/pandas/tests/series/test_api.py b/pandas/tests/series/test_api.py index dcb28001777d2..1d357850d3a69 100644 --- a/pandas/tests/series/test_api.py +++ b/pandas/tests/series/test_api.py @@ -4,7 +4,9 @@ import numpy as np import pytest -from pandas.util._test_decorators import skip_if_no +from pandas.util._test_decorators import ( + skip_if_no, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/series/test_arithmetic.py b/pandas/tests/series/test_arithmetic.py index fa72bf4368b69..0f3dbd4818689 100644 --- a/pandas/tests/series/test_arithmetic.py +++ b/pandas/tests/series/test_arithmetic.py @@ -3,13 +3,17 @@ timedelta, timezone, ) -from decimal import Decimal +from decimal import ( + Decimal, +) import operator import numpy as np import pytest -from pandas._libs.tslibs import IncompatibleFrequency +from pandas._libs.tslibs import ( + IncompatibleFrequency, +) from pandas.core.dtypes.common import ( is_datetime64_dtype, @@ -31,8 +35,12 @@ nanops, ops, ) -from pandas.core.computation import expressions as expr -from pandas.core.computation.check import NUMEXPR_INSTALLED +from pandas.core.computation import ( + expressions as expr, +) +from pandas.core.computation.check import ( + NUMEXPR_INSTALLED, +) @pytest.fixture(autouse=True, params=[0, 1000000], ids=["numexpr", "python"]) diff --git a/pandas/tests/series/test_constructors.py b/pandas/tests/series/test_constructors.py index bb1926ca9bfb7..5247f62a47f74 100644 --- a/pandas/tests/series/test_constructors.py +++ b/pandas/tests/series/test_constructors.py @@ -1,27 +1,39 @@ -from collections import OrderedDict +from collections import ( + OrderedDict, +) from datetime import ( datetime, timedelta, ) -from typing import Iterator +from typing import ( + Iterator, +) -from dateutil.tz import tzoffset +from dateutil.tz import ( + tzoffset, +) import numpy as np -from numpy import ma +from numpy import ( + ma, +) import pytest from pandas._libs import ( iNaT, lib, ) -from pandas.errors import IntCastingNaNError +from pandas.errors import ( + IntCastingNaNError, +) import pandas.util._test_decorators as td from pandas.core.dtypes.common import ( is_categorical_dtype, is_datetime64tz_dtype, ) -from pandas.core.dtypes.dtypes import CategoricalDtype +from pandas.core.dtypes.dtypes import ( + CategoricalDtype, +) import pandas as pd from pandas import ( @@ -48,7 +60,9 @@ IntervalArray, period_array, ) -from pandas.core.internals.blocks import NumericBlock +from pandas.core.internals.blocks import ( + NumericBlock, +) class TestSeriesConstructors: diff --git a/pandas/tests/series/test_logical_ops.py b/pandas/tests/series/test_logical_ops.py index 0d661f19087e6..a48e1b37eb3b5 100644 --- a/pandas/tests/series/test_logical_ops.py +++ b/pandas/tests/series/test_logical_ops.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import operator import numpy as np @@ -11,7 +13,9 @@ bdate_range, ) import pandas._testing as tm -from pandas.core import ops +from pandas.core import ( + ops, +) class TestSeriesLogicalOps: diff --git a/pandas/tests/series/test_missing.py b/pandas/tests/series/test_missing.py index 017721b8a4ee0..80e562bd8e7ef 100644 --- a/pandas/tests/series/test_missing.py +++ b/pandas/tests/series/test_missing.py @@ -1,9 +1,13 @@ -from datetime import timedelta +from datetime import ( + timedelta, +) import numpy as np import pytest -from pandas._libs import iNaT +from pandas._libs import ( + iNaT, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/series/test_npfuncs.py b/pandas/tests/series/test_npfuncs.py index a0b672fffa84a..35f55912deb88 100644 --- a/pandas/tests/series/test_npfuncs.py +++ b/pandas/tests/series/test_npfuncs.py @@ -4,7 +4,9 @@ import numpy as np -from pandas import Series +from pandas import ( + Series, +) class TestPtp: diff --git a/pandas/tests/series/test_reductions.py b/pandas/tests/series/test_reductions.py index eb11b62a651cc..bc3948fc2a3f9 100644 --- a/pandas/tests/series/test_reductions.py +++ b/pandas/tests/series/test_reductions.py @@ -2,7 +2,9 @@ import pytest import pandas as pd -from pandas import Series +from pandas import ( + Series, +) import pandas._testing as tm diff --git a/pandas/tests/series/test_ufunc.py b/pandas/tests/series/test_ufunc.py index f143155bc07da..5cb66058ff934 100644 --- a/pandas/tests/series/test_ufunc.py +++ b/pandas/tests/series/test_ufunc.py @@ -1,4 +1,6 @@ -from collections import deque +from collections import ( + deque, +) import re import string @@ -7,7 +9,9 @@ import pandas as pd import pandas._testing as tm -from pandas.arrays import SparseArray +from pandas.arrays import ( + SparseArray, +) BINARY_UFUNCS = [np.add, np.logaddexp] # dunder op SPARSE = [True, False] diff --git a/pandas/tests/series/test_unary.py b/pandas/tests/series/test_unary.py index ad0e344fa4420..505696d2ad168 100644 --- a/pandas/tests/series/test_unary.py +++ b/pandas/tests/series/test_unary.py @@ -1,6 +1,8 @@ import pytest -from pandas import Series +from pandas import ( + Series, +) import pandas._testing as tm diff --git a/pandas/tests/strings/conftest.py b/pandas/tests/strings/conftest.py index 3e1ee89e9a841..0b9f223f2a43a 100644 --- a/pandas/tests/strings/conftest.py +++ b/pandas/tests/strings/conftest.py @@ -1,8 +1,12 @@ import numpy as np import pytest -from pandas import Series -from pandas.core.strings.accessor import StringMethods +from pandas import ( + Series, +) +from pandas.core.strings.accessor import ( + StringMethods, +) _any_string_method = [ ("cat", (), {"sep": ","}), diff --git a/pandas/tests/strings/test_api.py b/pandas/tests/strings/test_api.py index c439a5f006922..01e52548ae11f 100644 --- a/pandas/tests/strings/test_api.py +++ b/pandas/tests/strings/test_api.py @@ -7,7 +7,9 @@ Series, _testing as tm, ) -from pandas.core.strings.accessor import StringMethods +from pandas.core.strings.accessor import ( + StringMethods, +) def test_api(any_string_dtype): diff --git a/pandas/tests/strings/test_case_justify.py b/pandas/tests/strings/test_case_justify.py index e88dddb05eb51..902ccacdf6b8d 100644 --- a/pandas/tests/strings/test_case_justify.py +++ b/pandas/tests/strings/test_case_justify.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import operator import numpy as np diff --git a/pandas/tests/strings/test_extract.py b/pandas/tests/strings/test_extract.py index 22a5fd28efd8d..d504f0c038b0f 100644 --- a/pandas/tests/strings/test_extract.py +++ b/pandas/tests/strings/test_extract.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import re import numpy as np diff --git a/pandas/tests/strings/test_find_replace.py b/pandas/tests/strings/test_find_replace.py index 6f6acb7a996b2..5413ef2121328 100644 --- a/pandas/tests/strings/test_find_replace.py +++ b/pandas/tests/strings/test_find_replace.py @@ -1,10 +1,14 @@ -from datetime import datetime +from datetime import ( + datetime, +) import re import numpy as np import pytest -from pandas.errors import PerformanceWarning +from pandas.errors import ( + PerformanceWarning, +) import pandas as pd from pandas import ( diff --git a/pandas/tests/strings/test_split_partition.py b/pandas/tests/strings/test_split_partition.py index 74458c13e8df7..28a0d0a33dc70 100644 --- a/pandas/tests/strings/test_split_partition.py +++ b/pandas/tests/strings/test_split_partition.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import re import numpy as np diff --git a/pandas/tests/strings/test_string_array.py b/pandas/tests/strings/test_string_array.py index 8628aafefa4b1..09ceefe4a0739 100644 --- a/pandas/tests/strings/test_string_array.py +++ b/pandas/tests/strings/test_string_array.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas._libs import lib +from pandas._libs import ( + lib, +) from pandas import ( DataFrame, diff --git a/pandas/tests/strings/test_strings.py b/pandas/tests/strings/test_strings.py index b863425a24183..674782b60cdb6 100644 --- a/pandas/tests/strings/test_strings.py +++ b/pandas/tests/strings/test_strings.py @@ -13,7 +13,9 @@ Series, ) import pandas._testing as tm -from pandas.core.strings.accessor import StringMethods +from pandas.core.strings.accessor import ( + StringMethods, +) @pytest.mark.parametrize("pattern", [0, True, Series(["foo", "bar"])]) diff --git a/pandas/tests/test_algos.py b/pandas/tests/test_algos.py index 8dc5f301793b4..e9c7a0e4eed14 100644 --- a/pandas/tests/test_algos.py +++ b/pandas/tests/test_algos.py @@ -1,5 +1,9 @@ -from datetime import datetime -from itertools import permutations +from datetime import ( + datetime, +) +from itertools import ( + permutations, +) import struct import numpy as np @@ -18,7 +22,9 @@ is_integer_dtype, is_object_dtype, ) -from pandas.core.dtypes.dtypes import CategoricalDtype as CDT +from pandas.core.dtypes.dtypes import ( + CategoricalDtype as CDT, +) import pandas as pd from pandas import ( @@ -1153,7 +1159,9 @@ def test_isin_unsigned_dtype(self): class TestValueCounts: def test_value_counts(self): np.random.seed(1234) - from pandas.core.reshape.tile import cut + from pandas.core.reshape.tile import ( + cut, + ) arr = np.random.randn(4) factor = cut(arr, 4) @@ -1700,7 +1708,9 @@ class TestRank: ], ) def test_scipy_compat(self, arr): - from scipy.stats import rankdata + from scipy.stats import ( + rankdata, + ) arr = np.array(arr) diff --git a/pandas/tests/test_common.py b/pandas/tests/test_common.py index d31f617b9be15..a1807dc698c6d 100644 --- a/pandas/tests/test_common.py +++ b/pandas/tests/test_common.py @@ -1,16 +1,24 @@ import collections -from functools import partial +from functools import ( + partial, +) import string import numpy as np import pytest import pandas as pd -from pandas import Series +from pandas import ( + Series, +) import pandas._testing as tm -from pandas.core import ops +from pandas.core import ( + ops, +) import pandas.core.common as com -from pandas.util.version import Version +from pandas.util.version import ( + Version, +) def test_get_callable_name(): diff --git a/pandas/tests/test_downstream.py b/pandas/tests/test_downstream.py index b17dce234043c..248670dbebc97 100644 --- a/pandas/tests/test_downstream.py +++ b/pandas/tests/test_downstream.py @@ -8,7 +8,9 @@ import numpy as np import pytest -from pandas.errors import IntCastingNaNError +from pandas.errors import ( + IntCastingNaNError, +) import pandas.util._test_decorators as td import pandas as pd diff --git a/pandas/tests/test_errors.py b/pandas/tests/test_errors.py index aeddc08e4b888..6c27ed5446318 100644 --- a/pandas/tests/test_errors.py +++ b/pandas/tests/test_errors.py @@ -46,7 +46,9 @@ ], ) def test_exception_importable(exc): - from pandas import errors + from pandas import ( + errors, + ) err = getattr(errors, exc) assert err is not None @@ -60,7 +62,9 @@ def test_exception_importable(exc): def test_catch_oob(): - from pandas import errors + from pandas import ( + errors, + ) msg = "Cannot cast 1500-01-01 00:00:00 to unit='ns' without overflow" with pytest.raises(errors.OutOfBoundsDatetime, match=msg): diff --git a/pandas/tests/test_expressions.py b/pandas/tests/test_expressions.py index ec4f8893885f3..e89fbb76b28c2 100644 --- a/pandas/tests/test_expressions.py +++ b/pandas/tests/test_expressions.py @@ -5,14 +5,18 @@ import numpy as np import pytest -from pandas import option_context +from pandas import ( + option_context, +) import pandas._testing as tm from pandas.core.api import ( DataFrame, Index, Series, ) -from pandas.core.computation import expressions as expr +from pandas.core.computation import ( + expressions as expr, +) @pytest.fixture diff --git a/pandas/tests/test_nanops.py b/pandas/tests/test_nanops.py index ba21ea4e7db95..362f5363a72f3 100644 --- a/pandas/tests/test_nanops.py +++ b/pandas/tests/test_nanops.py @@ -1,4 +1,6 @@ -from functools import partial +from functools import ( + partial, +) import operator import warnings @@ -7,7 +9,9 @@ import pandas.util._test_decorators as td -from pandas.core.dtypes.common import is_integer_dtype +from pandas.core.dtypes.common import ( + is_integer_dtype, +) import pandas as pd from pandas import ( @@ -15,8 +19,12 @@ isna, ) import pandas._testing as tm -from pandas.core import nanops -from pandas.core.arrays import DatetimeArray +from pandas.core import ( + nanops, +) +from pandas.core.arrays import ( + DatetimeArray, +) use_bn = nanops._USE_BOTTLENECK @@ -497,7 +505,9 @@ def test_nanstd(self, ddof, skipna): @td.skip_if_no_scipy @pytest.mark.parametrize("ddof", range(3)) def test_nansem(self, ddof, skipna): - from scipy.stats import sem + from scipy.stats import ( + sem, + ) with np.errstate(invalid="ignore"): self.check_funs( @@ -560,7 +570,9 @@ def _skew_kurt_wrap(self, values, axis=None, func=None): @td.skip_if_no_scipy def test_nanskew(self, skipna): - from scipy.stats import skew + from scipy.stats import ( + skew, + ) func = partial(self._skew_kurt_wrap, func=skew) with np.errstate(invalid="ignore"): @@ -575,7 +587,9 @@ def test_nanskew(self, skipna): @td.skip_if_no_scipy def test_nankurt(self, skipna): - from scipy.stats import kurtosis + from scipy.stats import ( + kurtosis, + ) func1 = partial(kurtosis, fisher=True) func = partial(self._skew_kurt_wrap, func=func1) @@ -707,7 +721,9 @@ def test_nancorr_pearson(self): @td.skip_if_no_scipy def test_nancorr_kendall(self): - from scipy.stats import kendalltau + from scipy.stats import ( + kendalltau, + ) targ0 = kendalltau(self.arr_float_2d, self.arr_float1_2d)[0] targ1 = kendalltau(self.arr_float_2d.flat, self.arr_float1_2d.flat)[0] @@ -718,7 +734,9 @@ def test_nancorr_kendall(self): @td.skip_if_no_scipy def test_nancorr_spearman(self): - from scipy.stats import spearmanr + from scipy.stats import ( + spearmanr, + ) targ0 = spearmanr(self.arr_float_2d, self.arr_float1_2d)[0] targ1 = spearmanr(self.arr_float_2d.flat, self.arr_float1_2d.flat)[0] diff --git a/pandas/tests/test_register_accessor.py b/pandas/tests/test_register_accessor.py index a1a74dda4bd6f..6493e91a33b3d 100644 --- a/pandas/tests/test_register_accessor.py +++ b/pandas/tests/test_register_accessor.py @@ -1,11 +1,15 @@ import contextlib -from typing import Generator +from typing import ( + Generator, +) import pytest import pandas as pd import pandas._testing as tm -from pandas.core import accessor +from pandas.core import ( + accessor, +) def test_dirname_mixin(): diff --git a/pandas/tests/test_sorting.py b/pandas/tests/test_sorting.py index 44895cc576fd0..ddf1a1a683024 100644 --- a/pandas/tests/test_sorting.py +++ b/pandas/tests/test_sorting.py @@ -1,6 +1,12 @@ -from collections import defaultdict -from datetime import datetime -from itertools import product +from collections import ( + defaultdict, +) +from datetime import ( + datetime, +) +from itertools import ( + product, +) import numpy as np import pytest @@ -20,7 +26,9 @@ merge, ) import pandas._testing as tm -from pandas.core.algorithms import safe_sort +from pandas.core.algorithms import ( + safe_sort, +) import pandas.core.common as com from pandas.core.sorting import ( _decons_group_index, diff --git a/pandas/tests/test_take.py b/pandas/tests/test_take.py index 114e28ea4e2a1..33dd98e7657db 100644 --- a/pandas/tests/test_take.py +++ b/pandas/tests/test_take.py @@ -1,10 +1,14 @@ -from datetime import datetime +from datetime import ( + datetime, +) import re import numpy as np import pytest -from pandas._libs import iNaT +from pandas._libs import ( + iNaT, +) import pandas._testing as tm import pandas.core.algorithms as algos diff --git a/pandas/tests/tools/test_to_datetime.py b/pandas/tests/tools/test_to_datetime.py index dc8b7ce0996a9..291961a7c57a7 100644 --- a/pandas/tests/tools/test_to_datetime.py +++ b/pandas/tests/tools/test_to_datetime.py @@ -1,23 +1,33 @@ """ test to_datetime """ import calendar -from collections import deque +from collections import ( + deque, +) from datetime import ( date, datetime, timedelta, timezone, ) -from decimal import Decimal +from decimal import ( + Decimal, +) import locale -from dateutil.parser import parse -from dateutil.tz.tz import tzoffset +from dateutil.parser import ( + parse, +) +from dateutil.tz.tz import ( + tzoffset, +) import numpy as np import pytest import pytz -from pandas._libs import tslib +from pandas._libs import ( + tslib, +) from pandas._libs.tslibs import ( iNaT, parsing, @@ -28,7 +38,9 @@ ) import pandas.util._test_decorators as td -from pandas.core.dtypes.common import is_datetime64_ns_dtype +from pandas.core.dtypes.common import ( + is_datetime64_ns_dtype, +) import pandas as pd from pandas import ( @@ -43,10 +55,18 @@ to_datetime, ) import pandas._testing as tm -from pandas.core.arrays import DatetimeArray -from pandas.core.tools import datetimes as tools -from pandas.core.tools.datetimes import start_caching_at -from pandas.util.version import Version +from pandas.core.arrays import ( + DatetimeArray, +) +from pandas.core.tools import ( + datetimes as tools, +) +from pandas.core.tools.datetimes import ( + start_caching_at, +) +from pandas.util.version import ( + Version, +) PARSING_ERR_MSG = ( r"You might want to try:\n" @@ -1715,7 +1735,9 @@ def test_to_datetime_utc(self): assert result.tz is timezone.utc def test_to_datetime_fixed_offset(self): - from pandas.tests.indexes.datetimes.test_timezones import fixed_off + from pandas.tests.indexes.datetimes.test_timezones import ( + fixed_off, + ) dates = [ datetime(2000, 1, 1, tzinfo=fixed_off), diff --git a/pandas/tests/tools/test_to_numeric.py b/pandas/tests/tools/test_to_numeric.py index 18b8dd8394133..a33edf80fe13c 100644 --- a/pandas/tests/tools/test_to_numeric.py +++ b/pandas/tests/tools/test_to_numeric.py @@ -1,7 +1,9 @@ import decimal import numpy as np -from numpy import iinfo +from numpy import ( + iinfo, +) import pytest import pandas as pd diff --git a/pandas/tests/tools/test_to_time.py b/pandas/tests/tools/test_to_time.py index 5046fd9d0edc1..36fd45f87da65 100644 --- a/pandas/tests/tools/test_to_time.py +++ b/pandas/tests/tools/test_to_time.py @@ -1,14 +1,22 @@ -from datetime import time +from datetime import ( + time, +) import locale import numpy as np import pytest -from pandas.compat import PY311 +from pandas.compat import ( + PY311, +) -from pandas import Series +from pandas import ( + Series, +) import pandas._testing as tm -from pandas.core.tools.times import to_time +from pandas.core.tools.times import ( + to_time, +) # The tests marked with this are locale-dependent. # They pass, except when the machine locale is zh_CN or it_IT. diff --git a/pandas/tests/tools/test_to_timedelta.py b/pandas/tests/tools/test_to_timedelta.py index b27a0db4dfe98..8089f5b2dbcfa 100644 --- a/pandas/tests/tools/test_to_timedelta.py +++ b/pandas/tests/tools/test_to_timedelta.py @@ -6,7 +6,9 @@ import numpy as np import pytest -from pandas.errors import OutOfBoundsTimedelta +from pandas.errors import ( + OutOfBoundsTimedelta, +) import pandas as pd from pandas import ( @@ -16,7 +18,9 @@ to_timedelta, ) import pandas._testing as tm -from pandas.core.arrays import TimedeltaArray +from pandas.core.arrays import ( + TimedeltaArray, +) class TestTimedeltas: diff --git a/pandas/tests/tseries/frequencies/test_freq_code.py b/pandas/tests/tseries/frequencies/test_freq_code.py index e961fdc295c96..18aa138e7ca1c 100644 --- a/pandas/tests/tseries/frequencies/test_freq_code.py +++ b/pandas/tests/tseries/frequencies/test_freq_code.py @@ -6,7 +6,9 @@ Resolution, to_offset, ) -from pandas._libs.tslibs.dtypes import _attrname_to_abbrevs +from pandas._libs.tslibs.dtypes import ( + _attrname_to_abbrevs, +) @pytest.mark.parametrize( diff --git a/pandas/tests/tseries/frequencies/test_frequencies.py b/pandas/tests/tseries/frequencies/test_frequencies.py index f0af290b2fb69..3e77c8bddda0e 100644 --- a/pandas/tests/tseries/frequencies/test_frequencies.py +++ b/pandas/tests/tseries/frequencies/test_frequencies.py @@ -1,6 +1,8 @@ import pytest -from pandas._libs.tslibs import offsets +from pandas._libs.tslibs import ( + offsets, +) from pandas.tseries.frequencies import ( is_subperiod, diff --git a/pandas/tests/tseries/frequencies/test_inference.py b/pandas/tests/tseries/frequencies/test_inference.py index 3badebb224aee..704282c7b022a 100644 --- a/pandas/tests/tseries/frequencies/test_inference.py +++ b/pandas/tests/tseries/frequencies/test_inference.py @@ -10,9 +10,15 @@ DAYS, MONTHS, ) -from pandas._libs.tslibs.offsets import _get_offset -from pandas._libs.tslibs.period import INVALID_FREQ_ERR_MSG -from pandas.compat import is_platform_windows +from pandas._libs.tslibs.offsets import ( + _get_offset, +) +from pandas._libs.tslibs.period import ( + INVALID_FREQ_ERR_MSG, +) +from pandas.compat import ( + is_platform_windows, +) from pandas import ( DatetimeIndex, @@ -27,7 +33,9 @@ DatetimeArray, TimedeltaArray, ) -from pandas.core.tools.datetimes import to_datetime +from pandas.core.tools.datetimes import ( + to_datetime, +) from pandas.tseries import ( frequencies, diff --git a/pandas/tests/tseries/holiday/test_calendar.py b/pandas/tests/tseries/holiday/test_calendar.py index 57acf15443ca8..7c04842ca5f35 100644 --- a/pandas/tests/tseries/holiday/test_calendar.py +++ b/pandas/tests/tseries/holiday/test_calendar.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import pytest diff --git a/pandas/tests/tseries/holiday/test_federal.py b/pandas/tests/tseries/holiday/test_federal.py index 2565877f8a2a4..e9708a9ee00ab 100644 --- a/pandas/tests/tseries/holiday/test_federal.py +++ b/pandas/tests/tseries/holiday/test_federal.py @@ -1,6 +1,10 @@ -from datetime import datetime +from datetime import ( + datetime, +) -from pandas import DatetimeIndex +from pandas import ( + DatetimeIndex, +) import pandas._testing as tm from pandas.tseries.holiday import ( diff --git a/pandas/tests/tseries/holiday/test_holiday.py b/pandas/tests/tseries/holiday/test_holiday.py index ee83ca144d38a..ac28207ad357d 100644 --- a/pandas/tests/tseries/holiday/test_holiday.py +++ b/pandas/tests/tseries/holiday/test_holiday.py @@ -1,9 +1,15 @@ -from datetime import datetime +from datetime import ( + datetime, +) import pytest -from pytz import utc +from pytz import ( + utc, +) -from pandas import DatetimeIndex +from pandas import ( + DatetimeIndex, +) import pandas._testing as tm from pandas.tseries.holiday import ( diff --git a/pandas/tests/tseries/holiday/test_observance.py b/pandas/tests/tseries/holiday/test_observance.py index 83038ad254b77..133beed33aeda 100644 --- a/pandas/tests/tseries/holiday/test_observance.py +++ b/pandas/tests/tseries/holiday/test_observance.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import pytest diff --git a/pandas/tests/tseries/offsets/common.py b/pandas/tests/tseries/offsets/common.py index efb010addad22..cd06246c6b799 100644 --- a/pandas/tests/tseries/offsets/common.py +++ b/pandas/tests/tseries/offsets/common.py @@ -1,7 +1,9 @@ """ Assertion helpers and base class for offsets tests """ -from __future__ import annotations +from __future__ import ( + annotations, +) def assert_offset_equal(offset, base, expected): diff --git a/pandas/tests/tseries/offsets/conftest.py b/pandas/tests/tseries/offsets/conftest.py index c9c4d6c456c53..0209d588b00a8 100644 --- a/pandas/tests/tseries/offsets/conftest.py +++ b/pandas/tests/tseries/offsets/conftest.py @@ -2,10 +2,16 @@ import pytest -from pandas._libs.tslibs import Timestamp -from pandas._libs.tslibs.offsets import MonthOffset +from pandas._libs.tslibs import ( + Timestamp, +) +from pandas._libs.tslibs.offsets import ( + MonthOffset, +) -from pandas.tseries import offsets +from pandas.tseries import ( + offsets, +) @pytest.fixture( diff --git a/pandas/tests/tseries/offsets/test_business_day.py b/pandas/tests/tseries/offsets/test_business_day.py index 7db1921369023..478f85cf08854 100644 --- a/pandas/tests/tseries/offsets/test_business_day.py +++ b/pandas/tests/tseries/offsets/test_business_day.py @@ -1,7 +1,9 @@ """ Tests for offsets.BDay """ -from __future__ import annotations +from __future__ import ( + annotations, +) from datetime import ( date, @@ -28,7 +30,9 @@ assert_offset_equal, ) -from pandas.tseries import offsets +from pandas.tseries import ( + offsets, +) @pytest.fixture diff --git a/pandas/tests/tseries/offsets/test_business_hour.py b/pandas/tests/tseries/offsets/test_business_hour.py index 319cc053d5d7d..e447b19586952 100644 --- a/pandas/tests/tseries/offsets/test_business_hour.py +++ b/pandas/tests/tseries/offsets/test_business_hour.py @@ -1,7 +1,9 @@ """ Tests for offsets.BusinessHour """ -from __future__ import annotations +from __future__ import ( + annotations, +) from datetime import ( datetime, @@ -25,7 +27,9 @@ _testing as tm, date_range, ) -from pandas.tests.tseries.offsets.common import assert_offset_equal +from pandas.tests.tseries.offsets.common import ( + assert_offset_equal, +) @pytest.fixture diff --git a/pandas/tests/tseries/offsets/test_business_month.py b/pandas/tests/tseries/offsets/test_business_month.py index 9f7fb990d238a..25b7755feb767 100644 --- a/pandas/tests/tseries/offsets/test_business_month.py +++ b/pandas/tests/tseries/offsets/test_business_month.py @@ -3,9 +3,13 @@ - BMonthBegin - BMonthEnd """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from datetime import datetime +from datetime import ( + datetime, +) import pytest diff --git a/pandas/tests/tseries/offsets/test_business_quarter.py b/pandas/tests/tseries/offsets/test_business_quarter.py index 44a7f16ab039d..b7510876c1de0 100644 --- a/pandas/tests/tseries/offsets/test_business_quarter.py +++ b/pandas/tests/tseries/offsets/test_business_quarter.py @@ -3,9 +3,13 @@ - BQuarterBegin - BQuarterEnd """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from datetime import datetime +from datetime import ( + datetime, +) import pytest diff --git a/pandas/tests/tseries/offsets/test_business_year.py b/pandas/tests/tseries/offsets/test_business_year.py index 3b7a1025cc19c..17c5309f50d28 100644 --- a/pandas/tests/tseries/offsets/test_business_year.py +++ b/pandas/tests/tseries/offsets/test_business_year.py @@ -3,9 +3,13 @@ - BYearBegin - BYearEnd """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from datetime import datetime +from datetime import ( + datetime, +) import pytest diff --git a/pandas/tests/tseries/offsets/test_common.py b/pandas/tests/tseries/offsets/test_common.py index 1b90b94d8a9da..4261f466b611f 100644 --- a/pandas/tests/tseries/offsets/test_common.py +++ b/pandas/tests/tseries/offsets/test_common.py @@ -1,6 +1,10 @@ -from datetime import datetime +from datetime import ( + datetime, +) -from dateutil.tz.tz import tzlocal +from dateutil.tz.tz import ( + tzlocal, +) import pytest from pandas._libs.tslibs import ( diff --git a/pandas/tests/tseries/offsets/test_custom_business_day.py b/pandas/tests/tseries/offsets/test_custom_business_day.py index 519fb712d0415..12085254bd906 100644 --- a/pandas/tests/tseries/offsets/test_custom_business_day.py +++ b/pandas/tests/tseries/offsets/test_custom_business_day.py @@ -9,15 +9,21 @@ import numpy as np import pytest -from pandas._libs.tslibs.offsets import CDay +from pandas._libs.tslibs.offsets import ( + CDay, +) from pandas import ( _testing as tm, read_pickle, ) -from pandas.tests.tseries.offsets.common import assert_offset_equal +from pandas.tests.tseries.offsets.common import ( + assert_offset_equal, +) -from pandas.tseries.holiday import USFederalHolidayCalendar +from pandas.tseries.holiday import ( + USFederalHolidayCalendar, +) @pytest.fixture diff --git a/pandas/tests/tseries/offsets/test_custom_business_hour.py b/pandas/tests/tseries/offsets/test_custom_business_hour.py index 38b5d74fe170f..673e152830e99 100644 --- a/pandas/tests/tseries/offsets/test_custom_business_hour.py +++ b/pandas/tests/tseries/offsets/test_custom_business_hour.py @@ -1,7 +1,9 @@ """ Tests for offsets.CustomBusinessHour """ -from __future__ import annotations +from __future__ import ( + annotations, +) from datetime import ( datetime, @@ -11,16 +13,22 @@ import numpy as np import pytest -from pandas._libs.tslibs import Timestamp +from pandas._libs.tslibs import ( + Timestamp, +) from pandas._libs.tslibs.offsets import ( BusinessHour, CustomBusinessHour, Nano, ) -from pandas.tests.tseries.offsets.common import assert_offset_equal +from pandas.tests.tseries.offsets.common import ( + assert_offset_equal, +) -from pandas.tseries.holiday import USFederalHolidayCalendar +from pandas.tseries.holiday import ( + USFederalHolidayCalendar, +) holidays = ["2014-06-27", datetime(2014, 6, 30), np.datetime64("2014-07-02")] diff --git a/pandas/tests/tseries/offsets/test_custom_business_month.py b/pandas/tests/tseries/offsets/test_custom_business_month.py index 3e2500b8009a2..5c8ccd9f83759 100644 --- a/pandas/tests/tseries/offsets/test_custom_business_month.py +++ b/pandas/tests/tseries/offsets/test_custom_business_month.py @@ -4,7 +4,9 @@ - CustomBusinessMonthBegin - CustomBusinessMonthEnd """ -from __future__ import annotations +from __future__ import ( + annotations, +) from datetime import ( date, @@ -29,10 +31,16 @@ assert_is_on_offset, assert_offset_equal, ) -from pandas.tests.tseries.offsets.test_offsets import _ApplyCases +from pandas.tests.tseries.offsets.test_offsets import ( + _ApplyCases, +) -from pandas.tseries import offsets -from pandas.tseries.holiday import USFederalHolidayCalendar +from pandas.tseries import ( + offsets, +) +from pandas.tseries.holiday import ( + USFederalHolidayCalendar, +) @pytest.fixture diff --git a/pandas/tests/tseries/offsets/test_dst.py b/pandas/tests/tseries/offsets/test_dst.py index e00b7d0b78059..03dabb626704e 100644 --- a/pandas/tests/tseries/offsets/test_dst.py +++ b/pandas/tests/tseries/offsets/test_dst.py @@ -1,12 +1,16 @@ """ Tests for DateOffset additions over Daylight Savings Time """ -from datetime import timedelta +from datetime import ( + timedelta, +) import pytest import pytz -from pandas._libs.tslibs import Timestamp +from pandas._libs.tslibs import ( + Timestamp, +) from pandas._libs.tslibs.offsets import ( BMonthBegin, BMonthEnd, @@ -30,7 +34,9 @@ YearEnd, ) -from pandas.util.version import Version +from pandas.util.version import ( + Version, +) # error: Module has no attribute "__version__" pytz_version = Version(pytz.__version__) # type: ignore[attr-defined] diff --git a/pandas/tests/tseries/offsets/test_easter.py b/pandas/tests/tseries/offsets/test_easter.py index d11a72cc1b9d5..a0522f6a6fa5c 100644 --- a/pandas/tests/tseries/offsets/test_easter.py +++ b/pandas/tests/tseries/offsets/test_easter.py @@ -2,15 +2,23 @@ Tests for the following offsets: - Easter """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from datetime import datetime +from datetime import ( + datetime, +) import pytest -from pandas.tests.tseries.offsets.common import assert_offset_equal +from pandas.tests.tseries.offsets.common import ( + assert_offset_equal, +) -from pandas.tseries.offsets import Easter +from pandas.tseries.offsets import ( + Easter, +) class TestEaster: diff --git a/pandas/tests/tseries/offsets/test_fiscal.py b/pandas/tests/tseries/offsets/test_fiscal.py index 7f8c34bc6832e..6a1d65e0f63d2 100644 --- a/pandas/tests/tseries/offsets/test_fiscal.py +++ b/pandas/tests/tseries/offsets/test_fiscal.py @@ -1,12 +1,18 @@ """ Tests for Fiscal Year and Fiscal Quarter offset classes """ -from datetime import datetime +from datetime import ( + datetime, +) -from dateutil.relativedelta import relativedelta +from dateutil.relativedelta import ( + relativedelta, +) import pytest -from pandas import Timestamp +from pandas import ( + Timestamp, +) from pandas.tests.tseries.offsets.common import ( WeekDay, assert_is_on_offset, diff --git a/pandas/tests/tseries/offsets/test_month.py b/pandas/tests/tseries/offsets/test_month.py index fc12510369245..4d90782283f63 100644 --- a/pandas/tests/tseries/offsets/test_month.py +++ b/pandas/tests/tseries/offsets/test_month.py @@ -5,13 +5,19 @@ - MonthBegin - MonthEnd """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from datetime import datetime +from datetime import ( + datetime, +) import pytest -from pandas._libs.tslibs import Timestamp +from pandas._libs.tslibs import ( + Timestamp, +) from pandas._libs.tslibs.offsets import ( MonthBegin, MonthEnd, diff --git a/pandas/tests/tseries/offsets/test_offsets.py b/pandas/tests/tseries/offsets/test_offsets.py index 289045a3c4efd..0d8b5a5e898db 100644 --- a/pandas/tests/tseries/offsets/test_offsets.py +++ b/pandas/tests/tseries/offsets/test_offsets.py @@ -1,7 +1,9 @@ """ Tests of pandas.tseries.offsets """ -from __future__ import annotations +from __future__ import ( + annotations, +) from datetime import ( datetime, @@ -28,8 +30,12 @@ _get_offset, _offset_map, ) -from pandas._libs.tslibs.period import INVALID_FREQ_ERR_MSG -from pandas.errors import PerformanceWarning +from pandas._libs.tslibs.period import ( + INVALID_FREQ_ERR_MSG, +) +from pandas.errors import ( + PerformanceWarning, +) from pandas import ( DatetimeIndex, @@ -37,9 +43,13 @@ date_range, ) import pandas._testing as tm -from pandas.tests.tseries.offsets.common import WeekDay +from pandas.tests.tseries.offsets.common import ( + WeekDay, +) -from pandas.tseries import offsets +from pandas.tseries import ( + offsets, +) from pandas.tseries.offsets import ( FY5253, BaseOffset, diff --git a/pandas/tests/tseries/offsets/test_quarter.py b/pandas/tests/tseries/offsets/test_quarter.py index d183645da507d..2bebfc1f0d191 100644 --- a/pandas/tests/tseries/offsets/test_quarter.py +++ b/pandas/tests/tseries/offsets/test_quarter.py @@ -3,9 +3,13 @@ - QuarterBegin - QuarterEnd """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from datetime import datetime +from datetime import ( + datetime, +) import pytest diff --git a/pandas/tests/tseries/offsets/test_ticks.py b/pandas/tests/tseries/offsets/test_ticks.py index 69953955ebbce..827e946d3e3b4 100644 --- a/pandas/tests/tseries/offsets/test_ticks.py +++ b/pandas/tests/tseries/offsets/test_ticks.py @@ -14,17 +14,25 @@ import numpy as np import pytest -from pandas._libs.tslibs.offsets import delta_to_tick +from pandas._libs.tslibs.offsets import ( + delta_to_tick, +) from pandas import ( Timedelta, Timestamp, ) import pandas._testing as tm -from pandas._testing._hypothesis import INT_NEG_999_TO_POS_999 -from pandas.tests.tseries.offsets.common import assert_offset_equal +from pandas._testing._hypothesis import ( + INT_NEG_999_TO_POS_999, +) +from pandas.tests.tseries.offsets.common import ( + assert_offset_equal, +) -from pandas.tseries import offsets +from pandas.tseries import ( + offsets, +) from pandas.tseries.offsets import ( Hour, Micro, diff --git a/pandas/tests/tseries/offsets/test_week.py b/pandas/tests/tseries/offsets/test_week.py index f42ff091af277..89caa20054948 100644 --- a/pandas/tests/tseries/offsets/test_week.py +++ b/pandas/tests/tseries/offsets/test_week.py @@ -4,7 +4,9 @@ - WeekOfMonth - LastWeekOfMonth """ -from __future__ import annotations +from __future__ import ( + annotations, +) from datetime import ( datetime, @@ -13,7 +15,9 @@ import pytest -from pandas._libs.tslibs import Timestamp +from pandas._libs.tslibs import ( + Timestamp, +) from pandas._libs.tslibs.offsets import ( Day, LastWeekOfMonth, diff --git a/pandas/tests/tseries/offsets/test_year.py b/pandas/tests/tseries/offsets/test_year.py index 480c875c36e04..7022cc3769ce1 100644 --- a/pandas/tests/tseries/offsets/test_year.py +++ b/pandas/tests/tseries/offsets/test_year.py @@ -3,16 +3,24 @@ - YearBegin - YearEnd """ -from __future__ import annotations +from __future__ import ( + annotations, +) -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest -from pandas.compat import is_numpy_dev +from pandas.compat import ( + is_numpy_dev, +) -from pandas import Timestamp +from pandas import ( + Timestamp, +) from pandas.tests.tseries.offsets.common import ( assert_is_on_offset, assert_offset_equal, diff --git a/pandas/tests/tslibs/test_api.py b/pandas/tests/tslibs/test_api.py index a596d4a85074e..6995a276811f3 100644 --- a/pandas/tests/tslibs/test_api.py +++ b/pandas/tests/tslibs/test_api.py @@ -1,6 +1,8 @@ """Tests that the tslibs API is locked down""" -from pandas._libs import tslibs +from pandas._libs import ( + tslibs, +) def test_namespace(): diff --git a/pandas/tests/tslibs/test_array_to_datetime.py b/pandas/tests/tslibs/test_array_to_datetime.py index ba188c3182f57..3d8f0a65f9129 100644 --- a/pandas/tests/tslibs/test_array_to_datetime.py +++ b/pandas/tests/tslibs/test_array_to_datetime.py @@ -5,7 +5,9 @@ timezone, ) -from dateutil.tz.tz import tzoffset +from dateutil.tz.tz import ( + tzoffset, +) import numpy as np import pytest @@ -14,7 +16,9 @@ tslib, ) -from pandas import Timestamp +from pandas import ( + Timestamp, +) import pandas._testing as tm diff --git a/pandas/tests/tslibs/test_ccalendar.py b/pandas/tests/tslibs/test_ccalendar.py index 6a0d0a8d92955..b7eb306cb8d22 100644 --- a/pandas/tests/tslibs/test_ccalendar.py +++ b/pandas/tests/tslibs/test_ccalendar.py @@ -3,13 +3,19 @@ datetime, ) -from hypothesis import given +from hypothesis import ( + given, +) import numpy as np import pytest -from pandas._libs.tslibs import ccalendar +from pandas._libs.tslibs import ( + ccalendar, +) -from pandas._testing._hypothesis import DATETIME_IN_PD_TIMESTAMP_RANGE_NO_TZ +from pandas._testing._hypothesis import ( + DATETIME_IN_PD_TIMESTAMP_RANGE_NO_TZ, +) @pytest.mark.parametrize( diff --git a/pandas/tests/tslibs/test_conversion.py b/pandas/tests/tslibs/test_conversion.py index bf9a45c6d9d7a..0767fb0590469 100644 --- a/pandas/tests/tslibs/test_conversion.py +++ b/pandas/tests/tslibs/test_conversion.py @@ -1,8 +1,12 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest -from pytz import UTC +from pytz import ( + UTC, +) from pandas._libs.tslibs import ( OutOfBoundsTimedelta, diff --git a/pandas/tests/tslibs/test_fields.py b/pandas/tests/tslibs/test_fields.py index 9e6464f7727bd..d778e8ced7ae7 100644 --- a/pandas/tests/tslibs/test_fields.py +++ b/pandas/tests/tslibs/test_fields.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas._libs.tslibs import fields +from pandas._libs.tslibs import ( + fields, +) import pandas._testing as tm diff --git a/pandas/tests/tslibs/test_libfrequencies.py b/pandas/tests/tslibs/test_libfrequencies.py index 83f28f6b5dc01..44b93c20ef226 100644 --- a/pandas/tests/tslibs/test_libfrequencies.py +++ b/pandas/tests/tslibs/test_libfrequencies.py @@ -1,8 +1,12 @@ import pytest -from pandas._libs.tslibs.parsing import get_rule_month +from pandas._libs.tslibs.parsing import ( + get_rule_month, +) -from pandas.tseries import offsets +from pandas.tseries import ( + offsets, +) @pytest.mark.parametrize( diff --git a/pandas/tests/tslibs/test_liboffsets.py b/pandas/tests/tslibs/test_liboffsets.py index c189a431146a7..4ca5dfa7e7b5a 100644 --- a/pandas/tests/tslibs/test_liboffsets.py +++ b/pandas/tests/tslibs/test_liboffsets.py @@ -1,7 +1,9 @@ """ Tests for helper functions in the cython tslibs.offsets """ -from datetime import datetime +from datetime import ( + datetime, +) import pytest @@ -10,9 +12,13 @@ get_lastbday, ) import pandas._libs.tslibs.offsets as liboffsets -from pandas._libs.tslibs.offsets import roll_qtrday +from pandas._libs.tslibs.offsets import ( + roll_qtrday, +) -from pandas import Timestamp +from pandas import ( + Timestamp, +) @pytest.fixture(params=["start", "end", "business_start", "business_end"]) diff --git a/pandas/tests/tslibs/test_np_datetime.py b/pandas/tests/tslibs/test_np_datetime.py index 02edf1a093877..06eeebebdf210 100644 --- a/pandas/tests/tslibs/test_np_datetime.py +++ b/pandas/tests/tslibs/test_np_datetime.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas._libs.tslibs.dtypes import NpyDatetimeUnit +from pandas._libs.tslibs.dtypes import ( + NpyDatetimeUnit, +) from pandas._libs.tslibs.np_datetime import ( OutOfBoundsDatetime, OutOfBoundsTimedelta, diff --git a/pandas/tests/tslibs/test_parse_iso8601.py b/pandas/tests/tslibs/test_parse_iso8601.py index 72b136e17445e..3784f2cc66638 100644 --- a/pandas/tests/tslibs/test_parse_iso8601.py +++ b/pandas/tests/tslibs/test_parse_iso8601.py @@ -1,10 +1,16 @@ -from datetime import datetime +from datetime import ( + datetime, +) import pytest -from pandas._libs import tslib +from pandas._libs import ( + tslib, +) -from pandas import Timestamp +from pandas import ( + Timestamp, +) @pytest.mark.parametrize( diff --git a/pandas/tests/tslibs/test_parsing.py b/pandas/tests/tslibs/test_parsing.py index 6500afdf87beb..56424864359bc 100644 --- a/pandas/tests/tslibs/test_parsing.py +++ b/pandas/tests/tslibs/test_parsing.py @@ -1,11 +1,17 @@ """ Tests for Timestamp parsing, aimed at pandas/_libs/tslibs/parsing.pyx """ -from datetime import datetime +from datetime import ( + datetime, +) import re -from dateutil.parser import parse as du_parse -from dateutil.tz import tzlocal +from dateutil.parser import ( + parse as du_parse, +) +from dateutil.tz import ( + tzlocal, +) import numpy as np import pytest @@ -13,7 +19,9 @@ parsing, strptime, ) -from pandas._libs.tslibs.parsing import parse_datetime_string_with_reso +from pandas._libs.tslibs.parsing import ( + parse_datetime_string_with_reso, +) import pandas.util._test_decorators as td import pandas._testing as tm diff --git a/pandas/tests/tslibs/test_resolution.py b/pandas/tests/tslibs/test_resolution.py index 7b2268f16a85f..3973b7e756047 100644 --- a/pandas/tests/tslibs/test_resolution.py +++ b/pandas/tests/tslibs/test_resolution.py @@ -5,7 +5,9 @@ Resolution, get_resolution, ) -from pandas._libs.tslibs.dtypes import NpyDatetimeUnit +from pandas._libs.tslibs.dtypes import ( + NpyDatetimeUnit, +) def test_get_resolution_nano(): diff --git a/pandas/tests/tslibs/test_timezones.py b/pandas/tests/tslibs/test_timezones.py index 28e4889983fb9..27c6d4d8682fa 100644 --- a/pandas/tests/tslibs/test_timezones.py +++ b/pandas/tests/tslibs/test_timezones.py @@ -12,9 +12,13 @@ conversion, timezones, ) -from pandas.compat import is_platform_windows +from pandas.compat import ( + is_platform_windows, +) -from pandas import Timestamp +from pandas import ( + Timestamp, +) def test_is_utc(utc_fixture): diff --git a/pandas/tests/tslibs/test_tzconversion.py b/pandas/tests/tslibs/test_tzconversion.py index c1a56ffb71b02..3b64026a44618 100644 --- a/pandas/tests/tslibs/test_tzconversion.py +++ b/pandas/tests/tslibs/test_tzconversion.py @@ -2,7 +2,9 @@ import pytest import pytz -from pandas._libs.tslibs.tzconversion import tz_localize_to_utc +from pandas._libs.tslibs.tzconversion import ( + tz_localize_to_utc, +) class TestTZLocalizeToUTC: diff --git a/pandas/tests/util/test_assert_attr_equal.py b/pandas/tests/util/test_assert_attr_equal.py index bbbb0bf2172b1..2ba6d02d60a8d 100644 --- a/pandas/tests/util/test_assert_attr_equal.py +++ b/pandas/tests/util/test_assert_attr_equal.py @@ -1,8 +1,12 @@ -from types import SimpleNamespace +from types import ( + SimpleNamespace, +) import pytest -from pandas.core.dtypes.common import is_float +from pandas.core.dtypes.common import ( + is_float, +) import pandas._testing as tm diff --git a/pandas/tests/util/test_assert_categorical_equal.py b/pandas/tests/util/test_assert_categorical_equal.py index d07bbcbc460a1..fc0e162d54cd7 100644 --- a/pandas/tests/util/test_assert_categorical_equal.py +++ b/pandas/tests/util/test_assert_categorical_equal.py @@ -1,6 +1,8 @@ import pytest -from pandas import Categorical +from pandas import ( + Categorical, +) import pandas._testing as tm diff --git a/pandas/tests/util/test_assert_extension_array_equal.py b/pandas/tests/util/test_assert_extension_array_equal.py index dec10e5b76894..0a05e8cfd37c3 100644 --- a/pandas/tests/util/test_assert_extension_array_equal.py +++ b/pandas/tests/util/test_assert_extension_array_equal.py @@ -1,9 +1,13 @@ import numpy as np import pytest -from pandas import array +from pandas import ( + array, +) import pandas._testing as tm -from pandas.core.arrays.sparse import SparseArray +from pandas.core.arrays.sparse import ( + SparseArray, +) @pytest.mark.parametrize( diff --git a/pandas/tests/util/test_assert_frame_equal.py b/pandas/tests/util/test_assert_frame_equal.py index a6e29e243b0c8..ab76c4f34348f 100644 --- a/pandas/tests/util/test_assert_frame_equal.py +++ b/pandas/tests/util/test_assert_frame_equal.py @@ -1,7 +1,9 @@ import pytest import pandas as pd -from pandas import DataFrame +from pandas import ( + DataFrame, +) import pandas._testing as tm diff --git a/pandas/tests/util/test_assert_interval_array_equal.py b/pandas/tests/util/test_assert_interval_array_equal.py index 8cc4ade3d7e95..989068a6b6b0e 100644 --- a/pandas/tests/util/test_assert_interval_array_equal.py +++ b/pandas/tests/util/test_assert_interval_array_equal.py @@ -1,6 +1,8 @@ import pytest -from pandas import interval_range +from pandas import ( + interval_range, +) import pandas._testing as tm diff --git a/pandas/tests/util/test_assert_numpy_array_equal.py b/pandas/tests/util/test_assert_numpy_array_equal.py index 660402ee857e3..27525435bf7ca 100644 --- a/pandas/tests/util/test_assert_numpy_array_equal.py +++ b/pandas/tests/util/test_assert_numpy_array_equal.py @@ -4,7 +4,9 @@ import pytest import pandas as pd -from pandas import Timestamp +from pandas import ( + Timestamp, +) import pandas._testing as tm diff --git a/pandas/tests/util/test_deprecate.py b/pandas/tests/util/test_deprecate.py index 92f422b8269f5..1a7df12f665a0 100644 --- a/pandas/tests/util/test_deprecate.py +++ b/pandas/tests/util/test_deprecate.py @@ -1,8 +1,12 @@ -from textwrap import dedent +from textwrap import ( + dedent, +) import pytest -from pandas.util._decorators import deprecate +from pandas.util._decorators import ( + deprecate, +) import pandas._testing as tm diff --git a/pandas/tests/util/test_deprecate_kwarg.py b/pandas/tests/util/test_deprecate_kwarg.py index b165e9fba0e4f..91fa66d286e5c 100644 --- a/pandas/tests/util/test_deprecate_kwarg.py +++ b/pandas/tests/util/test_deprecate_kwarg.py @@ -1,6 +1,8 @@ import pytest -from pandas.util._decorators import deprecate_kwarg +from pandas.util._decorators import ( + deprecate_kwarg, +) import pandas._testing as tm diff --git a/pandas/tests/util/test_deprecate_nonkeyword_arguments.py b/pandas/tests/util/test_deprecate_nonkeyword_arguments.py index 2ea3dae19a3e4..b9c6b606aa86e 100644 --- a/pandas/tests/util/test_deprecate_nonkeyword_arguments.py +++ b/pandas/tests/util/test_deprecate_nonkeyword_arguments.py @@ -5,7 +5,9 @@ import inspect import warnings -from pandas.util._decorators import deprecate_nonkeyword_arguments +from pandas.util._decorators import ( + deprecate_nonkeyword_arguments, +) import pandas._testing as tm diff --git a/pandas/tests/util/test_doc.py b/pandas/tests/util/test_doc.py index 50859564e654f..873db5a295652 100644 --- a/pandas/tests/util/test_doc.py +++ b/pandas/tests/util/test_doc.py @@ -1,6 +1,10 @@ -from textwrap import dedent +from textwrap import ( + dedent, +) -from pandas.util._decorators import doc +from pandas.util._decorators import ( + doc, +) @doc(method="cumsum", operation="sum") diff --git a/pandas/tests/util/test_hashing.py b/pandas/tests/util/test_hashing.py index c2977b81a9b4a..2d1b3ccaab2cb 100644 --- a/pandas/tests/util/test_hashing.py +++ b/pandas/tests/util/test_hashing.py @@ -9,7 +9,9 @@ Series, ) import pandas._testing as tm -from pandas.core.util.hashing import hash_tuples +from pandas.core.util.hashing import ( + hash_tuples, +) from pandas.util import ( hash_array, hash_pandas_object, diff --git a/pandas/tests/util/test_numba.py b/pandas/tests/util/test_numba.py index 27b68ff0f6044..4bad9575bdfef 100644 --- a/pandas/tests/util/test_numba.py +++ b/pandas/tests/util/test_numba.py @@ -2,7 +2,9 @@ import pandas.util._test_decorators as td -from pandas import option_context +from pandas import ( + option_context, +) @td.skip_if_installed("numba") diff --git a/pandas/tests/util/test_rewrite_warning.py b/pandas/tests/util/test_rewrite_warning.py index f847a06d8ea8d..3867b55d0eb03 100644 --- a/pandas/tests/util/test_rewrite_warning.py +++ b/pandas/tests/util/test_rewrite_warning.py @@ -2,7 +2,9 @@ import pytest -from pandas.util._exceptions import rewrite_warning +from pandas.util._exceptions import ( + rewrite_warning, +) import pandas._testing as tm diff --git a/pandas/tests/util/test_util.py b/pandas/tests/util/test_util.py index 802be634192a3..168f4d02470b9 100644 --- a/pandas/tests/util/test_util.py +++ b/pandas/tests/util/test_util.py @@ -2,7 +2,9 @@ import pytest -from pandas import compat +from pandas import ( + compat, +) import pandas._testing as tm diff --git a/pandas/tests/util/test_validate_args.py b/pandas/tests/util/test_validate_args.py index 77e6b01ba1180..93ccb37f2bf4e 100644 --- a/pandas/tests/util/test_validate_args.py +++ b/pandas/tests/util/test_validate_args.py @@ -1,6 +1,8 @@ import pytest -from pandas.util._validators import validate_args +from pandas.util._validators import ( + validate_args, +) _fname = "func" diff --git a/pandas/tests/util/test_validate_args_and_kwargs.py b/pandas/tests/util/test_validate_args_and_kwargs.py index 54d94d2194909..0d9ae8f7eeec8 100644 --- a/pandas/tests/util/test_validate_args_and_kwargs.py +++ b/pandas/tests/util/test_validate_args_and_kwargs.py @@ -1,6 +1,8 @@ import pytest -from pandas.util._validators import validate_args_and_kwargs +from pandas.util._validators import ( + validate_args_and_kwargs, +) _fname = "func" diff --git a/pandas/tests/util/test_validate_inclusive.py b/pandas/tests/util/test_validate_inclusive.py index c1254c614ab30..227f8f6eaae88 100644 --- a/pandas/tests/util/test_validate_inclusive.py +++ b/pandas/tests/util/test_validate_inclusive.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas.util._validators import validate_inclusive +from pandas.util._validators import ( + validate_inclusive, +) import pandas as pd diff --git a/pandas/tests/window/moments/test_moments_consistency_expanding.py b/pandas/tests/window/moments/test_moments_consistency_expanding.py index dafc60a057c0f..69e976e9a77f6 100644 --- a/pandas/tests/window/moments/test_moments_consistency_expanding.py +++ b/pandas/tests/window/moments/test_moments_consistency_expanding.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas import Series +from pandas import ( + Series, +) import pandas._testing as tm diff --git a/pandas/tests/window/moments/test_moments_consistency_rolling.py b/pandas/tests/window/moments/test_moments_consistency_rolling.py index 62bfc66b124f3..d7126cc2d15a9 100644 --- a/pandas/tests/window/moments/test_moments_consistency_rolling.py +++ b/pandas/tests/window/moments/test_moments_consistency_rolling.py @@ -1,7 +1,9 @@ import numpy as np import pytest -from pandas import Series +from pandas import ( + Series, +) import pandas._testing as tm diff --git a/pandas/tests/window/test_apply.py b/pandas/tests/window/test_apply.py index 56c2432ab1429..d1866712ad9be 100644 --- a/pandas/tests/window/test_apply.py +++ b/pandas/tests/window/test_apply.py @@ -16,7 +16,9 @@ ) import pandas._testing as tm -from pandas.tseries import offsets +from pandas.tseries import ( + offsets, +) def f(x): diff --git a/pandas/tests/window/test_base_indexer.py b/pandas/tests/window/test_base_indexer.py index fc4a20e4bb568..896398ca1f80f 100644 --- a/pandas/tests/window/test_base_indexer.py +++ b/pandas/tests/window/test_base_indexer.py @@ -19,7 +19,9 @@ VariableOffsetWindowIndexer, ) -from pandas.tseries.offsets import BusinessDay +from pandas.tseries.offsets import ( + BusinessDay, +) def test_bad_get_window_bounds_signature(): diff --git a/pandas/tests/window/test_cython_aggregations.py b/pandas/tests/window/test_cython_aggregations.py index c60cb6ea74ec0..85a197fff152b 100644 --- a/pandas/tests/window/test_cython_aggregations.py +++ b/pandas/tests/window/test_cython_aggregations.py @@ -1,4 +1,6 @@ -from functools import partial +from functools import ( + partial, +) import sys import numpy as np @@ -6,7 +8,9 @@ import pandas._libs.window.aggregations as window_aggregations -from pandas import Series +from pandas import ( + Series, +) import pandas._testing as tm diff --git a/pandas/tests/window/test_dtypes.py b/pandas/tests/window/test_dtypes.py index 4007320b5de33..e54942cd63f47 100644 --- a/pandas/tests/window/test_dtypes.py +++ b/pandas/tests/window/test_dtypes.py @@ -1,9 +1,13 @@ import numpy as np import pytest -from pandas.errors import DataError +from pandas.errors import ( + DataError, +) -from pandas.core.dtypes.common import pandas_dtype +from pandas.core.dtypes.common import ( + pandas_dtype, +) from pandas import ( NA, diff --git a/pandas/tests/window/test_groupby.py b/pandas/tests/window/test_groupby.py index eb4fc06aa523e..8d965f1d30bb1 100644 --- a/pandas/tests/window/test_groupby.py +++ b/pandas/tests/window/test_groupby.py @@ -11,8 +11,12 @@ to_datetime, ) import pandas._testing as tm -from pandas.api.indexers import BaseIndexer -from pandas.core.groupby.groupby import get_groupby +from pandas.api.indexers import ( + BaseIndexer, +) +from pandas.core.groupby.groupby import ( + get_groupby, +) @pytest.fixture diff --git a/pandas/tests/window/test_numba.py b/pandas/tests/window/test_numba.py index dbafcf12513e0..6090a36a1c16b 100644 --- a/pandas/tests/window/test_numba.py +++ b/pandas/tests/window/test_numba.py @@ -6,7 +6,9 @@ is_platform_mac, is_platform_windows, ) -from pandas.errors import NumbaUtilError +from pandas.errors import ( + NumbaUtilError, +) import pandas.util._test_decorators as td from pandas import ( diff --git a/pandas/tests/window/test_pairwise.py b/pandas/tests/window/test_pairwise.py index 695627668b80b..f3b01bb57acdc 100644 --- a/pandas/tests/window/test_pairwise.py +++ b/pandas/tests/window/test_pairwise.py @@ -11,7 +11,9 @@ date_range, ) import pandas._testing as tm -from pandas.core.algorithms import safe_sort +from pandas.core.algorithms import ( + safe_sort, +) @pytest.fixture( diff --git a/pandas/tests/window/test_rolling.py b/pandas/tests/window/test_rolling.py index e8533b3ca2619..4791d199df603 100644 --- a/pandas/tests/window/test_rolling.py +++ b/pandas/tests/window/test_rolling.py @@ -25,10 +25,16 @@ to_timedelta, ) import pandas._testing as tm -from pandas.api.indexers import BaseIndexer -from pandas.core.indexers.objects import VariableOffsetWindowIndexer +from pandas.api.indexers import ( + BaseIndexer, +) +from pandas.core.indexers.objects import ( + VariableOffsetWindowIndexer, +) -from pandas.tseries.offsets import BusinessDay +from pandas.tseries.offsets import ( + BusinessDay, +) def test_doc_string(): diff --git a/pandas/tests/window/test_rolling_functions.py b/pandas/tests/window/test_rolling_functions.py index c4519701da7ab..72f1caf6bcaad 100644 --- a/pandas/tests/window/test_rolling_functions.py +++ b/pandas/tests/window/test_rolling_functions.py @@ -1,4 +1,6 @@ -from datetime import datetime +from datetime import ( + datetime, +) import numpy as np import pytest @@ -15,7 +17,9 @@ ) import pandas._testing as tm -from pandas.tseries import offsets +from pandas.tseries import ( + offsets, +) @pytest.mark.parametrize( diff --git a/pandas/tests/window/test_rolling_quantile.py b/pandas/tests/window/test_rolling_quantile.py index e78e997f220b5..8b192c9bb5a5d 100644 --- a/pandas/tests/window/test_rolling_quantile.py +++ b/pandas/tests/window/test_rolling_quantile.py @@ -1,4 +1,6 @@ -from functools import partial +from functools import ( + partial, +) import numpy as np import pytest @@ -12,7 +14,9 @@ ) import pandas._testing as tm -from pandas.tseries import offsets +from pandas.tseries import ( + offsets, +) def scoreatpercentile(a, per): diff --git a/pandas/tests/window/test_rolling_skew_kurt.py b/pandas/tests/window/test_rolling_skew_kurt.py index 43db772251219..e5419d5860063 100644 --- a/pandas/tests/window/test_rolling_skew_kurt.py +++ b/pandas/tests/window/test_rolling_skew_kurt.py @@ -1,4 +1,6 @@ -from functools import partial +from functools import ( + partial, +) import numpy as np import pytest @@ -14,7 +16,9 @@ ) import pandas._testing as tm -from pandas.tseries import offsets +from pandas.tseries import ( + offsets, +) @td.skip_if_no_scipy diff --git a/pandas/tests/window/test_timeseries_window.py b/pandas/tests/window/test_timeseries_window.py index 0de4b863183df..1933720f89e28 100644 --- a/pandas/tests/window/test_timeseries_window.py +++ b/pandas/tests/window/test_timeseries_window.py @@ -12,7 +12,9 @@ ) import pandas._testing as tm -from pandas.tseries import offsets +from pandas.tseries import ( + offsets, +) @pytest.fixture diff --git a/pandas/tests/window/test_win_type.py b/pandas/tests/window/test_win_type.py index 8438e0727c174..075481c6bfdd5 100644 --- a/pandas/tests/window/test_win_type.py +++ b/pandas/tests/window/test_win_type.py @@ -11,7 +11,9 @@ date_range, ) import pandas._testing as tm -from pandas.api.indexers import BaseIndexer +from pandas.api.indexers import ( + BaseIndexer, +) @pytest.fixture( diff --git a/pandas/tseries/__init__.py b/pandas/tseries/__init__.py index dd4ce02b19453..02a3345314377 100644 --- a/pandas/tseries/__init__.py +++ b/pandas/tseries/__init__.py @@ -1,4 +1,6 @@ -from typing import TYPE_CHECKING +from typing import ( + TYPE_CHECKING, +) if TYPE_CHECKING: # import modules that have public classes/functions: diff --git a/pandas/tseries/api.py b/pandas/tseries/api.py index 9fdf95d09fe52..3cf2043cb3bcb 100644 --- a/pandas/tseries/api.py +++ b/pandas/tseries/api.py @@ -2,7 +2,11 @@ Timeseries API """ -from pandas.tseries import offsets -from pandas.tseries.frequencies import infer_freq +from pandas.tseries import ( + offsets, +) +from pandas.tseries.frequencies import ( + infer_freq, +) __all__ = ["infer_freq", "offsets"] diff --git a/pandas/tseries/frequencies.py b/pandas/tseries/frequencies.py index e1af8c0b48c2f..969de269e6ce6 100644 --- a/pandas/tseries/frequencies.py +++ b/pandas/tseries/frequencies.py @@ -1,8 +1,12 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import numpy as np -from pandas._libs.algos import unique_deltas +from pandas._libs.algos import ( + unique_deltas, +) from pandas._libs.tslibs import ( Timestamp, get_unit_from_dtype, @@ -25,9 +29,15 @@ Day, to_offset, ) -from pandas._libs.tslibs.parsing import get_rule_month -from pandas._typing import npt -from pandas.util._decorators import cache_readonly +from pandas._libs.tslibs.parsing import ( + get_rule_month, +) +from pandas._typing import ( + npt, +) +from pandas.util._decorators import ( + cache_readonly, +) from pandas.core.dtypes.common import ( is_datetime64_dtype, @@ -40,7 +50,9 @@ ABCSeries, ) -from pandas.core.algorithms import unique +from pandas.core.algorithms import ( + unique, +) # --------------------------------------------------------------------- # Offset names ("time rules") and related functions diff --git a/pandas/tseries/holiday.py b/pandas/tseries/holiday.py index 9f1e166cd6afb..b0c00e240023d 100644 --- a/pandas/tseries/holiday.py +++ b/pandas/tseries/holiday.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from datetime import ( datetime, @@ -17,7 +19,9 @@ ) import numpy as np -from pandas.errors import PerformanceWarning +from pandas.errors import ( + PerformanceWarning, +) from pandas import ( DateOffset, diff --git a/pandas/tseries/offsets.py b/pandas/tseries/offsets.py index 169c9cc18a7fd..bda3b1b8a6e8a 100644 --- a/pandas/tseries/offsets.py +++ b/pandas/tseries/offsets.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) from pandas._libs.tslibs.offsets import ( FY5253, diff --git a/pandas/util/_decorators.py b/pandas/util/_decorators.py index 968da7cf60105..6afcd1b07b5fe 100644 --- a/pandas/util/_decorators.py +++ b/pandas/util/_decorators.py @@ -1,8 +1,14 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from functools import wraps +from functools import ( + wraps, +) import inspect -from textwrap import dedent +from textwrap import ( + dedent, +) from typing import ( Any, Callable, @@ -11,12 +17,16 @@ ) import warnings -from pandas._libs.properties import cache_readonly +from pandas._libs.properties import ( + cache_readonly, +) from pandas._typing import ( F, T, ) -from pandas.util._exceptions import find_stack_level +from pandas.util._exceptions import ( + find_stack_level, +) def deprecate( diff --git a/pandas/util/_doctools.py b/pandas/util/_doctools.py index 9e3ab80d1d40a..e28b07772d5e5 100644 --- a/pandas/util/_doctools.py +++ b/pandas/util/_doctools.py @@ -1,6 +1,10 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) -from typing import Iterable +from typing import ( + Iterable, +) import numpy as np @@ -55,7 +59,9 @@ def plot(self, left, right, labels: Iterable[str] = (), vertical: bool = True): vertical : bool, default True If True, use vertical layout. If False, use horizontal layout. """ - from matplotlib import gridspec + from matplotlib import ( + gridspec, + ) import matplotlib.pyplot as plt if not isinstance(left, list): @@ -141,7 +147,9 @@ def _make_table(self, ax, df, title: str, height: float | None = None) -> None: ax.set_visible(False) return - from pandas import plotting + from pandas import ( + plotting, + ) idx_nlevels = df.index.nlevels col_nlevels = df.columns.nlevels diff --git a/pandas/util/_exceptions.py b/pandas/util/_exceptions.py index 1eefd06a133fb..7235b33d4c1c5 100644 --- a/pandas/util/_exceptions.py +++ b/pandas/util/_exceptions.py @@ -1,10 +1,14 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import contextlib import inspect import os import re -from typing import Generator +from typing import ( + Generator, +) import warnings diff --git a/pandas/util/_print_versions.py b/pandas/util/_print_versions.py index 2526fafe5851f..7f60d5f9ee361 100644 --- a/pandas/util/_print_versions.py +++ b/pandas/util/_print_versions.py @@ -1,4 +1,6 @@ -from __future__ import annotations +from __future__ import ( + annotations, +) import codecs import json @@ -8,7 +10,9 @@ import struct import sys -from pandas._typing import JSONSerializable +from pandas._typing import ( + JSONSerializable, +) from pandas.compat._optional import ( VERSIONS, get_version, @@ -21,7 +25,9 @@ def _get_commit_hash() -> str | None: Use vendored versioneer code to get git hash, which handles git worktree correctly. """ - from pandas._version import get_versions + from pandas._version import ( + get_versions, + ) versions = get_versions() return versions["full-revisionid"] diff --git a/pandas/util/_str_methods.py b/pandas/util/_str_methods.py index 8f7aef80bc108..d26c56aa4f8d6 100644 --- a/pandas/util/_str_methods.py +++ b/pandas/util/_str_methods.py @@ -6,7 +6,9 @@ NOTE: when pyupgrade --py39-plus removes nearly everything in this file, this file and the associated tests should be removed. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import sys diff --git a/pandas/util/_test_decorators.py b/pandas/util/_test_decorators.py index dfe48d994cb0e..2f2b7537cd077 100644 --- a/pandas/util/_test_decorators.py +++ b/pandas/util/_test_decorators.py @@ -23,28 +23,40 @@ def test_foo(): For more information, refer to the ``pytest`` documentation on ``skipif``. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import locale -from typing import Callable +from typing import ( + Callable, +) import numpy as np import pytest -from pandas._config import get_option +from pandas._config import ( + get_option, +) -from pandas._typing import F +from pandas._typing import ( + F, +) from pandas.compat import ( IS64, is_platform_windows, ) -from pandas.compat._optional import import_optional_dependency +from pandas.compat._optional import ( + import_optional_dependency, +) from pandas.core.computation.expressions import ( NUMEXPR_INSTALLED, USE_NUMEXPR, ) -from pandas.util.version import Version +from pandas.util.version import ( + Version, +) def safe_import(mod_name: str, min_version: str | None = None): diff --git a/pandas/util/_tester.py b/pandas/util/_tester.py index 1732b75a2a2b9..4c276ba99961e 100644 --- a/pandas/util/_tester.py +++ b/pandas/util/_tester.py @@ -1,12 +1,16 @@ """ Entrypoint for testing from the top-level namespace. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import os import sys -from pandas.compat._optional import import_optional_dependency +from pandas.compat._optional import ( + import_optional_dependency, +) PKG = os.path.dirname(os.path.dirname(__file__)) diff --git a/pandas/util/_validators.py b/pandas/util/_validators.py index b60169f8364da..c7b796d3a5819 100644 --- a/pandas/util/_validators.py +++ b/pandas/util/_validators.py @@ -2,7 +2,9 @@ Module that contains many useful utilities for validating data or function arguments """ -from __future__ import annotations +from __future__ import ( + annotations, +) from typing import ( Iterable, @@ -280,7 +282,9 @@ def validate_fillna_kwargs(value, method, validate_scalar_dict_value: bool = Tru ------- value, method : object """ - from pandas.core.missing import clean_fill_method + from pandas.core.missing import ( + clean_fill_method, + ) if value is None and method is None: raise ValueError("Must specify a fill 'value' or 'method'.") diff --git a/pandas/util/version/__init__.py b/pandas/util/version/__init__.py index 0b5e1d149daaa..ab289da4189f2 100644 --- a/pandas/util/version/__init__.py +++ b/pandas/util/version/__init__.py @@ -6,7 +6,9 @@ # This file is dual licensed under the terms of the Apache License, Version # 2.0, and the BSD License. See the LICENSE file in the root of this repository # for complete details. -from __future__ import annotations +from __future__ import ( + annotations, +) import collections import itertools diff --git a/pyproject.toml b/pyproject.toml index baffbd18329ff..2a4890d8998b1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -516,7 +516,7 @@ known_post_core = ["pandas.tseries", "pandas.io", "pandas.plotting"] sections = ["FUTURE", "STDLIB", "THIRDPARTY" ,"PRE_LIBS" , "PRE_CORE", "DTYPES", "FIRSTPARTY", "POST_CORE", "LOCALFOLDER"] profile = "black" combine_as_imports = true -force_grid_wrap = 2 +force_grid_wrap = 1 force_sort_within_sections = true skip_glob = "env" skip = "pandas/__init__.py" diff --git a/scripts/check_test_naming.py b/scripts/check_test_naming.py index 33890feb8692d..822cbd4d72c5c 100644 --- a/scripts/check_test_naming.py +++ b/scripts/check_test_naming.py @@ -8,12 +8,16 @@ NOTE: if this finds a false positive, you can add the comment `# not a test` to the class or function definition. Though hopefully that shouldn't be necessary. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import argparse import ast import os -from pathlib import Path +from pathlib import ( + Path, +) import sys from typing import ( Iterator, diff --git a/scripts/generate_pxi.py b/scripts/generate_pxi.py index 3462b97aefcbf..8ded98d41e1ac 100644 --- a/scripts/generate_pxi.py +++ b/scripts/generate_pxi.py @@ -1,7 +1,9 @@ import argparse import os -from Cython import Tempita +from Cython import ( + Tempita, +) def process_tempita(pxifile, outfile): diff --git a/scripts/no_bool_in_generic.py b/scripts/no_bool_in_generic.py index 92e2c0983b25b..82f64d6977bde 100644 --- a/scripts/no_bool_in_generic.py +++ b/scripts/no_bool_in_generic.py @@ -10,12 +10,16 @@ The function `visit` is adapted from a function by the same name in pyupgrade: https://github.com/asottile/pyupgrade/blob/5495a248f2165941c5d3b82ac3226ba7ad1fa59d/pyupgrade/_data.py#L70-L113 """ -from __future__ import annotations +from __future__ import ( + annotations, +) import argparse import ast import collections -from typing import Sequence +from typing import ( + Sequence, +) def visit(tree: ast.Module) -> dict[int, list[int]]: diff --git a/scripts/pandas_errors_documented.py b/scripts/pandas_errors_documented.py index 52c1e2008b8a0..bc33c7e343cfe 100644 --- a/scripts/pandas_errors_documented.py +++ b/scripts/pandas_errors_documented.py @@ -6,13 +6,17 @@ pre-commit run pandas-errors-documented --all-files """ -from __future__ import annotations +from __future__ import ( + annotations, +) import argparse import ast import pathlib import sys -from typing import Sequence +from typing import ( + Sequence, +) API_PATH = pathlib.Path("doc/source/reference/testing.rst").resolve() diff --git a/scripts/run_autotyping.py b/scripts/run_autotyping.py index 0a1156399734d..13be2e78ed19e 100644 --- a/scripts/run_autotyping.py +++ b/scripts/run_autotyping.py @@ -4,12 +4,16 @@ ``autotyping`` wants the files to come after, see https://github.com/pandas-dev/pandas/issues/48808#issuecomment-1259711679. """ -from __future__ import annotations +from __future__ import ( + annotations, +) import argparse import subprocess import sys -from typing import Sequence +from typing import ( + Sequence, +) def main(argv: Sequence[str] | None = None) -> None: diff --git a/scripts/run_stubtest.py b/scripts/run_stubtest.py index db7a327f231b5..8a3ed3fb86e48 100644 --- a/scripts/run_stubtest.py +++ b/scripts/run_stubtest.py @@ -1,10 +1,14 @@ import os -from pathlib import Path +from pathlib import ( + Path, +) import sys import tempfile import warnings -from mypy import stubtest +from mypy import ( + stubtest, +) import pandas as pd diff --git a/scripts/run_vulture.py b/scripts/run_vulture.py index edf0a1588305c..06dea3ba7b072 100644 --- a/scripts/run_vulture.py +++ b/scripts/run_vulture.py @@ -3,7 +3,9 @@ import argparse import sys -from vulture import Vulture +from vulture import ( + Vulture, +) if __name__ == "__main__": parser = argparse.ArgumentParser() diff --git a/scripts/tests/test_check_test_naming.py b/scripts/tests/test_check_test_naming.py index 9ddaf2fe2a97d..b5c48a7b5bad9 100644 --- a/scripts/tests/test_check_test_naming.py +++ b/scripts/tests/test_check_test_naming.py @@ -1,6 +1,8 @@ import pytest -from scripts.check_test_naming import main +from scripts.check_test_naming import ( + main, +) @pytest.mark.parametrize( diff --git a/scripts/tests/test_no_bool_in_generic.py b/scripts/tests/test_no_bool_in_generic.py index 0bc91c5d1cf1e..43625396009ac 100644 --- a/scripts/tests/test_no_bool_in_generic.py +++ b/scripts/tests/test_no_bool_in_generic.py @@ -1,4 +1,6 @@ -from scripts.no_bool_in_generic import check_for_bool_in_generic +from scripts.no_bool_in_generic import ( + check_for_bool_in_generic, +) BAD_FILE = "def foo(a: bool) -> bool:\n return bool(0)" GOOD_FILE = "def foo(a: bool_t) -> bool_t:\n return bool(0)" diff --git a/scripts/tests/test_use_io_common_urlopen.py b/scripts/tests/test_use_io_common_urlopen.py index 4bba550a4cc0e..0586b303d6049 100644 --- a/scripts/tests/test_use_io_common_urlopen.py +++ b/scripts/tests/test_use_io_common_urlopen.py @@ -1,6 +1,8 @@ import pytest -from scripts.use_io_common_urlopen import use_io_common_urlopen +from scripts.use_io_common_urlopen import ( + use_io_common_urlopen, +) PATH = "t.py" diff --git a/scripts/tests/test_use_pd_array_in_core.py b/scripts/tests/test_use_pd_array_in_core.py index 8f13a6e735899..94e560a287ea3 100644 --- a/scripts/tests/test_use_pd_array_in_core.py +++ b/scripts/tests/test_use_pd_array_in_core.py @@ -1,6 +1,8 @@ import pytest -from scripts.use_pd_array_in_core import use_pd_array +from scripts.use_pd_array_in_core import ( + use_pd_array, +) BAD_FILE_0 = "import pandas as pd\npd.array" BAD_FILE_1 = "\nfrom pandas import array" diff --git a/scripts/tests/test_validate_docstrings.py b/scripts/tests/test_validate_docstrings.py index c413d98957007..e411dd1e43ffc 100644 --- a/scripts/tests/test_validate_docstrings.py +++ b/scripts/tests/test_validate_docstrings.py @@ -3,7 +3,9 @@ import pytest -from scripts import validate_docstrings +from scripts import ( + validate_docstrings, +) class BadDocstrings: diff --git a/scripts/tests/test_validate_unwanted_patterns.py b/scripts/tests/test_validate_unwanted_patterns.py index 90eca13b21628..26ca72123f068 100644 --- a/scripts/tests/test_validate_unwanted_patterns.py +++ b/scripts/tests/test_validate_unwanted_patterns.py @@ -2,7 +2,9 @@ import pytest -from scripts import validate_unwanted_patterns +from scripts import ( + validate_unwanted_patterns, +) class TestBarePytestRaises: diff --git a/scripts/use_io_common_urlopen.py b/scripts/use_io_common_urlopen.py index 11d8378fce574..543c7f9a30765 100644 --- a/scripts/use_io_common_urlopen.py +++ b/scripts/use_io_common_urlopen.py @@ -9,12 +9,16 @@ """ -from __future__ import annotations +from __future__ import ( + annotations, +) import argparse import ast import sys -from typing import Sequence +from typing import ( + Sequence, +) ERROR_MESSAGE = ( "{path}:{lineno}:{col_offset}: " diff --git a/scripts/use_pd_array_in_core.py b/scripts/use_pd_array_in_core.py index 61ba070e52f1b..f3164ba8bfaa5 100644 --- a/scripts/use_pd_array_in_core.py +++ b/scripts/use_pd_array_in_core.py @@ -9,12 +9,16 @@ """ -from __future__ import annotations +from __future__ import ( + annotations, +) import argparse import ast import sys -from typing import Sequence +from typing import ( + Sequence, +) ERROR_MESSAGE = ( "{path}:{lineno}:{col_offset}: " diff --git a/scripts/validate_docstrings.py b/scripts/validate_docstrings.py index a0eb02d069c58..d5b2dc4b525b6 100755 --- a/scripts/validate_docstrings.py +++ b/scripts/validate_docstrings.py @@ -13,7 +13,9 @@ $ ./validate_docstrings.py $ ./validate_docstrings.py pandas.DataFrame.head """ -from __future__ import annotations +from __future__ import ( + annotations, +) import argparse import doctest @@ -29,7 +31,9 @@ import matplotlib import matplotlib.pyplot as plt import numpy -from numpydoc.docscrape import get_doc_object +from numpydoc.docscrape import ( + get_doc_object, +) from numpydoc.validate import ( Validator, validate, diff --git a/scripts/validate_exception_location.py b/scripts/validate_exception_location.py index 7af5e749b4b96..14cea22f030b7 100644 --- a/scripts/validate_exception_location.py +++ b/scripts/validate_exception_location.py @@ -18,13 +18,17 @@ As a pre-commit hook: pre-commit run validate-errors-locations --all-files """ -from __future__ import annotations +from __future__ import ( + annotations, +) import argparse import ast import pathlib import sys -from typing import Sequence +from typing import ( + Sequence, +) API_PATH = pathlib.Path("doc/source/reference/testing.rst").resolve() ERROR_MESSAGE = ( diff --git a/scripts/validate_min_versions_in_sync.py b/scripts/validate_min_versions_in_sync.py index 3c12f17fe72cf..d3494ce9d9391 100755 --- a/scripts/validate_min_versions_in_sync.py +++ b/scripts/validate_min_versions_in_sync.py @@ -12,7 +12,9 @@ pre-commit run validate-min-versions-in-sync --all-files """ -from __future__ import annotations +from __future__ import ( + annotations, +) import pathlib import sys @@ -24,9 +26,13 @@ else: import tomli as tomllib -from typing import Any +from typing import ( + Any, +) -from scripts.generate_pip_deps_from_conda import RENAME +from scripts.generate_pip_deps_from_conda import ( + RENAME, +) DOC_PATH = pathlib.Path("doc/source/getting_started/install.rst").resolve() CI_PATH = next( diff --git a/scripts/validate_rst_title_capitalization.py b/scripts/validate_rst_title_capitalization.py index 44d59aecde718..ba8b2319544b0 100755 --- a/scripts/validate_rst_title_capitalization.py +++ b/scripts/validate_rst_title_capitalization.py @@ -11,12 +11,16 @@ From the command-line: python scripts/validate_rst_title_capitalization.py """ -from __future__ import annotations +from __future__ import ( + annotations, +) import argparse import re import sys -from typing import Iterable +from typing import ( + Iterable, +) CAPITALIZATION_EXCEPTIONS = { "pandas", diff --git a/setup.py b/setup.py index b6dfcc5fbdb0d..9f6c9afca1122 100755 --- a/setup.py +++ b/setup.py @@ -9,20 +9,28 @@ import argparse import multiprocessing import os -from os.path import join as pjoin +from os.path import ( + join as pjoin, +) import platform import shutil import sys -from sysconfig import get_config_vars +from sysconfig import ( + get_config_vars, +) import numpy -from pkg_resources import parse_version +from pkg_resources import ( + parse_version, +) from setuptools import ( Command, Extension, setup, ) -from setuptools.command.build_ext import build_ext as _build_ext +from setuptools.command.build_ext import ( + build_ext as _build_ext, +) import versioneer cmdclass = versioneer.get_cmdclass() @@ -44,7 +52,9 @@ def is_platform_mac(): Tempita, __version__ as _CYTHON_VERSION, ) - from Cython.Build import cythonize + from Cython.Build import ( + cythonize, + ) _CYTHON_INSTALLED = parse_version(_CYTHON_VERSION) >= parse_version(min_cython_ver) except ImportError: diff --git a/typings/numba.pyi b/typings/numba.pyi index 36cccb894049b..8315892661f5e 100644 --- a/typings/numba.pyi +++ b/typings/numba.pyi @@ -8,7 +8,9 @@ from typing import ( import numba -from pandas._typing import F +from pandas._typing import ( + F, +) def __getattr__(name: str) -> Any: ... # incomplete @overload