diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f39e6dfa..71aab360 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,64 +2,37 @@ name: 'Test' on: [push, pull_request, workflow_dispatch] + jobs: test: - runs-on: ubuntu-18.04 + runs-on: ${{ matrix.os }} timeout-minutes: 10 + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + python-version: ['3.8', '3.9', '3.10'] steps: - - name: Check out code - uses: actions/checkout@v2 - - - name: Setup Python - uses: actions/setup-python@v2 - with: - python-version: "3.9" - - - name: Cache pip - uses: actions/cache@v2 - with: - path: ~/.cache/pip - key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} - restore-keys: | - ${{ runner.os }}-pip- - - name: Install dependencies - run: - python -m pip install -r tests/requirements.txt + - uses: actions/checkout@v2 - - name: Run pyright tests - uses: gramster/pyright-action@main - with: - project: pyrighttestconfig.json - warn-partial: true + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} - - name: Run pytest - run: - pytest tests/pandas - - - name: Run mypy - run: - mypy tests/pandas typings/pandas - - - name: Build wheel and install and remove typings - run: | - python setup.py build bdist_wheel - find ./dist/*.whl | xargs pip install - rm -rf typings - pip install pyright - - # - name: run pyright command line - # run: - # pyright -p pyrightdistconfig.json --dependencies + - name: Upgrade pip + run: | + python -m pip install --upgrade pip + - name: Install Poetry and project dependencies + run: | + pip install poetry + poetry install + - name: Run Pyright + run: poetry run pyright - # - name: Run pyright against dist - # uses: gramster/pyright-action@main - # with: - # project: pyrightdistconfig.json - # extra-args: --dependencies - # warn-partial: true + - name: Run Pytest + run: poetry run pytest - - name: Run mypy against dist - run: - mypy tests/pandas + - name: Run MyPy + run: poetry run mypy pandas-stubs tests \ No newline at end of file diff --git a/.gitignore b/.gitignore index b6e47617..d4cdeae1 100644 --- a/.gitignore +++ b/.gitignore @@ -127,3 +127,4 @@ dmypy.json # Pyre type checker .pyre/ +/poetry.lock diff --git a/README.md b/README.md index e3c3326f..ae74c9fb 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,14 @@ This is the home for pandas typing stubs supported by the pandas core team. The To contribute changes to the stubs, you must include an appropriate test. See `pandas-stubs/tests` for examples. -## Build instructions +### Documentation -Use `python setup.py build bdist_wheel` to build the wheel. NOTE: `setuptools 62.3.2` is required! +- Enter in docs to see: + - 1 - How to setup the enviroment + - 2 - How to test the project + - 3 - How to follow the code style + - 4 - Security stuffs + - 5 - How to publish ## Evolution @@ -23,3 +28,4 @@ As both projects move forward, this page will track what the differences are (if We are indebted to Microsoft and that project for the initial set of public type stubs. We are also grateful for the original pandas-stubs project at that created the framework for testing the stubs. Last update to README: 6/4/2022: 11:35 EDT + diff --git a/docs/1 - setup.md b/docs/1 - setup.md new file mode 100644 index 00000000..4219d16b --- /dev/null +++ b/docs/1 - setup.md @@ -0,0 +1,7 @@ +## Setup Environment + +- Make sure you have python >= 3.8 installed +- Install poetry if you still don't have: pip install poetry +- Install the project dependencies with: poetry install -vvv +- Run all tests to make sure the project is ok: poetry run all_tests + diff --git a/docs/2 - tests.md b/docs/2 - tests.md new file mode 100644 index 00000000..efc326f1 --- /dev/null +++ b/docs/2 - tests.md @@ -0,0 +1,3 @@ +## Test + +- These tests originally came from https://github.com/VirtusLab/pandas-stubs. \ No newline at end of file diff --git a/docs/3 - style.md b/docs/3 - style.md new file mode 100644 index 00000000..2b5c7f7c --- /dev/null +++ b/docs/3 - style.md @@ -0,0 +1,5 @@ +## Code style + +- It's important to follow the code style from the project: + - poetry run black pandas-stubs tests scripts + - poetry run isort pandas-stubs tests scripts \ No newline at end of file diff --git a/docs/4 - security.md b/docs/4 - security.md new file mode 100644 index 00000000..cfa26205 --- /dev/null +++ b/docs/4 - security.md @@ -0,0 +1,3 @@ +## Security + +- \ No newline at end of file diff --git a/docs/5 - publish.md b/docs/5 - publish.md new file mode 100644 index 00000000..7fa609f5 --- /dev/null +++ b/docs/5 - publish.md @@ -0,0 +1,3 @@ +## Publish + +You know ... just type "poetry publish pandas-stubs" \ No newline at end of file diff --git a/typings/pandas/__init__.pyi b/pandas-stubs/__init__.pyi similarity index 99% rename from typings/pandas/__init__.pyi rename to pandas-stubs/__init__.pyi index 536b55c3..714a0c63 100644 --- a/typings/pandas/__init__.pyi +++ b/pandas-stubs/__init__.pyi @@ -1,3 +1,5 @@ +import pandas.testing as testing + from ._config import ( describe_option as describe_option, get_option as get_option, @@ -7,6 +9,7 @@ from ._config import ( set_option as set_option, ) from .core.api import ( + NA as NA, BooleanDtype as BooleanDtype, Categorical as Categorical, CategoricalDtype as CategoricalDtype, @@ -19,18 +22,17 @@ from .core.api import ( Grouper as Grouper, Index as Index, IndexSlice as IndexSlice, + Int8Dtype as Int8Dtype, Int16Dtype as Int16Dtype, Int32Dtype as Int32Dtype, Int64Dtype as Int64Dtype, Int64Index as Int64Index, - Int8Dtype as Int8Dtype, Interval as Interval, IntervalDtype as IntervalDtype, IntervalIndex as IntervalIndex, MultiIndex as MultiIndex, - NA as NA, - NaT as NaT, NamedAgg as NamedAgg, + NaT as NaT, Period as Period, PeriodDtype as PeriodDtype, PeriodIndex as PeriodIndex, @@ -40,11 +42,11 @@ from .core.api import ( Timedelta as Timedelta, TimedeltaIndex as TimedeltaIndex, Timestamp as Timestamp, + UInt8Dtype as UInt8Dtype, UInt16Dtype as UInt16Dtype, UInt32Dtype as UInt32Dtype, UInt64Dtype as UInt64Dtype, UInt64Index as UInt64Index, - UInt8Dtype as UInt8Dtype, array as array, bdate_range as bdate_range, date_range as date_range, @@ -61,10 +63,7 @@ from .core.api import ( unique as unique, value_counts as value_counts, ) -from .core.tools import to_datetime as to_datetime, to_timedelta as to_timedelta from .core.arrays.sparse import SparseDtype as SparseDtype -from .tseries import offsets as offsets -from .tseries.api import infer_freq as infer_freq from .core.computation.api import eval as eval from .core.reshape.api import ( concat as concat, @@ -81,8 +80,7 @@ from .core.reshape.api import ( qcut as qcut, wide_to_long as wide_to_long, ) -from .util._print_versions import show_versions as show_versions -from .io.json import json_normalize as json_normalize +from .core.tools import to_datetime as to_datetime, to_timedelta as to_timedelta from .io.api import ( ExcelFile as ExcelFile, ExcelWriter as ExcelWriter, @@ -108,9 +106,10 @@ from .io.api import ( read_table as read_table, to_pickle as to_pickle, ) - +from .io.json import json_normalize as json_normalize +from .tseries import offsets as offsets +from .tseries.api import infer_freq as infer_freq +from .util._print_versions import show_versions as show_versions from .util._tester import test as test -import pandas.testing as testing - __version__: str diff --git a/typings/pandas/_config/__init__.pyi b/pandas-stubs/_config/__init__.pyi similarity index 85% rename from typings/pandas/_config/__init__.pyi rename to pandas-stubs/_config/__init__.pyi index 64cb0dc6..f9cb092a 100644 --- a/typings/pandas/_config/__init__.pyi +++ b/pandas-stubs/_config/__init__.pyi @@ -4,5 +4,5 @@ from .config import ( option_context as option_context, options as options, reset_option as reset_option, - set_option as set_option) - + set_option as set_option, +) diff --git a/typings/pandas/_config/config.pyi b/pandas-stubs/_config/config.pyi similarity index 89% rename from typings/pandas/_config/config.pyi rename to pandas-stubs/_config/config.pyi index 4a802dac..81503c01 100644 --- a/typings/pandas/_config/config.pyi +++ b/pandas-stubs/_config/config.pyi @@ -1,5 +1,5 @@ from contextlib import ContextDecorator -from typing import Any, Union, overload, Literal +from typing import Any, Literal, Union, overload def get_option(pat: str) -> Any: ... def set_option(pat: str, val: object) -> None: ... diff --git a/typings/pandas/_libs/__init__.pyi b/pandas-stubs/_libs/__init__.pyi similarity index 100% rename from typings/pandas/_libs/__init__.pyi rename to pandas-stubs/_libs/__init__.pyi index 021fe88c..f3516331 100644 --- a/typings/pandas/_libs/__init__.pyi +++ b/pandas-stubs/_libs/__init__.pyi @@ -1,3 +1,4 @@ +from .interval import Interval as Interval from .tslibs import ( NaT as NaT, NaTType as NaTType, @@ -7,4 +8,3 @@ from .tslibs import ( Timestamp as Timestamp, iNaT as iNaT, ) -from .interval import Interval as Interval diff --git a/typings/pandas/_libs/interval.pyi b/pandas-stubs/_libs/interval.pyi similarity index 96% rename from typings/pandas/_libs/interval.pyi rename to pandas-stubs/_libs/interval.pyi index 60825c20..f19734ae 100644 --- a/typings/pandas/_libs/interval.pyi +++ b/pandas-stubs/_libs/interval.pyi @@ -1,22 +1,9 @@ from __future__ import annotations -from typing import ( - Any, - Generic, - TypeVar, - Union, - overload, -) +from typing import Any, Generic, TypeVar, Union, overload import numpy as np - -from pandas._typing import npt - -from pandas._typing import ( - IntervalClosedType, - Timedelta, - Timestamp, -) +from pandas._typing import IntervalClosedType, Timedelta, Timestamp, npt VALID_CLOSED: frozenset[str] diff --git a/typings/pandas/_libs/json.pyi b/pandas-stubs/_libs/json.pyi similarity index 100% rename from typings/pandas/_libs/json.pyi rename to pandas-stubs/_libs/json.pyi diff --git a/typings/pandas/_libs/missing.pyi b/pandas-stubs/_libs/missing.pyi similarity index 99% rename from typings/pandas/_libs/missing.pyi rename to pandas-stubs/_libs/missing.pyi index 2f5cae4c..8de339e6 100644 --- a/typings/pandas/_libs/missing.pyi +++ b/pandas-stubs/_libs/missing.pyi @@ -1,4 +1,5 @@ from __future__ import annotations + from typing import Union class NAType: diff --git a/typings/pandas/_libs/properties.pyi b/pandas-stubs/_libs/properties.pyi similarity index 100% rename from typings/pandas/_libs/properties.pyi rename to pandas-stubs/_libs/properties.pyi diff --git a/typings/pandas/_libs/tslibs/__init__.pyi b/pandas-stubs/_libs/tslibs/__init__.pyi similarity index 83% rename from typings/pandas/_libs/tslibs/__init__.pyi rename to pandas-stubs/_libs/tslibs/__init__.pyi index 315a3777..0d54b8fa 100644 --- a/typings/pandas/_libs/tslibs/__init__.pyi +++ b/pandas-stubs/_libs/tslibs/__init__.pyi @@ -11,14 +11,10 @@ __all__ = [ "OutOfBoundsDatetime", ] +from np_datetime import OutOfBoundsDatetime as OutOfBoundsDatetime + +from .nattype import NaT, NaTType, iNaT, nat_strings +from .offsets import BaseOffset, Tick from .period import Period -from .timestamps import Timestamp from .timedeltas import Timedelta -from .nattype import ( - NaT, - NaTType, - iNaT, - nat_strings, -) -from .offsets import BaseOffset, Tick -from np_datetime import OutOfBoundsDatetime as OutOfBoundsDatetime +from .timestamps import Timestamp diff --git a/typings/pandas/_libs/tslibs/nattype.pyi b/pandas-stubs/_libs/tslibs/nattype.pyi similarity index 96% rename from typings/pandas/_libs/tslibs/nattype.pyi rename to pandas-stubs/_libs/tslibs/nattype.pyi index efadd8f0..8ee12bdd 100644 --- a/typings/pandas/_libs/tslibs/nattype.pyi +++ b/pandas-stubs/_libs/tslibs/nattype.pyi @@ -1,15 +1,7 @@ -from datetime import ( - datetime, - timedelta, - tzinfo as _tzinfo, -) -from typing import ( - Any, - Union, -) +from datetime import datetime, timedelta, tzinfo as _tzinfo +from typing import Any, Union import numpy as np - from pandas._libs.tslibs.period import Period NaT: NaTType diff --git a/typings/pandas/_libs/tslibs/np_datetime.pyi b/pandas-stubs/_libs/tslibs/np_datetime.pyi similarity index 100% rename from typings/pandas/_libs/tslibs/np_datetime.pyi rename to pandas-stubs/_libs/tslibs/np_datetime.pyi diff --git a/typings/pandas/_libs/tslibs/offsets.pyi b/pandas-stubs/_libs/tslibs/offsets.pyi similarity index 99% rename from typings/pandas/_libs/tslibs/offsets.pyi rename to pandas-stubs/_libs/tslibs/offsets.pyi index 3df14f0a..2648c140 100644 --- a/typings/pandas/_libs/tslibs/offsets.pyi +++ b/pandas-stubs/_libs/tslibs/offsets.pyi @@ -1,9 +1,6 @@ from __future__ import annotations -from datetime import ( - datetime, - timedelta, -) +from datetime import datetime, timedelta from typing import ( TYPE_CHECKING, Any, diff --git a/typings/pandas/_libs/tslibs/period.pyi b/pandas-stubs/_libs/tslibs/period.pyi similarity index 99% rename from typings/pandas/_libs/tslibs/period.pyi rename to pandas-stubs/_libs/tslibs/period.pyi index 8a303099..09b164ae 100644 --- a/typings/pandas/_libs/tslibs/period.pyi +++ b/pandas-stubs/_libs/tslibs/period.pyi @@ -1,4 +1,5 @@ from __future__ import annotations + from datetime import datetime from typing import Any diff --git a/typings/pandas/_libs/tslibs/timedeltas.pyi b/pandas-stubs/_libs/tslibs/timedeltas.pyi similarity index 96% rename from typings/pandas/_libs/tslibs/timedeltas.pyi rename to pandas-stubs/_libs/tslibs/timedeltas.pyi index 28c2f7db..7bc84060 100644 --- a/typings/pandas/_libs/tslibs/timedeltas.pyi +++ b/pandas-stubs/_libs/tslibs/timedeltas.pyi @@ -1,18 +1,8 @@ from datetime import timedelta -from typing import ( - ClassVar, - Literal, - Type, - TypeVar, - overload, -) +from typing import ClassVar, Literal, Type, TypeVar, overload import numpy as np - -from pandas._libs.tslibs import ( - NaTType, - Tick, -) +from pandas._libs.tslibs import NaTType, Tick from pandas._typing import npt # This should be kept consistent with the keys in the dict timedelta_abbrevs diff --git a/typings/pandas/_libs/tslibs/timestamps.pyi b/pandas-stubs/_libs/tslibs/timestamps.pyi similarity index 97% rename from typings/pandas/_libs/tslibs/timestamps.pyi rename to pandas-stubs/_libs/tslibs/timestamps.pyi index 3958921b..e284e357 100644 --- a/typings/pandas/_libs/tslibs/timestamps.pyi +++ b/pandas-stubs/_libs/tslibs/timestamps.pyi @@ -6,21 +6,10 @@ from datetime import ( tzinfo as _tzinfo, ) from time import struct_time -from typing import ( - ClassVar, - TypeVar, - overload, -) +from typing import ClassVar, TypeVar, overload import numpy as np - -from pandas._libs.tslibs import ( - BaseOffset, - NaTType, - Period, - Tick, - Timedelta, -) +from pandas._libs.tslibs import BaseOffset, NaTType, Period, Tick, Timedelta _DatetimeT = TypeVar("_DatetimeT", bound=datetime) diff --git a/typings/pandas/_testing/__init__.pyi b/pandas-stubs/_testing/__init__.pyi similarity index 99% rename from typings/pandas/_testing/__init__.pyi rename to pandas-stubs/_testing/__init__.pyi index 477a1a9e..7b24f6fb 100644 --- a/typings/pandas/_testing/__init__.pyi +++ b/pandas-stubs/_testing/__init__.pyi @@ -1,11 +1,12 @@ -from pandas.core.frame import DataFrame -from pandas.core.indexes.base import Index -from pandas.core.series import Series +from typing import Any, List, Optional, Union + from pandas._typing import ( FilePathOrBuffer as FilePathOrBuffer, FrameOrSeriesUnion as FrameOrSeriesUnion, ) -from typing import Any, List, Optional, Union +from pandas.core.frame import DataFrame +from pandas.core.indexes.base import Index +from pandas.core.series import Series lzma = ... N: int = ... diff --git a/typings/pandas/_typing.pyi b/pandas-stubs/_typing.pyi similarity index 100% rename from typings/pandas/_typing.pyi rename to pandas-stubs/_typing.pyi index 26bad403..4a58fe60 100644 --- a/typings/pandas/_typing.pyi +++ b/pandas-stubs/_typing.pyi @@ -1,19 +1,17 @@ import datetime +import sys from io import BufferedIOBase, RawIOBase, TextIOBase, TextIOWrapper from mmap import mmap -import numpy as np -from numpy import typing as npt -import sys from os import PathLike from pathlib import Path from typing import ( + IO, Any, AnyStr, Callable, Collection, Dict, Hashable, - IO, List, Mapping, NewType, @@ -26,13 +24,15 @@ from typing import ( Union, ) -from pandas.core.generic import NDFrame +import numpy as np +from numpy import typing as npt from pandas._libs.tslibs import Period, Timedelta as Timedelta, Timestamp as Timestamp from pandas.core.arrays import ExtensionArray as ExtensionArray -from pandas.core.series import Series as Series +from pandas.core.dtypes.dtypes import ExtensionDtype from pandas.core.frame import DataFrame as DataFrame +from pandas.core.generic import NDFrame from pandas.core.indexes.base import Index as Index -from pandas.core.dtypes.dtypes import ExtensionDtype +from pandas.core.series import Series as Series if sys.version_info >= (3, 8): from typing import Literal diff --git a/pandas-stubs/api/__init__.pyi b/pandas-stubs/api/__init__.pyi new file mode 100644 index 00000000..51eb1ae5 --- /dev/null +++ b/pandas-stubs/api/__init__.pyi @@ -0,0 +1 @@ +from . import extensions as extensions, indexers as indexers, types as types diff --git a/pandas-stubs/api/extensions/__init__.pyi b/pandas-stubs/api/extensions/__init__.pyi new file mode 100644 index 00000000..2ba9cb7f --- /dev/null +++ b/pandas-stubs/api/extensions/__init__.pyi @@ -0,0 +1,15 @@ +from pandas._libs.lib import no_default as no_default +from pandas.core.accessor import ( + register_dataframe_accessor as register_dataframe_accessor, + register_index_accessor as register_index_accessor, + register_series_accessor as register_series_accessor, +) +from pandas.core.algorithms import take as take +from pandas.core.arrays import ( + ExtensionArray as ExtensionArray, + ExtensionScalarOpsMixin as ExtensionScalarOpsMixin, +) +from pandas.core.dtypes.dtypes import ( + ExtensionDtype as ExtensionDtype, + register_extension_dtype as register_extension_dtype, +) diff --git a/typings/pandas/api/indexers/__init__.pyi b/pandas-stubs/api/indexers/__init__.pyi similarity index 76% rename from typings/pandas/api/indexers/__init__.pyi rename to pandas-stubs/api/indexers/__init__.pyi index 65d13fb7..9d3d6360 100644 --- a/typings/pandas/api/indexers/__init__.pyi +++ b/pandas-stubs/api/indexers/__init__.pyi @@ -2,6 +2,5 @@ from pandas.core.indexers import check_array_indexer as check_array_indexer from pandas.core.window.indexers import ( BaseIndexer as BaseIndexer, FixedForwardWindowIndexer as FixedForwardWindowIndexer, - VariableOffsetWindowIndexer as VariableOffsetWindowIndexer) - - + VariableOffsetWindowIndexer as VariableOffsetWindowIndexer, +) diff --git a/pandas-stubs/api/types/__init__.pyi b/pandas-stubs/api/types/__init__.pyi new file mode 100644 index 00000000..50fa80fc --- /dev/null +++ b/pandas-stubs/api/types/__init__.pyi @@ -0,0 +1,9 @@ +from pandas._libs.lib import infer_dtype as infer_dtype +from pandas.core.dtypes.api import * +from pandas.core.dtypes.concat import union_categoricals as union_categoricals +from pandas.core.dtypes.dtypes import ( + CategoricalDtype as CategoricalDtype, + DatetimeTZDtype as DatetimeTZDtype, + IntervalDtype as IntervalDtype, + PeriodDtype as PeriodDtype, +) diff --git a/typings/pandas/compat/__init__.pyi b/pandas-stubs/compat/__init__.pyi similarity index 100% rename from typings/pandas/compat/__init__.pyi rename to pandas-stubs/compat/__init__.pyi diff --git a/pandas-stubs/compat/_optional.pyi b/pandas-stubs/compat/_optional.pyi new file mode 100644 index 00000000..7faae6c4 --- /dev/null +++ b/pandas-stubs/compat/_optional.pyi @@ -0,0 +1,5 @@ +VERSIONS = ... + +def import_optional_dependency( + name: str, extra: str = ..., raise_on_missing: bool = ..., on_version: str = ... +): ... diff --git a/typings/pandas/compat/numpy/__init__.pyi b/pandas-stubs/compat/numpy/__init__.pyi similarity index 100% rename from typings/pandas/compat/numpy/__init__.pyi rename to pandas-stubs/compat/numpy/__init__.pyi diff --git a/typings/pandas/compat/pickle_compat.pyi b/pandas-stubs/compat/pickle_compat.pyi similarity index 99% rename from typings/pandas/compat/pickle_compat.pyi rename to pandas-stubs/compat/pickle_compat.pyi index c96ec9bb..8988bdff 100644 --- a/typings/pandas/compat/pickle_compat.pyi +++ b/pandas-stubs/compat/pickle_compat.pyi @@ -1,7 +1,8 @@ import pickle as pkl -from pandas import DataFrame as DataFrame, Index as Index, Series as Series from typing import Optional +from pandas import DataFrame as DataFrame, Index as Index, Series as Series + def load_reduce(self) -> None: ... def load_newobj(self) -> None: ... def load_newobj_ex(self) -> None: ... diff --git a/typings/pandas/core/__init__.pyi b/pandas-stubs/core/__init__.pyi similarity index 100% rename from typings/pandas/core/__init__.pyi rename to pandas-stubs/core/__init__.pyi diff --git a/typings/pandas/core/accessor.pyi b/pandas-stubs/core/accessor.pyi similarity index 100% rename from typings/pandas/core/accessor.pyi rename to pandas-stubs/core/accessor.pyi diff --git a/typings/pandas/core/algorithms.pyi b/pandas-stubs/core/algorithms.pyi similarity index 99% rename from typings/pandas/core/algorithms.pyi rename to pandas-stubs/core/algorithms.pyi index 59d6b9f0..5ff57aaf 100644 --- a/typings/pandas/core/algorithms.pyi +++ b/pandas-stubs/core/algorithms.pyi @@ -1,8 +1,10 @@ from __future__ import annotations + +from typing import Any, Tuple, Union + import numpy as np from pandas.core.dtypes.generic import ABCIndex as ABCIndex from pandas.core.indexes.base import Index -from typing import Any, Tuple, Union def unique(values): ... diff --git a/typings/pandas/core/api.pyi b/pandas-stubs/core/api.pyi similarity index 99% rename from typings/pandas/core/api.pyi rename to pandas-stubs/core/api.pyi index 6fc87eee..b70e51aa 100644 --- a/typings/pandas/core/api.pyi +++ b/pandas-stubs/core/api.pyi @@ -1,16 +1,22 @@ from pandas._libs import NaT as NaT, Period as Period, Timedelta as Timedelta -from pandas._libs.tslibs import Timestamp as Timestamp from pandas._libs.missing import NA as NA +from pandas._libs.tslibs import Timestamp as Timestamp +from pandas.core.algorithms import ( + factorize as factorize, + unique as unique, + value_counts as value_counts, +) +from pandas.core.arrays import Categorical as Categorical from pandas.core.arrays.boolean import BooleanDtype as BooleanDtype from pandas.core.arrays.integer import ( + Int8Dtype as Int8Dtype, Int16Dtype as Int16Dtype, Int32Dtype as Int32Dtype, Int64Dtype as Int64Dtype, - Int8Dtype as Int8Dtype, + UInt8Dtype as UInt8Dtype, UInt16Dtype as UInt16Dtype, UInt32Dtype as UInt32Dtype, UInt64Dtype as UInt64Dtype, - UInt8Dtype as UInt8Dtype, ) from pandas.core.arrays.string_ import StringDtype as StringDtype from pandas.core.construction import array as array @@ -26,22 +32,7 @@ from pandas.core.dtypes.missing import ( notna as notna, notnull as notnull, ) -from pandas.core.indexes.datetimes import ( - bdate_range as bdate_range, - date_range as date_range, -) -from pandas.core.tools import to_datetime as to_datetime -from pandas.core.tools.numeric import to_numeric as to_numeric -from pandas.core.tools.timedeltas import to_timedelta as to_timedelta -from pandas.io.formats.format import set_eng_float_format as set_eng_float_format -from pandas.core.indexes.interval import ( - Interval as Interval, - interval_range as interval_range, -) -from pandas.core.indexes.period import period_range as period_range -from pandas.core.indexes.timedeltas import timedelta_range as timedelta_range -from pandas.core.arrays import Categorical as Categorical - +from pandas.core.frame import DataFrame as DataFrame from pandas.core.groupby import Grouper as Grouper, NamedAgg as NamedAgg from pandas.core.indexes.api import ( CategoricalIndex as CategoricalIndex, @@ -56,12 +47,20 @@ from pandas.core.indexes.api import ( TimedeltaIndex as TimedeltaIndex, UInt64Index as UInt64Index, ) +from pandas.core.indexes.datetimes import ( + bdate_range as bdate_range, + date_range as date_range, +) +from pandas.core.indexes.interval import ( + Interval as Interval, + interval_range as interval_range, +) +from pandas.core.indexes.period import period_range as period_range +from pandas.core.indexes.timedeltas import timedelta_range as timedelta_range from pandas.core.indexing import IndexSlice as IndexSlice from pandas.core.series import Series as Series -from pandas.core.frame import DataFrame as DataFrame +from pandas.core.tools import to_datetime as to_datetime +from pandas.core.tools.numeric import to_numeric as to_numeric +from pandas.core.tools.timedeltas import to_timedelta as to_timedelta +from pandas.io.formats.format import set_eng_float_format as set_eng_float_format from pandas.tseries.offsets import DateOffset as DateOffset -from pandas.core.algorithms import ( - factorize as factorize, - unique as unique, - value_counts as value_counts, -) diff --git a/typings/pandas/core/arraylike.pyi b/pandas-stubs/core/arraylike.pyi similarity index 97% rename from typings/pandas/core/arraylike.pyi rename to pandas-stubs/core/arraylike.pyi index 1cc740f2..32cc6db6 100644 --- a/typings/pandas/core/arraylike.pyi +++ b/pandas-stubs/core/arraylike.pyi @@ -1,5 +1,6 @@ from typing import Any, Protocol, Tuple -from pandas._typing import FrameOrSeries, DataFrame + +from pandas._typing import DataFrame, FrameOrSeries class OpsMixinProtocol(Protocol): ... diff --git a/typings/pandas/core/arrays/__init__.pyi b/pandas-stubs/core/arrays/__init__.pyi similarity index 100% rename from typings/pandas/core/arrays/__init__.pyi rename to pandas-stubs/core/arrays/__init__.pyi diff --git a/typings/pandas/core/arrays/_arrow_utils.pyi b/pandas-stubs/core/arrays/_arrow_utils.pyi similarity index 100% rename from typings/pandas/core/arrays/_arrow_utils.pyi rename to pandas-stubs/core/arrays/_arrow_utils.pyi diff --git a/typings/pandas/core/arrays/_ranges.pyi b/pandas-stubs/core/arrays/_ranges.pyi similarity index 100% rename from typings/pandas/core/arrays/_ranges.pyi rename to pandas-stubs/core/arrays/_ranges.pyi diff --git a/typings/pandas/core/arrays/base.pyi b/pandas-stubs/core/arrays/base.pyi similarity index 99% rename from typings/pandas/core/arrays/base.pyi rename to pandas-stubs/core/arrays/base.pyi index 2ed22473..b22fce14 100644 --- a/typings/pandas/core/arrays/base.pyi +++ b/pandas-stubs/core/arrays/base.pyi @@ -1,8 +1,9 @@ +from typing import Sequence, Tuple, Union + import numpy as np from pandas._typing import ArrayLike as ArrayLike from pandas.core.dtypes.dtypes import ExtensionDtype as ExtensionDtype from pandas.core.dtypes.generic import ABCExtensionArray as ABCExtensionArray -from typing import Sequence, Tuple, Union def try_cast_to_ea(cls_or_instance, obj, dtype=...): ... diff --git a/typings/pandas/core/arrays/boolean.pyi b/pandas-stubs/core/arrays/boolean.pyi similarity index 99% rename from typings/pandas/core/arrays/boolean.pyi rename to pandas-stubs/core/arrays/boolean.pyi index f95dc278..001e4a0a 100644 --- a/typings/pandas/core/arrays/boolean.pyi +++ b/pandas-stubs/core/arrays/boolean.pyi @@ -1,9 +1,12 @@ from __future__ import annotations + +from typing import Type + import numpy as np -from .masked import BaseMaskedArray as BaseMaskedArray from pandas._typing import Scalar as Scalar from pandas.core.dtypes.base import ExtensionDtype as ExtensionDtype -from typing import Type + +from .masked import BaseMaskedArray as BaseMaskedArray class BooleanDtype(ExtensionDtype): name: str = ... diff --git a/typings/pandas/core/arrays/categorical.pyi b/pandas-stubs/core/arrays/categorical.pyi similarity index 98% rename from typings/pandas/core/arrays/categorical.pyi rename to pandas-stubs/core/arrays/categorical.pyi index c11c95c8..adc6abac 100644 --- a/typings/pandas/core/arrays/categorical.pyi +++ b/pandas-stubs/core/arrays/categorical.pyi @@ -1,3 +1,5 @@ +from typing import List, Literal, Optional, Sequence, Union, overload + import numpy as np from pandas._typing import ( ArrayLike as ArrayLike, @@ -8,11 +10,12 @@ from pandas._typing import ( ) from pandas.core.accessor import PandasDelegate as PandasDelegate from pandas.core.arrays.base import ExtensionArray as ExtensionArray -from pandas.core.base import NoNewAttributesMixin as NoNewAttributesMixin -from pandas.core.base import PandasObject as PandasObject +from pandas.core.base import ( + NoNewAttributesMixin as NoNewAttributesMixin, + PandasObject as PandasObject, +) from pandas.core.dtypes.dtypes import CategoricalDtype as CategoricalDtype from pandas.core.indexes.base import Index -from typing import List, Literal, Optional, Sequence, Union, overload def contains(cat, key, container): ... diff --git a/typings/pandas/core/arrays/datetimelike.pyi b/pandas-stubs/core/arrays/datetimelike.pyi similarity index 99% rename from typings/pandas/core/arrays/datetimelike.pyi rename to pandas-stubs/core/arrays/datetimelike.pyi index 739d8a93..9e04b09f 100644 --- a/typings/pandas/core/arrays/datetimelike.pyi +++ b/pandas-stubs/core/arrays/datetimelike.pyi @@ -1,10 +1,11 @@ +from typing import Sequence, Union + import numpy as np from pandas._libs import NaT as NaT, NaTType as NaTType, Timestamp as Timestamp from pandas.core.arrays.base import ( ExtensionArray as ExtensionArray, ExtensionOpsMixin as ExtensionOpsMixin, ) -from typing import Sequence, Union class AttributesMixin: ... diff --git a/typings/pandas/core/arrays/datetimes.pyi b/pandas-stubs/core/arrays/datetimes.pyi similarity index 99% rename from typings/pandas/core/arrays/datetimes.pyi rename to pandas-stubs/core/arrays/datetimes.pyi index 9671b746..1f303389 100644 --- a/typings/pandas/core/arrays/datetimes.pyi +++ b/pandas-stubs/core/arrays/datetimes.pyi @@ -1,7 +1,8 @@ +from typing import Union + import numpy as np from pandas.core.arrays import datetimelike as dtl from pandas.core.dtypes.dtypes import DatetimeTZDtype as DatetimeTZDtype -from typing import Union def tz_to_dtype(tz): ... diff --git a/typings/pandas/core/arrays/integer.pyi b/pandas-stubs/core/arrays/integer.pyi similarity index 99% rename from typings/pandas/core/arrays/integer.pyi rename to pandas-stubs/core/arrays/integer.pyi index afc1281f..7b9dd539 100644 --- a/typings/pandas/core/arrays/integer.pyi +++ b/pandas-stubs/core/arrays/integer.pyi @@ -1,7 +1,9 @@ -from .masked import BaseMaskedArray as BaseMaskedArray -from pandas.core.dtypes.base import ExtensionDtype as ExtensionDtype from typing import Type +from pandas.core.dtypes.base import ExtensionDtype as ExtensionDtype + +from .masked import BaseMaskedArray as BaseMaskedArray + class _IntegerDtype(ExtensionDtype): name: str base = ... diff --git a/typings/pandas/core/arrays/interval.pyi b/pandas-stubs/core/arrays/interval.pyi similarity index 93% rename from typings/pandas/core/arrays/interval.pyi rename to pandas-stubs/core/arrays/interval.pyi index 85c80287..e8af3589 100644 --- a/typings/pandas/core/arrays/interval.pyi +++ b/pandas-stubs/core/arrays/interval.pyi @@ -1,13 +1,12 @@ from __future__ import annotations + +from typing import Optional + import numpy as np -from pandas._libs.interval import ( - Interval as Interval, - IntervalMixin as IntervalMixin, -) +from pandas._libs.interval import Interval as Interval, IntervalMixin as IntervalMixin +from pandas._typing import Axis, Index as Index, Scalar from pandas.core.arrays.base import ExtensionArray as ExtensionArray from pandas.core.dtypes.generic import ABCExtensionArray as ABCExtensionArray -from pandas._typing import Axis, Scalar, Index as Index -from typing import Optional class IntervalArray(IntervalMixin, ExtensionArray): ndim: int = ... diff --git a/typings/pandas/core/arrays/masked.pyi b/pandas-stubs/core/arrays/masked.pyi similarity index 100% rename from typings/pandas/core/arrays/masked.pyi rename to pandas-stubs/core/arrays/masked.pyi diff --git a/typings/pandas/core/arrays/numpy_.pyi b/pandas-stubs/core/arrays/numpy_.pyi similarity index 99% rename from typings/pandas/core/arrays/numpy_.pyi rename to pandas-stubs/core/arrays/numpy_.pyi index 0917d8e4..b02b6bb1 100644 --- a/typings/pandas/core/arrays/numpy_.pyi +++ b/pandas-stubs/core/arrays/numpy_.pyi @@ -1,3 +1,5 @@ +from typing import Union + import numpy as np from numpy.lib.mixins import NDArrayOperatorsMixin from pandas.core.arrays.base import ( @@ -5,7 +7,6 @@ from pandas.core.arrays.base import ( ExtensionOpsMixin as ExtensionOpsMixin, ) from pandas.core.dtypes.dtypes import ExtensionDtype as ExtensionDtype -from typing import Union class PandasDtype(ExtensionDtype): def __init__(self, dtype) -> None: ... diff --git a/typings/pandas/core/arrays/period.pyi b/pandas-stubs/core/arrays/period.pyi similarity index 99% rename from typings/pandas/core/arrays/period.pyi rename to pandas-stubs/core/arrays/period.pyi index 7b07eaa4..f0ec5883 100644 --- a/typings/pandas/core/arrays/period.pyi +++ b/pandas-stubs/core/arrays/period.pyi @@ -1,9 +1,10 @@ +from typing import Optional, Sequence, Union + import numpy as np from pandas._libs.tslibs import Timestamp from pandas._libs.tslibs.period import Period as Period from pandas.core.arrays import datetimelike as dtl from pandas.tseries.offsets import Tick as Tick -from typing import Optional, Sequence, Union class PeriodArray(dtl.DatetimeLikeArrayMixin, dtl.DatelikeOps): __array_priority__: int = ... diff --git a/typings/pandas/core/arrays/sparse/__init__.pyi b/pandas-stubs/core/arrays/sparse/__init__.pyi similarity index 100% rename from typings/pandas/core/arrays/sparse/__init__.pyi rename to pandas-stubs/core/arrays/sparse/__init__.pyi diff --git a/typings/pandas/core/arrays/sparse/accessor.pyi b/pandas-stubs/core/arrays/sparse/accessor.pyi similarity index 100% rename from typings/pandas/core/arrays/sparse/accessor.pyi rename to pandas-stubs/core/arrays/sparse/accessor.pyi diff --git a/typings/pandas/core/arrays/sparse/array.pyi b/pandas-stubs/core/arrays/sparse/array.pyi similarity index 100% rename from typings/pandas/core/arrays/sparse/array.pyi rename to pandas-stubs/core/arrays/sparse/array.pyi diff --git a/typings/pandas/core/arrays/sparse/dtype.pyi b/pandas-stubs/core/arrays/sparse/dtype.pyi similarity index 99% rename from typings/pandas/core/arrays/sparse/dtype.pyi rename to pandas-stubs/core/arrays/sparse/dtype.pyi index a78a47f5..5aae0ad8 100644 --- a/typings/pandas/core/arrays/sparse/dtype.pyi +++ b/pandas-stubs/core/arrays/sparse/dtype.pyi @@ -1,5 +1,7 @@ # merged types from pylance +from typing import Optional + from pandas._typing import Dtype as Dtype, Scalar from pandas.core.dtypes.base import ExtensionDtype as ExtensionDtype from pandas.core.dtypes.cast import astype_nansafe as astype_nansafe @@ -17,7 +19,6 @@ from pandas.core.dtypes.missing import ( isna as isna, na_value_for_dtype as na_value_for_dtype, ) -from typing import Optional class SparseDtype(ExtensionDtype): def __init__( diff --git a/typings/pandas/core/arrays/sparse/scipy_sparse.pyi b/pandas-stubs/core/arrays/sparse/scipy_sparse.pyi similarity index 100% rename from typings/pandas/core/arrays/sparse/scipy_sparse.pyi rename to pandas-stubs/core/arrays/sparse/scipy_sparse.pyi diff --git a/typings/pandas/core/arrays/string_.pyi b/pandas-stubs/core/arrays/string_.pyi similarity index 99% rename from typings/pandas/core/arrays/string_.pyi rename to pandas-stubs/core/arrays/string_.pyi index 8144321a..c617694e 100644 --- a/typings/pandas/core/arrays/string_.pyi +++ b/pandas-stubs/core/arrays/string_.pyi @@ -1,6 +1,7 @@ +from typing import Type + from pandas.core.arrays import PandasArray as PandasArray from pandas.core.dtypes.base import ExtensionDtype as ExtensionDtype -from typing import Type class StringDtype(ExtensionDtype): name: str = ... diff --git a/typings/pandas/core/arrays/timedeltas.pyi b/pandas-stubs/core/arrays/timedeltas.pyi similarity index 99% rename from typings/pandas/core/arrays/timedeltas.pyi rename to pandas-stubs/core/arrays/timedeltas.pyi index f8a846a5..500cb4f5 100644 --- a/typings/pandas/core/arrays/timedeltas.pyi +++ b/pandas-stubs/core/arrays/timedeltas.pyi @@ -1,7 +1,8 @@ from datetime import timedelta -from pandas.core.arrays import datetimelike as dtl from typing import Sequence +from pandas.core.arrays import datetimelike as dtl + class TimedeltaArray(dtl.DatetimeLikeArrayMixin, dtl.TimelikeOps): __array_priority__: int = ... @property diff --git a/typings/pandas/core/base.pyi b/pandas-stubs/core/base.pyi similarity index 100% rename from typings/pandas/core/base.pyi rename to pandas-stubs/core/base.pyi index 2399146c..7da0b9c3 100644 --- a/typings/pandas/core/base.pyi +++ b/pandas-stubs/core/base.pyi @@ -1,21 +1,21 @@ from __future__ import annotations -import numpy as np -from pandas.core.arrays.categorical import Categorical +from typing import Callable, Generic, List, Literal, Optional, Tuple, Union, overload + +import numpy as np from pandas._typing import ( + T1 as T1, + DataFrame as DataFrame, + Index as Index, Scalar, + Series as Series, SeriesAxisType, - T1 as T1, np_ndarray_int64, np_ndarray_str, - Index as Index, - Series as Series, - DataFrame as DataFrame, ) - from pandas.core.accessor import DirNamesMixin as DirNamesMixin from pandas.core.arrays import ExtensionArray as ExtensionArray -from typing import Callable, Generic, List, Literal, Optional, Tuple, Union, overload +from pandas.core.arrays.categorical import Categorical class PandasObject(DirNamesMixin): def __sizeof__(self) -> int: ... diff --git a/typings/pandas/core/computation/__init__.pyi b/pandas-stubs/core/computation/__init__.pyi similarity index 100% rename from typings/pandas/core/computation/__init__.pyi rename to pandas-stubs/core/computation/__init__.pyi diff --git a/typings/pandas/core/computation/align.pyi b/pandas-stubs/core/computation/align.pyi similarity index 100% rename from typings/pandas/core/computation/align.pyi rename to pandas-stubs/core/computation/align.pyi diff --git a/typings/pandas/core/computation/api.pyi b/pandas-stubs/core/computation/api.pyi similarity index 100% rename from typings/pandas/core/computation/api.pyi rename to pandas-stubs/core/computation/api.pyi diff --git a/typings/pandas/core/computation/common.pyi b/pandas-stubs/core/computation/common.pyi similarity index 100% rename from typings/pandas/core/computation/common.pyi rename to pandas-stubs/core/computation/common.pyi diff --git a/typings/pandas/core/computation/engines.pyi b/pandas-stubs/core/computation/engines.pyi similarity index 100% rename from typings/pandas/core/computation/engines.pyi rename to pandas-stubs/core/computation/engines.pyi diff --git a/typings/pandas/core/computation/expressions.pyi b/pandas-stubs/core/computation/expressions.pyi similarity index 100% rename from typings/pandas/core/computation/expressions.pyi rename to pandas-stubs/core/computation/expressions.pyi diff --git a/typings/pandas/core/computation/parsing.pyi b/pandas-stubs/core/computation/parsing.pyi similarity index 100% rename from typings/pandas/core/computation/parsing.pyi rename to pandas-stubs/core/computation/parsing.pyi diff --git a/typings/pandas/core/config_init.pyi b/pandas-stubs/core/config_init.pyi similarity index 100% rename from typings/pandas/core/config_init.pyi rename to pandas-stubs/core/config_init.pyi diff --git a/typings/pandas/core/dtypes/__init__.pyi b/pandas-stubs/core/dtypes/__init__.pyi similarity index 100% rename from typings/pandas/core/dtypes/__init__.pyi rename to pandas-stubs/core/dtypes/__init__.pyi diff --git a/typings/pandas/core/dtypes/api.pyi b/pandas-stubs/core/dtypes/api.pyi similarity index 100% rename from typings/pandas/core/dtypes/api.pyi rename to pandas-stubs/core/dtypes/api.pyi diff --git a/typings/pandas/core/dtypes/base.pyi b/pandas-stubs/core/dtypes/base.pyi similarity index 99% rename from typings/pandas/core/dtypes/base.pyi rename to pandas-stubs/core/dtypes/base.pyi index 0b0d5e8e..babde0dd 100644 --- a/typings/pandas/core/dtypes/base.pyi +++ b/pandas-stubs/core/dtypes/base.pyi @@ -1,4 +1,5 @@ from typing import List, Optional, Type + from pandas._typing import ExtensionArray class ExtensionDtype: diff --git a/typings/pandas/core/dtypes/cast.pyi b/pandas-stubs/core/dtypes/cast.pyi similarity index 100% rename from typings/pandas/core/dtypes/cast.pyi rename to pandas-stubs/core/dtypes/cast.pyi diff --git a/typings/pandas/core/dtypes/common.pyi b/pandas-stubs/core/dtypes/common.pyi similarity index 99% rename from typings/pandas/core/dtypes/common.pyi rename to pandas-stubs/core/dtypes/common.pyi index 4a068889..4fc05973 100644 --- a/typings/pandas/core/dtypes/common.pyi +++ b/pandas-stubs/core/dtypes/common.pyi @@ -1,3 +1,5 @@ +from typing import Callable, Union + import numpy as np from pandas._typing import ArrayLike as ArrayLike from pandas.core.dtypes.inference import ( @@ -18,7 +20,6 @@ from pandas.core.dtypes.inference import ( is_re_compilable as is_re_compilable, is_scalar as is_scalar, ) -from typing import Callable, Union ensure_float64 = ... ensure_float32 = ... diff --git a/typings/pandas/core/dtypes/concat.pyi b/pandas-stubs/core/dtypes/concat.pyi similarity index 100% rename from typings/pandas/core/dtypes/concat.pyi rename to pandas-stubs/core/dtypes/concat.pyi diff --git a/typings/pandas/core/dtypes/dtypes.pyi b/pandas-stubs/core/dtypes/dtypes.pyi similarity index 98% rename from typings/pandas/core/dtypes/dtypes.pyi rename to pandas-stubs/core/dtypes/dtypes.pyi index 7047acca..e00e5f73 100644 --- a/typings/pandas/core/dtypes/dtypes.pyi +++ b/pandas-stubs/core/dtypes/dtypes.pyi @@ -1,12 +1,14 @@ -from pandas._typing import Ordered as Ordered -from .base import ExtensionDtype as ExtensionDtype -from pandas._libs.tslibs import ( +from typing import Any, Optional, Sequence, Tuple, Type, Union + +from pandas._libs.tslibs import ( # , timezones as timezones NaT as NaT, Period as Period, Timestamp as Timestamp, -) # , timezones as timezones +) +from pandas._typing import Ordered as Ordered from pandas.core.indexes.base import Index -from typing import Any, Optional, Sequence, Tuple, Type, Union + +from .base import ExtensionDtype as ExtensionDtype _str = str diff --git a/typings/pandas/core/dtypes/generic.pyi b/pandas-stubs/core/dtypes/generic.pyi similarity index 100% rename from typings/pandas/core/dtypes/generic.pyi rename to pandas-stubs/core/dtypes/generic.pyi diff --git a/typings/pandas/core/dtypes/inference.pyi b/pandas-stubs/core/dtypes/inference.pyi similarity index 100% rename from typings/pandas/core/dtypes/inference.pyi rename to pandas-stubs/core/dtypes/inference.pyi diff --git a/typings/pandas/core/dtypes/missing.pyi b/pandas-stubs/core/dtypes/missing.pyi similarity index 95% rename from typings/pandas/core/dtypes/missing.pyi rename to pandas-stubs/core/dtypes/missing.pyi index 590cf778..1e9b885b 100644 --- a/typings/pandas/core/dtypes/missing.pyi +++ b/pandas-stubs/core/dtypes/missing.pyi @@ -1,11 +1,12 @@ +from typing import List, Union, overload + import numpy as np -from typing import Union, overload, List from pandas._typing import ( - Scalar as Scalar, - Series as Series, - Index as Index, ArrayLike as ArrayLike, DataFrame as DataFrame, + Index as Index, + Scalar as Scalar, + Series as Series, ) isposinf_scalar = ... diff --git a/typings/pandas/core/frame.pyi b/pandas-stubs/core/frame.pyi similarity index 99% rename from typings/pandas/core/frame.pyi rename to pandas-stubs/core/frame.pyi index b4b0cbe6..2bb64eb1 100644 --- a/typings/pandas/core/frame.pyi +++ b/pandas-stubs/core/frame.pyi @@ -1,72 +1,69 @@ from __future__ import annotations + import datetime -import numpy as np +import datetime as _dt +from typing import ( + Any, + Callable, + Dict, + Hashable, + Iterable, + Iterator, + List, + Literal, + Mapping, + Optional, + Pattern, + Sequence, + Tuple, + Type, + Union, + overload, +) -from pandas.core.indexing import _iLocIndexer, _LocIndexer +import numpy as np +import numpy as _np from matplotlib.axes import Axes as PlotAxes from pandas._typing import ( + S1, + ArrayLike as ArrayLike, Axes as Axes, Axis as Axis, + AxisType, + Dtype, + DtypeNp, FilePathOrBuffer as FilePathOrBuffer, FilePathOrBytesBuffer as FilePathOrBytesBuffer, + IgnoreRaise as IgnoreRaise, + IndexLabel as IndexLabel, + IndexType, + Label, Level as Level, + MaskType, Renamer as Renamer, -) -from pandas._typing import ( - num, + Scalar as Scalar, SeriesAxisType, - AxisType, - Dtype, - DtypeNp, - Label, StrLike, - Scalar as Scalar, - IndexType, - MaskType, - S1, T as TType, -) -from pandas._typing import ( - ArrayLike as ArrayLike, - np_ndarray_str, - np_ndarray_bool, - Timestamp as Timestamp, Timedelta as Timedelta, + Timestamp as Timestamp, + np_ndarray_bool, + np_ndarray_str, + num, ) -from pandas._typing import IndexLabel as IndexLabel, IgnoreRaise as IgnoreRaise from pandas.core.arraylike import OpsMixin from pandas.core.generic import NDFrame as NDFrame from pandas.core.groupby.generic import DataFrameGroupBy as DataFrameGroupBy from pandas.core.groupby.grouper import Grouper from pandas.core.indexes.base import Index as Index from pandas.core.indexes.multi import MultiIndex as MultiIndex +from pandas.core.indexing import _iLocIndexer, _LocIndexer from pandas.core.resample import Resampler -from pandas.core.window.rolling import Rolling, Window from pandas.core.series import Series as Series +from pandas.core.window.rolling import Rolling, Window from pandas.io.formats import console as console, format as fmt from pandas.io.formats.style import Styler as Styler from pandas.plotting import PlotAccessor -from typing import ( - Any, - Callable, - Dict, - Hashable, - Iterable, - Iterator, - List, - Literal, - Mapping, - Optional, - Sequence, - Tuple, - Type, - Union, - overload, - Pattern, -) - -import numpy as _np -import datetime as _dt _str = str _bool = bool diff --git a/typings/pandas/core/generic.pyi b/pandas-stubs/core/generic.pyi similarity index 99% rename from typings/pandas/core/generic.pyi rename to pandas-stubs/core/generic.pyi index 818ae35a..7c6debee 100644 --- a/typings/pandas/core/generic.pyi +++ b/pandas-stubs/core/generic.pyi @@ -1,45 +1,46 @@ -import numpy as np import sys +from typing import ( + Any, + Callable, + Dict, + Hashable, + Iterator, + List, + Mapping, + Optional, + Sequence, + Tuple, + TypeVar, + Union, + overload, +) + +import numpy as np import pandas.core.indexing as indexing from pandas._typing import ( + S1 as S1, ArrayLike as ArrayLike, Axis as Axis, AxisType as AxisType, Dtype as Dtype, FilePathOrBuffer as FilePathOrBuffer, + FrameOrSeries as FrameOrSeries, FrameOrSeriesUnion as FrameOrSeriesUnion, IgnoreRaise as IgnoreRaise, JSONSerializable as JSONSerializable, Level as Level, - Renamer as Renamer, ListLike as ListLike, + Renamer as Renamer, Scalar as Scalar, SeriesAxisType as SeriesAxisType, - FrameOrSeries as FrameOrSeries, - S1 as S1, - Timestamp as Timestamp, - Timedelta as Timedelta, T, + Timedelta as Timedelta, + Timestamp as Timestamp, ) from pandas.core.base import PandasObject as PandasObject from pandas.core.indexes.base import Index as Index from pandas.core.internals import BlockManager as BlockManager from pandas.core.resample import Resampler -from typing import ( - Any, - Callable, - Dict, - Hashable, - Iterator, - List, - Mapping, - Optional, - Sequence, - Tuple, - TypeVar, - Union, - overload, -) if sys.version_info >= (3, 8): from typing import Literal diff --git a/typings/pandas/core/groupby/__init__.pyi b/pandas-stubs/core/groupby/__init__.pyi similarity index 100% rename from typings/pandas/core/groupby/__init__.pyi rename to pandas-stubs/core/groupby/__init__.pyi diff --git a/typings/pandas/core/groupby/base.pyi b/pandas-stubs/core/groupby/base.pyi similarity index 81% rename from typings/pandas/core/groupby/base.pyi rename to pandas-stubs/core/groupby/base.pyi index 775a6c6b..ab097d31 100644 --- a/typings/pandas/core/groupby/base.pyi +++ b/pandas-stubs/core/groupby/base.pyi @@ -1,4 +1,4 @@ -#from pandas.core.dtypes.common import is_list_like as is_list_like, is_scalar as is_scalar +# from pandas.core.dtypes.common import is_list_like as is_list_like, is_scalar as is_scalar from typing import NamedTuple class OutputKey(NamedTuple): diff --git a/typings/pandas/core/groupby/categorical.pyi b/pandas-stubs/core/groupby/categorical.pyi similarity index 65% rename from typings/pandas/core/groupby/categorical.pyi rename to pandas-stubs/core/groupby/categorical.pyi index fd76c4d4..d7b7b521 100644 --- a/typings/pandas/core/groupby/categorical.pyi +++ b/pandas-stubs/core/groupby/categorical.pyi @@ -1,6 +1,6 @@ -from pandas.core.arrays.categorical import ( +from pandas.core.arrays.categorical import ( # , CategoricalDtype as CategoricalDtype Categorical as Categorical, -) # , CategoricalDtype as CategoricalDtype +) def recode_for_groupby(c: Categorical, sort: bool, observed: bool): ... def recode_from_groupby(c: Categorical, sort: bool, ci): ... diff --git a/typings/pandas/core/groupby/generic.pyi b/pandas-stubs/core/groupby/generic.pyi similarity index 99% rename from typings/pandas/core/groupby/generic.pyi rename to pandas-stubs/core/groupby/generic.pyi index cc05af30..9202bb71 100644 --- a/typings/pandas/core/groupby/generic.pyi +++ b/pandas-stubs/core/groupby/generic.pyi @@ -1,20 +1,4 @@ -from matplotlib.axes import Axes as PlotAxes, SubplotBase as AxesSubplot -import numpy as np import sys -from pandas._typing import ( - FrameOrSeries as FrameOrSeries, - AxisType, - Dtype, - Level, - FuncType, - S1, -) -from pandas.core.frame import DataFrame as DataFrame -from pandas.core.groupby.groupby import ( - GroupBy as GroupBy, -) # , get_groupby as get_groupby -from pandas.core.groupby.grouper import Grouper as Grouper -from pandas.core.series import Series as Series from typing import ( Any, Callable, @@ -30,6 +14,23 @@ from typing import ( overload, ) +import numpy as np +from matplotlib.axes import Axes as PlotAxes, SubplotBase as AxesSubplot +from pandas._typing import ( + S1, + AxisType, + Dtype, + FrameOrSeries as FrameOrSeries, + FuncType, + Level, +) +from pandas.core.frame import DataFrame as DataFrame +from pandas.core.groupby.groupby import ( # , get_groupby as get_groupby + GroupBy as GroupBy, +) +from pandas.core.groupby.grouper import Grouper as Grouper +from pandas.core.series import Series as Series + if sys.version_info >= (3, 8): from typing import Literal else: diff --git a/typings/pandas/core/groupby/groupby.pyi b/pandas-stubs/core/groupby/groupby.pyi similarity index 100% rename from typings/pandas/core/groupby/groupby.pyi rename to pandas-stubs/core/groupby/groupby.pyi index e65c80d9..57c0fc10 100644 --- a/typings/pandas/core/groupby/groupby.pyi +++ b/pandas-stubs/core/groupby/groupby.pyi @@ -1,9 +1,11 @@ +from typing import Any, Callable, Dict, Generator, List, Optional, Tuple, Union + from pandas._typing import ( + AxisType as AxisType, FrameOrSeries as FrameOrSeries, FrameOrSeriesUnion as FrameOrSeriesUnion, - Scalar as Scalar, - AxisType as AxisType, KeysArgType, + Scalar as Scalar, ) from pandas.core.base import ( PandasObject as PandasObject, @@ -11,11 +13,9 @@ from pandas.core.base import ( ) from pandas.core.frame import DataFrame as DataFrame from pandas.core.generic import NDFrame as NDFrame - from pandas.core.groupby import ops as ops from pandas.core.indexes.api import Index as Index from pandas.core.series import Series as Series -from typing import Any, Callable, Dict, Generator, List, Optional, Tuple, Union class GroupByPlot(PandasObject): def __init__(self, groupby) -> None: ... diff --git a/typings/pandas/core/groupby/grouper.pyi b/pandas-stubs/core/groupby/grouper.pyi similarity index 59% rename from typings/pandas/core/groupby/grouper.pyi rename to pandas-stubs/core/groupby/grouper.pyi index 4f27952d..152ba59d 100644 --- a/typings/pandas/core/groupby/grouper.pyi +++ b/pandas-stubs/core/groupby/grouper.pyi @@ -1,8 +1,9 @@ +from typing import Dict, Hashable, List, Optional, Tuple + import numpy as np from pandas._typing import FrameOrSeries as FrameOrSeries from pandas.core.groupby import ops as ops from pandas.core.indexes.api import Index as Index -from typing import Dict, Hashable, List, Optional, Tuple class Grouper: def __new__(cls, *args, **kwargs): ... @@ -15,7 +16,9 @@ class Grouper: obj = ... indexer = ... binner = ... - def __init__(self, key = ..., level = ..., freq = ..., axis: int = ..., sort: bool = ...) -> None: ... + def __init__( + self, key=..., level=..., freq=..., axis: int = ..., sort: bool = ... + ) -> None: ... @property def ax(self): ... @property @@ -31,8 +34,18 @@ class Grouping: obj = ... observed = ... in_axis = ... - def __init__(self, index: Index, grouper=..., obj: Optional[FrameOrSeries]=..., name=..., level=..., sort: bool=..., observed: bool=..., in_axis: bool=...) -> None: ... - def __iter__(self) : ... + def __init__( + self, + index: Index, + grouper=..., + obj: Optional[FrameOrSeries] = ..., + name=..., + level=..., + sort: bool = ..., + observed: bool = ..., + in_axis: bool = ..., + ) -> None: ... + def __iter__(self): ... @property def ngroups(self) -> int: ... def indices(self): ... @@ -43,4 +56,13 @@ class Grouping: def group_index(self) -> Index: ... def groups(self) -> Dict[Hashable, np.ndarray]: ... -def get_grouper(obj: FrameOrSeries, key=..., axis: int=..., level=..., sort: bool=..., observed: bool=..., mutated: bool=..., validate: bool=...) -> Tuple[ops.BaseGrouper, List[Hashable], FrameOrSeries]: ... +def get_grouper( + obj: FrameOrSeries, + key=..., + axis: int = ..., + level=..., + sort: bool = ..., + observed: bool = ..., + mutated: bool = ..., + validate: bool = ..., +) -> Tuple[ops.BaseGrouper, List[Hashable], FrameOrSeries]: ... diff --git a/typings/pandas/core/groupby/ops.pyi b/pandas-stubs/core/groupby/ops.pyi similarity index 99% rename from typings/pandas/core/groupby/ops.pyi rename to pandas-stubs/core/groupby/ops.pyi index 1b3181ce..152b0e25 100644 --- a/typings/pandas/core/groupby/ops.pyi +++ b/pandas-stubs/core/groupby/ops.pyi @@ -1,9 +1,10 @@ +from typing import List, Optional, Sequence, Tuple + import numpy as np from pandas._typing import FrameOrSeriesUnion as FrameOrSeriesUnion from pandas.core.groupby import grouper as grouper from pandas.core.indexes.api import Index as Index from pandas.core.series import Series as Series -from typing import List, Optional, Sequence, Tuple class BaseGrouper: axis = ... diff --git a/typings/pandas/core/indexes/__init__.pyi b/pandas-stubs/core/indexes/__init__.pyi similarity index 100% rename from typings/pandas/core/indexes/__init__.pyi rename to pandas-stubs/core/indexes/__init__.pyi diff --git a/typings/pandas/core/indexes/accessors.pyi b/pandas-stubs/core/indexes/accessors.pyi similarity index 100% rename from typings/pandas/core/indexes/accessors.pyi rename to pandas-stubs/core/indexes/accessors.pyi diff --git a/typings/pandas/core/indexes/api.pyi b/pandas-stubs/core/indexes/api.pyi similarity index 70% rename from typings/pandas/core/indexes/api.pyi rename to pandas-stubs/core/indexes/api.pyi index a373dbcb..ba60b4c8 100644 --- a/typings/pandas/core/indexes/api.pyi +++ b/pandas-stubs/core/indexes/api.pyi @@ -3,12 +3,19 @@ from pandas.core.indexes.category import CategoricalIndex as CategoricalIndex from pandas.core.indexes.datetimes import DatetimeIndex as DatetimeIndex from pandas.core.indexes.interval import IntervalIndex as IntervalIndex from pandas.core.indexes.multi import MultiIndex as MultiIndex -from pandas.core.indexes.numeric import Float64Index as Float64Index, Int64Index as Int64Index, NumericIndex as NumericIndex, UInt64Index as UInt64Index +from pandas.core.indexes.numeric import ( + Float64Index as Float64Index, + Int64Index as Int64Index, + NumericIndex as NumericIndex, + UInt64Index as UInt64Index, +) from pandas.core.indexes.period import PeriodIndex as PeriodIndex from pandas.core.indexes.range import RangeIndex as RangeIndex from pandas.core.indexes.timedeltas import TimedeltaIndex as TimedeltaIndex -def get_objs_combined_axis(objs, intersect: bool=..., axis=..., sort: bool=...) -> Index: ... +def get_objs_combined_axis( + objs, intersect: bool = ..., axis=..., sort: bool = ... +) -> Index: ... def union_indexes(indexes, sort=...) -> Index: ... def get_consensus_names(indexes): ... def all_indexes_same(indexes): ... diff --git a/typings/pandas/core/indexes/base.pyi b/pandas-stubs/core/indexes/base.pyi similarity index 99% rename from typings/pandas/core/indexes/base.pyi rename to pandas-stubs/core/indexes/base.pyi index 704cc81c..31ea44fb 100644 --- a/typings/pandas/core/indexes/base.pyi +++ b/pandas-stubs/core/indexes/base.pyi @@ -1,28 +1,3 @@ -import numpy as np -from pandas._typing import ( - Dtype as Dtype, - DtypeArg as DtypeArg, - Label as Label, - Level as Level, - Scalar as Scalar, - T1 as T1, - np_ndarray_str, - np_ndarray_int64, - np_ndarray_bool, -) - -from pandas._typing import ( - Series as Series, - DataFrame as DataFrame, - DtypeObj as DtypeObj, -) - -from pandas.core.arrays import ExtensionArray - -from pandas.core.base import IndexOpsMixin, PandasObject - -from pandas.core.strings import StringMethods - from typing import ( Callable, Dict, @@ -38,6 +13,25 @@ from typing import ( overload, ) +import numpy as np +from pandas._typing import ( + T1 as T1, + DataFrame as DataFrame, + Dtype as Dtype, + DtypeArg as DtypeArg, + DtypeObj as DtypeObj, + Label as Label, + Level as Level, + Scalar as Scalar, + Series as Series, + np_ndarray_bool, + np_ndarray_int64, + np_ndarray_str, +) +from pandas.core.arrays import ExtensionArray +from pandas.core.base import IndexOpsMixin, PandasObject +from pandas.core.strings import StringMethods + class InvalidIndexError(Exception): ... _str = str diff --git a/typings/pandas/core/indexes/datetimelike.pyi b/pandas-stubs/core/indexes/datetimelike.pyi similarity index 99% rename from typings/pandas/core/indexes/datetimelike.pyi rename to pandas-stubs/core/indexes/datetimelike.pyi index 7271535c..c8bf7b04 100644 --- a/typings/pandas/core/indexes/datetimelike.pyi +++ b/pandas-stubs/core/indexes/datetimelike.pyi @@ -1,8 +1,9 @@ +from typing import List, Optional + from pandas.core.accessor import PandasDelegate as PandasDelegate from pandas.core.indexes.extension import ExtensionIndex as ExtensionIndex from pandas.core.indexes.numeric import Int64Index as Int64Index from pandas.tseries.frequencies import DateOffset as DateOffset -from typing import List, Optional class DatetimeIndexOpsMixin(ExtensionIndex): freq: Optional[DateOffset] diff --git a/typings/pandas/core/indexes/datetimes.pyi b/pandas-stubs/core/indexes/datetimes.pyi similarity index 96% rename from typings/pandas/core/indexes/datetimes.pyi rename to pandas-stubs/core/indexes/datetimes.pyi index 769eb6ec..e9fa06c3 100644 --- a/typings/pandas/core/indexes/datetimes.pyi +++ b/pandas-stubs/core/indexes/datetimes.pyi @@ -1,13 +1,14 @@ -import numpy as np from datetime import tzinfo as tzinfo +from typing import Optional, Union, overload + +import numpy as np +from pandas._typing import Timedelta as Timedelta, Timestamp as Timestamp from pandas.core.indexes.datetimelike import ( - DatetimeTimedeltaMixin as DatetimeTimedeltaMixin, DatetimelikeDelegateMixin as DatetimelikeDelegateMixin, + DatetimeTimedeltaMixin as DatetimeTimedeltaMixin, ) from pandas.core.indexes.timedeltas import TimedeltaIndex as TimedeltaIndex from pandas.core.series import Series as Series, TimedeltaSeries, TimestampSeries -from pandas._typing import Timestamp as Timestamp, Timedelta as Timedelta -from typing import Optional, Union, overload class DatetimeDelegateMixin(DatetimelikeDelegateMixin): ... diff --git a/typings/pandas/core/indexes/extension.pyi b/pandas-stubs/core/indexes/extension.pyi similarity index 99% rename from typings/pandas/core/indexes/extension.pyi rename to pandas-stubs/core/indexes/extension.pyi index 17c68a4f..0de6bbf6 100644 --- a/typings/pandas/core/indexes/extension.pyi +++ b/pandas-stubs/core/indexes/extension.pyi @@ -1,6 +1,7 @@ -from pandas.core.indexes.base import Index as Index from typing import List +from pandas.core.indexes.base import Index as Index + def inherit_from_data(name: str, delegate, cache: bool = ..., wrap: bool = ...): ... def inherit_names(names: List[str], delegate, cache: bool = ..., wrap: bool = ...): ... def make_wrapped_arith_op(opname): ... diff --git a/typings/pandas/core/indexes/frozen.pyi b/pandas-stubs/core/indexes/frozen.pyi similarity index 100% rename from typings/pandas/core/indexes/frozen.pyi rename to pandas-stubs/core/indexes/frozen.pyi diff --git a/typings/pandas/core/indexes/interval.pyi b/pandas-stubs/core/indexes/interval.pyi similarity index 95% rename from typings/pandas/core/indexes/interval.pyi rename to pandas-stubs/core/indexes/interval.pyi index 198f7cfc..03c13f54 100644 --- a/typings/pandas/core/indexes/interval.pyi +++ b/pandas-stubs/core/indexes/interval.pyi @@ -1,10 +1,11 @@ +from typing import List, Optional, Tuple, Union + import numpy as np -from pandas._libs.interval import IntervalMixin as IntervalMixin, Interval as Interval +from pandas._libs.interval import Interval as Interval, IntervalMixin as IntervalMixin from pandas._typing import AnyArrayLike as AnyArrayLike, DtypeArg as DtypeArg from pandas.core.dtypes.generic import ABCSeries as ABCSeries from pandas.core.indexes.base import Index as Index from pandas.core.indexes.extension import ExtensionIndex as ExtensionIndex -from typing import Optional, Tuple, Union, List class SetopCheck: op_name = ... diff --git a/typings/pandas/core/indexes/multi.pyi b/pandas-stubs/core/indexes/multi.pyi similarity index 98% rename from typings/pandas/core/indexes/multi.pyi rename to pandas-stubs/core/indexes/multi.pyi index f7c604cb..c7181fe6 100644 --- a/typings/pandas/core/indexes/multi.pyi +++ b/pandas-stubs/core/indexes/multi.pyi @@ -1,7 +1,8 @@ +from typing import Callable, Hashable, List, Optional, Sequence, Union + import numpy as np +from pandas._typing import T1 as T1, DtypeArg as DtypeArg, np_ndarray_bool from pandas.core.indexes.base import Index as Index -from typing import Callable, Hashable, List, Optional, Sequence, Union -from pandas._typing import np_ndarray_bool, DtypeArg as DtypeArg, T1 as T1 class MultiIndex(Index): def __new__( diff --git a/typings/pandas/core/indexes/numeric.pyi b/pandas-stubs/core/indexes/numeric.pyi similarity index 99% rename from typings/pandas/core/indexes/numeric.pyi rename to pandas-stubs/core/indexes/numeric.pyi index d777c08c..fb9774cc 100644 --- a/typings/pandas/core/indexes/numeric.pyi +++ b/pandas-stubs/core/indexes/numeric.pyi @@ -1,7 +1,8 @@ -import numpy as np -from pandas.core.indexes.base import Index as Index from typing import Iterable, TypeVar + +import numpy as np from pandas._typing import T1 as T1, np_ndarray_int64 +from pandas.core.indexes.base import Index as Index class NumericIndex(Index): def __init__(self, data: Iterable = ..., dtype=..., copy: bool = ..., name=...): ... diff --git a/typings/pandas/core/indexes/timedeltas.pyi b/pandas-stubs/core/indexes/timedeltas.pyi similarity index 99% rename from typings/pandas/core/indexes/timedeltas.pyi rename to pandas-stubs/core/indexes/timedeltas.pyi index 76dd8d85..31f65c36 100644 --- a/typings/pandas/core/indexes/timedeltas.pyi +++ b/pandas-stubs/core/indexes/timedeltas.pyi @@ -1,13 +1,14 @@ from typing import Union, overload + from pandas._libs import Timedelta as Timedelta +from pandas._typing import num from pandas.core.arrays import datetimelike as dtl from pandas.core.indexes.datetimelike import ( DatetimeIndexOpsMixin as DatetimeIndexOpsMixin, - DatetimeTimedeltaMixin as DatetimeTimedeltaMixin, DatetimelikeDelegateMixin as DatetimelikeDelegateMixin, + DatetimeTimedeltaMixin as DatetimeTimedeltaMixin, ) from pandas.core.indexes.datetimes import DatetimeIndex as DatetimeIndex -from pandas._typing import num class TimedeltaDelegateMixin(DatetimelikeDelegateMixin): ... diff --git a/typings/pandas/core/indexing.pyi b/pandas-stubs/core/indexing.pyi similarity index 97% rename from typings/pandas/core/indexing.pyi rename to pandas-stubs/core/indexing.pyi index c5762e3c..6eb27a3c 100644 --- a/typings/pandas/core/indexing.pyi +++ b/pandas-stubs/core/indexing.pyi @@ -1,8 +1,9 @@ +from typing import Tuple, Union + import numpy as np from pandas._libs.indexing import _NDFrameIndexerBase +from pandas._typing import Scalar, StrLike from pandas.core.indexes.api import Index as Index -from pandas._typing import StrLike, Scalar -from typing import Tuple, Union class _IndexSlice: def __getitem__(self, arg) -> Tuple[Union[StrLike, Scalar, slice], ...]: ... diff --git a/typings/pandas/core/internals/__init__.pyi b/pandas-stubs/core/internals/__init__.pyi similarity index 100% rename from typings/pandas/core/internals/__init__.pyi rename to pandas-stubs/core/internals/__init__.pyi diff --git a/typings/pandas/core/internals/blocks.pyi b/pandas-stubs/core/internals/blocks.pyi similarity index 99% rename from typings/pandas/core/internals/blocks.pyi rename to pandas-stubs/core/internals/blocks.pyi index 17aaa774..a4261208 100644 --- a/typings/pandas/core/internals/blocks.pyi +++ b/pandas-stubs/core/internals/blocks.pyi @@ -1,6 +1,7 @@ +from typing import List + from pandas.core.arrays import ExtensionArray as ExtensionArray from pandas.core.base import PandasObject as PandasObject -from typing import List class Block(PandasObject): is_numeric: bool = ... diff --git a/typings/pandas/core/internals/concat.pyi b/pandas-stubs/core/internals/concat.pyi similarity index 100% rename from typings/pandas/core/internals/concat.pyi rename to pandas-stubs/core/internals/concat.pyi diff --git a/typings/pandas/core/internals/construction.pyi b/pandas-stubs/core/internals/construction.pyi similarity index 100% rename from typings/pandas/core/internals/construction.pyi rename to pandas-stubs/core/internals/construction.pyi diff --git a/typings/pandas/core/internals/managers.pyi b/pandas-stubs/core/internals/managers.pyi similarity index 99% rename from typings/pandas/core/internals/managers.pyi rename to pandas-stubs/core/internals/managers.pyi index 78f79ee7..ff238ecb 100644 --- a/typings/pandas/core/internals/managers.pyi +++ b/pandas-stubs/core/internals/managers.pyi @@ -1,7 +1,8 @@ +from typing import List, Sequence, Union + from pandas.core.base import PandasObject as PandasObject from pandas.core.indexes.api import Index as Index from pandas.core.internals.blocks import Block as Block -from typing import List, Sequence, Union class BlockManager(PandasObject): axes = ... diff --git a/typings/pandas/core/ops/__init__.pyi b/pandas-stubs/core/ops/__init__.pyi similarity index 100% rename from typings/pandas/core/ops/__init__.pyi rename to pandas-stubs/core/ops/__init__.pyi diff --git a/typings/pandas/core/ops/array_ops.pyi b/pandas-stubs/core/ops/array_ops.pyi similarity index 99% rename from typings/pandas/core/ops/array_ops.pyi rename to pandas-stubs/core/ops/array_ops.pyi index fa382416..d2cb1814 100644 --- a/typings/pandas/core/ops/array_ops.pyi +++ b/pandas-stubs/core/ops/array_ops.pyi @@ -1,6 +1,7 @@ +from typing import Optional, Union + import numpy as np from pandas.core.dtypes.generic import ABCExtensionArray as ABCExtensionArray -from typing import Optional, Union def comp_method_OBJECT_ARRAY(op, x, y): ... def masked_arith_op(x, y, op): ... diff --git a/typings/pandas/core/ops/dispatch.pyi b/pandas-stubs/core/ops/dispatch.pyi similarity index 99% rename from typings/pandas/core/ops/dispatch.pyi rename to pandas-stubs/core/ops/dispatch.pyi index 66b066c7..5da09181 100644 --- a/typings/pandas/core/ops/dispatch.pyi +++ b/pandas-stubs/core/ops/dispatch.pyi @@ -1,9 +1,10 @@ +from typing import Union + import numpy as np from pandas.core.dtypes.generic import ( ABCExtensionArray as ABCExtensionArray, ABCSeries as ABCSeries, ) -from typing import Union def should_extension_dispatch(left: ABCSeries, right) -> bool: ... def should_series_dispatch(left, right, op): ... diff --git a/typings/pandas/core/ops/docstrings.pyi b/pandas-stubs/core/ops/docstrings.pyi similarity index 100% rename from typings/pandas/core/ops/docstrings.pyi rename to pandas-stubs/core/ops/docstrings.pyi diff --git a/typings/pandas/core/ops/invalid.pyi b/pandas-stubs/core/ops/invalid.pyi similarity index 100% rename from typings/pandas/core/ops/invalid.pyi rename to pandas-stubs/core/ops/invalid.pyi diff --git a/typings/pandas/core/ops/mask_ops.pyi b/pandas-stubs/core/ops/mask_ops.pyi similarity index 99% rename from typings/pandas/core/ops/mask_ops.pyi rename to pandas-stubs/core/ops/mask_ops.pyi index 67f8ff9b..bcfc46a6 100644 --- a/typings/pandas/core/ops/mask_ops.pyi +++ b/pandas-stubs/core/ops/mask_ops.pyi @@ -1,6 +1,7 @@ +from typing import Optional, Union + import numpy as np from pandas._libs import missing as libmissing -from typing import Optional, Union def kleene_or( left: Union[bool, np.ndarray], diff --git a/typings/pandas/core/ops/methods.pyi b/pandas-stubs/core/ops/methods.pyi similarity index 100% rename from typings/pandas/core/ops/methods.pyi rename to pandas-stubs/core/ops/methods.pyi diff --git a/typings/pandas/core/ops/missing.pyi b/pandas-stubs/core/ops/missing.pyi similarity index 100% rename from typings/pandas/core/ops/missing.pyi rename to pandas-stubs/core/ops/missing.pyi diff --git a/typings/pandas/core/ops/roperator.pyi b/pandas-stubs/core/ops/roperator.pyi similarity index 100% rename from typings/pandas/core/ops/roperator.pyi rename to pandas-stubs/core/ops/roperator.pyi diff --git a/typings/pandas/core/resample.pyi b/pandas-stubs/core/resample.pyi similarity index 100% rename from typings/pandas/core/resample.pyi rename to pandas-stubs/core/resample.pyi index 4ddeea77..0108cd20 100644 --- a/typings/pandas/core/resample.pyi +++ b/pandas-stubs/core/resample.pyi @@ -1,8 +1,8 @@ +from pandas._typing import FrameOrSeriesUnion from pandas.core.base import ShallowMixin as ShallowMixin from pandas.core.groupby.base import GroupByMixin as GroupByMixin from pandas.core.groupby.groupby import _GroupBy from pandas.core.groupby.grouper import Grouper as Grouper -from pandas._typing import FrameOrSeriesUnion class Resampler(_GroupBy, ShallowMixin): def __init__( diff --git a/typings/pandas/core/reshape/__init__.pyi b/pandas-stubs/core/reshape/__init__.pyi similarity index 100% rename from typings/pandas/core/reshape/__init__.pyi rename to pandas-stubs/core/reshape/__init__.pyi diff --git a/typings/pandas/core/reshape/api.pyi b/pandas-stubs/core/reshape/api.pyi similarity index 100% rename from typings/pandas/core/reshape/api.pyi rename to pandas-stubs/core/reshape/api.pyi diff --git a/typings/pandas/core/reshape/concat.pyi b/pandas-stubs/core/reshape/concat.pyi similarity index 91% rename from typings/pandas/core/reshape/concat.pyi rename to pandas-stubs/core/reshape/concat.pyi index 534aa84e..bbaecca8 100644 --- a/typings/pandas/core/reshape/concat.pyi +++ b/pandas-stubs/core/reshape/concat.pyi @@ -1,13 +1,6 @@ -from pandas._typing import DataFrame as DataFrame, Series as Series, Axis as Axis -from typing import ( - Hashable, - Iterable, - Mapping, - Union, - overload, - Literal, - TypeVar, -) +from typing import Hashable, Iterable, Literal, Mapping, TypeVar, Union, overload + +from pandas._typing import Axis as Axis, DataFrame as DataFrame, Series as Series HashableT = TypeVar("HashableT", bound=Hashable) diff --git a/typings/pandas/core/reshape/melt.pyi b/pandas-stubs/core/reshape/melt.pyi similarity index 99% rename from typings/pandas/core/reshape/melt.pyi rename to pandas-stubs/core/reshape/melt.pyi index 2b1eca90..480a1e66 100644 --- a/typings/pandas/core/reshape/melt.pyi +++ b/pandas-stubs/core/reshape/melt.pyi @@ -1,6 +1,7 @@ +from typing import List, Optional, Tuple, Union + import numpy as np from pandas.core.frame import DataFrame as DataFrame -from typing import List, Optional, Tuple, Union def melt( frame: DataFrame, diff --git a/typings/pandas/core/reshape/merge.pyi b/pandas-stubs/core/reshape/merge.pyi similarity index 98% rename from typings/pandas/core/reshape/merge.pyi rename to pandas-stubs/core/reshape/merge.pyi index 639c17c7..0cd72d6a 100644 --- a/typings/pandas/core/reshape/merge.pyi +++ b/pandas-stubs/core/reshape/merge.pyi @@ -1,7 +1,8 @@ -from pandas._libs.tslibs import Timedelta +from typing import List, Optional, Sequence, Union + from pandas import DataFrame as DataFrame, Series as Series +from pandas._libs.tslibs import Timedelta from pandas._typing import Label -from typing import Optional, List, Sequence, Union def merge( left: Union[DataFrame, Series], diff --git a/typings/pandas/core/reshape/pivot.pyi b/pandas-stubs/core/reshape/pivot.pyi similarity index 99% rename from typings/pandas/core/reshape/pivot.pyi rename to pandas-stubs/core/reshape/pivot.pyi index 50da48c5..ac5df3a2 100644 --- a/typings/pandas/core/reshape/pivot.pyi +++ b/pandas-stubs/core/reshape/pivot.pyi @@ -1,8 +1,9 @@ -from pandas.core.series import Series +from typing import Callable, Optional, Sequence, Union + +from pandas._typing import IndexLabel, Scalar from pandas.core.frame import DataFrame from pandas.core.groupby.grouper import Grouper -from pandas._typing import IndexLabel, Scalar -from typing import Callable, Optional, Sequence, Union +from pandas.core.series import Series def pivot_table( data: DataFrame, diff --git a/typings/pandas/core/reshape/util.pyi b/pandas-stubs/core/reshape/util.pyi similarity index 100% rename from typings/pandas/core/reshape/util.pyi rename to pandas-stubs/core/reshape/util.pyi diff --git a/typings/pandas/core/series.pyi b/pandas-stubs/core/series.pyi similarity index 99% rename from typings/pandas/core/series.pyi rename to pandas-stubs/core/series.pyi index 123b3387..2c27630f 100644 --- a/typings/pandas/core/series.pyi +++ b/pandas-stubs/core/series.pyi @@ -1,22 +1,26 @@ -import numpy as np -from datetime import time, date +from datetime import date, time +from typing import ( + Any, + Callable, + Dict, + Generic, + Hashable, + Iterable, + List, + Literal, + Mapping, + Optional, + Sequence, + Tuple, + Type, + Union, + overload, +) +import numpy as np from matplotlib.axes import Axes as PlotAxes, SubplotBase as SubplotBase -from .base import IndexOpsMixin -from .generic import NDFrame -from .indexes.multi import MultiIndex -from .indexing import _iLocIndexer, _LocIndexer -from .frame import DataFrame -from pandas.core.arrays.base import ExtensionArray -from pandas.core.groupby.generic import SeriesGroupBy -from pandas.core.indexes.base import Index -from pandas.core.indexes.datetimes import DatetimeIndex -from pandas.core.indexes.timedeltas import TimedeltaIndex -from pandas.core.resample import Resampler -from pandas.core.strings import StringMethods -from pandas.core.window.rolling import Rolling, Window -from pandas.core.window import ExponentialMovingWindow from pandas._typing import ( + S1 as S1, ArrayLike as ArrayLike, Axis as Axis, AxisType as AxisType, @@ -24,35 +28,32 @@ from pandas._typing import ( DtypeNp as DtypeNp, FilePathOrBuffer as FilePathOrBuffer, IgnoreRaise as IgnoreRaise, + Label as Label, Level as Level, ListLike as ListLike, MaskType as MaskType, Renamer as Renamer, - S1 as S1, Scalar as Scalar, SeriesAxisType as SeriesAxisType, - Timestamp as Timestamp, Timedelta as Timedelta, + Timestamp as Timestamp, num as num, - Label as Label, -) -from typing import ( - Any, - Callable, - Dict, - Generic, - Hashable, - Iterable, - List, - Literal, - Mapping, - Optional, - Sequence, - Tuple, - Type, - Union, - overload, ) +from pandas.core.arrays.base import ExtensionArray +from pandas.core.groupby.generic import SeriesGroupBy +from pandas.core.indexes.base import Index +from pandas.core.indexes.datetimes import DatetimeIndex +from pandas.core.indexes.timedeltas import TimedeltaIndex +from pandas.core.resample import Resampler +from pandas.core.strings import StringMethods +from pandas.core.window import ExponentialMovingWindow +from pandas.core.window.rolling import Rolling, Window + +from .base import IndexOpsMixin +from .frame import DataFrame +from .generic import NDFrame +from .indexes.multi import MultiIndex +from .indexing import _iLocIndexer, _LocIndexer _bool = bool _str = str diff --git a/typings/pandas/core/sorting.pyi b/pandas-stubs/core/sorting.pyi similarity index 100% rename from typings/pandas/core/sorting.pyi rename to pandas-stubs/core/sorting.pyi diff --git a/typings/pandas/core/strings.pyi b/pandas-stubs/core/strings.pyi similarity index 98% rename from typings/pandas/core/strings.pyi rename to pandas-stubs/core/strings.pyi index 32718ac8..b623d826 100644 --- a/typings/pandas/core/strings.pyi +++ b/pandas-stubs/core/strings.pyi @@ -1,6 +1,7 @@ +from typing import Generic, List, TypeVar + from pandas.core.base import NoNewAttributesMixin as NoNewAttributesMixin from pandas.core.series import Series -from typing import List, Generic, TypeVar def cat_core(list_of_columns: List, sep: str): ... def cat_safe(list_of_columns: List, sep: str): ... diff --git a/typings/pandas/core/tools/__init__.pyi b/pandas-stubs/core/tools/__init__.pyi similarity index 100% rename from typings/pandas/core/tools/__init__.pyi rename to pandas-stubs/core/tools/__init__.pyi diff --git a/typings/pandas/core/tools/datetimes.pyi b/pandas-stubs/core/tools/datetimes.pyi similarity index 100% rename from typings/pandas/core/tools/datetimes.pyi rename to pandas-stubs/core/tools/datetimes.pyi index 4b802baf..ba0954be 100644 --- a/typings/pandas/core/tools/datetimes.pyi +++ b/pandas-stubs/core/tools/datetimes.pyi @@ -1,21 +1,21 @@ from datetime import datetime as datetime -from numpy import datetime64 as datetime64 -import numpy as np +from typing import List, Optional, Tuple, TypedDict, Union, overload +import numpy as np +from numpy import datetime64 as datetime64 from pandas._typing import ( - ArrayLike as ArrayLike, - Index as Index, AnyArrayLike as AnyArrayLike, + ArrayLike as ArrayLike, DateTimeErrorChoices as DateTimeErrorChoices, ExtensionArray as ExtensionArray, + Index as Index, Timestamp as Timestamp, ) from pandas.core.dtypes.generic import ABCSeries as ABCSeries +from pandas.core.frame import DataFrame as DataFrame from pandas.core.generic import NDFrame as NDFrame from pandas.core.indexes.datetimes import DatetimeIndex as DatetimeIndex -from pandas.core.frame import DataFrame as DataFrame from pandas.core.series import Series as Series, TimestampSeries -from typing import List, Optional, Tuple, TypedDict, Union, overload ArrayConvertible = Union[List, Tuple, AnyArrayLike] Scalar = Union[int, float, str] diff --git a/typings/pandas/core/tools/numeric.pyi b/pandas-stubs/core/tools/numeric.pyi similarity index 100% rename from typings/pandas/core/tools/numeric.pyi rename to pandas-stubs/core/tools/numeric.pyi diff --git a/typings/pandas/core/tools/timedeltas.pyi b/pandas-stubs/core/tools/timedeltas.pyi similarity index 93% rename from typings/pandas/core/tools/timedeltas.pyi rename to pandas-stubs/core/tools/timedeltas.pyi index 78a3d3fd..41eeee06 100644 --- a/typings/pandas/core/tools/timedeltas.pyi +++ b/pandas-stubs/core/tools/timedeltas.pyi @@ -1,11 +1,12 @@ # def to_timedelta(arg, unit: str = ..., errors: str = ...): ... from datetime import timedelta from typing import Literal, Optional, Union, overload + from pandas._libs.tslibs import Timedelta from pandas._libs.tslibs.timedeltas import UnitChoices -from pandas._typing import DateTimeErrorChoices, ArrayLike, Index as Index -from pandas.core.series import Series as Series, TimedeltaSeries +from pandas._typing import ArrayLike, DateTimeErrorChoices, Index as Index from pandas.core.indexes.timedeltas import TimedeltaIndex +from pandas.core.series import Series as Series, TimedeltaSeries # Copied from pandas/_libs/tslibs/timedeltas.pyx diff --git a/typings/pandas/core/window/__init__.pyi b/pandas-stubs/core/window/__init__.pyi similarity index 100% rename from typings/pandas/core/window/__init__.pyi rename to pandas-stubs/core/window/__init__.pyi diff --git a/typings/pandas/core/window/common.pyi b/pandas-stubs/core/window/common.pyi similarity index 99% rename from typings/pandas/core/window/common.pyi rename to pandas-stubs/core/window/common.pyi index 24a17b26..e16fdd27 100644 --- a/typings/pandas/core/window/common.pyi +++ b/pandas-stubs/core/window/common.pyi @@ -1,6 +1,7 @@ -from pandas.core.groupby.base import GroupByMixin as GroupByMixin from typing import Callable, Optional +from pandas.core.groupby.base import GroupByMixin as GroupByMixin + class WindowGroupByMixin(GroupByMixin): def __init__(self, obj, *args, **kwargs) -> None: ... diff --git a/typings/pandas/core/window/ewm.pyi b/pandas-stubs/core/window/ewm.pyi similarity index 90% rename from typings/pandas/core/window/ewm.pyi rename to pandas-stubs/core/window/ewm.pyi index f21dfe75..57574655 100644 --- a/typings/pandas/core/window/ewm.pyi +++ b/pandas-stubs/core/window/ewm.pyi @@ -1,7 +1,7 @@ -from typing import Union, Optional, Callable -from pandas.core.window.rolling import _Rolling +from typing import Callable, Optional, Union -from pandas._typing import Scalar, Series, DataFrame +from pandas._typing import DataFrame, Scalar, Series +from pandas.core.window.rolling import _Rolling class ExponentialMovingWindow(_Rolling): obj = ... diff --git a/typings/pandas/core/window/expanding.pyi b/pandas-stubs/core/window/expanding.pyi similarity index 93% rename from typings/pandas/core/window/expanding.pyi rename to pandas-stubs/core/window/expanding.pyi index c823470a..ee4732a2 100644 --- a/typings/pandas/core/window/expanding.pyi +++ b/pandas-stubs/core/window/expanding.pyi @@ -1,4 +1,5 @@ -from typing import Callable, Any, Dict, Tuple, Optional +from typing import Any, Callable, Dict, Optional, Tuple + from pandas._typing import FrameOrSeriesUnion as FrameOrSeries from pandas.core.window.common import WindowGroupByMixin as WindowGroupByMixin from pandas.core.window.rolling import _Rolling_and_Expanding diff --git a/typings/pandas/core/window/indexers.pyi b/pandas-stubs/core/window/indexers.pyi similarity index 58% rename from typings/pandas/core/window/indexers.pyi rename to pandas-stubs/core/window/indexers.pyi index 86103a06..b8f0660b 100644 --- a/typings/pandas/core/window/indexers.pyi +++ b/pandas-stubs/core/window/indexers.pyi @@ -1,22 +1,40 @@ -import numpy as np from typing import Dict, Optional, Tuple, Type, Union +import numpy as np + get_window_bounds_doc: str class BaseIndexer: index_array = ... window_size = ... - def __init__(self, index_array: Optional[np.ndarray]=..., window_size: int=..., **kwargs) -> None: ... - def get_window_bounds(self, num_values: int=..., min_periods: Optional[int]=..., - center: Optional[bool]=..., closed: Optional[str]=...) -> Tuple[np.ndarray, np.ndarray]: ... + def __init__( + self, index_array: Optional[np.ndarray] = ..., window_size: int = ..., **kwargs + ) -> None: ... + def get_window_bounds( + self, + num_values: int = ..., + min_periods: Optional[int] = ..., + center: Optional[bool] = ..., + closed: Optional[str] = ..., + ) -> Tuple[np.ndarray, np.ndarray]: ... class FixedWindowIndexer(BaseIndexer): - def get_window_bounds(self, num_values: int=..., min_periods: Optional[int]=..., - center: Optional[bool]=..., closed: Optional[str]=...) -> Tuple[np.ndarray, np.ndarray]: ... + def get_window_bounds( + self, + num_values: int = ..., + min_periods: Optional[int] = ..., + center: Optional[bool] = ..., + closed: Optional[str] = ..., + ) -> Tuple[np.ndarray, np.ndarray]: ... class VariableWindowIndexer(BaseIndexer): - def get_window_bounds(self, num_values: int=..., min_periods: Optional[int]=..., - center: Optional[bool]=..., closed: Optional[str]=...) -> Tuple[np.ndarray, np.ndarray]: ... + def get_window_bounds( + self, + num_values: int = ..., + min_periods: Optional[int] = ..., + center: Optional[bool] = ..., + closed: Optional[str] = ..., + ) -> Tuple[np.ndarray, np.ndarray]: ... class VariableOffsetWindowIndexer(BaseIndexer): def __init__( @@ -27,7 +45,6 @@ class VariableOffsetWindowIndexer(BaseIndexer): offset=..., **kwargs, ) -> None: ... - def get_window_bounds( self, num_values: int = ..., @@ -37,9 +54,13 @@ class VariableOffsetWindowIndexer(BaseIndexer): ) -> Tuple[np.ndarray, np.ndarray]: ... class ExpandingIndexer(BaseIndexer): - def get_window_bounds(self, num_values: int=..., min_periods: Optional[int]=..., - center: Optional[bool]=..., closed: Optional[str]=...) -> Tuple[np.ndarray, np.ndarray]: ... - + def get_window_bounds( + self, + num_values: int = ..., + min_periods: Optional[int] = ..., + center: Optional[bool] = ..., + closed: Optional[str] = ..., + ) -> Tuple[np.ndarray, np.ndarray]: ... class FixedForwardWindowIndexer(BaseIndexer): def get_window_bounds( @@ -59,11 +80,10 @@ class GroupbyRollingIndexer(BaseIndexer): rolling_indexer: Union[Type[FixedWindowIndexer], Type[VariableWindowIndexer]], **kwargs, ) -> None: ... - def get_window_bounds( self, num_values: int = ..., min_periods: Optional[int] = ..., center: Optional[bool] = ..., closed: Optional[str] = ..., - ) -> Tuple[np.ndarray, np.ndarray]: ... \ No newline at end of file + ) -> Tuple[np.ndarray, np.ndarray]: ... diff --git a/typings/pandas/core/window/numba_.pyi b/pandas-stubs/core/window/numba_.pyi similarity index 99% rename from typings/pandas/core/window/numba_.pyi rename to pandas-stubs/core/window/numba_.pyi index c4e8c17f..f02b02c9 100644 --- a/typings/pandas/core/window/numba_.pyi +++ b/pandas-stubs/core/window/numba_.pyi @@ -1,6 +1,7 @@ -from pandas._typing import Scalar as Scalar from typing import Any, Callable, Dict, Optional, Tuple +from pandas._typing import Scalar as Scalar + def make_rolling_apply( func: Callable[..., Scalar], args: Tuple, diff --git a/typings/pandas/core/window/rolling.pyi b/pandas-stubs/core/window/rolling.pyi similarity index 99% rename from typings/pandas/core/window/rolling.pyi rename to pandas-stubs/core/window/rolling.pyi index fdf26ba4..5e4a8782 100644 --- a/typings/pandas/core/window/rolling.pyi +++ b/pandas-stubs/core/window/rolling.pyi @@ -1,3 +1,5 @@ +from typing import Callable, Dict, Mapping, Optional, Sequence, Set, Tuple, Union + import numpy as np from pandas._typing import ( Axis as Axis, @@ -11,7 +13,6 @@ from pandas.core.base import ( ) from pandas.core.indexes.api import Index as Index from pandas.core.window.common import WindowGroupByMixin as WindowGroupByMixin -from typing import Callable, Dict, Mapping, Optional, Sequence, Set, Tuple, Union class _Window(PandasObject, ShallowMixin, SelectionMixin): exclusions: Set[str] = ... diff --git a/typings/pandas/io/__init__.pyi b/pandas-stubs/io/__init__.pyi similarity index 100% rename from typings/pandas/io/__init__.pyi rename to pandas-stubs/io/__init__.pyi diff --git a/typings/pandas/io/api.pyi b/pandas-stubs/io/api.pyi similarity index 100% rename from typings/pandas/io/api.pyi rename to pandas-stubs/io/api.pyi diff --git a/typings/pandas/io/excel/_base.pyi b/pandas-stubs/io/excel/_base.pyi similarity index 99% rename from typings/pandas/io/excel/_base.pyi rename to pandas-stubs/io/excel/_base.pyi index 1914b4d4..99071023 100644 --- a/typings/pandas/io/excel/_base.pyi +++ b/pandas-stubs/io/excel/_base.pyi @@ -1,6 +1,4 @@ import abc -from pandas._typing import Dtype, Scalar -from pandas.core.frame import DataFrame as DataFrame from typing import ( Any, Callable, @@ -13,6 +11,9 @@ from typing import ( overload, ) +from pandas._typing import Dtype, Scalar +from pandas.core.frame import DataFrame as DataFrame + @overload def read_excel( filepath: str, diff --git a/typings/pandas/io/gcs.pyi b/pandas-stubs/io/gcs.pyi similarity index 100% rename from typings/pandas/io/gcs.pyi rename to pandas-stubs/io/gcs.pyi diff --git a/typings/pandas/io/json/__init__.pyi b/pandas-stubs/io/json/__init__.pyi similarity index 100% rename from typings/pandas/io/json/__init__.pyi rename to pandas-stubs/io/json/__init__.pyi diff --git a/typings/pandas/io/json/_json.pyi b/pandas-stubs/io/json/_json.pyi similarity index 98% rename from typings/pandas/io/json/_json.pyi rename to pandas-stubs/io/json/_json.pyi index ffd4871c..b9201ba1 100644 --- a/typings/pandas/io/json/_json.pyi +++ b/pandas-stubs/io/json/_json.pyi @@ -1,10 +1,11 @@ -from collections import abc import sys -from pandas.core.series import Series as Series -from pandas.core.frame import DataFrame -from pandas._typing import JSONSerializable as JSONSerializable, FilePathOrBuffer +from collections import abc from typing import Any, Callable, Optional, Union, overload +from pandas._typing import FilePathOrBuffer, JSONSerializable as JSONSerializable +from pandas.core.frame import DataFrame +from pandas.core.series import Series as Series + if sys.version_info >= (3, 8): from typing import Literal else: diff --git a/typings/pandas/io/json/_normalize.pyi b/pandas-stubs/io/json/_normalize.pyi similarity index 99% rename from typings/pandas/io/json/_normalize.pyi rename to pandas-stubs/io/json/_normalize.pyi index 09897735..06b171d3 100644 --- a/typings/pandas/io/json/_normalize.pyi +++ b/pandas-stubs/io/json/_normalize.pyi @@ -1,7 +1,8 @@ -from pandas.core.frame import DataFrame as DataFrame -from pandas._typing import Scalar as Scalar from typing import Any, Dict, List, Optional, Union +from pandas._typing import Scalar as Scalar +from pandas.core.frame import DataFrame as DataFrame + def convert_to_line_delimits(s: Any): ... def nested_to_record( ds: Any, diff --git a/typings/pandas/io/json/_table_schema.pyi b/pandas-stubs/io/json/_table_schema.pyi similarity index 100% rename from typings/pandas/io/json/_table_schema.pyi rename to pandas-stubs/io/json/_table_schema.pyi diff --git a/typings/pandas/io/parsers.pyi b/pandas-stubs/io/parsers.pyi similarity index 99% rename from typings/pandas/io/parsers.pyi rename to pandas-stubs/io/parsers.pyi index 7de39aa9..fd809eef 100644 --- a/typings/pandas/io/parsers.pyi +++ b/pandas-stubs/io/parsers.pyi @@ -1,17 +1,7 @@ from __future__ import annotations -from collections import abc + import sys -from pandas._typing import ( - FilePath as FilePath, - FilePathOrBuffer as FilePathOrBuffer, - Scalar as Scalar, - ReadBuffer as ReadBuffer, - AnyStr_cov as AnyStr_cov, - DtypeArg as DtypeArg, - CompressionOptions as CompressionOptions, - StorageOptions as StorageOptions, -) -from pandas.core.frame import DataFrame as DataFrame +from collections import abc from typing import ( Any, Callable, @@ -19,12 +9,24 @@ from typing import ( List, Mapping, Optional, + Protocol, Sequence, Union, overload, - Protocol, ) +from pandas._typing import ( + AnyStr_cov as AnyStr_cov, + CompressionOptions as CompressionOptions, + DtypeArg as DtypeArg, + FilePath as FilePath, + FilePathOrBuffer as FilePathOrBuffer, + ReadBuffer as ReadBuffer, + Scalar as Scalar, + StorageOptions as StorageOptions, +) +from pandas.core.frame import DataFrame as DataFrame + if sys.version_info >= (3, 8): from typing import Literal else: diff --git a/typings/pandas/io/s3.pyi b/pandas-stubs/io/s3.pyi similarity index 90% rename from typings/pandas/io/s3.pyi rename to pandas-stubs/io/s3.pyi index dace921a..a5f024ca 100644 --- a/typings/pandas/io/s3.pyi +++ b/pandas-stubs/io/s3.pyi @@ -1,5 +1,6 @@ +from typing import IO, Any, Optional, Tuple + from pandas._typing import FilePathOrBuffer as FilePathOrBuffer -from typing import Any, IO, Optional, Tuple s3fs = ... diff --git a/typings/pandas/io/sas/sas_constants.pyi b/pandas-stubs/io/sas/sas_constants.pyi similarity index 100% rename from typings/pandas/io/sas/sas_constants.pyi rename to pandas-stubs/io/sas/sas_constants.pyi diff --git a/typings/pandas/io/stata.pyi b/pandas-stubs/io/stata.pyi similarity index 99% rename from typings/pandas/io/stata.pyi rename to pandas-stubs/io/stata.pyi index 8bbb4866..c22f6bb5 100644 --- a/typings/pandas/io/stata.pyi +++ b/pandas-stubs/io/stata.pyi @@ -1,8 +1,9 @@ import datetime from collections import abc +from typing import Dict, Hashable, List, Optional, Sequence + from pandas._typing import FilePathOrBuffer as FilePathOrBuffer from pandas.core.frame import DataFrame as DataFrame -from typing import Dict, Hashable, List, Optional, Sequence def read_stata( path: FilePathOrBuffer, diff --git a/typings/pandas/plotting/__init__.pyi b/pandas-stubs/plotting/__init__.pyi similarity index 100% rename from typings/pandas/plotting/__init__.pyi rename to pandas-stubs/plotting/__init__.pyi diff --git a/typings/pandas/plotting/_core.pyi b/pandas-stubs/plotting/_core.pyi similarity index 97% rename from typings/pandas/plotting/_core.pyi rename to pandas-stubs/plotting/_core.pyi index c8085366..39f33640 100644 --- a/typings/pandas/plotting/_core.pyi +++ b/pandas-stubs/plotting/_core.pyi @@ -1,7 +1,8 @@ +from typing import List, Optional, Tuple, Union + from matplotlib.axes import Axes as PlotAxes from pandas.core.base import PandasObject as PandasObject from pandas.core.frame import DataFrame -from typing import Optional, List, Tuple, Union def hist_series( self, diff --git a/typings/pandas/plotting/_matplotlib/__init__.pyi b/pandas-stubs/plotting/_matplotlib/__init__.pyi similarity index 100% rename from typings/pandas/plotting/_matplotlib/__init__.pyi rename to pandas-stubs/plotting/_matplotlib/__init__.pyi diff --git a/typings/pandas/plotting/_matplotlib/boxplot.pyi b/pandas-stubs/plotting/_matplotlib/boxplot.pyi similarity index 99% rename from typings/pandas/plotting/_matplotlib/boxplot.pyi rename to pandas-stubs/plotting/_matplotlib/boxplot.pyi index 10a296d2..5a98fc5d 100644 --- a/typings/pandas/plotting/_matplotlib/boxplot.pyi +++ b/pandas-stubs/plotting/_matplotlib/boxplot.pyi @@ -1,6 +1,7 @@ +from typing import NamedTuple + from matplotlib.axes import Axes as PlotAxes from pandas.plotting._matplotlib.core import LinePlot as LinePlot -from typing import NamedTuple class BoxPlot(LinePlot): class BoxPlot(NamedTuple): diff --git a/typings/pandas/plotting/_matplotlib/compat.pyi b/pandas-stubs/plotting/_matplotlib/compat.pyi similarity index 100% rename from typings/pandas/plotting/_matplotlib/compat.pyi rename to pandas-stubs/plotting/_matplotlib/compat.pyi diff --git a/typings/pandas/plotting/_matplotlib/converter.pyi b/pandas-stubs/plotting/_matplotlib/converter.pyi similarity index 100% rename from typings/pandas/plotting/_matplotlib/converter.pyi rename to pandas-stubs/plotting/_matplotlib/converter.pyi diff --git a/typings/pandas/plotting/_matplotlib/core.pyi b/pandas-stubs/plotting/_matplotlib/core.pyi similarity index 100% rename from typings/pandas/plotting/_matplotlib/core.pyi rename to pandas-stubs/plotting/_matplotlib/core.pyi diff --git a/typings/pandas/plotting/_matplotlib/hist.pyi b/pandas-stubs/plotting/_matplotlib/hist.pyi similarity index 100% rename from typings/pandas/plotting/_matplotlib/hist.pyi rename to pandas-stubs/plotting/_matplotlib/hist.pyi diff --git a/typings/pandas/plotting/_matplotlib/misc.pyi b/pandas-stubs/plotting/_matplotlib/misc.pyi similarity index 100% rename from typings/pandas/plotting/_matplotlib/misc.pyi rename to pandas-stubs/plotting/_matplotlib/misc.pyi diff --git a/typings/pandas/plotting/_matplotlib/style.pyi b/pandas-stubs/plotting/_matplotlib/style.pyi similarity index 100% rename from typings/pandas/plotting/_matplotlib/style.pyi rename to pandas-stubs/plotting/_matplotlib/style.pyi diff --git a/typings/pandas/plotting/_matplotlib/timeseries.pyi b/pandas-stubs/plotting/_matplotlib/timeseries.pyi similarity index 100% rename from typings/pandas/plotting/_matplotlib/timeseries.pyi rename to pandas-stubs/plotting/_matplotlib/timeseries.pyi diff --git a/typings/pandas/plotting/_matplotlib/tools.pyi b/pandas-stubs/plotting/_matplotlib/tools.pyi similarity index 100% rename from typings/pandas/plotting/_matplotlib/tools.pyi rename to pandas-stubs/plotting/_matplotlib/tools.pyi diff --git a/typings/pandas/plotting/_misc.pyi b/pandas-stubs/plotting/_misc.pyi similarity index 99% rename from typings/pandas/plotting/_misc.pyi rename to pandas-stubs/plotting/_misc.pyi index 8b9ecb6e..b90ea9d0 100644 --- a/typings/pandas/plotting/_misc.pyi +++ b/pandas-stubs/plotting/_misc.pyi @@ -1,9 +1,10 @@ +from typing import Any, Dict, List, Optional, Sequence, Tuple, Union + +import numpy as np from matplotlib.axes import Axes as PlotAxes from matplotlib.figure import Figure -import numpy as np -from pandas.core.series import Series from pandas.core.frame import DataFrame -from typing import Any, Dict, List, Optional, Sequence, Tuple, Union +from pandas.core.series import Series def table( ax, diff --git a/typings/pandas/testing.pyi b/pandas-stubs/testing.pyi similarity index 100% rename from typings/pandas/testing.pyi rename to pandas-stubs/testing.pyi diff --git a/typings/pandas/tseries/__init__.pyi b/pandas-stubs/tseries/__init__.pyi similarity index 100% rename from typings/pandas/tseries/__init__.pyi rename to pandas-stubs/tseries/__init__.pyi diff --git a/typings/pandas/tseries/api.pyi b/pandas-stubs/tseries/api.pyi similarity index 100% rename from typings/pandas/tseries/api.pyi rename to pandas-stubs/tseries/api.pyi diff --git a/typings/pandas/tseries/frequencies.pyi b/pandas-stubs/tseries/frequencies.pyi similarity index 99% rename from typings/pandas/tseries/frequencies.pyi rename to pandas-stubs/tseries/frequencies.pyi index 5d4d875e..38d787c8 100644 --- a/typings/pandas/tseries/frequencies.pyi +++ b/pandas-stubs/tseries/frequencies.pyi @@ -1,6 +1,7 @@ -from pandas.tseries.offsets import DateOffset as DateOffset from typing import Optional +from pandas.tseries.offsets import DateOffset as DateOffset + def get_period_alias(offset_str: str) -> Optional[str]: ... def to_offset(freq) -> Optional[DateOffset]: ... def get_offset(name: str) -> DateOffset: ... diff --git a/typings/pandas/tseries/offsets.pyi b/pandas-stubs/tseries/offsets.pyi similarity index 100% rename from typings/pandas/tseries/offsets.pyi rename to pandas-stubs/tseries/offsets.pyi diff --git a/pandas-stubs/util/__init__.pyi b/pandas-stubs/util/__init__.pyi new file mode 100644 index 00000000..5e30f6a2 --- /dev/null +++ b/pandas-stubs/util/__init__.pyi @@ -0,0 +1,18 @@ +from pandas import compat as compat +from pandas.core.util.hashing import ( + hash_array as hash_array, + hash_pandas_object as hash_pandas_object, +) + +from ._decorators import ( + Appender as Appender, + Substitution as Substitution, + cache_readonly as cache_readonly, +) + +def __getattr__(name): ... + +class _testing: + def __getattr__(self, item): ... + +testing = ... diff --git a/pandas-stubs/util/_decorators.pyi b/pandas-stubs/util/_decorators.pyi new file mode 100644 index 00000000..a38681ca --- /dev/null +++ b/pandas-stubs/util/_decorators.pyi @@ -0,0 +1,41 @@ +from typing import Any, Callable, List, Mapping, Optional, Tuple, Type, TypeVar, Union + +from pandas._libs.properties import cache_readonly as cache_readonly + +FuncType = Callable[..., Any] +F = TypeVar("F", bound=FuncType) + +def deprecate( + name: str, + alternative: Callable[..., Any], + version: str, + alt_name: Optional[str] = ..., + klass: Optional[Type[Warning]] = ..., + stacklevel: int = ..., + msg: Optional[str] = ..., +) -> Callable[..., Any]: ... +def deprecate_kwarg( + old_arg_name: str, + new_arg_name: Optional[str], + mapping: Optional[Union[Mapping[Any, Any], Callable[[Any], Any]]] = ..., + stacklevel: int = ..., +) -> Callable[..., Any]: ... +def rewrite_axis_style_signature( + name: str, extra_params: List[Tuple[str, Any]] +) -> Callable[..., Any]: ... + +class Substitution: + params = ... + def __init__(self, *args, **kwargs) -> None: ... + def __call__(self, func: F) -> F: ... + def update(self, *args, **kwargs) -> None: ... + +class Appender: + addendum: Optional[str] + join = ... + def __init__( + self, addendum: Optional[str], join: str = ..., indents: int = ... + ) -> None: ... + def __call__(self, func: F) -> F: ... + +def indent(text: Optional[str], indents: int = ...) -> str: ... diff --git a/typings/pandas/util/_depr_module.pyi b/pandas-stubs/util/_depr_module.pyi similarity index 58% rename from typings/pandas/util/_depr_module.pyi rename to pandas-stubs/util/_depr_module.pyi index 620871e5..c11f9fb1 100644 --- a/typings/pandas/util/_depr_module.pyi +++ b/pandas-stubs/util/_depr_module.pyi @@ -6,6 +6,6 @@ class _DeprecatedModule: removals = ... moved = ... self_dir = ... - def __init__(self, deprmod, deprmodto = ..., removals = ..., moved = ...) -> None: ... + def __init__(self, deprmod, deprmodto=..., removals=..., moved=...) -> None: ... def __dir__(self) -> Iterable[str]: ... - def __getattr__(self, name: str) : ... + def __getattr__(self, name: str): ... diff --git a/pandas-stubs/util/_doctools.pyi b/pandas-stubs/util/_doctools.pyi new file mode 100644 index 00000000..3d455cb4 --- /dev/null +++ b/pandas-stubs/util/_doctools.pyi @@ -0,0 +1,8 @@ +class TablePlotter: + cell_width = ... + cell_height = ... + font_size = ... + def __init__( + self, cell_width: float = ..., cell_height: float = ..., font_size: float = ... + ) -> None: ... + def plot(self, left, right, labels=..., vertical: bool = ...): ... diff --git a/pandas-stubs/util/_exceptions.pyi b/pandas-stubs/util/_exceptions.pyi new file mode 100644 index 00000000..1439a4c5 --- /dev/null +++ b/pandas-stubs/util/_exceptions.pyi @@ -0,0 +1 @@ +def rewrite_exception(old_name: str, new_name: str): ... diff --git a/typings/pandas/util/_print_versions.pyi b/pandas-stubs/util/_print_versions.pyi similarity index 62% rename from typings/pandas/util/_print_versions.pyi rename to pandas-stubs/util/_print_versions.pyi index c1e51d6d..9dacfd0d 100644 --- a/typings/pandas/util/_print_versions.pyi +++ b/pandas-stubs/util/_print_versions.pyi @@ -1,4 +1,4 @@ -#from pandas.compat._optional import VERSIONS as VERSIONS, import_optional_dependency as import_optional_dependency +# from pandas.compat._optional import VERSIONS as VERSIONS, import_optional_dependency as import_optional_dependency from typing import List, Optional, Tuple, Union def get_sys_info() -> List[Tuple[str, Optional[Union[str, int]]]]: ... diff --git a/typings/pandas/util/_test_decorators.pyi b/pandas-stubs/util/_test_decorators.pyi similarity index 64% rename from typings/pandas/util/_test_decorators.pyi rename to pandas-stubs/util/_test_decorators.pyi index 6740fd6d..48ba3615 100644 --- a/typings/pandas/util/_test_decorators.pyi +++ b/pandas-stubs/util/_test_decorators.pyi @@ -1,12 +1,12 @@ from typing import Callable, Optional -def safe_import(mod_name: str, min_version: Optional[str]=...) : ... +def safe_import(mod_name: str, min_version: Optional[str] = ...): ... tables = ... xfail_non_writeable = ... def skip_if_installed(package: str) -> Callable: ... -def skip_if_no(package: str, min_version: Optional[str]=...) -> Callable: ... +def skip_if_no(package: str, min_version: Optional[str] = ...) -> Callable: ... skip_if_no_mpl = ... skip_if_mpl = ... @@ -18,7 +18,9 @@ skip_if_not_us_locale = ... skip_if_no_scipy = ... skip_if_no_ne = ... -def skip_if_np_lt(ver_str: str, reason: Optional[str]=..., *args, **kwds) -> Callable: ... +def skip_if_np_lt( + ver_str: str, reason: Optional[str] = ..., *args, **kwds +) -> Callable: ... def parametrize_fixture_doc(*args): ... def check_file_leaks(func) -> Callable: ... def async_mark(): ... diff --git a/pandas-stubs/util/_tester.pyi b/pandas-stubs/util/_tester.pyi new file mode 100644 index 00000000..6c73287c --- /dev/null +++ b/pandas-stubs/util/_tester.pyi @@ -0,0 +1 @@ +def test(extra_args=...) -> None: ... diff --git a/typings/pandas/util/_validators.pyi b/pandas-stubs/util/_validators.pyi similarity index 82% rename from typings/pandas/util/_validators.pyi rename to pandas-stubs/util/_validators.pyi index 8a2f5110..91884a1c 100644 --- a/typings/pandas/util/_validators.pyi +++ b/pandas-stubs/util/_validators.pyi @@ -1,9 +1,12 @@ -import numpy as np from typing import Iterable, Union +import numpy as np + def validate_args(fname, args, max_fname_arg_count, compat_args) -> None: ... def validate_kwargs(fname, kwargs, compat_args) -> None: ... -def validate_args_and_kwargs(fname, args, kwargs, max_fname_arg_count, compat_args) -> None: ... +def validate_args_and_kwargs( + fname, args, kwargs, max_fname_arg_count, compat_args +) -> None: ... def validate_bool_kwarg(value, arg_name): ... def validate_axis_style_args(data, args, kwargs, arg_name, method_name): ... def validate_fillna_kwargs(value, method, validate_scalar_dict_value: bool = ...): ... diff --git a/pyproject.toml b/pyproject.toml index fdb5f50b..80fe7e35 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,32 @@ +[tool.poetry] +name = "pandas-stubs" +version = "0.0.1" +description = "Stubs for pandas" +authors = ["Breno Fernandes "] +packages = [ + { "include" = "pandas-stubs"} +] + +[tool.poetry.dependencies] +python = ">=3.8,<4.0" + +[tool.poetry.dev-dependencies] +pandas = ">=1.4.2" +mypy = ">=0.960" +typing-extensions = ">=4.2.0" +matplotlib = ">=3.3.2" +pytest = ">=7.1.2" +pyright = ">=1.1.251" +black = ">=22.3.0" +isort = ">=5.10.1" + +[build-system] +requires = ["poetry-core>=1.0.0"] +build-backend = "poetry.core.masonry.api" + +[tool.poetry.scripts] +all_tests = "scripts.tests:test_all" + [tool.black] line_length = 88 target_version = ["py39"] @@ -41,7 +70,7 @@ extra_standard_library = [ [tool.mypy] # Import discovery -mypy_path = "typings" +mypy_path = "." namespace_packages = false explicit_package_bases = false ignore_missing_imports = true @@ -86,3 +115,9 @@ strict_equality = true show_error_context = false show_column_numbers = false show_error_codes = true + +[tool.pyright] +typeCheckingMode = "basic" +stubPath = "." +include = [ "tests", "pandas-stubs" ] +useLibraryCodeForTypes = true diff --git a/pyrightdistconfig.json b/pyrightdistconfig.json deleted file mode 100644 index d09ec947..00000000 --- a/pyrightdistconfig.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "typeCheckingMode": "basic", - "include": ["tests"] -} diff --git a/pyrighttestconfig.json b/pyrighttestconfig.json deleted file mode 100644 index dc989335..00000000 --- a/pyrighttestconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "typeCheckingMode": "basic", - "include": [ "tests", "typings/pandas" ], - "reportMissingModuleSource": false, - "reportUnusedVariable": false, - "useLibraryCodeForTypes": true, - "reportUnknownArgumentType": true -} diff --git a/runtests.bat b/runtests.bat deleted file mode 100644 index a8221cfc..00000000 --- a/runtests.bat +++ /dev/null @@ -1,5 +0,0 @@ -echo on -pytest tests > pytest.out -mypy tests typings/pandas > mypytests.out -pyright -p pyrighttestconfig.json > pandastests.out - diff --git a/runtests.sh b/runtests.sh deleted file mode 100644 index 3c3cad9a..00000000 --- a/runtests.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -pytest tests > pytest.out -mypy tests typings/pandas > mypytests.out -pyright -p pyrighttestconfig.json > pandastests.out - diff --git a/tests/pandas/__init__.py b/scripts/__init__.py similarity index 100% rename from tests/pandas/__init__.py rename to scripts/__init__.py diff --git a/scripts/tests.py b/scripts/tests.py new file mode 100644 index 00000000..4547466b --- /dev/null +++ b/scripts/tests.py @@ -0,0 +1,13 @@ +import subprocess + + +def test_all(): + + cmd = ["mypy", "pandas-stubs", "tests"] + subprocess.run(cmd) + + cmd = ["pytest"] + subprocess.run(cmd) + + cmd = ["pyright"] + subprocess.run(cmd) diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 46a07041..00000000 --- a/setup.cfg +++ /dev/null @@ -1,43 +0,0 @@ -[metadata] -name = pandas-stubs -description = Type annotations for pandas -long_description = file: README.md -long_description_content_type = text/markdown -url = https://pandas.pydata.org -author = The Pandas Development Team -author_email = pandas-dev@python.org -license = BSD-3-Clause -license_file = LICENSE -platforms = any -classifiers = - Development Status :: 5 - Production/Stable - Environment :: Console - Intended Audience :: Science/Research - License :: OSI Approved :: BSD License - Operating System :: OS Independent - Programming Language :: Python - Programming Language :: Python :: 3 - Programming Language :: Python :: 3 :: Only - Programming Language :: Python :: 3.8 - Programming Language :: Python :: 3.9 - Programming Language :: Python :: 3.10 - Topic :: Scientific/Engineering -project_urls = - Bug Tracker = https://github.com/pandas-dev/pandas-stubs/issues - Documentation = https://pandas.pydata.org/pandas-docs/stable - Source Code = https://github.com/pandas-dev/pandas-stubs - -[options] -install_requires = - numpy>=1.22.3 - typing_extensions>=4.2 -python_requires = >=3.8 - -[bumpversion] -current_version = 1.4.2.220604 -parse = (?P\d+)\.(?P\d+)\.(?P\d+)\.(?P\d+) -serialize = - {major}.{minor}.{patch}.{release} -message = [skip ci] Bump pandas-stubs version: {current_version} -> {new_version} - -[bumpversion:file:setup.py] diff --git a/setup.py b/setup.py deleted file mode 100644 index 1ba62ce1..00000000 --- a/setup.py +++ /dev/null @@ -1,45 +0,0 @@ -""" -Setup for Pandas type annotations. -For the sake of convenience the package installation -will coexist with Pandas installation. -If this is a problem - download the source -and add it to PYTHONPATH manually. -""" - -from setuptools import setup, find_packages -from setuptools.command.build_py import build_py -from typing import Generator -import os, shutil - -version = "1.4.2.220604" - - -# find_packages might not work with stub files -src_path = "typings" - - -class BuildPyCommand(build_py): - """Custom build command.""" - - def run(self): - shutil.rmtree("src.tmp", ignore_errors=True) - os.mkdir("src.tmp") - shutil.copytree("typings/pandas", "src.tmp/pandas-stubs") - build_py.run(self) - - -def list_packages(source_path: str = src_path) -> Generator: - for root, _, _ in os.walk(os.path.join(source_path, "pandas")): - yield ".".join(os.path.relpath(root, source_path).split(os.path.sep)).replace( - "pandas", "pandas-stubs" - ) - - -setup( - cmdclass={"build_py": BuildPyCommand}, - package_dir={"": "src.tmp"}, - version=version, - packages=list(list_packages()), - package_data={"pandas-stubs": ["py.typed", "*.pyi", "**/*.pyi"]}, - install_requires=['typing_extensions>=4.2;python_version>="3.8"'], -) diff --git a/tests/pandas/README.md b/tests/pandas/README.md deleted file mode 100644 index 2eb269e8..00000000 --- a/tests/pandas/README.md +++ /dev/null @@ -1,3 +0,0 @@ -These tests originally came from https://github.com/VirtusLab/pandas-stubs. - - diff --git a/tests/requirements.txt b/tests/requirements.txt deleted file mode 100644 index 619c5d0e..00000000 --- a/tests/requirements.txt +++ /dev/null @@ -1,10 +0,0 @@ -pandas==1.4.2 -pyright -pytest -mypy==0.960 -typing_extensions==4.2.0 -matplotlib>=3.3.2 -numpy>=1.22.3 -setuptools>=62.3.2 -build>=0.8.0 -wheel>=0.37.0 diff --git a/tests/run_tests.sh b/tests/run_tests.sh deleted file mode 100644 index 690721b5..00000000 --- a/tests/run_tests.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -python -m pip install --upgrade pyright -python -m pip install -r requirements.txt -cp -R ../partial/ ../typings -pyright --lib --pythonversion 3.9 -p ../pyrighttestconfig.json . - - - diff --git a/tests/pandas/test_frame.py b/tests/test_frame.py similarity index 99% rename from tests/pandas/test_frame.py rename to tests/test_frame.py index 38bc735c..918443f0 100644 --- a/tests/pandas/test_frame.py +++ b/tests/test_frame.py @@ -1,16 +1,15 @@ # flake8: noqa: F841 -from datetime import date, datetime import io import tempfile +from datetime import date, datetime from pathlib import Path -from typing import List, Tuple, Iterable, Any, Dict, Hashable +from typing import Any, Dict, Hashable, Iterable, List, Tuple from typing_extensions import assert_type -import pandas as pd -from pandas.io.parsers import TextFileReader import numpy as np - +import pandas as pd import pytest +from pandas.io.parsers import TextFileReader def test_types_init() -> None: diff --git a/tests/pandas/test_indexes.py b/tests/test_indexes.py similarity index 100% rename from tests/pandas/test_indexes.py rename to tests/test_indexes.py index b31faafb..5266d143 100644 --- a/tests/pandas/test_indexes.py +++ b/tests/test_indexes.py @@ -1,7 +1,7 @@ from typing_extensions import assert_type + import numpy as np import pandas as pd - from numpy import typing as npt diff --git a/tests/pandas/test_interval.py b/tests/test_interval.py similarity index 99% rename from tests/pandas/test_interval.py rename to tests/test_interval.py index 7860ef7c..43a66099 100644 --- a/tests/pandas/test_interval.py +++ b/tests/test_interval.py @@ -1,6 +1,7 @@ # flake8: noqa: F841 from typing import TYPE_CHECKING from typing_extensions import assert_type + import pandas as pd diff --git a/tests/pandas/test_merge.py b/tests/test_merge.py similarity index 100% rename from tests/pandas/test_merge.py rename to tests/test_merge.py diff --git a/tests/pandas/test_pandas.py b/tests/test_pandas.py similarity index 99% rename from tests/pandas/test_pandas.py rename to tests/test_pandas.py index bd823ac9..03479364 100644 --- a/tests/pandas/test_pandas.py +++ b/tests/test_pandas.py @@ -3,10 +3,9 @@ from typing import Any, Dict, List, Union from typing_extensions import assert_type -from pandas.io.parsers import TextFileReader - import numpy as np import pandas as pd +from pandas.io.parsers import TextFileReader def test_types_to_datetime() -> None: diff --git a/tests/pandas/test_series.py b/tests/test_series.py similarity index 99% rename from tests/pandas/test_series.py rename to tests/test_series.py index 52c3e2da..e992f858 100644 --- a/tests/pandas/test_series.py +++ b/tests/test_series.py @@ -1,18 +1,15 @@ import tempfile from pathlib import Path -from typing import List, Union, TYPE_CHECKING +from typing import TYPE_CHECKING, List, Union from typing_extensions import assert_type +import numpy as np +import pandas as pd +import pytest from pandas._typing import Scalar from pandas.api.extensions import ExtensionArray - -import pandas as pd -import numpy as np - from pandas.core.window import ExponentialMovingWindow -import pytest - def test_types_init() -> None: pd.Series(1) diff --git a/tests/pandas/test_testing.py b/tests/test_testing.py similarity index 99% rename from tests/pandas/test_testing.py rename to tests/test_testing.py index 0f19ab1b..dfa853ab 100644 --- a/tests/pandas/test_testing.py +++ b/tests/test_testing.py @@ -1,6 +1,5 @@ -from pandas.testing import assert_series_equal - import pandas as pd +from pandas.testing import assert_series_equal def test_types_assert_series_equal() -> None: diff --git a/tests/pandas/test_timefuncs.py b/tests/test_timefuncs.py similarity index 99% rename from tests/pandas/test_timefuncs.py rename to tests/test_timefuncs.py index a37985a6..1cf9615a 100644 --- a/tests/pandas/test_timefuncs.py +++ b/tests/test_timefuncs.py @@ -1,13 +1,12 @@ # flake8: noqa: F841 -from typing import TYPE_CHECKING -import pandas as pd import datetime as dt +from typing import TYPE_CHECKING from typing_extensions import assert_type +import pandas as pd from pandas.testing import assert_series_equal - if TYPE_CHECKING: from pandas.core.series import TimedeltaSeries, TimestampSeries diff --git a/typings/pandas/api/__init__.pyi b/typings/pandas/api/__init__.pyi deleted file mode 100644 index 5cf1d78f..00000000 --- a/typings/pandas/api/__init__.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from . import ( - extensions as extensions, - indexers as indexers, - types as types) diff --git a/typings/pandas/api/extensions/__init__.pyi b/typings/pandas/api/extensions/__init__.pyi deleted file mode 100644 index 6ebc2ac6..00000000 --- a/typings/pandas/api/extensions/__init__.pyi +++ /dev/null @@ -1,7 +0,0 @@ -from pandas._libs.lib import no_default as no_default -from pandas.core.accessor import register_dataframe_accessor as register_dataframe_accessor, register_index_accessor as register_index_accessor, register_series_accessor as register_series_accessor -from pandas.core.algorithms import take as take -from pandas.core.arrays import ExtensionArray as ExtensionArray, ExtensionScalarOpsMixin as ExtensionScalarOpsMixin -from pandas.core.dtypes.dtypes import ExtensionDtype as ExtensionDtype, register_extension_dtype as register_extension_dtype - - diff --git a/typings/pandas/api/types/__init__.pyi b/typings/pandas/api/types/__init__.pyi deleted file mode 100644 index 10bf3162..00000000 --- a/typings/pandas/api/types/__init__.pyi +++ /dev/null @@ -1,5 +0,0 @@ -from pandas.core.dtypes.api import * -from pandas._libs.lib import infer_dtype as infer_dtype -from pandas.core.dtypes.concat import union_categoricals as union_categoricals -from pandas.core.dtypes.dtypes import CategoricalDtype as CategoricalDtype, DatetimeTZDtype as DatetimeTZDtype, IntervalDtype as IntervalDtype, PeriodDtype as PeriodDtype - diff --git a/typings/pandas/compat/_optional.pyi b/typings/pandas/compat/_optional.pyi deleted file mode 100644 index a11e81bb..00000000 --- a/typings/pandas/compat/_optional.pyi +++ /dev/null @@ -1,3 +0,0 @@ -VERSIONS = ... - -def import_optional_dependency(name: str, extra: str=..., raise_on_missing: bool=..., on_version: str=...): ... diff --git a/typings/pandas/py.typed b/typings/pandas/py.typed deleted file mode 100644 index b648ac92..00000000 --- a/typings/pandas/py.typed +++ /dev/null @@ -1 +0,0 @@ -partial diff --git a/typings/pandas/util/__init__.pyi b/typings/pandas/util/__init__.pyi deleted file mode 100644 index 419df44d..00000000 --- a/typings/pandas/util/__init__.pyi +++ /dev/null @@ -1,10 +0,0 @@ -from pandas import compat as compat -from pandas.core.util.hashing import hash_array as hash_array, hash_pandas_object as hash_pandas_object -from ._decorators import Appender as Appender, Substitution as Substitution, cache_readonly as cache_readonly - -def __getattr__(name): ... - -class _testing: - def __getattr__(self, item): ... - -testing = ... diff --git a/typings/pandas/util/_decorators.pyi b/typings/pandas/util/_decorators.pyi deleted file mode 100644 index fabc7ce1..00000000 --- a/typings/pandas/util/_decorators.pyi +++ /dev/null @@ -1,24 +0,0 @@ -from pandas._libs.properties import cache_readonly as cache_readonly -from typing import Any, Callable, List, Mapping, Optional, Tuple, Type, TypeVar, Union - - -FuncType = Callable[..., Any] -F = TypeVar('F', bound=FuncType) - -def deprecate(name: str, alternative: Callable[..., Any], version: str, alt_name: Optional[str]=..., klass: Optional[Type[Warning]]=..., stacklevel: int=..., msg: Optional[str]=...) -> Callable[..., Any]: ... -def deprecate_kwarg(old_arg_name: str, new_arg_name: Optional[str], mapping: Optional[Union[Mapping[Any, Any], Callable[[Any], Any]]]=..., stacklevel: int=...) -> Callable[..., Any]: ... -def rewrite_axis_style_signature(name: str, extra_params: List[Tuple[str, Any]]) -> Callable[..., Any]: ... - -class Substitution: - params = ... - def __init__(self, *args, **kwargs) -> None: ... - def __call__(self, func: F) -> F: ... - def update(self, *args, **kwargs) -> None: ... - -class Appender: - addendum: Optional[str] - join = ... - def __init__(self, addendum: Optional[str], join: str=..., indents: int=...) -> None: ... - def __call__(self, func: F) -> F: ... - -def indent(text: Optional[str], indents: int=...) -> str: ... diff --git a/typings/pandas/util/_doctools.pyi b/typings/pandas/util/_doctools.pyi deleted file mode 100644 index aa191e99..00000000 --- a/typings/pandas/util/_doctools.pyi +++ /dev/null @@ -1,6 +0,0 @@ -class TablePlotter: - cell_width = ... - cell_height = ... - font_size = ... - def __init__(self, cell_width: float=..., cell_height: float=..., font_size: float=...) -> None: ... - def plot(self, left, right, labels=..., vertical: bool=...) : ... diff --git a/typings/pandas/util/_exceptions.pyi b/typings/pandas/util/_exceptions.pyi deleted file mode 100644 index 39cb5d4c..00000000 --- a/typings/pandas/util/_exceptions.pyi +++ /dev/null @@ -1 +0,0 @@ -def rewrite_exception(old_name: str, new_name: str) : ... diff --git a/typings/pandas/util/_tester.pyi b/typings/pandas/util/_tester.pyi deleted file mode 100644 index 542f690d..00000000 --- a/typings/pandas/util/_tester.pyi +++ /dev/null @@ -1 +0,0 @@ -def test(extra_args = ...) -> None: ...