Repository: ManimCommunity/manim
File: manim/_config/utils.py (Python)

Code before:

        Returns
        -------
        self : :class:`ManimConfig`
            This object, after processing the contents of ``parser``.

        See Also
        --------
        :func:`.main_utils.parse_args()`, :meth:`~.ManimConfig.digest_parser`,
        :meth:`~.ManimConfig.digest_file`

        Notes
        -----
        If ``args.config_file`` is a non-empty string, ``ManimConfig`` tries to digest the
        contents of said file with :meth:`~ManimConfig.digest_file` before
        digesting any other CLI arguments.

        """
        # if a config file has been passed, digest it first so that other CLI
        # flags supersede it
        if args.config_file:
            self.digest_file(args.config_file)

        self.input_file = Path(args.file).absolute() if args.file != "-" else args.file
        self.scene_names = args.scene_names if args.scene_names is not None else []
        self.output_file = args.output_file

        for key in [
            "preview",
            "show_in_file_browser",
            "sound",
            "leave_progress_bars",
            "write_to_movie",
            "save_last_frame",
            "save_pngs",
            "save_as_gif",
            "write_all",
            "disable_caching",
            "flush_cache",
            "transparent",
            "scene_names",
            "verbosity",
            "background_color",
            "use_webgl_renderer",
            "webgl_updater_fps",
        ]:
            if hasattr(args, key):
                attr = getattr(args, key)
                # if attr is None, then no argument was passed and we should
                # not change the current config
                if attr is not None:

Review comment (suggestion):
I would rather not change this. Instead change 
https://github.com/ManimCommunity/manim/blob/14df62c3e1e210447642b911d4cba8b5c9686820/manim/utils/module_ops.py#L12
to 
```py
    if file_name.stem == "-":
```
But anyway the current one works.

Code after:

        Returns
        -------
        self : :class:`ManimConfig`
            This object, after processing the contents of ``parser``.

        See Also
        --------
        :func:`.main_utils.parse_args()`, :meth:`~.ManimConfig.digest_parser`,
        :meth:`~.ManimConfig.digest_file`

        Notes
        -----
        If ``args.config_file`` is a non-empty string, ``ManimConfig`` tries to digest the
        contents of said file with :meth:`~ManimConfig.digest_file` before
        digesting any other CLI arguments.

        """
        # if a config file has been passed, digest it first so that other CLI
        # flags supersede it
        if args.config_file:
            self.digest_file(args.config_file)

        # If args.file is `-`, the animation code has to be taken from STDIN, so the
        # input file path shouldn't be absolute, since that file won't be read.
        self.input_file = Path(args.file).absolute() if args.file != "-" else args.file
        self.scene_names = args.scene_names if args.scene_names is not None else []
        self.output_file = args.output_file

        for key in [
            "preview",
            "show_in_file_browser",
            "sound",
            "leave_progress_bars",
            "write_to_movie",
            "save_last_frame",
            "save_pngs",
            "save_as_gif",
            "write_all",
            "disable_caching",
            "flush_cache",
            "transparent",
            "scene_names",
            "verbosity",
            "background_color",
            "use_webgl_renderer",
            "webgl_updater_fps",
        ]:
            if hasattr(args, key):
                attr = getattr(args, key)
                # if attr is None, then no argument was passed and we should