bindings/python/pyproject.toml (69 lines of code) (raw):
# 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]
build-backend = "maturin"
requires = ["maturin>=1.0,<2.0"]
[project]
classifiers = [
"Programming Language :: Rust",
"Programming Language :: Python :: Implementation :: CPython",
]
description = "Apache OpenDAL™ Python Binding"
license = { text = "Apache-2.0" }
name = "opendal"
readme = "README.md"
requires-python = ">=3.10"
dynamic = ['version']
[project.urls]
Documentation = "https://opendal.apache.org/docs/python/index.html"
Homepage = "https://opendal.apache.org/"
Repository = "https://github.com/apache/opendal"
[dependency-groups]
benchmark = [
"boto3>=1.37.9",
"boto3-stubs[essential]>=1.37.9",
"gevent>=24.11.1",
"greenify>=0.4.3",
"greenlet>=3.1.1",
"pydantic>=2.10.6",
]
dev = ["maturin>=1.8.2"]
docs = ["mkdocs", "mkdocs-material", "mkdocstrings[python]", "mkdocs-jupyter"]
lint = ["ruff>=0.9.10"]
test = [
"pytest>=8.3.5",
"pytest-asyncio>=0.25.3",
"python-dotenv>=1.0.1",
"pydantic-settings>=2.8.1",
]
[tool.maturin]
features = ["pyo3/extension-module"]
module-name = "opendal._opendal"
python-source = "python"
strip = true
[tool.uv]
cache-keys = [
{ file = "pyproject.toml" },
{ file = "Cargo.toml" },
{ file = "src/**/*.rs" },
{ file = "../../core/**/*.rs" },
]
[tool.ruff.lint]
ignore = ["E402", "F403", "F405"]
select = ["E", "F", "I"]
[tool.ruff.lint.isort]
known-first-party = ["opendal"]