Euler source The code that runs the solver shell and this site, version 4.34.2 Repository on GitHub

The published Project Euler Solver content: guides, blogs, public solutions.

31 lines of TOML Raw file Open on GitHub

# euler-content: the published content as a data-only wheel (docs/package-guide.md § 4.1).
#
# Not built from here directly: `scripts/content/stage.py` copies this folder to a scratch
# directory, lays the public tree into `euler_content/tree/` (tracked files only, never
# `solutions/private`) and stamps `euler_content/_version.py` from `packages/solver/solver/version.py` —
# lockstep with the code (§ 5.2). The public site (`euler-site`) serves from the installed copy.
[build-system]
requires = ["setuptools>=77"]
build-backend = "setuptools.build_meta"

[project]
name = "euler-content"
description = "The published Project Euler Solver content: guides, blogs, public solutions."
requires-python = ">=3.14"
license = "MIT"
dynamic = ["version"]

[tool.setuptools.dynamic]
version = { attr = "euler_content._version.__version__" }

[tool.setuptools]
packages = ["euler_content"]
# The tree ships through `package-data` below, which needs no manifest. With
# `include-package-data = true` setuptools also reads the files off the manifest, sees that
# directories like `tree/solutions/public/p0042` are importable (they hold `.py` files) yet not
# listed in `packages`, and warns "Package would be ignored" once per directory (182 times)
# when pip shows build output. The wheel's file list is identical either way.
include-package-data = false

[tool.setuptools.package-data]
euler_content = ["tree/**/*"]