content: [build-system]
  requires = ["scikit_build_core", "pybind11"]
  build-backend = "scikit_build_core.build"
  
  [project]
  name = "teaserpp_python"
  version = "1.1.0"
  description = "Python binding for TEASER++"
  readme = "README.md"
  authors = [
      { name = "Jingnan Shi", email = "jnshi@mit.edu" },
  ]
  keywords = [
      "Point cloud",
      "Registration",
      "Non-minimal solver",
      "Solver",
  ]
  classifiers = [
      "Intended Audience :: Developers",
      "Intended Audience :: Education",
      "Intended Audience :: Other Audience",
      "Intended Audience :: Science/Research",
      "License :: OSI Approved :: MIT License",
      "Operating System :: MacOS",
      "Operating System :: Microsoft :: Windows",
      "Operating System :: Unix",
      "Programming Language :: C++",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3.6",
      "Programming Language :: Python :: 3.7",
      "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",
  ]
  dependencies = [
      "numpy",
      "typing-extensions~=4.2",
  ]
  
  [project.urls]
  Homepage = "https://github.com/MIT-SPARK/TEASER-plusplus"
  
  [tool.scikit-build]
  build-dir = "build/{wheel_tag}"
  build.verbose = true
  cmake.version = ">=3.16"
  wheel.install-dir = "teaserpp_python.libs"
  
  [tool.scikit-build.cmake.define]
  BUILD_PYTHON_BINDINGS = "ON"
  BUILD_TESTING = "OFF"
  BUILD_SHARED_LIBS = "OFF"
  
  [tool.cibuildwheel]
  archs = ["auto64"]
  skip = ["*-musllinux*",  "pp*", "cp36-*"]
  
  [tool.cibuildwheel.macos]
  environment = "MACOSX_DEPLOYMENT_TARGET=10.14"
  archs = ["auto64", "arm64"]
  
  [tool.pyright]
  venvPath = "."
  venv = ".venv"
  
  typeCheckingMode = "standard"
  reportUnusedImport = "none"
  reportUnusedFunction = "none"
  reportUnusedVariable = "none"
  reportUndefinedVariable = "none"
  
  
  [tool.ruff]
  # Exclude a variety of commonly ignored directories.
  exclude = [
      ".bzr",
      ".direnv",
      ".eggs",
      ".git",
      ".git-rewrite",
      ".hg",
      ".ipynb_checkpoints",
      ".mypy_cache",
      ".nox",
      ".pants.d",
      ".pyenv",
      ".pytest_cache",
      ".pytype",
      ".ruff_cache",
      ".svn",
      ".tox",
      ".venv",
      ".vscode",
      "__pypackages__",
      "_build",
      "buck-out",
      "build",
      "dist",
      "node_modules",
      "site-packages",
      "venv",
  ]
  
  # Same as Black.
  line-length = 88
  indent-width = 4
  
  # Assume Python 3.9
  target-version = "py39"
  
  [tool.ruff.lint]
  # Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`)  codes by default.
  # Unlike Flake8, Ruff doesn't enable pycodestyle warnings (`W`) or
  # McCabe complexity (`C901`) by default.
  select = ["E", "F", "I001"]
  ignore = []
  
  # Allow fix for all enabled rules (when `--fix`) is provided.
  fixable = ["ALL"]
  unfixable = []
  
  # Allow unused variables when underscore-prefixed.
  dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
  
  [tool.ruff.format]
  # Like Black, use double quotes for strings.
  quote-style = "double"
  
  # Like Black, indent with spaces, rather than tabs.
  indent-style = "space"
  
  # Like Black, respect magic trailing commas.
  skip-magic-trailing-comma = false
  
  # Like Black, automatically detect the appropriate line ending.
  line-ending = "auto"
  
  # Enable auto-formatting of code examples in docstrings. Markdown,
  # reStructuredText code/literal blocks and doctests are all supported.
  #
  # This is currently disabled by default, but it is planned for this
  # to be opt-out in the future.
  docstring-code-format = true
  
  # Set the line length limit used when formatting code snippets in
  # docstrings.
  #
  # This only has an effect when the `docstring-code-format` setting is
  # enabled.
  docstring-code-line-length = "dynamic"
  
  [dependency-groups]
  dev = [
      "basedpyright>=1.22.0",
      "ruff>=0.8.1",
  ]
  