Add project configuration, .gitignore and the package skeleton
pyproject.toml declares Python 3.13 or later, an empty runtime dependency list and pytest, ruff and mypy as development tools. The package has constants.py, the one place for constants, and a smoke test keeps the test run green. Task: MIL-001#1 Task: MIL-001#2 Task: MIL-001#3
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
[build-system]
|
||||
requires = ["setuptools>=77"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "turtle-challenges"
|
||||
version = "0.1.0"
|
||||
description = "Turtle graphics exercises from Udemy's 100 Days of Code Python bootcamp (day 18)."
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.13"
|
||||
license = "AGPL-3.0-only"
|
||||
license-files = ["LICENSE"]
|
||||
# Only the standard library is used at run time (turtle needs Tk, see README).
|
||||
dependencies = []
|
||||
classifiers = [
|
||||
"Programming Language :: Python :: 3",
|
||||
"Programming Language :: Python :: 3.13",
|
||||
"Topic :: Education",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = [
|
||||
"mypy>=1.13",
|
||||
"pytest>=8.3",
|
||||
"ruff>=0.8",
|
||||
]
|
||||
|
||||
[tool.setuptools.packages.find]
|
||||
where = ["src"]
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
pythonpath = ["src", "."]
|
||||
testpaths = ["tests"]
|
||||
|
||||
[tool.ruff]
|
||||
line-length = 88
|
||||
target-version = "py313"
|
||||
src = ["src", "tests"]
|
||||
# Only the project's own code: the framework submodule and agent skills are not ours.
|
||||
include = ["src/**/*.py", "tests/**/*.py"]
|
||||
|
||||
[tool.ruff.lint]
|
||||
select = ["ANN", "B", "E", "F", "I", "N", "SIM", "UP", "W"]
|
||||
|
||||
[tool.mypy]
|
||||
strict = true
|
||||
files = ["src", "tests"]
|
||||
mypy_path = "src"
|
||||
Reference in New Issue
Block a user