[project]
# Project metadata. Available keys are documented at:
# https://packaging.python.org/en/latest/specifications/declaring-project-metadata
name = "omniglue"
description = "Official code release for CVPR'24 paper 'OmniGlue: Generalizable Feature Matching with Foundation Model Guidance"
readme = "README.md"
requires-python = ">=3.8"
license = {file = "LICENSE"}
authors = [{name = "OmniGlue authors"}]
classifiers = [  # List of https://pypi.org/classifiers/
    "License :: OSI Approved :: Apache Software License",
    "Intended Audience :: Science/Research",
]
keywords = ["feature matching"]
dynamic = ["version", "dependencies"]

# pip dependencies of the project
# Installed locally with `pip install -e .`
[tool.setuptools.dynamic]
dependencies = {file = ["requirements.txt"]}

[project.urls]
homepage = "https://github.com/google-research/omniglue"
repository = "https://github.com/google-research/omniglue"
changelog = "https://github.com/google-research/omniglue/blob/main/CHANGELOG.md"
# documentation = ""

[tool.setuptools.packages.find]
where = ["src", "third_party"]
include = ["omniglue*", "dinov2*"]

[project.optional-dependencies]
# Development deps (unittest, linting, formating,...)
# Installed through `pip install -e .[dev]`
dev = [
    "pytest",
    "pytest-xdist",
    "pylint>=2.6.0",
    "pyink",
]

[tool.pyink]
# Formatting configuration to follow Google style-guide
line-length = 80
unstable = true
pyink-indentation = 2
pyink-use-majority-quotes = true

[build-system]
# Build system specify which backend is used to build/install the project (flit,
# poetry, setuptools,...). All backends are supported by `pip install`
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"

[tool.flit.sdist]
# Flit specific options (files to exclude from the PyPI package).
# If using another build backend (setuptools, poetry), you can remove this
# section.
exclude = [
  # Do not release tests files on PyPI
  "**/*_test.py",
]