Files
031-flash-card/pyproject.toml
Tirsvad cc24b7d890 MIL-001: project foundation
pyproject.toml (Python >=3.13, no runtime dependencies, speech and dev extras),
Python .gitignore, layer skeleton with constants.py, Doxyfile, README with the
.venv instructions, the Malay to Danish word list and review record RC-023.

Task: MIL-001#1
Task: MIL-001#2
Task: MIL-001#3
Task: MIL-001#4
Task: MIL-001#5
Task: MIL-001#6
2026-10-14 21:39:14 +08:00

76 lines
1.8 KiB
TOML

[build-system]
requires = ["setuptools>=68"]
build-backend = "setuptools.build_meta"
[project]
name = "flash-card"
version = "0.1.0"
description = "Flash card program for learning Malay words with Danish translations (Udemy 100 Days of Code, day 31)"
readme = "README.md"
requires-python = ">=3.13"
license = "AGPL-3.0-or-later"
license-files = ["LICENSE"]
authors = [{ name = "Jens Tirsvad Nielsen" }]
keywords = ["flashcards", "tkinter", "language-learning", "malay", "danish", "udemy"]
classifiers = [
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.13",
"Environment :: X11 Applications",
"Topic :: Education",
]
# The core program uses the Python standard library only (ADR-0001).
dependencies = []
[project.optional-dependencies]
# Spoken Malay word (text to speech). Optional; the program works without it.
speech = ["gTTS>=2.5", "playsound==1.2.2"]
dev = ["pytest>=8", "ruff>=0.6", "mypy>=1.11", "import-linter>=2.0"]
[project.scripts]
flash-card = "flash_card.presentation.app:run"
[tool.setuptools.packages.find]
where = ["src"]
[tool.setuptools.package-data]
flash_card = ["presentation/assets/*.png"]
[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = ["src"]
addopts = "-ra"
[tool.ruff]
line-length = 88
target-version = "py313"
src = ["src", "tests"]
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B", "SIM", "N", "D"]
ignore = ["D203", "D213"]
[tool.ruff.lint.per-file-ignores]
"tests/**" = ["D"]
[tool.ruff.lint.pydocstyle]
convention = "pep257"
[tool.mypy]
python_version = "3.13"
strict = true
mypy_path = ["src"]
packages = ["flash_card"]
[tool.importlinter]
root_package = "flash_card"
[[tool.importlinter.contracts]]
name = "Layers point inward"
type = "layers"
layers = [
"flash_card.presentation",
"flash_card.infrastructure",
"flash_card.application",
"flash_card.domain",
]