[build-system]
requires = ["setuptools", "setuptools-scm"]
build-backend = "setuptools.build_meta"

[project]
name = "hlink"
version = "3.6.0"
description = "Fast supervised pyspark record linkage software"
readme = "README.md"
requires-python = ">=3.10"
license = {file = "LICENSE.txt"}
classifiers = [
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)",
]
dependencies = [
    "colorama>=0.4.6",
    "ipython>=8.3.0",
    "Jinja2>=3.1.0",
    "numpy>=1.22.0",
    "pandas>=1.4.0",
    "pyspark~=3.5.0",
    "scikit-learn>=1.1.0",
    "toml>=0.10.0",
]

[project.optional-dependencies]
dev = [
    "pytest>=7.1.0",
    "black>=23.0",
    "flake8>=5.0",
    "pre-commit>=2.0",
    "twine>=4.0",
    "build>=0.6",
    # These are pinned so tightly because their version numbers appear in the docs.
    # So if you use a different version, it creates a huge diff in the docs.
    # TODO: auto-generate docs on push to GitHub instead of committing them to the
    # repo.
    "sphinx==7.2.6",
    "recommonmark==0.7.1",
]

[project.scripts]
hlink = "hlink.scripts.main:cli"

[project.urls]
Homepage = "https://github.com/ipums/hlink"
Documentation = "https://hlink.docs.ipums.org"
Repository = "https://github.com/ipums/hlink"
Changelog = "https://github.com/ipums/hlink/releases"

[tool.setuptools.packages.find]
where = ["."]
include = ["hlink*"]
exclude = ["hlink_config"]
