Skip to content

Commit 4748f3c

Browse files
committed
Merge remote-tracking branch 'origin/master' into moderngl
2 parents 5e726c0 + 78edb2a commit 4748f3c

File tree

79 files changed

+2452
-620
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+2452
-620
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,9 @@ ipython_config.py
8383
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
8484
__pypackages__/
8585

86+
# PyCharm
87+
/.idea/
88+
8689
# Celery stuff
8790
celerybeat-schedule
8891
celerybeat.pid

docker/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ RUN apt-get update -qq \
66
gcc \
77
libcairo2-dev \
88
libffi-dev \
9+
libpango1.0-dev \
910
pkg-config \
1011
wget
1112

docs/rtd-requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
imageio-ffmpeg
2-
jupyterlab
2+
jupyterlab
3+
https://github.com/ManimCommunity/ManimPango/releases/download/v0.2.4/ManimPango-0.2.4-cp38-cp38-manylinux2014_x86_64.whl

docs/source/changelog.rst

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,69 @@ Upcoming release
1717
Changes for the upcoming release are tracked `in our GitHub wiki <https://github.com/ManimCommunity/manim/wiki/Changelog-for-next-release>`_.
1818

1919

20+
******
21+
v0.4.0
22+
******
23+
24+
:Date: March 3, 2021
25+
26+
The changes since Manim Community release v0.3.0 are listed below.
27+
28+
Breaking Changes
29+
================
30+
31+
- :pr:`915`: Manim's SVG engine has been reworked and is able to handle a wider variations of SVG files. In particular: fill and stroke properties are now retained from the original files. Breaking change: ``VMobjectFromSVGPathstring`` is deprecated and has been renamed to ``SVGPathMobject``.
32+
33+
34+
New Features
35+
============
36+
37+
- :pr:`1026`: Add 3D Mobjects: :class:`~.Cone`, :class:`~.Cylinder`, :class:`~.Line3D`, :class:`~.Arrow3D` and :class:`~.Torus`
38+
- :pr:`1047`: Add documentation and examples for :class:`~.Matrix`
39+
- :pr:`1044`: ``register_font`` is available for macOS
40+
- :pr:`995`: Add generic :func:`~.Mobject.set` method and compatibility layer between properties and ``get_*``/``set_*`` methods
41+
42+
Bugfixes and Enhancements
43+
=========================
44+
45+
- :pr:`981`: Fixed hot reload functionality for the WebGL renderer on Windows
46+
- :pr:`1053`: Repair links to source code in stable version of documentation
47+
- :pr:`1067`: Add ManimPango to ReadTheDocs requirements
48+
- :pr:`1058`: Replace ``<color>`` syntax by Pango's ``<span foreground>`` for coloring parts of :class:`~.MarkupText` and allow using colors for underline, overline and strikethrough in MarkupText
49+
- :pr:`1063`: Fix documentation related to ``.animate``
50+
- :pr:`1065`: Remove duplicate word 'vector'
51+
- :pr:`1060`: Update Linux installation instructions to mention the installation of Pango
52+
- :pr:`1050`: Ensure that the user-supplied stroke color and width gets applied to :class:`~.Cross`
53+
- :pr:`1059`: More descriptive error when accessing an unhandled mobject attribute
54+
- :pr:`1048`: Use absolute path in ``make_and_open_docs.py``
55+
- :pr:`1000`: Remove ``MovingCameraScene.setup`` and ``MovingCameraScene.camera_frame``
56+
- :pr:`1051`: Corrections for setting stroke related attributes on :class:`~.VMobject`
57+
- :pr:`1043`: Make :class:`~.CubicBezier` explicitly accept four points
58+
- :pr:`1046`: Use any version of ``importlib-metadata``
59+
- :pr:`1030`: Parse ``.log`` file and try to print LaTeX errors if compilation fails
60+
- :pr:`1015`: Documentation: Add more explicit instructions related to ``tlmgr``
61+
- :pr:`1028`: Documentation: Update installation guide on mac with Apple Silicon
62+
- :pr:`1032`: Remove ``Square.side_length`` property
63+
- :pr:`1031`: Fix link to wikipedia vector graphics page
64+
- :pr:`1021`: Documentation: Added example to :class:`~.CubicBezier`
65+
- :pr:`1017`: Added ``progress_bar`` to ``digest_args`` to fix the ``--progress_bar`` CLI flag
66+
- :pr:`1018`: Remove redundancy in :class:`~.FunctionGraph` arguments
67+
- :pr:`1024`: Migrate ``width`` / ``height`` / ``depth`` to properties
68+
- :pr:`1022`: Fix ``-p`` flag when passing ``-s``
69+
- :pr:`1008`: CI pipeline: fix release asset upload
70+
- :pr:`983`: Make sure last frame for animations with updaters is correct
71+
- :pr:`984`: Add manim version to CLI output, append version name for generated ``.gif`` and ``.png`` files, add version to metadata of rendered videos, change dark blue terminal text to default green
72+
- :pr:`993`: Fix setting Mobject color to a gradient by passing a list of colors in :meth:`~.VMobject.set_color`
73+
- :pr:`1003`: Fix animation :class:`~.GrowArrow`
74+
- :pr:`1010`: Disable STDIN interaction for ffmpeg concat.
75+
- :pr:`969`: Fix the ``--tex_template`` CLI flag
76+
- :pr:`989`: Fix the ``manim cfg export`` subcommand
77+
- :pr:`1005`: Fix the feature where ``-`` is used as the filename
78+
- :pr:`998`: Allow using hexadecimal color codes with 3 characters
79+
- :pr:`996`: Changed the message of ``manim --version`` to not include "Edition"
80+
81+
82+
2083
******
2184
v0.3.0
2285
******

