[build-system] requires = ["setuptools>=69", "setuptools-scm>=8"] build-backend = "setuptools.build_meta" [project] name = "hate_crack" dynamic = ["version"] description = "Menu driven Python wrapper for hashcat" readme = "README.md" requires-python = ">=3.13" dependencies = [ "requests>=2.31.0", "beautifulsoup4>=4.12.0", ] [project.scripts] hate_crack = "hate_crack.__main__:main" [project.optional-dependencies] dev = [ "mypy>=1.8.0", "ruff>=0.3.0", "pytest>=7.0.0", "pytest-cov>=4.0.0", "types-requests>=2.31.0", "types-beautifulsoup4>=4.12.0", "types-openpyxl>=3.0.0", ] [tool.setuptools.packages.find] include = ["hate_crack*"] [tool.setuptools.package-data] hate_crack = [ "config.json.example", "hashcat-utils/**", "princeprocessor/**", ] [tool.setuptools_scm] version_file = "hate_crack/_version.py" version_scheme = "no-guess-dev" [tool.ruff] exclude = [ "build", "dist", "PACK", "hashcat-utils", "princeprocessor", "wordlists", "rules", ] [tool.mypy] exclude = [ "^build/", "^dist/", "^PACK/", "^wordlists/", "^HashcatRosetta/", "^hashcat-utils/", "^hate_crack/hashcat-utils/", "^hate_crack/princeprocessor/", ] ignore_missing_imports = true [tool.pytest.ini_options] testpaths = [ "tests", ]