|
[build-system] |
|
|
|
|
|
requires = [ |
|
"meson-python==0.13.1", |
|
"meson==1.2.1", |
|
"wheel", |
|
"Cython~=3.0.5", |
|
|
|
|
|
"numpy>=2.0", |
|
"versioneer[toml]" |
|
] |
|
|
|
build-backend = "mesonpy" |
|
|
|
[project] |
|
name = 'pandas' |
|
dynamic = [ |
|
'version' |
|
] |
|
description = 'Powerful data structures for data analysis, time series, and statistics' |
|
readme = 'README.md' |
|
authors = [ |
|
{ name = 'The Pandas Development Team', email='pandas-dev@python.org' }, |
|
] |
|
license = {file = 'LICENSE'} |
|
requires-python = '>=3.9' |
|
dependencies = [ |
|
"numpy>=1.22.4; python_version<'3.11'", |
|
"numpy>=1.23.2; python_version=='3.11'", |
|
"numpy>=1.26.0; python_version>='3.12'", |
|
"python-dateutil>=2.8.2", |
|
"pytz>=2020.1", |
|
"tzdata>=2022.7" |
|
] |
|
classifiers = [ |
|
'Development Status :: 5 - Production/Stable', |
|
'Environment :: Console', |
|
'Intended Audience :: Science/Research', |
|
'License :: OSI Approved :: BSD License', |
|
'Operating System :: OS Independent', |
|
'Programming Language :: Cython', |
|
'Programming Language :: Python', |
|
'Programming Language :: Python :: 3', |
|
'Programming Language :: Python :: 3 :: Only', |
|
'Programming Language :: Python :: 3.9', |
|
'Programming Language :: Python :: 3.10', |
|
'Programming Language :: Python :: 3.11', |
|
'Programming Language :: Python :: 3.12', |
|
'Topic :: Scientific/Engineering' |
|
] |
|
|
|
[project.urls] |
|
homepage = 'https://pandas.pydata.org' |
|
documentation = 'https://pandas.pydata.org/docs/' |
|
repository = 'https://github.com/pandas-dev/pandas' |
|
|
|
[project.entry-points."pandas_plotting_backends"] |
|
matplotlib = "pandas:plotting._matplotlib" |
|
|
|
[project.optional-dependencies] |
|
test = ['hypothesis>=6.46.1', 'pytest>=7.3.2', 'pytest-xdist>=2.2.0'] |
|
pyarrow = ['pyarrow>=10.0.1'] |
|
performance = ['bottleneck>=1.3.6', 'numba>=0.56.4', 'numexpr>=2.8.4'] |
|
computation = ['scipy>=1.10.0', 'xarray>=2022.12.0'] |
|
fss = ['fsspec>=2022.11.0'] |
|
aws = ['s3fs>=2022.11.0'] |
|
gcp = ['gcsfs>=2022.11.0', 'pandas-gbq>=0.19.0'] |
|
excel = ['odfpy>=1.4.1', 'openpyxl>=3.1.0', 'python-calamine>=0.1.7', 'pyxlsb>=1.0.10', 'xlrd>=2.0.1', 'xlsxwriter>=3.0.5'] |
|
parquet = ['pyarrow>=10.0.1'] |
|
feather = ['pyarrow>=10.0.1'] |
|
hdf5 = [ |
|
|
|
'tables>=3.8.0'] |
|
spss = ['pyreadstat>=1.2.0'] |
|
postgresql = ['SQLAlchemy>=2.0.0', 'psycopg2>=2.9.6', 'adbc-driver-postgresql>=0.8.0'] |
|
mysql = ['SQLAlchemy>=2.0.0', 'pymysql>=1.0.2'] |
|
sql-other = ['SQLAlchemy>=2.0.0', 'adbc-driver-postgresql>=0.8.0', 'adbc-driver-sqlite>=0.8.0'] |
|
html = ['beautifulsoup4>=4.11.2', 'html5lib>=1.1', 'lxml>=4.9.2'] |
|
xml = ['lxml>=4.9.2'] |
|
plot = ['matplotlib>=3.6.3'] |
|
output-formatting = ['jinja2>=3.1.2', 'tabulate>=0.9.0'] |
|
clipboard = ['PyQt5>=5.15.9', 'qtpy>=2.3.0'] |
|
compression = ['zstandard>=0.19.0'] |
|
consortium-standard = ['dataframe-api-compat>=0.1.7'] |
|
all = ['adbc-driver-postgresql>=0.8.0', |
|
'adbc-driver-sqlite>=0.8.0', |
|
'beautifulsoup4>=4.11.2', |
|
|
|
|
|
'bottleneck>=1.3.6', |
|
'dataframe-api-compat>=0.1.7', |
|
'fastparquet>=2022.12.0', |
|
'fsspec>=2022.11.0', |
|
'gcsfs>=2022.11.0', |
|
'html5lib>=1.1', |
|
'hypothesis>=6.46.1', |
|
'jinja2>=3.1.2', |
|
'lxml>=4.9.2', |
|
'matplotlib>=3.6.3', |
|
'numba>=0.56.4', |
|
'numexpr>=2.8.4', |
|
'odfpy>=1.4.1', |
|
'openpyxl>=3.1.0', |
|
'pandas-gbq>=0.19.0', |
|
'psycopg2>=2.9.6', |
|
'pyarrow>=10.0.1', |
|
'pymysql>=1.0.2', |
|
'PyQt5>=5.15.9', |
|
'pyreadstat>=1.2.0', |
|
'pytest>=7.3.2', |
|
'pytest-xdist>=2.2.0', |
|
'python-calamine>=0.1.7', |
|
'pyxlsb>=1.0.10', |
|
'qtpy>=2.3.0', |
|
'scipy>=1.10.0', |
|
's3fs>=2022.11.0', |
|
'SQLAlchemy>=2.0.0', |
|
'tables>=3.8.0', |
|
'tabulate>=0.9.0', |
|
'xarray>=2022.12.0', |
|
'xlrd>=2.0.1', |
|
'xlsxwriter>=3.0.5', |
|
'zstandard>=0.19.0'] |
|
|
|
|
|
[tool.setuptools] |
|
include-package-data = true |
|
|
|
[tool.setuptools.packages.find] |
|
include = ["pandas", "pandas.*"] |
|
namespaces = false |
|
|
|
[tool.setuptools.exclude-package-data] |
|
"*" = ["*.c", "*.h"] |
|
|
|
|
|
|
|
|
|
[tool.versioneer] |
|
VCS = "git" |
|
style = "pep440" |
|
versionfile_source = "pandas/_version.py" |
|
versionfile_build = "pandas/_version.py" |
|
tag_prefix = "v" |
|
parentdir_prefix = "pandas-" |
|
|
|
[tool.meson-python.args] |
|
setup = ['--vsenv'] |
|
|
|
[tool.cibuildwheel] |
|
skip = "cp36-* cp37-* cp38-* pp* *_i686 *_ppc64le *_s390x" |
|
build-verbosity = "3" |
|
environment = {LDFLAGS="-Wl,--strip-all"} |
|
|
|
test-requires = "hypothesis>=6.46.1 pytest>=7.3.2 pytest-xdist>=2.2.0 pytz<2024.2" |
|
test-command = """ |
|
PANDAS_CI='1' python -c 'import pandas as pd; \ |
|
pd.test(extra_args=["-m not clipboard and not single_cpu and not slow and not network and not db", "-n 2", "--no-strict-data-files"]); \ |
|
pd.test(extra_args=["-m not clipboard and single_cpu and not slow and not network and not db", "--no-strict-data-files"]);' \ |
|
""" |
|
free-threaded-support = true |
|
before-build = "PACKAGE_DIR={package} bash {package}/scripts/cibw_before_build.sh" |
|
|
|
[tool.cibuildwheel.windows] |
|
before-build = "pip install delvewheel && bash {package}/scripts/cibw_before_build.sh" |
|
repair-wheel-command = "delvewheel repair -w {dest_dir} {wheel}" |
|
|
|
[[tool.cibuildwheel.overrides]] |
|
select = "*-manylinux_aarch64*" |
|
test-command = """ |
|
PANDAS_CI='1' python -c 'import pandas as pd; \ |
|
pd.test(extra_args=["-m not clipboard and not single_cpu and not slow and not network and not db and not fails_arm_wheels", "-n 2", "--no-strict-data-files"]); \ |
|
pd.test(extra_args=["-m not clipboard and single_cpu and not slow and not network and not db", "--no-strict-data-files"]);' \ |
|
""" |
|
|
|
[[tool.cibuildwheel.overrides]] |
|
select = "*-musllinux*" |
|
before-test = "apk update && apk add musl-locales" |
|
|
|
[[tool.cibuildwheel.overrides]] |
|
select = "*-win*" |
|
|
|
|
|
|
|
test-command = "" |
|
|
|
[[tool.cibuildwheel.overrides]] |
|
|
|
|
|
|
|
select = "*-macosx*" |
|
environment = {CFLAGS="-g0"} |
|
|
|
[tool.black] |
|
target-version = ['py39', 'py310'] |
|
required-version = '23.11.0' |
|
exclude = ''' |
|
( |
|
asv_bench/env |
|
| \.egg |
|
| \.git |
|
| \.hg |
|
| \.mypy_cache |
|
| \.nox |
|
| \.tox |
|
| \.venv |
|
| _build |
|
| buck-out |
|
| build |
|
| dist |
|
| setup.py |
|
) |
|
''' |
|
|
|
[tool.ruff] |
|
line-length = 88 |
|
target-version = "py310" |
|
fix = true |
|
unfixable = [] |
|
typing-modules = ["pandas._typing"] |
|
|
|
select = [ |
|
|
|
"F", |
|
|
|
"E", "W", |
|
|
|
"YTT", |
|
|
|
"B", |
|
|
|
"Q", |
|
|
|
"T10", |
|
|
|
"INT", |
|
|
|
"PL", |
|
|
|
"PIE", |
|
|
|
"PYI", |
|
|
|
"TID", |
|
|
|
"ISC", |
|
|
|
"TCH", |
|
|
|
"C4", |
|
|
|
"PGH", |
|
|
|
"RUF", |
|
|
|
"S102", |
|
|
|
"NPY002", |
|
|
|
"PERF", |
|
|
|
"FLY", |
|
|
|
"G", |
|
|
|
"FA", |
|
] |
|
|
|
ignore = [ |
|
|
|
|
|
"E203", |
|
|
|
"E402", |
|
|
|
"E731", |
|
|
|
|
|
|
|
|
|
|
|
"B006", |
|
|
|
"B007", |
|
|
|
"B008", |
|
|
|
"B009", |
|
|
|
"B010", |
|
|
|
"B011", |
|
|
|
"B015", |
|
|
|
"B019", |
|
|
|
"B020", |
|
|
|
"B023", |
|
|
|
|
|
|
|
"B905", |
|
|
|
"PLR0913", |
|
|
|
"PLR0911", |
|
|
|
"PLR0912", |
|
|
|
"PLR0915", |
|
|
|
"PLW2901", |
|
|
|
"PLW0603", |
|
|
|
"PYI021", |
|
|
|
"PYI024", |
|
|
|
"PGH001", |
|
|
|
"PLC1901", |
|
|
|
"PYI041", |
|
|
|
"PERF102", |
|
|
|
"PERF203", |
|
|
|
|
|
|
|
|
|
"B018", |
|
|
|
"B904", |
|
|
|
"PLR2004", |
|
|
|
"PLR0124", |
|
|
|
"PLR5501", |
|
|
|
"RUF005", |
|
|
|
"RUF007", |
|
|
|
"RUF010", |
|
|
|
"RUF012" |
|
] |
|
|
|
exclude = [ |
|
"doc/sphinxext/*.py", |
|
"doc/build/*.py", |
|
"doc/temp/*.py", |
|
".eggs/*.py", |
|
|
|
"pandas/util/version/*", |
|
"pandas/io/clipboard/__init__.py", |
|
|
|
"env", |
|
] |
|
|
|
[tool.ruff.per-file-ignores] |
|
|
|
"asv_bench/*" = ["TID", "NPY002"] |
|
|
|
"pandas/core/*" = ["PLR5501"] |
|
"pandas/tests/*" = ["B028", "FLY"] |
|
"scripts/*" = ["B028"] |
|
|
|
"pandas/_typing.py" = ["TCH"] |
|
|
|
[tool.pylint.messages_control] |
|
max-line-length = 88 |
|
disable = [ |
|
|
|
"bad-mcs-classmethod-argument", |
|
"broad-except", |
|
"c-extension-no-member", |
|
"comparison-with-itself", |
|
"consider-using-enumerate", |
|
"import-error", |
|
"import-outside-toplevel", |
|
"invalid-name", |
|
"invalid-unary-operand-type", |
|
"line-too-long", |
|
"no-else-continue", |
|
"no-else-raise", |
|
"no-else-return", |
|
"no-member", |
|
"no-name-in-module", |
|
"not-an-iterable", |
|
"overridden-final-method", |
|
"pointless-statement", |
|
"redundant-keyword-arg", |
|
"singleton-comparison", |
|
"too-many-ancestors", |
|
"too-many-arguments", |
|
"too-many-boolean-expressions", |
|
"too-many-branches", |
|
"too-many-function-args", |
|
"too-many-instance-attributes", |
|
"too-many-locals", |
|
"too-many-nested-blocks", |
|
"too-many-public-methods", |
|
"too-many-return-statements", |
|
"too-many-statements", |
|
"unexpected-keyword-arg", |
|
"ungrouped-imports", |
|
"unsubscriptable-object", |
|
"unsupported-assignment-operation", |
|
"unsupported-membership-test", |
|
"unused-import", |
|
"use-dict-literal", |
|
"use-implicit-booleaness-not-comparison", |
|
"use-implicit-booleaness-not-len", |
|
"wrong-import-order", |
|
"wrong-import-position", |
|
"redefined-loop-name", |
|
|
|
|
|
"abstract-class-instantiated", |
|
"no-value-for-parameter", |
|
"undefined-variable", |
|
"unpacking-non-sequence", |
|
"used-before-assignment", |
|
|
|
|
|
"missing-class-docstring", |
|
"missing-function-docstring", |
|
"missing-module-docstring", |
|
"superfluous-parens", |
|
"too-many-lines", |
|
"unidiomatic-typecheck", |
|
"unnecessary-dunder-call", |
|
"unnecessary-lambda-assignment", |
|
|
|
|
|
"consider-using-with", |
|
"cyclic-import", |
|
"duplicate-code", |
|
"inconsistent-return-statements", |
|
"redefined-argument-from-local", |
|
"too-few-public-methods", |
|
|
|
|
|
"abstract-method", |
|
"arguments-differ", |
|
"arguments-out-of-order", |
|
"arguments-renamed", |
|
"attribute-defined-outside-init", |
|
"broad-exception-raised", |
|
"comparison-with-callable", |
|
"dangerous-default-value", |
|
"deprecated-module", |
|
"eval-used", |
|
"expression-not-assigned", |
|
"fixme", |
|
"global-statement", |
|
"invalid-overridden-method", |
|
"keyword-arg-before-vararg", |
|
"possibly-unused-variable", |
|
"protected-access", |
|
"raise-missing-from", |
|
"redefined-builtin", |
|
"redefined-outer-name", |
|
"self-cls-assignment", |
|
"signature-differs", |
|
"super-init-not-called", |
|
"try-except-raise", |
|
"unnecessary-lambda", |
|
"unused-argument", |
|
"unused-variable", |
|
"using-constant-test" |
|
] |
|
|
|
[tool.pytest.ini_options] |
|
|
|
minversion = "7.3.2" |
|
addopts = "--strict-markers --strict-config --capture=no --durations=30 --junitxml=test-data.xml" |
|
empty_parameter_set_mark = "fail_at_collect" |
|
xfail_strict = true |
|
testpaths = "pandas" |
|
doctest_optionflags = [ |
|
"NORMALIZE_WHITESPACE", |
|
"IGNORE_EXCEPTION_DETAIL", |
|
"ELLIPSIS", |
|
] |
|
filterwarnings = [ |
|
"error:::pandas", |
|
"error::ResourceWarning", |
|
"error::pytest.PytestUnraisableExceptionWarning", |
|
|
|
|
|
"ignore:.*encoding.* argument not specified", |
|
"error:.*encoding.* argument not specified::pandas", |
|
"ignore:.*ssl.SSLSocket:pytest.PytestUnraisableExceptionWarning", |
|
"ignore:.*ssl.SSLSocket:ResourceWarning", |
|
|
|
"ignore:.*FileIO:pytest.PytestUnraisableExceptionWarning", |
|
"ignore:.*BufferedRandom:ResourceWarning", |
|
"ignore::ResourceWarning:asyncio", |
|
|
|
"ignore:More than 20 figures have been opened:RuntimeWarning", |
|
|
|
"ignore:`np.MachAr` is deprecated:DeprecationWarning:numba", |
|
"ignore:.*urllib3:DeprecationWarning:botocore", |
|
"ignore:Setuptools is replacing distutils.:UserWarning:_distutils_hack", |
|
|
|
"ignore:a closed node found in the registry:UserWarning:tables", |
|
"ignore:`np.object` is a deprecated:DeprecationWarning:tables", |
|
"ignore:tostring:DeprecationWarning:tables", |
|
"ignore:distutils Version classes are deprecated:DeprecationWarning:pandas_datareader", |
|
"ignore:distutils Version classes are deprecated:DeprecationWarning:numexpr", |
|
"ignore:distutils Version classes are deprecated:DeprecationWarning:fastparquet", |
|
"ignore:distutils Version classes are deprecated:DeprecationWarning:fsspec", |
|
|
|
"ignore:.*In the future `np.long` will be defined as.*:FutureWarning", |
|
] |
|
junit_family = "xunit2" |
|
markers = [ |
|
"single_cpu: tests that should run on a single cpu only", |
|
"slow: mark a test as slow", |
|
"network: mark a test as network", |
|
"db: tests requiring a database (mysql or postgres)", |
|
"clipboard: mark a pd.read_clipboard test", |
|
"arm_slow: mark a test as slow for arm64 architecture", |
|
"skip_ubsan: Tests known to fail UBSAN check", |
|
|
|
|
|
|
|
"fails_arm_wheels: Tests that fail in the ARM wheel build only", |
|
] |
|
|
|
[tool.mypy] |
|
|
|
mypy_path = "typings" |
|
files = ["pandas", "typings"] |
|
namespace_packages = false |
|
explicit_package_bases = false |
|
ignore_missing_imports = true |
|
follow_imports = "normal" |
|
follow_imports_for_stubs = false |
|
no_site_packages = false |
|
no_silence_site_packages = false |
|
|
|
python_version = "3.11" |
|
platform = "linux-64" |
|
|
|
disallow_any_unimported = false |
|
disallow_any_expr = false |
|
disallow_any_decorated = false |
|
disallow_any_explicit = false |
|
disallow_any_generics = false |
|
disallow_subclassing_any = false |
|
|
|
disallow_untyped_calls = true |
|
disallow_untyped_defs = true |
|
disallow_incomplete_defs = true |
|
check_untyped_defs = true |
|
disallow_untyped_decorators = true |
|
|
|
no_implicit_optional = true |
|
strict_optional = true |
|
|
|
warn_redundant_casts = true |
|
warn_unused_ignores = true |
|
warn_no_return = true |
|
warn_return_any = false |
|
warn_unreachable = false |
|
|
|
ignore_errors = false |
|
enable_error_code = "ignore-without-code" |
|
|
|
allow_untyped_globals = false |
|
allow_redefinition = false |
|
local_partial_types = false |
|
implicit_reexport = true |
|
strict_equality = true |
|
|
|
show_error_context = false |
|
show_column_numbers = false |
|
show_error_codes = true |
|
|
|
[[tool.mypy.overrides]] |
|
module = [ |
|
"pandas._config.config", |
|
"pandas._libs.*", |
|
"pandas._testing.*", |
|
"pandas.arrays", |
|
"pandas.compat.numpy.function", |
|
"pandas.compat._optional", |
|
"pandas.compat.compressors", |
|
"pandas.compat.pickle_compat", |
|
"pandas.core._numba.executor", |
|
"pandas.core.array_algos.datetimelike_accumulations", |
|
"pandas.core.array_algos.masked_accumulations", |
|
"pandas.core.array_algos.masked_reductions", |
|
"pandas.core.array_algos.putmask", |
|
"pandas.core.array_algos.quantile", |
|
"pandas.core.array_algos.replace", |
|
"pandas.core.array_algos.take", |
|
"pandas.core.arrays.*", |
|
"pandas.core.computation.*", |
|
"pandas.core.dtypes.astype", |
|
"pandas.core.dtypes.cast", |
|
"pandas.core.dtypes.common", |
|
"pandas.core.dtypes.concat", |
|
"pandas.core.dtypes.dtypes", |
|
"pandas.core.dtypes.generic", |
|
"pandas.core.dtypes.inference", |
|
"pandas.core.dtypes.missing", |
|
"pandas.core.groupby.categorical", |
|
"pandas.core.groupby.generic", |
|
"pandas.core.groupby.grouper", |
|
"pandas.core.groupby.groupby", |
|
"pandas.core.groupby.ops", |
|
"pandas.core.indexers.*", |
|
"pandas.core.indexes.*", |
|
"pandas.core.interchange.column", |
|
"pandas.core.interchange.dataframe_protocol", |
|
"pandas.core.interchange.from_dataframe", |
|
"pandas.core.internals.*", |
|
"pandas.core.methods.*", |
|
"pandas.core.ops.array_ops", |
|
"pandas.core.ops.common", |
|
"pandas.core.ops.invalid", |
|
"pandas.core.ops.mask_ops", |
|
"pandas.core.ops.missing", |
|
"pandas.core.reshape.*", |
|
"pandas.core.strings.*", |
|
"pandas.core.tools.*", |
|
"pandas.core.window.common", |
|
"pandas.core.window.ewm", |
|
"pandas.core.window.expanding", |
|
"pandas.core.window.numba_", |
|
"pandas.core.window.online", |
|
"pandas.core.window.rolling", |
|
"pandas.core.accessor", |
|
"pandas.core.algorithms", |
|
"pandas.core.apply", |
|
"pandas.core.arraylike", |
|
"pandas.core.base", |
|
"pandas.core.common", |
|
"pandas.core.config_init", |
|
"pandas.core.construction", |
|
"pandas.core.flags", |
|
"pandas.core.frame", |
|
"pandas.core.generic", |
|
"pandas.core.indexing", |
|
"pandas.core.missing", |
|
"pandas.core.nanops", |
|
"pandas.core.resample", |
|
"pandas.core.roperator", |
|
"pandas.core.sample", |
|
"pandas.core.series", |
|
"pandas.core.sorting", |
|
"pandas.errors", |
|
"pandas.io.clipboard", |
|
"pandas.io.excel._base", |
|
"pandas.io.excel._odfreader", |
|
"pandas.io.excel._odswriter", |
|
"pandas.io.excel._openpyxl", |
|
"pandas.io.excel._pyxlsb", |
|
"pandas.io.excel._xlrd", |
|
"pandas.io.excel._xlsxwriter", |
|
"pandas.io.formats.console", |
|
"pandas.io.formats.css", |
|
"pandas.io.formats.excel", |
|
"pandas.io.formats.format", |
|
"pandas.io.formats.info", |
|
"pandas.io.formats.printing", |
|
"pandas.io.formats.style", |
|
"pandas.io.formats.style_render", |
|
"pandas.io.formats.xml", |
|
"pandas.io.json.*", |
|
"pandas.io.parsers.*", |
|
"pandas.io.sas.sas_xport", |
|
"pandas.io.sas.sas7bdat", |
|
"pandas.io.clipboards", |
|
"pandas.io.common", |
|
"pandas.io.gbq", |
|
"pandas.io.html", |
|
"pandas.io.gbq", |
|
"pandas.io.parquet", |
|
"pandas.io.pytables", |
|
"pandas.io.sql", |
|
"pandas.io.stata", |
|
"pandas.io.xml", |
|
"pandas.plotting.*", |
|
"pandas.tests.*", |
|
"pandas.tseries.frequencies", |
|
"pandas.tseries.holiday", |
|
"pandas.util._decorators", |
|
"pandas.util._doctools", |
|
"pandas.util._print_versions", |
|
"pandas.util._test_decorators", |
|
"pandas.util._validators", |
|
"pandas.util", |
|
"pandas._version", |
|
"pandas.conftest", |
|
"pandas" |
|
] |
|
disallow_untyped_calls = false |
|
disallow_untyped_defs = false |
|
disallow_incomplete_defs = false |
|
|
|
[[tool.mypy.overrides]] |
|
module = [ |
|
"pandas.tests.*", |
|
"pandas._version", |
|
"pandas.io.clipboard", |
|
] |
|
check_untyped_defs = false |
|
|
|
[[tool.mypy.overrides]] |
|
module = [ |
|
"pandas.tests.apply.test_series_apply", |
|
"pandas.tests.arithmetic.conftest", |
|
"pandas.tests.arrays.sparse.test_combine_concat", |
|
"pandas.tests.dtypes.test_common", |
|
"pandas.tests.frame.methods.test_to_records", |
|
"pandas.tests.groupby.test_rank", |
|
"pandas.tests.groupby.transform.test_transform", |
|
"pandas.tests.indexes.interval.test_interval", |
|
"pandas.tests.indexing.test_categorical", |
|
"pandas.tests.io.excel.test_writers", |
|
"pandas.tests.reductions.test_reductions", |
|
"pandas.tests.test_expressions", |
|
] |
|
ignore_errors = true |
|
|
|
|
|
[tool.isort] |
|
known_pre_libs = "pandas._config" |
|
known_pre_core = ["pandas._libs", "pandas._typing", "pandas.util._*", "pandas.compat", "pandas.errors"] |
|
known_dtypes = "pandas.core.dtypes" |
|
known_post_core = ["pandas.tseries", "pandas.io", "pandas.plotting"] |
|
sections = ["FUTURE", "STDLIB", "THIRDPARTY" ,"PRE_LIBS" , "PRE_CORE", "DTYPES", "FIRSTPARTY", "POST_CORE", "LOCALFOLDER"] |
|
profile = "black" |
|
combine_as_imports = true |
|
force_grid_wrap = 2 |
|
force_sort_within_sections = true |
|
skip_glob = "env" |
|
skip = "pandas/__init__.py" |
|
|
|
[tool.pyright] |
|
pythonVersion = "3.11" |
|
typeCheckingMode = "basic" |
|
useLibraryCodeForTypes = false |
|
include = ["pandas", "typings"] |
|
exclude = ["pandas/tests", "pandas/io/clipboard", "pandas/util/version", "pandas/core/_numba/extensions.py"] |
|
|
|
reportDuplicateImport = true |
|
reportInconsistentConstructor = true |
|
reportInvalidStubStatement = true |
|
reportOverlappingOverload = true |
|
reportPropertyTypeMismatch = true |
|
reportUntypedClassDecorator = true |
|
reportUntypedFunctionDecorator = true |
|
reportUntypedNamedTuple = true |
|
reportUnusedImport = true |
|
disableBytesTypePromotions = true |
|
|
|
reportGeneralTypeIssues = false |
|
reportMissingModuleSource = false |
|
reportOptionalCall = false |
|
reportOptionalIterable = false |
|
reportOptionalMemberAccess = false |
|
reportOptionalOperand = false |
|
reportOptionalSubscript = false |
|
reportPrivateImportUsage = false |
|
reportUnboundVariable = false |
|
|
|
[tool.coverage.run] |
|
branch = true |
|
omit = ["pandas/_typing.py", "pandas/_version.py"] |
|
plugins = ["Cython.Coverage"] |
|
source = ["pandas"] |
|
|
|
[tool.coverage.report] |
|
ignore_errors = false |
|
show_missing = true |
|
omit = ["pandas/_version.py"] |
|
exclude_lines = [ |
|
|
|
"pragma: no cover", |
|
|
|
"def __repr__", |
|
"if self.debug", |
|
|
|
"raise AssertionError", |
|
"raise NotImplementedError", |
|
"AbstractMethodError", |
|
|
|
"if 0:", |
|
"if __name__ == .__main__.:", |
|
"if TYPE_CHECKING:", |
|
] |
|
|
|
[tool.coverage.html] |
|
directory = "coverage_html_report" |
|
|
|
[tool.codespell] |
|
ignore-words-list = "blocs, coo, hist, nd, sav, ser, recuse, nin, timere, expec, expecs" |
|
ignore-regex = 'https://([\w/\.])+' |
|
|