# 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" },
]
package = false
