Files
Tirsvad c4a51c37de Add project scaffold, tooling, README and container image
pyproject.toml (Python 3.13, Selenium only at runtime), src and tests layout,
constants.py, Python .gitignore, Doxyfile, README from the framework template
with .venv instructions, Dockerfile for headless Chromium, code review RC-014.

Closes #8
Closes #9
Closes #10
Closes #11
Closes #12
Closes #13

Task: MIL-002#1
Task: MIL-002#2
Task: MIL-002#3
Task: MIL-002#4
Task: MIL-002#5
Task: MIL-002#6
2026-10-28 17:15:31 +08:00

63 lines
1.3 KiB
TOML

[build-system]
requires = ["setuptools>=75"]
build-backend = "setuptools.build_meta"
[project]
name = "cookie-clicker-bot"
version = "0.1.0"
description = "Selenium bot that plays Cookie Clicker (Udemy 100 Days of Code, day 48)."
readme = "README.md"
requires-python = ">=3.13"
license = { file = "LICENSE" }
dependencies = [
"selenium>=4.25",
]
[project.optional-dependencies]
dev = [
"pytest>=8.3",
"pytest-cov>=6.0",
"ruff>=0.8",
"mypy>=1.13",
]
[project.scripts]
cookie-clicker-bot = "cookie_clicker_bot.cli:main"
[tool.setuptools.packages.find]
where = ["src"]
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "-ra --strict-markers"
pythonpath = ["src"]
markers = [
"browser: needs a real browser (run in the Docker container)",
]
[tool.coverage.run]
source = ["cookie_clicker_bot"]
omit = ["*/infrastructure/*", "*/cli.py", "*/__main__.py"]
[tool.coverage.report]
fail_under = 80
show_missing = true
[tool.ruff]
line-length = 88
target-version = "py313"
src = ["src", "tests"]
extend-exclude = ["framework", ".claude", ".agents"]
[tool.ruff.lint]
select = ["E", "F", "I", "B", "UP", "N", "D", "ANN", "S", "PT"]
ignore = ["D203", "D213", "D205", "D212", "D400", "D415", "D401"]
[tool.ruff.lint.per-file-ignores]
"tests/**" = ["S101", "D"]
[tool.mypy]
strict = true
python_version = "3.13"
files = ["src", "tests"]