creative-render-engine 0.7.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,72 @@
1
+ from .api import (
2
+ compile,
3
+ generate_timeline_subtitles,
4
+ measure_graphic_text,
5
+ preview,
6
+ render,
7
+ render_task_hash,
8
+ render_task_json_schema,
9
+ validate_render_task,
10
+ )
11
+ from .errors import (
12
+ AssetError,
13
+ CompileError,
14
+ ConfigurationError,
15
+ ContractError,
16
+ CreativeRenderEngineError,
17
+ RenderError,
18
+ )
19
+ from .plans import GraphicTextMeasurement, PreviewManifest, RenderManifest, RenderPlan
20
+ from .schemas import (
21
+ GraphicTextRenderTask,
22
+ PureImageRenderTask,
23
+ RenderTask,
24
+ ScrollRenderTask,
25
+ TimelineRenderTask,
26
+ TimelineSubtitleBlock,
27
+ TimelineSubtitleConfig,
28
+ TimelineSubtitleFrame,
29
+ TimelineSubtitleFrameItem,
30
+ TimelineSubtitleLayout,
31
+ TimelineSubtitleTemplate,
32
+ TimelineTemplate,
33
+ WpmSubtitleGenerationOptions,
34
+ )
35
+ from .settings import settings
36
+
37
+ __version__ = "0.7.0"
38
+
39
+ __all__ = [
40
+ "AssetError",
41
+ "CompileError",
42
+ "ConfigurationError",
43
+ "ContractError",
44
+ "CreativeRenderEngineError",
45
+ "GraphicTextMeasurement",
46
+ "GraphicTextRenderTask",
47
+ "PreviewManifest",
48
+ "PureImageRenderTask",
49
+ "RenderError",
50
+ "RenderManifest",
51
+ "RenderPlan",
52
+ "RenderTask",
53
+ "ScrollRenderTask",
54
+ "TimelineRenderTask",
55
+ "TimelineSubtitleBlock",
56
+ "TimelineSubtitleConfig",
57
+ "TimelineSubtitleFrame",
58
+ "TimelineSubtitleFrameItem",
59
+ "TimelineSubtitleLayout",
60
+ "TimelineSubtitleTemplate",
61
+ "TimelineTemplate",
62
+ "WpmSubtitleGenerationOptions",
63
+ "compile",
64
+ "generate_timeline_subtitles",
65
+ "measure_graphic_text",
66
+ "preview",
67
+ "render",
68
+ "render_task_hash",
69
+ "render_task_json_schema",
70
+ "settings",
71
+ "validate_render_task",
72
+ ]
@@ -0,0 +1,79 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Sequence
4
+ from pathlib import Path
5
+ from typing import Any
6
+
7
+ from pydantic import TypeAdapter
8
+
9
+ from .compiler import (
10
+ compile_task,
11
+ generate_timeline_subtitles,
12
+ measure_graphic_text_task,
13
+ validate_render_task,
14
+ )
15
+ from .hashing import stable_sha256
16
+ from .output_paths import resolve_preview_dir, resolve_render_path
17
+ from .plans import GraphicTextMeasurement, PreviewManifest, RenderManifest, RenderPlan
18
+ from .preview import preview_plan
19
+ from .render import render_plan
20
+ from .schemas import GraphicTextRenderTask, RenderTask
21
+
22
+ _RENDER_TASK_ADAPTER: TypeAdapter[RenderTask] = TypeAdapter(RenderTask)
23
+
24
+
25
+ def compile(value: RenderTask | dict[str, Any]) -> RenderPlan:
26
+ return compile_task(value)
27
+
28
+
29
+ def measure_graphic_text(
30
+ value: GraphicTextRenderTask | dict[str, Any],
31
+ ) -> GraphicTextMeasurement:
32
+ return measure_graphic_text_task(value)
33
+
34
+
35
+ def preview(
36
+ plan: RenderPlan,
37
+ output_dir: str | Path | None = None,
38
+ *,
39
+ timestamps: Sequence[float] | None = None,
40
+ ) -> PreviewManifest:
41
+ return preview_plan(plan, resolve_preview_dir(output_dir), timestamps=timestamps)
42
+
43
+
44
+ def render(
45
+ plan: RenderPlan,
46
+ output_path: str | Path | None = None,
47
+ *,
48
+ output_dir: str | Path | None = None,
49
+ output_filename: str | None = None,
50
+ show_progress: bool = False,
51
+ ) -> RenderManifest:
52
+ destination = resolve_render_path(
53
+ output_path,
54
+ output_dir=output_dir,
55
+ output_filename=output_filename,
56
+ kind=plan.kind,
57
+ )
58
+ return render_plan(plan, destination, show_progress=show_progress)
59
+
60
+
61
+ def render_task_hash(value: RenderTask | dict[str, Any]) -> str:
62
+ """Return the SHA-256 of the strictly normalized RenderTask payload."""
63
+ return stable_sha256(validate_render_task(value))
64
+
65
+
66
+ def render_task_json_schema() -> dict[str, Any]:
67
+ return _RENDER_TASK_ADAPTER.json_schema()
68
+
69
+
70
+ __all__ = [
71
+ "compile",
72
+ "generate_timeline_subtitles",
73
+ "measure_graphic_text",
74
+ "preview",
75
+ "render",
76
+ "render_task_hash",
77
+ "render_task_json_schema",
78
+ "validate_render_task",
79
+ ]