[project] name = "kink-cli-prototype" version = "0.1.0" description = "Interactive prototype for kink discovery and overlap testing" requires-python = ">=3.12" dependencies = [ "boto3>=1.34.0", "beautifulsoup4>=4.14.3", "petname>=2.6", "click>=8.1.0", "fastapi>=0.118.0", "huggingface_hub>=0.26.0", "httpx>=0.28.1", "networkx>=3.2.0", "numpy>=2.0.0", "playwright>=1.58.0", "prompt_toolkit>=3.0.52", "rapidfuzz>=3.9.0", "rich>=14.3.3", "scikit-learn>=1.8.0", "selenium>=4.41.0", "snowballstemmer>=2.2.0", "spacy>=3.7.0", "en-core-web-sm @ https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.8.0/en_core_web_sm-3.8.0-py3-none-any.whl", "sqlmodel>=0.0.38", "sse-starlette>=2.0.0", "uvicorn>=0.37.0", "click>=8.1.0", ] [build-system] requires = ["setuptools>=68", "wheel"] build-backend = "setuptools.build_meta" [tool.setuptools.packages.find] include = ["backend*"] [dependency-groups] dev = [ "dead>=2.1.0", "mutmut>=3.5.0", "ruff>=0.15.11", "semgrep>=1.161.0", ] [tool.setuptools] py-modules = ["api", "models"] [tool.pytest.ini_options] pythonpath = ["."] testpaths = ["tests"] [tool.mutmut] paths_to_mutate = [ "backend/partners.py", "backend/scenarios.py", "backend/shared_play.py", "backend/starter_policy.py", ] also_copy = [ "api.py", "models.py", "backend/", "scripts/", "tests/fixtures/", ] pytest_add_cli_args_test_selection = [ "tests/test_adversarial_api.py", "tests/test_partner_groups.py", "tests/test_partner_related_matches.py", "tests/test_scenarios.py", "tests/test_starter_policy.py", "tests/test_two_user_flow_tree.py", ] runner = "python -m pytest -q" [project.optional-dependencies] test = [ "blockbuster>=1.5", ] audit = [ "bandit>=1.8.6", "pip-audit>=2.9.0", "schemathesis>=3.39.16", ] recsys = [ "cornac==2.3.5", "faiss-cpu>=1.13.0", "pandas>=2.3.0,<3.0", ] recsys-experimental = [ "recommenders==1.2.1", ] clip = [ "torch>=2.2.0", "open-clip-torch>=2.24.0", "pillow>=10.0.0", ]