[build-system] requires = [ "setuptools==75.8.0", "setuptools_scm==8.1.0", ] build-backend = "setuptools.build_meta" [project] dynamic = ["version"] name = "pyspamsum" description = "A Python wrapper for Andrew Tridgell's spamsum algorithm" readme = "README.rst" requires-python = ">= 3.9" authors = [ {name="Russell Keith-Magee", email="russell@keith-magee.com"} ] maintainers = [ {name="Russell Keith-Magee", email="russell@keith-magee.com"} ] keywords = [ "spamsum", ] license.text = "New BSD" classifiers=[ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "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", "Topic :: Text Processing", "Topic :: Utilities", ] [project.optional-dependencies] # Extras used by developers *of* briefcase are pinned to specific versions to # ensure environment consistency. test = [ "pytest == 8.3.4", ] dev = [ "pre-commit == 4.1.0", "ruff == 0.9.6", "setuptools_scm == 8.1.0", "tox == 4.24.1", ] [project.urls] Homepage = "https://github.com/freakboy3742/pyspamsum/" Tracker = "https://github.com/freakboy3742/pyspamsum/issues" Source = "https://github.com/freakboy3742/pyspamsum/" [tool.cibuildwheel] test-command = "pytest" test-extras = ["test"] test-sources = ["tests"] [tool.pytest.ini_options] testpaths = ["tests"] filterwarnings = [ "error", ] [tool.ruff.lint] select = [ # pycodestyle "E", # Pyflakes "F", # pyupgrade "UP", # flake8-bugbear "B", # flake8-simplify "SIM", # isort "I", ] [tool.ruff.lint.isort] known-first-party = ["spamsum"] [tool.setuptools] ext-modules = [ {name="spamsum", sources=["src/pyspamsum.c", "src/spamsum.c", "src/edit_dist.c"]}, ] [tool.setuptools_scm] # To enable SCM versioning, we need an empty tool configuration for setuptools_scm