| # 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 = ["maturin>=1.8.1"] |
| build-backend = "maturin" |
| |
| [project] |
| name = "datafusion" |
| description = "Build and run queries against data" |
| readme = "README.md" |
| license = { file = "LICENSE.txt" } |
| requires-python = ">=3.8" |
| keywords = ["datafusion", "dataframe", "rust", "query-engine"] |
| classifiers = [ |
| "Development Status :: 2 - Pre-Alpha", |
| "Intended Audience :: Developers", |
| "License :: OSI Approved :: Apache Software License", |
| "License :: OSI Approved", |
| "Operating System :: MacOS", |
| "Operating System :: Microsoft :: Windows", |
| "Operating System :: POSIX :: Linux", |
| "Programming Language :: Python :: 3", |
| "Programming Language :: Python :: 3.8", |
| "Programming Language :: Python :: 3.9", |
| "Programming Language :: Python :: 3.10", |
| "Programming Language :: Python :: 3.11", |
| "Programming Language :: Python :: 3.12", |
| "Programming Language :: Python :: 3.13", |
| "Programming Language :: Python", |
| "Programming Language :: Rust", |
| ] |
| dependencies = ["pyarrow>=11.0.0", "typing-extensions;python_version<'3.13'"] |
| dynamic = ["version"] |
| |
| [project.urls] |
| homepage = "https://datafusion.apache.org/python" |
| documentation = "https://datafusion.apache.org/python" |
| repository = "https://github.com/apache/datafusion-python" |
| |
| [tool.isort] |
| profile = "black" |
| |
| [tool.maturin] |
| python-source = "python" |
| module-name = "datafusion._internal" |
| include = [{ path = "Cargo.lock", format = "sdist" }] |
| exclude = [".github/**", "ci/**", ".asf.yaml"] |
| # Require Cargo.lock is up to date |
| locked = true |
| features = ["substrait"] |
| |
| # Enable docstring linting using the google style guide |
| [tool.ruff.lint] |
| select = ["E4", "E7", "E9", "F", "D", "W", "I"] |
| |
| [tool.ruff.lint.pydocstyle] |
| convention = "google" |
| |
| [tool.ruff.lint.pycodestyle] |
| max-doc-length = 88 |
| |
| # Disable docstring checking for these directories |
| [tool.ruff.lint.per-file-ignores] |
| "python/tests/*" = ["D"] |
| "examples/*" = ["D", "W505"] |
| "dev/*" = ["D"] |
| "benchmarks/*" = ["D", "F"] |
| "docs/*" = ["D"] |
| |
| [dependency-groups] |
| dev = [ |
| "maturin>=1.8.1", |
| "numpy>1.24.4 ; python_full_version >= '3.10'", |
| "pytest>=7.4.4", |
| "ruff>=0.9.1", |
| "toml>=0.10.2", |
| "pygithub==2.5.0", |
| ] |
| docs = [ |
| "sphinx>=7.1.2", |
| "pydata-sphinx-theme==0.8.0", |
| "myst-parser>=3.0.1", |
| "jinja2>=3.1.5", |
| "ipython>=8.12.3", |
| "pandas>=2.0.3", |
| "pickleshare>=0.7.5", |
| "sphinx-autoapi>=3.4.0", |
| "setuptools>=75.3.0", |
| ] |