Skip to content

Commit 62080bf

Browse files
Refactor manim config into main() and always append repo name to media path
Signed-off-by: Jacob Stopak <[email protected]>
1 parent a1401f1 commit 62080bf

File tree

2 files changed

+36
-28
lines changed

2 files changed

+36
-28
lines changed

git_sim/__main__.py

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import pathlib
2-
32
import typer
3+
import os
4+
import sys
5+
import datetime
6+
import time
7+
import git
48

59
import git_sim.add
610
import git_sim.branch
@@ -16,12 +20,14 @@
1620
import git_sim.status
1721
import git_sim.tag
1822
from git_sim.settings import ImgFormat, VideoFormat, settings
23+
from manim import config, WHITE
1924

2025
app = typer.Typer(context_settings={"help_option_names": ["-h", "--help"]})
2126

2227

2328
@app.callback(no_args_is_help=True)
2429
def main(
30+
ctx: typer.Context,
2531
animate: bool = typer.Option(
2632
settings.animate,
2733
help="Animate the simulation and output as an mp4 video",
@@ -110,7 +116,7 @@ def main(
110116
settings.low_quality = low_quality
111117
settings.max_branches_per_commit = max_branches_per_commit
112118
settings.max_tags_per_commit = max_tags_per_commit
113-
settings.media_dir = media_dir
119+
settings.media_dir = os.path.join(os.path.expanduser(media_dir), "git-sim_media")
114120
settings.outro_bottom_text = outro_bottom_text
115121
settings.outro_top_text = outro_top_text
116122
settings.reverse = reverse
@@ -121,6 +127,29 @@ def main(
121127
settings.video_format = video_format
122128
settings.stdout = stdout
123129

130+
if sys.platform == "linux" or sys.platform == "darwin":
131+
repo_name = git.repo.Repo(
132+
search_parent_directories=True
133+
).working_tree_dir.split("/")[-1]
134+
elif sys.platform == "win32":
135+
repo_name = git.repo.Repo(
136+
search_parent_directories=True
137+
).working_tree_dir.split("\\")[-1]
138+
139+
settings.media_dir = os.path.join(settings.media_dir, repo_name)
140+
141+
config.media_dir = settings.media_dir
142+
config.verbosity = "ERROR"
143+
144+
if settings.low_quality:
145+
config.quality = "low_quality"
146+
147+
if settings.light_mode:
148+
config.background_color = WHITE
149+
150+
t = datetime.datetime.fromtimestamp(time.time()).strftime("%m-%d-%y_%H-%M-%S")
151+
config.output_file = "git-sim-" + ctx.invoked_subcommand + "_" + t + ".mp4"
152+
124153

125154
app.command()(git_sim.add.add)
126155
app.command()(git_sim.branch.branch)

git_sim/animations.py

Lines changed: 5 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,19 @@
11
import datetime
22
import inspect
33
import os
4-
import pathlib
54
import subprocess
65
import sys
76
import time
87

98
import cv2
109
import git.repo
11-
from manim import WHITE, Scene, config
10+
from manim import WHITE, Scene
1211
from manim.utils.file_ops import open_file
1312

1413
from git_sim.settings import settings
1514

1615

1716
def handle_animations(scene: Scene) -> None:
18-
if sys.platform == "linux" or sys.platform == "darwin":
19-
repo_name = git.repo.Repo(
20-
search_parent_directories=True
21-
).working_tree_dir.split("/")[-1]
22-
elif sys.platform == "win32":
23-
repo_name = git.repo.Repo(
24-
search_parent_directories=True
25-
).working_tree_dir.split("\\")[-1]
26-
27-
config.media_dir = os.path.join(
28-
os.path.expanduser(settings.media_dir), "git-sim_media"
29-
)
30-
config.verbosity = "ERROR"
31-
32-
if settings.low_quality:
33-
config.quality = "low_quality"
34-
35-
if settings.light_mode:
36-
config.background_color = WHITE
37-
38-
t = datetime.datetime.fromtimestamp(time.time()).strftime("%m-%d-%y_%H-%M-%S")
39-
config.output_file = "git-sim-" + inspect.stack()[1].function + "_" + t + ".mp4"
40-
4117
scene.render()
4218

4319
if settings.video_format == "webm":
@@ -56,6 +32,9 @@ def handle_animations(scene: Scene) -> None:
5632
video = cv2.VideoCapture(str(scene.renderer.file_writer.movie_file_path))
5733
success, image = video.read()
5834
if success:
35+
t = datetime.datetime.fromtimestamp(time.time()).strftime(
36+
"%m-%d-%y_%H-%M-%S"
37+
)
5938
image_file_name = (
6039
"git-sim-"
6140
+ inspect.stack()[1].function
@@ -65,7 +44,7 @@ def handle_animations(scene: Scene) -> None:
6544
+ settings.img_format
6645
)
6746
image_file_path = os.path.join(
68-
os.path.join(config.media_dir, "images"), image_file_name
47+
os.path.join(settings.media_dir, "images"), image_file_name
6948
)
7049
cv2.imwrite(image_file_path, image)
7150
if not settings.stdout:

0 commit comments

Comments
 (0)