"""Scene I/O: parso-based round-trip parsing and editing of scene `.py` files.
Tier 1 (`source_tree`) provides the lossless parse/dump primitive; Tier 2
(`edits`) provides prefix-preserving editing primitives that operate on the
parso tree returned by Tier 1. Tier 3a (`emitter`, `detection`) provides
greenfield Python emission for live node trees and lightweight scene-file
detection.
"""
from . import edits
from .detection import (
AmbiguousSceneError,
has_procedural_construction,
is_scene_path,
primary_node_class_from_source,
)
from .emitter import (
emit_node_construction,
emit_scene,
emit_value,
iter_runtime_kwargs,
structural_type_name,
)
from .loader import load_scene
from .scene_file import ImportSet, SceneClass, SceneFile
from .scene_module import NotASceneModuleError, SceneModule
from .source_tree import SourceTree, parse_snippet, parse_source
from .symbols import (
ClassDefRef,
UseSiteRef,
find_class_definitions,
find_class_uses,
rename_class_in_source,
rename_module_in_imports,
)
__all__ = [
"AmbiguousSceneError",
"ClassDefRef",
"ImportSet",
"NotASceneModuleError",
"SceneClass",
"SceneFile",
"SceneModule",
"SourceTree",
"UseSiteRef",
"edits",
"emit_node_construction",
"emit_scene",
"emit_value",
"find_class_definitions",
"find_class_uses",
"has_procedural_construction",
"is_scene_path",
"iter_runtime_kwargs",
"load_scene",
"parse_snippet",
"parse_source",
"primary_node_class_from_source",
"rename_class_in_source",
"rename_module_in_imports",
"structural_type_name",
]