Files
hate_crack/pyproject.toml
Justin Bollinger de2b400f6d chore: align CI and tooling with global development standards
- Remove 6 duplicate per-version pytest workflows (matrix build covers all)
- Pin GitHub Actions to SHA hashes with version comments
- Add persist-credentials: false to checkout steps
- Replace mypy with ty for type checking (faster, stricter)
- Pin dev deps to exact versions (ty==0.0.17, ruff==0.15.1, pytest==9.0.2, pytest-cov==7.0.0)
- Remove types-* stub packages (ty doesn't need them)
- Remove stale [dependency-groups] section from pyproject.toml
- Update shell scripts to use set -euo pipefail
- Add prek.toml for git hook management (pre-push, post-commit)
- Add lint-infra.yml workflow (shellcheck + actionlint)
- Fix actionlint warning: pass github.head_ref through env var
- Track CLAUDE.md and .claude/ scripts in git
- Update README.md and Makefile references from mypy to ty

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 12:42:51 -05:00

88 lines
1.7 KiB
TOML

[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",
"openpyxl>=3.0.0",
"packaging>=21.0",
]
[project.scripts]
hate_crack = "hate_crack.__main__:main"
[project.optional-dependencies]
ml = [
"torch>=2.0.0",
"transformers>=4.30.0",
"datasets>=2.14.0",
"accelerate>=1.1.0",
]
dev = [
"ty==0.0.17",
"ruff==0.15.1",
"pytest==9.0.2",
"pytest-cov==7.0.0",
]
[tool.setuptools.packages.find]
include = ["hate_crack*"]
[tool.setuptools.package-data]
hate_crack = [
"config.json.example",
"hashcat-utils/**",
"princeprocessor/**",
"omen/**",
]
[tool.setuptools_scm]
version_file = "hate_crack/_version.py"
version_scheme = "no-guess-dev"
[tool.ruff]
exclude = [
"build",
"dist",
"PACK",
"hashcat-utils",
"omen",
"princeprocessor",
"wordlists",
"rules",
]
[tool.ty.src]
exclude = [
"build/",
"dist/",
"PACK/",
"wordlists/",
"HashcatRosetta/",
"hashcat-utils/",
"hate_crack/hashcat-utils/",
"hate_crack/omen/",
"hate_crack/princeprocessor/",
]
[tool.ty.rules]
# Module-level globals in main.py are assigned at runtime
unresolved-reference = "warn"
# Optional deps (torch, transformers, hashcat_rosetta) not always installed
unresolved-import = "warn"
# BeautifulSoup union types and module-level globals
unresolved-attribute = "warn"
invalid-argument-type = "warn"
[tool.pytest.ini_options]
testpaths = [
"tests",
]