blob: fe508b855a874e613d1726eccea37c1dacbfc1a9 [file]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
[build-system]
requires = [
"scikit-build-core",
"cython >= 3.1",
# Needed for build-time stub docstring extraction
"libcst>=1.8.6",
"numpy>=1.25",
"setuptools_scm[toml]>=8",
]
# We use a really simple build backend wrapper over scikit-build-core
# to solve licenses to work around links not being included in sdists.
build-backend = "_build_backend"
backend-path = ["."]
[project]
name = "pyarrow"
dynamic = ["version"]
requires-python = ">=3.10"
description = "Python library for Apache Arrow"
readme = {file = "README.md", content-type = "text/markdown"}
license = "Apache-2.0"
license-files = [
"LICENSE.txt",
"NOTICE.txt",
]
classifiers = [
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: 3.12',
'Programming Language :: Python :: 3.13',
'Programming Language :: Python :: 3.14',
'Programming Language :: Python :: Free Threading :: 2 - Beta',
]
maintainers = [
{name = "Apache Arrow Developers", email = "dev@arrow.apache.org"}
]
[project.urls]
Homepage = "https://arrow.apache.org/"
Documentation = "https://arrow.apache.org/docs/python"
Repository = "https://github.com/apache/arrow"
Issues = "https://github.com/apache/arrow/issues"
[dependency-groups]
test = [
'pytest',
'hypothesis',
'cffi',
'pytz',
'pandas'
]
[tool.numpydoc_validation]
checks = [
"GL10",
"PR01",
"PR03",
"PR04",
"PR05",
"PR10",
"RT03",
"YD01",
]
exclude = [
'\._.*$',
]
[tool.scikit-build]
cmake.build-type = "Release"
metadata.version.provider = "scikit_build_core.metadata.setuptools_scm"
sdist.include = ["pyarrow/_generated_version.py", "cmake_modules/", "pyarrow-stubs/"]
wheel.packages = ["pyarrow"]
wheel.install-dir = "pyarrow"
[tool.scikit-build.cmake.define]
PYARROW_BUNDLE_ARROW_CPP = {env = "PYARROW_BUNDLE_ARROW_CPP", default = "OFF"}
PYARROW_BUNDLE_CYTHON_CPP = {env = "PYARROW_BUNDLE_CYTHON_CPP", default = "OFF"}
PYARROW_GENERATE_COVERAGE = {env = "PYARROW_GENERATE_COVERAGE", default = "OFF"}
PYARROW_CXXFLAGS = {env = "PYARROW_CXXFLAGS", default = ""}
PYARROW_REQUIRE_STUB_DOCSTRINGS = {env = "PYARROW_REQUIRE_STUB_DOCSTRINGS", default = "OFF"}
[tool.setuptools_scm]
root = '..'
version_file = 'pyarrow/_generated_version.py'
version_scheme = 'guess-next-dev'
git_describe_command = 'git describe --dirty --tags --long --match "apache-arrow-[0-9]*.*"'
fallback_version = '25.0.0a0'
# TODO: Enable type checking once stubs are merged
[tool.mypy]
files = ["pyarrow-stubs"]
mypy_path = "$MYPY_CONFIG_FILE_DIR/pyarrow-stubs"
exclude = [
"^pyarrow/",
"^benchmarks/",
"^examples/",
"^scripts/",
]
# TODO: Enable type checking once stubs are merged
[tool.pyright]
pythonPlatform = "All"
pythonVersion = "3.10"
include = ["pyarrow-stubs"]
exclude = [
"pyarrow",
"benchmarks",
"examples",
"scripts",
"build",
]
stubPath = "pyarrow-stubs"
typeCheckingMode = "basic"
# TODO: Enable type checking once stubs are merged
[tool.ty.environment]
extra-paths = ["pyarrow-stubs"]
[tool.ty.src]
include = ["pyarrow-stubs"]
exclude = [
"pyarrow",
"benchmarks",
"examples",
"scripts",
]