docs/source/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ def linkcode_resolve(domain, info):
115115
return None
116116
filename = info["module"].replace(".", "/")
117117
version = os.getenv("READTHEDOCS_VERSION", "master")
118-
if version == "latest":
118+
if version == "latest" or version == "stable":
119119
version = "master"
120120
return f"https://github.com/ManimCommunity/manim/blob/{version}/{filename}.py"
121121

docs/source/examples.rst

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -386,9 +386,9 @@ Special Camera Settings
386386
class FollowingGraphCamera(GraphScene, MovingCameraScene):
387387
def setup(self):
388388
GraphScene.setup(self)
389-
MovingCameraScene.setup(self)
389+
390390
def construct(self):
391-
self.camera_frame.save_state()
391+
self.camera.frame.save_state()
392392
self.setup_axes(animate=False)
393393
graph = self.get_graph(lambda x: np.sin(x),
394394
color=BLUE,
@@ -400,16 +400,16 @@ Special Camera Settings
400400
dot_at_start_graph = Dot().move_to(graph.points[0])
401401
dot_at_end_graph = Dot().move_to(graph.points[-1])
402402
self.add(graph, dot_at_end_graph, dot_at_start_graph, moving_dot)
403-
self.play(self.camera_frame.animate.scale(0.5).move_to(moving_dot))
403+
self.play(self.camera.frame.animate.scale(0.5).move_to(moving_dot))
404404

405405
def update_curve(mob):
406406
mob.move_to(moving_dot.get_center())
407407

408-
self.camera_frame.add_updater(update_curve)
408+
self.camera.frame.add_updater(update_curve)
409409
self.play(MoveAlongPath(moving_dot, graph, rate_func=linear))
410-
self.camera_frame.remove_updater(update_curve)
410+
self.camera.frame.remove_updater(update_curve)
411411

412-
self.play(Restore(self.camera_frame))
412+
self.play(Restore(self.camera.frame))
413413

414414
.. manim:: MovingZoomedSceneAround
415415
:ref_modules: manim.scene.zoomed_scene

docs/source/installation/linux.rst

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@ To install cairo:
2626
2727
sudo apt install libcairo2-dev
2828
29+
To install Pango:
30+
31+
.. code-block:: bash
32+
33+
sudo apt install libpango1.0-dev
34+
2935
To install ffmpeg:
3036

3137
.. code-block:: bash
@@ -58,6 +64,12 @@ To install cairo:
5864
5965
sudo dnf install cairo-devel
6066
67+
To install Pango:
68+
69+
.. code-block:: bash
70+
71+
sudo dnf install pango-devel
72+
6173
To install ffmpeg, you have to add RPMfusion repository (If it's not already added). Please follow the instructions for your specific distribution in the following URL:
6274

6375
https://rpmfusion.org/Configuration/
@@ -96,6 +108,11 @@ To install cairo:
96108
97109
sudo pacman -S cairo
98110
111+
To install pango:
112+
113+
.. code-block:: bash
114+
115+
sudo pacman -S pango
99116
100117
To install ffmpeg:
101118

docs/source/tutorials/building_blocks.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ skeleton of a thing that *could* be displayed. Therefore, you will rarely need
3535
to use plain instances of :class:`.Mobject`; instead you will most likely
3636
create instances of its derived classes. One of these derived classes is
3737
:class:`.VMobject`. The ``V`` stands for Vectorized Mobject. In essence, a
38-
vmobject is a mobject that uses vector `vector graphics
38+
vmobject is a mobject that uses `vector graphics
3939
<https://en.wikipedia.org/wiki/Vector_graphics>`_ to be displayed. Most of
4040
the time, you will be dealing with vmobjects, though we will continue to use
4141
the term "mobject" to refer to the class of shapes that can be displayed on

manim/_config/utils.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import copy
1515
import logging
1616
import os
17+
import errno
1718
import sys
1819
import typing
1920
from collections.abc import Mapping, MutableMapping
@@ -745,6 +746,13 @@ def digest_file(self, filename: str) -> "ManimConfig":
745746
multiple times.
746747
747748
"""
749+
if not os.path.isfile(filename):
750+
raise FileNotFoundError(
751+
errno.ENOENT,
752+
"Error: --config_file could not find a valid config file.",
753+
filename,
754+
)
755+
748756
if filename:
749757
return self.digest_parser(make_config_parser(filename))
750758

0 commit comments

Comments
 (0)