mirror of
https://github.com/3b1b/manim.git
synced 2025-08-02 19:46:21 +08:00
Misc. clean up (#2269)
* 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
This commit is contained in:
@ -36,12 +36,6 @@ def get_num_args(function: Callable) -> int:
|
||||
def get_parameters(function: Callable) -> Iterable[str]:
|
||||
return inspect.signature(function).parameters.keys()
|
||||
|
||||
# Just to have a less heavyweight name for this extremely common operation
|
||||
#
|
||||
# We may wish to have more fine-grained control over division by zero behavior
|
||||
# in the future (separate specifiable values for 0/0 and x/0 with x != 0),
|
||||
# but for now, we just allow the option to handle indeterminate 0/0.
|
||||
|
||||
|
||||
def clip(a: float, min_a: float, max_a: float) -> float:
|
||||
if a < min_a:
|
||||
@ -58,6 +52,10 @@ def arr_clip(arr: np.ndarray, min_a: float, max_a: float) -> np.ndarray:
|
||||
|
||||
|
||||
def fdiv(a: Scalable, b: Scalable, zero_over_zero_value: Scalable | None = None) -> Scalable:
|
||||
"""
|
||||
Less heavyweight name for np.true_divide, enabling
|
||||
default behavior for 0/0
|
||||
"""
|
||||
if zero_over_zero_value is not None:
|
||||
out = np.full_like(a, zero_over_zero_value)
|
||||
where = np.logical_or(a != 0, b != 0)
|
||||
@ -68,11 +66,13 @@ def fdiv(a: Scalable, b: Scalable, zero_over_zero_value: Scalable | None = None)
|
||||
return np.true_divide(a, b, out=out, where=where)
|
||||
|
||||
|
||||
def binary_search(function: Callable[[float], float],
|
||||
target: float,
|
||||
lower_bound: float,
|
||||
upper_bound: float,
|
||||
tolerance:float = 1e-4) -> float | None:
|
||||
def binary_search(
|
||||
function: Callable[[float], float],
|
||||
target: float,
|
||||
lower_bound: float,
|
||||
upper_bound: float,
|
||||
tolerance:float = 1e-4
|
||||
) -> float | None:
|
||||
lh = lower_bound
|
||||
rh = upper_bound
|
||||
mh = (lh + rh) / 2
|
||||
|
Reference in New Issue
Block a user