///|
/// A reproducible cross-artifact audit. The METADATA document is a real PyPI
/// PEP 658 sidecar from the checked-in corpus; the index and lock are small,
/// explicit scenario inputs that make the expected selection inspectable.
fn main {
let mut metadata = ""
for (name, document) in @fixtures.metadata_pypi_cases {
if name == "flask-0.12.5" {
metadata = document
}
}
if metadata.is_empty() {
abort("checked-in Flask metadata fixture is missing")
}
let index = "{\"meta\":{\"api-version\":\"1.1\"},\"name\":\"Flask\",\"files\":[{\"filename\":\"Flask-0.12.5-py3-none-any.whl\",\"url\":\"https://files.pythonhosted.org/example.whl\",\"hashes\":{\"sha256\":\"0123456789abcdef\"},\"requires-python\":\">=2.6\"},{\"filename\":\"Flask-1.0-py3-none-any.whl\",\"url\":\"https://files.pythonhosted.org/yanked.whl\",\"hashes\":{\"sha256\":\"fedcba9876543210\"},\"yanked\":\"scenario exclusion\"}]}"
let lock = "lock-version = \"1.0\"\ncreated-by = \"moon-pyversion-audit\"\n[[packages]]\nname = \"Flask\"\nversion = \"0.12.5\"\nwheels = [{name = \"Flask-0.12.5-py3-none-any.whl\", url = \"https://files.pythonhosted.org/example.whl\", hashes = {sha256 = \"0123456789abcdef\"}}]\n"
let environment = @pyversion.MarkerEnvironment::new()
environment.set("python_version", "3.11")
environment.set("python_full_version", "3.11.9")
environment.set("sys_platform", "linux")
let report = @pyversion.audit_package(
"Flask==0.12.5",
metadata,
index,
lock,
environment,
"3.11.9",
["py3-none-any"],
) catch {
error => abort("audit input rejected: " + error.to_string())
}
println(report.render())
if report.disposition() != @pyversion.Ready {
abort("scenario must be ready")
}
}