Skip to main content

Validate data-driven Godot content ids, references, and numeric outliers.

Project description

Godot Content Graph Doctor

godot-content-graph-doctor validates data-driven content used by Godot projects. It is useful when items, recipes, quests, dialogue, enemies, levels, or content packs live in JSON, CSV, or TOML files.

It does not need the Godot editor. It reads content files, checks ids and references, and produces reports that work locally or in CI.

Install

python -m pip install godot-content-graph-doctor

From a source checkout:

python -m pip install -e .\godot-content-graph-doctor

Quick Start

godot-content-graph examples\tiny-content-project --config content-graph.toml

Use a built-in preset when the project follows common data folder names:

godot-content-graph path\to\godot-project --preset recipes
godot-content-graph path\to\godot-project --preset quests --preset dialogue --format markdown

See available presets:

godot-content-graph . --list-presets

Write machine-readable output:

godot-content-graph examples\tiny-content-project --config content-graph.toml --format json --output reports\content-graph.json

Create a Mermaid graph:

godot-content-graph examples\tiny-content-project --config content-graph.toml --format mermaid --fail-on none

Show the collections touched by changed files and any downstream collections that reference them:

godot-content-graph path\to\godot-project --preset recipes --changed-file data/items.json --format markdown

Config Example

Presets are useful for quick starts. A config file is still best when a project uses custom paths, field names, or references. Config collections with the same name as a preset collection override the preset.

[collections.items]
path = "data/items.json"
id = "id"
roots = ["copper_ore"]
warn_unused = true
numeric_fields = ["value"]

[collections.recipes]
path = "data/recipes.json"
id = "id"
numeric_fields = ["craft_time"]

[[collections.recipes.references]]
field = "inputs[].item"
collection = "items"

[[collections.recipes.references]]
field = "outputs[].item"
collection = "items"

Each collection points to one file. JSON may be a list of objects or an object containing items, data, rows, or a key matching the collection name. CSV uses the header row. TOML uses items, data, rows, or the collection name.

Reference fields support simple dotted paths and list traversal with [], such as inputs[].item.

Built-In Presets

  • items: data/items.json with common value, price, and weight summaries.
  • recipes: data/items.json plus data/recipes.json input/output item references.
  • quests: quest prerequisites and optional item rewards.
  • dialogue: dialogue speaker and next-node references.
  • levels: level references to item and enemy catalogs.
  • content-pack: overlay item packs under mods/content_pack/items.json.

Checks

  • missing or duplicate ids;
  • references to ids that do not exist in the target collection;
  • unused ids when warn_unused = true;
  • numeric field summaries and transparent outlier warnings.

Outputs

  • text: local terminal report.
  • json: CI and scripts.
  • markdown: PR comments and release notes.
  • mermaid: graph of configured collection references.

JSON, text, and Markdown reports include report metadata, plain-language rule titles, and suggested fixes. JSON reports also include a rules object with the rule explanations used by the current report.

Changed-file impact reports are included in text, json, and markdown output when --changed-file or --changed-files is provided.

Exit Codes

  • 0: no findings at the selected threshold.
  • 1: findings met the selected threshold.
  • 2: CLI usage error.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

godot_content_graph_doctor-0.1.3.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

godot_content_graph_doctor-0.1.3-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

File details

Details for the file godot_content_graph_doctor-0.1.3.tar.gz.

File metadata

File hashes

Hashes for godot_content_graph_doctor-0.1.3.tar.gz
Algorithm Hash digest
SHA256 de4dd6b8f8cd0c11d3b6fd772900541ed79fcb9f158b28acaa297c1df86c3586
MD5 b2a0f2ca4e7d3966b9be11d760fd815a
BLAKE2b-256 02193a8157725d400151c53fd17ef04373fe6613938701caab2f441eadf09aec

See more details on using hashes here.

Provenance

The following attestation bundles were made for godot_content_graph_doctor-0.1.3.tar.gz:

Publisher: publish-content-graph-doctor.yml on NonniGB/godot-production-toolkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file godot_content_graph_doctor-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for godot_content_graph_doctor-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5b7a0251cb4c845b971fc0cd0492f6d0186dce58833a329fb42f49f2a6624b3a
MD5 6b7ed58c8a2ed5aec5d9aba5de7b49cd
BLAKE2b-256 7a09e7b580995cffe7375ea4e484a9aae94a91e26ced7ae272e64b8a057fdee3

See more details on using hashes here.

Provenance

The following attestation bundles were made for godot_content_graph_doctor-0.1.3-py3-none-any.whl:

Publisher: publish-content-graph-doctor.yml on NonniGB/godot-production-toolkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page