* Comment tweak
* Directly print traceback
Since the shell.showtraceback is giving some issues
* Make InteracrtiveSceneEmbed into a class
This way it can keep track of it's internal shell; use of get_ipython has a finicky relationship with reloading.
* Move remaining checkpoint_paste logic into scene_embed.py
This involved making a few context managers for Scene: temp_record, temp_skip, temp_progress_bar, which seem useful in and of themselves.
* Change null key to be the empty string
* Ensure temporary svg paths for Text are deleted
* Remove unused dict_ops.py functions
* Remove break_into_partial_movies from file_writer configuration
* Rewrite guarantee_existence using Path
* Clean up SceneFileWriter
It had a number of vestigial functions no longer used, and some setup that could be made more organized.
* Remove --save_pngs CLI arg (which did nothing)
* Add --subdivide CLI arg
* Remove add_extension_if_not_present
* Remove get_sorted_integer_files
* Have find_file return Path
* Minor clean up
* Clean up num_tex_symbols
* Fix find_file
* Minor cleanup for extract_scene.py
* Add preview_frame_while_skipping option to scene config
* Use shell.showtraceback function
* Move keybindings to config, instead of in-place constants
* Replace DEGREES -> DEG
* Add arg to clear the cache
* Separate out full_tex_to_svg from tex_to_svg
And only cache to disk the results of full_tex_to_svg. Otherwise, making edits to the tex_templates would not show up without clearing the cache.
* Bug fix in handling BlankScene
* Make checkpoint_states an instance variable of CheckpointManager
As per https://github.com/3b1b/manim/issues/2272
* Move resizing out of Window.focus, and into Window.init_for_scene
* Make default output directory "." instead of ""
To address https://github.com/3b1b/manim/issues/2261
* Remove input_file_path arg from SceneFileWriter
* Use Dict syntax in place of dict for config more consistently across config.py
* Simplify get_output_directory
* Swap order of preamble and additional preamble
* Comment tweak
* Directly print traceback
Since the shell.showtraceback is giving some issues
* Make InteracrtiveSceneEmbed into a class
This way it can keep track of it's internal shell; use of get_ipython has a finicky relationship with reloading.
* Move remaining checkpoint_paste logic into scene_embed.py
This involved making a few context managers for Scene: temp_record, temp_skip, temp_progress_bar, which seem useful in and of themselves.
* Change null key to be the empty string
* Ensure temporary svg paths for Text are deleted
* Remove unused dict_ops.py functions
* Remove break_into_partial_movies from file_writer configuration
* Rewrite guarantee_existence using Path
* Clean up SceneFileWriter
It had a number of vestigial functions no longer used, and some setup that could be made more organized.
* Remove --save_pngs CLI arg (which did nothing)
* Add --subdivide CLI arg
* Remove add_extension_if_not_present
* Remove get_sorted_integer_files
* Have find_file return Path
* Minor clean up
* Clean up num_tex_symbols
* Fix find_file
* Minor cleanup for extract_scene.py
* Add preview_frame_while_skipping option to scene config
* Use shell.showtraceback function
* Move keybindings to config, instead of in-place constants
* Replace DEGREES -> DEG
It may become a bit unwieldy to make sure this matches the structure of default_config, given the amount of code repetition involved. It seems easier for a user to just create their own custom_config.yml file directly.
Instead, load the relevant module of the true file, and execute the modified code within that.
This also cleans up some of the previous now-unnecessary code around get_module_with_inserted_embed_line
* Experiment a lot with module loading
* Extract methods out of experimental mess
* Fix get module return type
* Only reload() modules during reload() command
* Remove unnecessary default parameter
* Add docstrings and logging statements
* Delete unwanted printout
* Improve logging messages
* Extract methods to a new class ModuleLoader
* Remove unused builtins import
* exec_module in any case at the end
* Clarify docstrings & move get_module method up in file
* Add more additionally excluded modules as array
* Distinguish between user-defined modules and external libraries like numpy
* Improved tracked_import docstring
* Remove _insert_embed suffix before logging
* Fix args.is_reload not defined error
* Refine logic to determine whether module is user-defined or not
* Fix list vs. set type annotations
* Improve docstrings & change order of early return
* Fix spelling mistake of "Reloading"
* Try out custom deep reload
* Make deep reload more robust
* Also reload modules imported as classes
* Move early return up to greatly improve performance
* Clean up comments
* Make methods of Module Loader "private"
* Add backticks around function in docstring
---------
Co-authored-by: Grant Sanderson <grant@3blue1brown.com>
* Remove print("Reloading...")
* Change where exception mode is set, to be quieter
* Add default fallback monitor for when no monitors are detected
* Have StringMobject work with svg strings rather than necessarily writing to file
Change SVGMobject to allow taking in a string of svg code as an input
* Add caching functionality, and have Tex and Text both use it for saved svg strings
* Clean up tex_file_writing
* Get rid of get_tex_dir and get_text_dir
* Allow for a configurable cache location
* Make caching on disk a decorator, and update implementations for Tex and Text mobjects
* Remove stray prints
* Clean up how configuration is handled
In principle, all we need here is that manim looks to the default_config.yaml file, and updates it based on any local configuration files, whether in the current working directory or as specified by a CLI argument.
* Make the default size for hash_string an option
* Remove utils/customization.py
* Remove stray prints
* Consolidate camera configuration
This is still not optimal, but at least makes clearer the way that importing from constants.py kicks off some of the configuration code.
* Factor out configuration to be passed into a scene vs. that used to run a scene
* Use newer extract_scene.main interface
* Add clarifying message to note what exactly is being reloaded
* Minor clean up
* Minor clean up
* If it's worth caching to disk, then might as well do so in memory too during development
* No longer any need for custom hash_seeds in Tex and Text
* Remove display_during_execution
* Get rid of (no longer used) mobject_data directory reference
* Remove get_downloads_dir reference from register_font
* Update where downloads go
* Easier use of subdirectories in configuration
* Add new pip requirements