# SPDX-FileCopyrightText: 2026 Dennis Fink # # SPDX-License-Identifier: BSD-3-Clause [project] name = "duplicate-finder" dynamic = ["version"] description = "Find duplicate files by size and hash." license = "BSD-3-Clause" license-files = ["LICENSES/BSD-3-Clause.txt"] authors = [ { name = "Dennis Fink", email = "me+coding@dennisfink.me" } ] readme = "README.md" requires-python = ">=3.14" dependencies = [ "click-extra>=9.1.0", "humanize>=4.16.0", "tabulate>=0.10.0", "tqdm>=4.70.0", "xxhash>=4.0.1", ] classifiers = [ "Development Status :: 5 - Production/Stable", "Programming Language :: Python", "Programming Language :: Python :: 3.14", "Environment :: Console", ] [project.scripts] duplicate-finder = "duplicate_finder:duplicate_finder" [dependency-groups] dev = [ "pyright>=1.1.411", "ruff>=0.16.6", ] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.version] path = "duplicate_finder/__init__.py" [tool.hatch.build.targets.wheel] packages = ["duplicate_finder"] [tool.hatch.build.targets.sdist] include = [ "duplicate_finder/", "LICENSES/", "README.md", "pyproject.toml" ] [tool.uv] default-groups = ["dev"] [tool.ruff.format] skip-magic-trailing-comma = true