ManimCommunity / ManimCommunity/manim

Consolidate file format-related configs

Open
#1,663 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement needs discussion
Dominant language
Python
Stars
40.9k
Forks
3.1k
Avg merge
3d 12h
Merged PRs (30d)
25

Description

Enhancement proposal

Currently there are a number of configs that relate to the output format:

--format
write_to_movie
movie_file_extension

I think there is redundancy here and they are all being handled in different ways, meaning there is room for contradiction. E.g. if config such as --format is set to png and write_to_movie is set to True, or movie_file_extension is gif and --format is mp4. Then you need to set up some precedence and it creates confusion.

I propose to only use a single argument to represent the output format and think --format would be the most suitable. We have other considerations such as if the t flag is set then it may override --format, but cases like this would be easy to handle if we only need to think about one argument. We can determine if we "should write to movie" and what the file extension should be based on the format.

Additional comments

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Trace how --format, write_to_movie, and movie_file_extension are parsed and used, then compare their behavior for conflicting combinations such as PNG with movie output or MP4 with a GIF extension. Done means the output format is represented consistently by one argument and the related movie-writing and extension behavior no longer requires conflicting settings.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.