Skip to content

Commit 8a03d0e

Browse files
committed
Move json functions from timeline.py
1 parent f6ea0fc commit 8a03d0e

File tree

2 files changed

+39
-43
lines changed

2 files changed

+39
-43
lines changed

auto_editor/exports/json.py

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,44 @@
1-
from __future__ import annotations
2-
31
import sys
4-
from typing import TYPE_CHECKING
52

63
from auto_editor.json import dump
7-
from auto_editor.timeline import v3
8-
9-
if TYPE_CHECKING:
10-
from auto_editor.utils.log import Log
4+
from auto_editor.timeline import Clip, v3
5+
from auto_editor.utils.log import Log
6+
7+
8+
def as_dict(self: v3) -> dict:
9+
def aclip_to_dict(self: Clip) -> dict:
10+
return {
11+
"name": "audio",
12+
"src": self.src,
13+
"start": self.start,
14+
"dur": self.dur,
15+
"offset": self.offset,
16+
"speed": self.speed,
17+
"volume": self.volume,
18+
"stream": self.stream,
19+
}
20+
21+
v = []
22+
a = []
23+
for vlayer in self.v:
24+
vb = [vobj.as_dict() for vobj in vlayer]
25+
if vb:
26+
v.append(vb)
27+
for layer in self.a:
28+
ab = [aclip_to_dict(clip) for clip in layer]
29+
if ab:
30+
a.append(ab)
31+
32+
return {
33+
"version": "3",
34+
"timebase": f"{self.tb.numerator}/{self.tb.denominator}",
35+
"background": self.background,
36+
"resolution": self.T.res,
37+
"samplerate": self.T.sr,
38+
"layout": self.T.layout,
39+
"v": v,
40+
"a": a,
41+
}
1142

1243

1344
def make_json_timeline(ver: str, out: str, tl: v3, log: Log) -> None:
@@ -20,7 +51,7 @@ def make_json_timeline(ver: str, out: str, tl: v3, log: Log) -> None:
2051
outfile = open(out, "w")
2152

2253
if ver == "v3":
23-
dump(tl.as_dict(), outfile, indent=2)
54+
dump(as_dict(tl), outfile, indent=2)
2455
else:
2556
if tl.v1 is None:
2657
log.error("Timeline can't be converted to v1 format")

auto_editor/timeline.py

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -282,41 +282,6 @@ def __len__(self) -> int:
282282

283283
return result
284284

285-
def as_dict(self) -> dict:
286-
def aclip_to_dict(self: Clip) -> dict:
287-
return {
288-
"name": "audio",
289-
"src": self.src,
290-
"start": self.start,
291-
"dur": self.dur,
292-
"offset": self.offset,
293-
"speed": self.speed,
294-
"volume": self.volume,
295-
"stream": self.stream,
296-
}
297-
298-
v = []
299-
a = []
300-
for vlayer in self.v:
301-
vb = [vobj.as_dict() for vobj in vlayer]
302-
if vb:
303-
v.append(vb)
304-
for layer in self.a:
305-
ab = [aclip_to_dict(clip) for clip in layer]
306-
if ab:
307-
a.append(ab)
308-
309-
return {
310-
"version": "3",
311-
"timebase": f"{self.tb.numerator}/{self.tb.denominator}",
312-
"background": self.background,
313-
"resolution": self.T.res,
314-
"samplerate": self.T.sr,
315-
"layout": self.T.layout,
316-
"v": v,
317-
"a": a,
318-
}
319-
320285
@property
321286
def T(self) -> Template:
322287
return self.template

0 commit comments

Comments
 (0)