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

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.

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.1.tar.gz (11.7 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.1-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for godot_content_graph_doctor-0.1.1.tar.gz
Algorithm Hash digest
SHA256 8c86f019f5b89504465b8c0195895f03f8ffb90f025fed9081e611b9bc80bc4d
MD5 1ad2c93df9edef15424c1609a4db82e0
BLAKE2b-256 581fd111b012f0968f5fb44b3552d30df24be74c0e75acede25b0306ccde90b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for godot_content_graph_doctor-0.1.1.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.1-py3-none-any.whl.

File metadata

File hashes

Hashes for godot_content_graph_doctor-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e3cff4f0d7a4c81d72d6d98ae71167726a0ee5cefdfeb879836e78aa7ad841bd
MD5 c671fc242798df45eab0fe8c386a79d4
BLAKE2b-256 9d558d487ac18505df780d0128d2322d8f3d8f77e44b1cc43ae075934659009a

See more details on using hashes here.

Provenance

The following attestation bundles were made for godot_content_graph_doctor-0.1.1-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