manim 0.17.0__py3-none-any.whl → 0.19.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. manim/__init__.py +11 -6
  2. manim/__main__.py +62 -19
  3. manim/_config/__init__.py +10 -9
  4. manim/_config/cli_colors.py +26 -9
  5. manim/_config/default.cfg +1 -3
  6. manim/_config/logger_utils.py +23 -13
  7. manim/_config/utils.py +662 -468
  8. manim/animation/animation.py +164 -18
  9. manim/animation/changing.py +34 -23
  10. manim/animation/composition.py +265 -67
  11. manim/animation/creation.py +208 -26
  12. manim/animation/fading.py +16 -18
  13. manim/animation/growing.py +35 -15
  14. manim/animation/indication.py +150 -76
  15. manim/animation/movement.py +56 -22
  16. manim/animation/numbers.py +64 -6
  17. manim/animation/rotation.py +78 -7
  18. manim/animation/specialized.py +6 -7
  19. manim/animation/speedmodifier.py +13 -10
  20. manim/animation/transform.py +14 -11
  21. manim/animation/transform_matching_parts.py +3 -4
  22. manim/animation/updaters/mobject_update_utils.py +152 -30
  23. manim/animation/updaters/update.py +10 -7
  24. manim/camera/camera.py +182 -118
  25. manim/camera/mapping_camera.py +34 -3
  26. manim/camera/moving_camera.py +95 -74
  27. manim/camera/multi_camera.py +23 -15
  28. manim/camera/three_d_camera.py +70 -52
  29. manim/cli/__init__.py +17 -0
  30. manim/cli/cfg/group.py +76 -44
  31. manim/cli/checkhealth/checks.py +192 -0
  32. manim/cli/checkhealth/commands.py +90 -0
  33. manim/cli/default_group.py +158 -25
  34. manim/cli/init/commands.py +33 -25
  35. manim/cli/plugins/commands.py +16 -3
  36. manim/cli/render/commands.py +72 -60
  37. manim/cli/render/ease_of_access_options.py +4 -3
  38. manim/cli/render/global_options.py +59 -17
  39. manim/cli/render/output_options.py +6 -5
  40. manim/cli/render/render_options.py +98 -33
  41. manim/constants.py +109 -59
  42. manim/data_structures.py +31 -0
  43. manim/mobject/frame.py +8 -5
  44. manim/mobject/geometry/__init__.py +1 -0
  45. manim/mobject/geometry/arc.py +277 -135
  46. manim/mobject/geometry/boolean_ops.py +32 -31
  47. manim/mobject/geometry/labeled.py +376 -0
  48. manim/mobject/geometry/line.py +192 -87
  49. manim/mobject/geometry/polygram.py +224 -58
  50. manim/mobject/geometry/shape_matchers.py +61 -25
  51. manim/mobject/geometry/tips.py +122 -48
  52. manim/mobject/graph.py +1027 -419
  53. manim/mobject/graphing/coordinate_systems.py +533 -278
  54. manim/mobject/graphing/functions.py +53 -32
  55. manim/mobject/graphing/number_line.py +123 -65
  56. manim/mobject/graphing/probability.py +88 -62
  57. manim/mobject/graphing/scale.py +33 -19
  58. manim/mobject/logo.py +118 -28
  59. manim/mobject/matrix.py +87 -83
  60. manim/mobject/mobject.py +912 -442
  61. manim/mobject/opengl/dot_cloud.py +16 -5
  62. manim/mobject/opengl/opengl_compatibility.py +4 -2
  63. manim/mobject/opengl/opengl_geometry.py +254 -153
  64. manim/mobject/opengl/opengl_image_mobject.py +3 -1
  65. manim/mobject/opengl/opengl_mobject.py +779 -482
  66. manim/mobject/opengl/opengl_point_cloud_mobject.py +41 -14
  67. manim/mobject/opengl/opengl_surface.py +14 -92
  68. manim/mobject/opengl/opengl_three_dimensions.py +12 -8
  69. manim/mobject/opengl/opengl_vectorized_mobject.py +98 -100
  70. manim/mobject/svg/brace.py +173 -41
  71. manim/mobject/svg/svg_mobject.py +139 -53
  72. manim/mobject/table.py +61 -68
  73. manim/mobject/text/code_mobject.py +193 -539
  74. manim/mobject/text/numbers.py +81 -34
  75. manim/mobject/text/tex_mobject.py +130 -78
  76. manim/mobject/text/text_mobject.py +288 -164
  77. manim/mobject/three_d/polyhedra.py +111 -13
  78. manim/mobject/three_d/three_d_utils.py +17 -8
  79. manim/mobject/three_d/three_dimensions.py +239 -106
  80. manim/mobject/types/image_mobject.py +50 -30
  81. manim/mobject/types/point_cloud_mobject.py +120 -75
  82. manim/mobject/types/vectorized_mobject.py +841 -408
  83. manim/mobject/value_tracker.py +105 -38
  84. manim/mobject/vector_field.py +50 -31
  85. manim/opengl/__init__.py +3 -3
  86. manim/plugins/__init__.py +14 -1
  87. manim/plugins/plugins_flags.py +10 -14
  88. manim/renderer/cairo_renderer.py +65 -50
  89. manim/renderer/opengl_renderer.py +89 -69
  90. manim/renderer/opengl_renderer_window.py +39 -18
  91. manim/renderer/shader.py +123 -87
  92. manim/renderer/shader_wrapper.py +44 -28
  93. manim/renderer/vectorized_mobject_rendering.py +38 -10
  94. manim/scene/moving_camera_scene.py +32 -3
  95. manim/scene/scene.py +507 -242
  96. manim/scene/scene_file_writer.py +371 -220
  97. manim/scene/section.py +20 -16
  98. manim/scene/three_d_scene.py +14 -22
  99. manim/scene/vector_space_scene.py +223 -129
  100. manim/scene/zoomed_scene.py +46 -41
  101. manim/typing.py +990 -0
  102. manim/utils/bezier.py +1823 -371
  103. manim/utils/caching.py +12 -5
  104. manim/utils/color/AS2700.py +236 -0
  105. manim/utils/color/BS381.py +318 -0
  106. manim/utils/color/DVIPSNAMES.py +96 -0
  107. manim/utils/color/SVGNAMES.py +179 -0
  108. manim/utils/color/X11.py +533 -0
  109. manim/utils/color/XKCD.py +952 -0
  110. manim/utils/color/__init__.py +61 -0
  111. manim/utils/color/core.py +1667 -0
  112. manim/utils/color/manim_colors.py +218 -0
  113. manim/utils/commands.py +48 -20
  114. manim/utils/config_ops.py +39 -19
  115. manim/utils/debug.py +8 -7
  116. manim/utils/deprecation.py +86 -39
  117. manim/utils/docbuild/__init__.py +17 -0
  118. manim/utils/docbuild/autoaliasattr_directive.py +236 -0
  119. manim/utils/docbuild/autocolor_directive.py +99 -0
  120. manim/utils/docbuild/manim_directive.py +94 -41
  121. manim/utils/docbuild/module_parsing.py +245 -0
  122. manim/utils/exceptions.py +6 -0
  123. manim/utils/family.py +5 -3
  124. manim/utils/family_ops.py +17 -4
  125. manim/utils/file_ops.py +27 -17
  126. manim/utils/hashing.py +55 -45
  127. manim/utils/images.py +13 -7
  128. manim/utils/ipython_magic.py +13 -7
  129. manim/utils/iterables.py +163 -120
  130. manim/utils/module_ops.py +66 -24
  131. manim/utils/opengl.py +77 -24
  132. manim/utils/parameter_parsing.py +32 -0
  133. manim/utils/paths.py +30 -33
  134. manim/utils/polylabel.py +235 -0
  135. manim/utils/qhull.py +218 -0
  136. manim/utils/rate_functions.py +98 -32
  137. manim/utils/simple_functions.py +25 -33
  138. manim/utils/sounds.py +7 -1
  139. manim/utils/space_ops.py +188 -115
  140. manim/utils/testing/__init__.py +17 -0
  141. manim/utils/testing/_frames_testers.py +13 -8
  142. manim/utils/testing/_show_diff.py +5 -3
  143. manim/utils/testing/_test_class_makers.py +34 -18
  144. manim/utils/testing/frames_comparison.py +37 -19
  145. manim/utils/tex.py +130 -198
  146. manim/utils/tex_file_writing.py +77 -47
  147. manim/utils/tex_templates.py +2 -1
  148. manim/utils/unit.py +6 -5
  149. {manim-0.17.0.dist-info → manim-0.19.1.dist-info}/METADATA +64 -65
  150. manim-0.19.1.dist-info/RECORD +220 -0
  151. {manim-0.17.0.dist-info → manim-0.19.1.dist-info}/WHEEL +1 -1
  152. manim-0.19.1.dist-info/entry_points.txt +3 -0
  153. {manim-0.17.0.dist-info → manim-0.19.1.dist-info/licenses}/LICENSE.community +1 -1
  154. manim/cli/new/group.py +0 -189
  155. manim/communitycolors.py +0 -9
  156. manim/gui/__init__.py +0 -0
  157. manim/gui/gui.py +0 -82
  158. manim/plugins/import_plugins.py +0 -43
  159. manim/utils/color.py +0 -552
  160. manim-0.17.0.dist-info/RECORD +0 -206
  161. manim-0.17.0.dist-info/entry_points.txt +0 -4
  162. /manim/cli/{new → checkhealth}/__init__.py +0 -0
  163. {manim-0.17.0.dist-info → manim-0.19.1.dist-info/licenses}/LICENSE +0 -0
@@ -0,0 +1,220 @@
1
+ manim/__init__.py,sha256=cGjTd9LjGBdtjgV9qqGsaVznVRk91MlPERzMPc43wMM,3921
2
+ manim/__main__.py,sha256=IobEEXbkDcjFwNbBudW6mDgSUVFMobypbeSQyPuw9cs,2577
3
+ manim/constants.py,sha256=297oFIF-iA9QyGZDiM-yGUzIbedHW_veTVjoxQ_kPIM,8465
4
+ manim/data_structures.py,sha256=kg2yNVtBkwi3UGky0VmLkKZ2-SPcRCAC2c0rfKfTYCs,828
5
+ manim/typing.py,sha256=JiES2Du4_HSoFOoBJLyNhPK5Ki6gIQ_QaqjQc8SCpSo,26688
6
+ manim/_config/__init__.py,sha256=I4zbPKUTUclF2BaMCtmGeNuYIBnoxRyOtHkmikJAU9M,2687
7
+ manim/_config/cli_colors.py,sha256=rYCbKq8Zb5Zf-UYcd-m_-TOVZmlo2Zl_Z0ELRPcLBXo,2204
8
+ manim/_config/default.cfg,sha256=3vogz3bjSuKm7L8GqbbFfMslf1AArcylJ5s6Ev--4mY,5329
9
+ manim/_config/logger_utils.py,sha256=ayFkVoTLe3dsitcKEseymxK9d6BuoK3Y5UZ31AgmTYw,5748
10
+ manim/_config/utils.py,sha256=mAk9S7uEPfXaQoBKf9QYPi5v9HMwumBGfkb6pnGvV2I,62591
11
+ manim/animation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
+ manim/animation/animation.py,sha256=nG0R8AH_xMt5XRfBzpBN3_1C8665N95j1ilARiU0HbE,24861
13
+ manim/animation/changing.py,sha256=tQ1p0IgUodAt_9Za8U6vTzVdSFdX4UtU1wmyUOzSJlw,5921
14
+ manim/animation/composition.py,sha256=xfSG7IZaWpCPxAr6qxHEuyZo0WW4GuhnovLaaHgPZWM,15703
15
+ manim/animation/creation.py,sha256=Mb31iBmERAJHiIKdMwVMyT8z2hgmbQgdaktMfI9KPtQ,25681
16
+ manim/animation/fading.py,sha256=YRRx5g3KT4Lei6eyiGiIUbDf_B85_Dk4Mh_4D0yrk3Q,5913
17
+ manim/animation/growing.py,sha256=JIML1a7Ph8hSlZRFn7sblMKkMmDgwgB0DEDeI0osUOg,7623
18
+ manim/animation/indication.py,sha256=cQmLylxTcgFsMFguhaKfeWh0yf-RYgWbyiw8-PE4zTQ,23183
19
+ manim/animation/movement.py,sha256=HKRFX4rwfBdylBd0rXHvO4jlS9Y53OCTGBSvC6wVV1g,6073
20
+ manim/animation/numbers.py,sha256=i1Ga-d07sJcpTsRKd93NOgIWXzIZFEGSeHBBQqK_WZI,3079
21
+ manim/animation/rotation.py,sha256=xPuvEUSdz-8i42YvTjuUrX6mVstdIENdMkBIlv-Pf4E,5830
22
+ manim/animation/specialized.py,sha256=J05o3gX7KfYGYS862_V80mBoz7CjYFMVO28juSBnzPU,2945
23
+ manim/animation/speedmodifier.py,sha256=mMe11Y_QmPrPKpVyTj6Ny_EC5WBFqAOd7OSQjsLXulY,9909
24
+ manim/animation/transform.py,sha256=4OAp6vxzuCj0j0DKNyidhsKeJif2PIunfLqYItoqY_4,30830
25
+ manim/animation/transform_matching_parts.py,sha256=xWNqZfNE8o5xBPcISQaNQiWmiioX-Ux97S_6WddJZ38,10419
26
+ manim/animation/updaters/__init__.py,sha256=jgKFveRzPwFLbVHkTfJrv3qDIrgD-yuFKYsMRkwpPJc,169
27
+ manim/animation/updaters/mobject_update_utils.py,sha256=Ou1NJaT41GUQ5X4Id9Ss4dFSPfy2dW5rnFyl0H2Knt8,6874
28
+ manim/animation/updaters/update.py,sha256=qwO_MWe-FvEvHMwKXCYocyEFEe91bFujTT4YSisVZzY,1845
29
+ manim/camera/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
+ manim/camera/camera.py,sha256=Vkssenepc77LH5WTEmQ_09uzMqeu030FOEDa14bkQYw,47304
31
+ manim/camera/mapping_camera.py,sha256=jQRmYR9zXoxVK4WS7fO6tZ3Q6YmY7ulkUhCzfP6JtCY,6058
32
+ manim/camera/moving_camera.py,sha256=kofJ6lvoJhMAxEQMjKpfae20TsVxnY0Z1lP-DVi3WrI,9214
33
+ manim/camera/multi_camera.py,sha256=Mj0lzTVIuUFxQOgkCSYvzC6IPd3FeXy4EvUyoYWlv0M,3707
34
+ manim/camera/three_d_camera.py,sha256=WwUa9w43Dbdq3J7R7X2YAFLozKinOu0Q-k07Wm8rLRw,15700
35
+ manim/cli/__init__.py,sha256=3NogRjF4vq7MiqUO0lC1zNHALo6o4qQCb_ELDWM4Z8I,343
36
+ manim/cli/default_group.py,sha256=0rsMUKzE43elYis3uBJtPSjlTSAe1AqQzrRBrIyoJOU,6995
37
+ manim/cli/cfg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
+ manim/cli/cfg/group.py,sha256=TgYP3AjO8bpvc55bdjKmgrc9FVvT6MQh38v5ci0XVX0,10632
39
+ manim/cli/checkhealth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
+ manim/cli/checkhealth/checks.py,sha256=7_t7dunambVaPEYFSxTJhsq6mD7YGYCVRtsezOyFc0A,6380
41
+ manim/cli/checkhealth/commands.py,sha256=PF_B4_zSZq1GcYfEjCwMTI93u9VEM2LiVSRv5FBeDk4,3151
42
+ manim/cli/init/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
+ manim/cli/init/commands.py,sha256=zJ-0_tII1JEJRkq_nMNOl1y-7fLf-mD0SW6YnLWLioY,6209
44
+ manim/cli/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
+ manim/cli/plugins/commands.py,sha256=V-PcnrOMf2DAilAP2mxTBMy05w_uoDSOXY7mv_ZkF9Y,1080
46
+ manim/cli/render/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
+ manim/cli/render/commands.py,sha256=hVAWp3jB32olxA6aNYVQJYPN6GUfCgX9VxupkUXsFC4,5213
48
+ manim/cli/render/ease_of_access_options.py,sha256=rHc4hczj3PkC8ISSoFxqavCcdP1wcLLwg_CIGGLpWGs,1046
49
+ manim/cli/render/global_options.py,sha256=VYQopmfogbC87TQeQw8sqB0LAHdSGo9OMD1YY4eS3Os,3823
50
+ manim/cli/render/output_options.py,sha256=j4CtQmo62h3DDHW7G1IBPuwFAMuXa2DiRscWnZYEb3w,1052
51
+ manim/cli/render/render_options.py,sha256=W-Ym_liVFF-wTIpyAxVxDOExe9_QtJuQglxbxMUFB98,5431
52
+ manim/mobject/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
+ manim/mobject/frame.py,sha256=yFVByDmOfpL-3HEM_t_d2bNGPxAtTZQ80uomZtEm6Yo,983
54
+ manim/mobject/graph.py,sha256=ieWy1Q8H2gkw18jP3omQE22wRlM2gcQe8yWAHMnTrLw,65218
55
+ manim/mobject/logo.py,sha256=SgLBsqyV4Scqq3NN642LzyWXckiX4CC42oA7l9mYueo,14412
56
+ manim/mobject/matrix.py,sha256=QlMJOOzxEZEln1VLhm7yNBYL4qakWc6a-DFqPsKUivE,20060
57
+ manim/mobject/mobject.py,sha256=WTGsuMfZiNIwE_bYnm2Y9kJQd-jcfGFqOB3V1g5CUsk,112576
58
+ manim/mobject/table.py,sha256=P0GJCt9C_J7NcQwo1ZTKXJO8sRnsfssLx5kdKlhz9RE,41853
59
+ manim/mobject/utils.py,sha256=jp5aKkECeRu_0lrIhFuW7QGP4vei3vMNolruK4ik5kQ,3273
60
+ manim/mobject/value_tracker.py,sha256=vPwu3JOLzIbRn6oaluMB95wL-03zK4_KbzFtf9LMTLg,9244
61
+ manim/mobject/vector_field.py,sha256=kOh0pSXFg4b5BhDSNnzscEyMzM_fE6j-FyYqk1K6EEk,39995
62
+ manim/mobject/geometry/__init__.py,sha256=2coukoxKXDE6LmqDDcF_chBZPYYb6oe3y4T8duV8Lvk,191
63
+ manim/mobject/geometry/arc.py,sha256=LDexqJ0gCS1GFJJbjHP_TF64dpHTh9hy_I9xKmlnXdg,45900
64
+ manim/mobject/geometry/boolean_ops.py,sha256=kcr1DYzdGp9elbo3R72t8YS9Zw_a9I8udwV48YD5OSQ,10302
65
+ manim/mobject/geometry/labeled.py,sha256=CyXf3wqZBSryGt2_lggXqxtNb7lzu97WlAAVNPRr5s8,12759
66
+ manim/mobject/geometry/line.py,sha256=MHCTy4Sx9uWWAI6idXqwjuAn9TqmruCOFonXEWJujxQ,41268
67
+ manim/mobject/geometry/polygram.py,sha256=VZLLEifY-asrUtL2DHSGiFPDg9pgBmb8sCcilkdXp4E,27151
68
+ manim/mobject/geometry/shape_matchers.py,sha256=IZMcEyU8Zpy3OfZeRd9BHAydhOkLLXIJcHpfmbkNIt4,6993
69
+ manim/mobject/geometry/tips.py,sha256=z-e9Maz_UewFT-ce03LYDAwgl9FQsc4kz6lF8YXYzOs,10430
70
+ manim/mobject/graphing/__init__.py,sha256=Lf9tyLlxTBckPLMI7ZACu8YxRrsMExOoqpi-657OMQ8,213
71
+ manim/mobject/graphing/coordinate_systems.py,sha256=Efo7NlDhDwSVZ7O07ICZ_Wrp6Ki69cpTtMaukmBtVhI,121027
72
+ manim/mobject/graphing/functions.py,sha256=u-hgXEbOvCv25JFLrLazm5d-svjz7yw6Ph_Ci4x7OWs,11393
73
+ manim/mobject/graphing/number_line.py,sha256=yJ8D5KLA0mRl4xvm2RYRnHPmZ3eUMJmQ82N8T1rIw_0,24900
74
+ manim/mobject/graphing/probability.py,sha256=A4oMchWum5QQiVjwcuF0KZDOQ-763PUc0xCWYc8J2cE,18945
75
+ manim/mobject/graphing/scale.py,sha256=3Qso5_5Qhqod2pZY9dFq2XLt-upZRwT3XIRfj_LPaAo,5605
76
+ manim/mobject/opengl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
+ manim/mobject/opengl/dot_cloud.py,sha256=DhXm_QI_PKUSObV8CioNgd4EEkJodviax-yeVZ77Nfw,1762
78
+ manim/mobject/opengl/opengl_compatibility.py,sha256=MQGsNMr0ZWcA2Tdsv-cG6okQgU1e0ibvksUMQMxjNq0,1561
79
+ manim/mobject/opengl/opengl_geometry.py,sha256=fY2gXrPezb_gW0pzBG_0N_z_KkSFbC3yise2gm5_sVA,30340
80
+ manim/mobject/opengl/opengl_image_mobject.py,sha256=Z50cZ5IzhjxMnFwfKHr67EHX8LtGEJchJXVcS2oIWbE,2493
81
+ manim/mobject/opengl/opengl_mobject.py,sha256=dtrhzr1erUnd0AbeuCJ219brDqUgQqGTj7JoJowzSB0,108813
82
+ manim/mobject/opengl/opengl_point_cloud_mobject.py,sha256=ZJcEY-PGFI1KSqzrW0awreEdyyN5QnKkLq1cBiDNNXo,6798
83
+ manim/mobject/opengl/opengl_surface.py,sha256=50muED1Lnfeg9l4lVCIa7_r5F4jdh3U-3p7NJ1L391o,16298
84
+ manim/mobject/opengl/opengl_three_dimensions.py,sha256=qkOdhs4ncF_IIlWuk2fNmBj-oFwZPr6Y5I-nTbatVZ0,1900
85
+ manim/mobject/opengl/opengl_vectorized_mobject.py,sha256=yF4M5OrxrGvDXNyfOOJcQ0rmL-pcCjjbKLZI2hyKsfM,64448
86
+ manim/mobject/svg/__init__.py,sha256=j8-PFkUAsx4E-e7AHm3CoMjo22VlKzPORQAsyFWnSd4,130
87
+ manim/mobject/svg/brace.py,sha256=0X5gaRdw45WPLSsWEtH6Y6vZKyiT-cP2NBEFH9EG1zo,15725
88
+ manim/mobject/svg/svg_mobject.py,sha256=4YR7X3RqnppLb29_ySiS2kxIu5fI_yO2UPVU5qJOb68,21862
89
+ manim/mobject/text/__init__.py,sha256=AwHG8zeX2Hycw8oG2HacdHmhpH24QQDnHXTlAmVdgU0,188
90
+ manim/mobject/text/code_mobject.py,sha256=icfdQPvu0unzcxVhhCJBHoyoVIA01jUE8qMBiKF8e1w,9486
91
+ manim/mobject/text/numbers.py,sha256=cxQAYuNbvCMVwxVe-JaP0VYWAqXPrKqanFtSxMwXNAo,17240
92
+ manim/mobject/text/tex_mobject.py,sha256=YdMfAi9l_LDPyLmjPjKTYbmV8wOk_1WH4XogodLcDQo,19500
93
+ manim/mobject/text/text_mobject.py,sha256=9u7KhXTxAUWBfOnQEl7pIFTMOfH5JWPPOLfyxh73AQk,58208
94
+ manim/mobject/three_d/__init__.py,sha256=yiscdLu12eEoygyGp05V789zhouqEADin7owAkC9yU4,154
95
+ manim/mobject/three_d/polyhedra.py,sha256=9slxmghxq4To7xFXvvLFBdrS-0WjasuQvQXnvTM1d7U,15713
96
+ manim/mobject/three_d/three_d_utils.py,sha256=kXUGUVNKRvFFMJ7fteIoRk-umFrP69A_FvalhHy0bwI,2239
97
+ manim/mobject/three_d/three_dimensions.py,sha256=FKQP_LkKTemBVgUvRA2JqatEpXpn7TsrTNbF6BNZ8aE,39604
98
+ manim/mobject/types/__init__.py,sha256=H-S04JNHysKk9Obs2tctXVoTyIzDL7JnZqqHt1GuWSY,172
99
+ manim/mobject/types/image_mobject.py,sha256=qjgFetBb8jAsuTrA8WdKQZbcGVNQyG-yqiwJ3JgGngE,12262
100
+ manim/mobject/types/point_cloud_mobject.py,sha256=Om_vHYHGk7rCye3m0VzqcuuQyA5UAucvYxXSvYPoW70,13836
101
+ manim/mobject/types/vectorized_mobject.py,sha256=_1s7qygVuXd7bT0edeUdrvtc7vFNJQi3iY5rZiXE8Gs,101248
102
+ manim/opengl/__init__.py,sha256=LiMb5slAGNl-aMnkUQpelSkJLjdv79PvBf6gUcsVeeo,584
103
+ manim/plugins/__init__.py,sha256=TwJlNL7XoKkczEV2KuISM-mW8YTVngxUkWvMkYt3Lqc,396
104
+ manim/plugins/plugins_flags.py,sha256=l6qxz1O8A_GTqA179QcnIamOr8UrK6aMnoh5vEWj_qw,608
105
+ manim/renderer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
+ manim/renderer/cairo_renderer.py,sha256=533FIc_sh-AAHi1OXJ08SzwFIY4Cr6GvrZefYswDcak,9610
107
+ manim/renderer/opengl_renderer.py,sha256=8QTnZ1pqnlsYGzbJ7C2NAxRgtsCAMj-oIJ1sDgz6df0,21258
108
+ manim/renderer/opengl_renderer_window.py,sha256=rIc7GhcRKH4dHvZUxSLFCTEDkMDL2Vr43a0cBwFKQpk,5700
109
+ manim/renderer/shader.py,sha256=-yPYI27ME49xj2RkV9pMdNVVfKYz1g2qadF8con7b50,17100
110
+ manim/renderer/shader_wrapper.py,sha256=MB7Ss3jjJh-IgW-K8QSQV2wFBqXtLp3fbOnVSCTvoIA,6720
111
+ manim/renderer/vectorized_mobject_rendering.py,sha256=7H5i63JLt3A3Kcca87UbGDts4RZw64X-yvgMUNZ0L7c,9975
112
+ manim/renderer/shaders/design.frag,sha256=drjgYTVETgocxxw1HqCK7Dc3WPS8kYMy4jmhwRy7EDY,216
113
+ manim/renderer/shaders/design_2.frag,sha256=0TbGy2iXwHeYVaevH7q3VH0AVM54KpONdl9bW4CO1iU,961
114
+ manim/renderer/shaders/design_3.frag,sha256=UlSV0TmcuYmG5EmtNZQgU4kWo0j7neByEClwbXD0h6w,1301
115
+ manim/renderer/shaders/simple_vert.glsl,sha256=TbktrXHFjx_E3hh_pIhdRB49wP0lBjwVr3pVhSM9ZBE,296
116
+ manim/renderer/shaders/default/frag.glsl,sha256=FEQmM7RUwcZlxPu5lkDcEXoyR2EfKjNC9hpaPce_ZBE,98
117
+ manim/renderer/shaders/default/vert.glsl,sha256=0thKIk9CzuSLGLh-6RyvFZDsnoSTpVC0v2WNjryMGIM,232
118
+ manim/renderer/shaders/image/frag.glsl,sha256=UZ7Yym-2tpEnnwXpD_-SIOXqt8cNTxnCzFoUUeRyRS0,200
119
+ manim/renderer/shaders/image/vert.glsl,sha256=Hfu3lyryOu5MvS0noJYlV-0vwOG7tNUFkZKMjVfg658,459
120
+ manim/renderer/shaders/include/NOTE.md,sha256=QKht_AYgi0FgRsD1HiG-AUZZPqEAloaJK64GgkuN8mY,582
121
+ manim/renderer/shaders/include/add_light.glsl,sha256=Me-idksLiLW9ORe5mmekgak1RL3m2-J_Yftcql9nDrY,1600
122
+ manim/renderer/shaders/include/camera_uniform_declarations.glsl,sha256=--B_TrdWpq6sVs-gK7yrkJYIXmSkPE_k_27NNs6mOoE,254
123
+ manim/renderer/shaders/include/finalize_color.glsl,sha256=8CeC46PTrNA3LB4SolWw_EHdz87H4pFmm3-r5iysDz8,1864
124
+ manim/renderer/shaders/include/get_gl_Position.glsl,sha256=qaeeXlQOIBZisRC3scExg1LoFpOxHXTqbZYclIPbVac,1245
125
+ manim/renderer/shaders/include/get_rotated_surface_unit_normal_vector.glsl,sha256=76EfKsK1vwuNa7_9hgw-W_Cx3iZ3zpVY4KA6Fa69Gw0,551
126
+ manim/renderer/shaders/include/get_unit_normal.glsl,sha256=bmASU8UvsWunNcj-kdtJKjhBNLvG5pUdYn4iDOzg1Tw,773
127
+ manim/renderer/shaders/include/position_point_into_frame.glsl,sha256=4KMgtO2xlaASeR6uD2GKJMfAi7fuiYL32u_rFKtF5IE,742
128
+ manim/renderer/shaders/include/quadratic_bezier_distance.glsl,sha256=ujrpryJfKH_MY5SAd4a8T4U_ZLX1o0bBu6DdmTkOxTc,2853
129
+ manim/renderer/shaders/include/quadratic_bezier_geometry_functions.glsl,sha256=pjQQjecQOugsoZgN2cXY5HKG1uME6rJ0EDqFJgCqX7k,2747
130
+ manim/renderer/shaders/manim_coords/frag.glsl,sha256=FEQmM7RUwcZlxPu5lkDcEXoyR2EfKjNC9hpaPce_ZBE,98
131
+ manim/renderer/shaders/manim_coords/vert.glsl,sha256=GMKQNT4YTWiHaeo8Vt5YfaFqJaeukEVxz4rYM1E1fRM,287
132
+ manim/renderer/shaders/quadratic_bezier_fill/frag.glsl,sha256=YTMxssSBy9Jw4-7M55L2pX0CdUW0h9cButmIuP8X9Uw,1836
133
+ manim/renderer/shaders/quadratic_bezier_fill/geom.glsl,sha256=jKXzyZ884bdmcl0SOSHD6xiRY1Oz6OTEWAcDPXUqLrc,3544
134
+ manim/renderer/shaders/quadratic_bezier_fill/vert.glsl,sha256=ZqPIgPAO_vADjfdyurk7GFDUyv85bG0nCAyYEsK4R-c,523
135
+ manim/renderer/shaders/quadratic_bezier_stroke/frag.glsl,sha256=Y5hLAhwygRIWtS-mq2kNYFae99cxRaAOfBap4gVpt3A,2683
136
+ manim/renderer/shaders/quadratic_bezier_stroke/geom.glsl,sha256=DkQZVQiOLS_-3IW02L7shkGT4DMdEwmZ5IObW3UQipE,9059
137
+ manim/renderer/shaders/quadratic_bezier_stroke/vert.glsl,sha256=tKhrGSFDRvbzE8Tuq7HBX28Po5aBpL4Imxq2lvmas-Y,743
138
+ manim/renderer/shaders/surface/frag.glsl,sha256=89jqCkBp-f7ulliICIBQVD-6rlXmzLEOalSvrxbLJY4,396
139
+ manim/renderer/shaders/surface/vert.glsl,sha256=I7JTYje09VTPmkQY6aYtO8oE0FjoTBeQVUgRY6MSkDo,567
140
+ manim/renderer/shaders/test/frag.glsl,sha256=vE4h2JLaY4XKgnFLZg5x07jBnLG-Z5YyzVb189yUzsA,96
141
+ manim/renderer/shaders/test/vert.glsl,sha256=_rTflweplsaDNDY0vm70K0wUtzELbeauOS7Kx_fCc3U,152
142
+ manim/renderer/shaders/textured_surface/frag.glsl,sha256=7HHOlQC0jEN1R7N0frUpPOqSHj8PZZHaOUdsd_tfF2A,956
143
+ manim/renderer/shaders/textured_surface/vert.glsl,sha256=11ZxiIDxJiOev3LRpnhH57KKHI7jZri8egaYm9RfGt0,647
144
+ manim/renderer/shaders/true_dot/frag.glsl,sha256=IN4GuJBmwr17IBgxNg-mPzkwOEQV2ggUCSxbbMft3Ec,791
145
+ manim/renderer/shaders/true_dot/geom.glsl,sha256=Dyzn7dmICA6-zH_aNATBiq_Omt6U2UF4MBG9gstogrw,1101
146
+ manim/renderer/shaders/true_dot/vert.glsl,sha256=LUYkOS-WYj8DEb0CcyWPovslevus81-cgbspJVraY_o,362
147
+ manim/renderer/shaders/vectorized_mobject_fill/frag.glsl,sha256=UFVAChopcw4nrEUnPywV9rjFohY2_RTe3qQermGhBbo,324
148
+ manim/renderer/shaders/vectorized_mobject_fill/vert.glsl,sha256=uAvuQoulD_2nJ9JxvnutM4saFke2mTpU3c46_2ZC6lw,435
149
+ manim/renderer/shaders/vectorized_mobject_stroke/frag.glsl,sha256=Rgbdwi-UVQyTmikHYQioo8vnt9hInA4TIzebBARzoX4,2720
150
+ manim/renderer/shaders/vectorized_mobject_stroke/vert.glsl,sha256=yOKnXHyDKJ805_RveoLLVJFUXRF0HKBBRfKkjjRaebY,4430
151
+ manim/renderer/shaders/vertex_colors/frag.glsl,sha256=nGY9iyvoYy9pfjtiFDsZ1TFQsXHQ2kkz0S0Imgl2kO4,93
152
+ manim/renderer/shaders/vertex_colors/vert.glsl,sha256=I1HQwwKS0pmnfVnLAMAXsUJY4ynXf7ha3CaZuSkPshI,281
153
+ manim/scene/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
154
+ manim/scene/moving_camera_scene.py,sha256=o_zbh2zzzUDNpNB6oUZYUcjj7VB2dUGV4bFkVlDnVdE,4865
155
+ manim/scene/scene.py,sha256=myATD-G9vDHlYMfKN4xXETEDN8YYlL_dGjX2pTPPzgg,69681
156
+ manim/scene/scene_file_writer.py,sha256=-_vnDOrBjUCgop7GpllQVnH3g8SIFYJOM74SQSTHhYc,33833
157
+ manim/scene/section.py,sha256=X1mXe6z6WtB9u4zHeiW4SJRJ9SBgMS6hbdnQscid8aw,3754
158
+ manim/scene/three_d_scene.py,sha256=Td13SWpP9UYIOK2Z8hMzusj8ca8jluDa1bkmPC5BaeM,19708
159
+ manim/scene/vector_space_scene.py,sha256=eHMRj83nC0tDbyHAjUGU26l0imtVy8Eg961y-jOfQfQ,41804
160
+ manim/scene/zoomed_scene.py,sha256=l-tDpGmeTn5uz2K7jQ-2x2W55VJWWRMYE9Tb5K4qx7E,7574
161
+ manim/templates/Axes.mtp,sha256=gfMRnB0PjXF0m6u9IcbI_pm48eDqxCkylKICWdDAP-M,313
162
+ manim/templates/Default.mtp,sha256=AHqIgMY-rjIHaeuFSgi4n2KXaLORmACjTdPhUnFgZdY,547
163
+ manim/templates/MovingCamera.mtp,sha256=NLiT2ZPutKTzt8As2gDJDqXMBNB8d-7Y3PFXS0HhMas,327
164
+ manim/templates/template.cfg,sha256=XKiKX2mMT7x_3-EiPKAhHUpuiW_K4_RU6Iu1ZYOzQzw,134
165
+ manim/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
166
+ manim/utils/bezier.py,sha256=qLb0FZTJu_mkAAPLnw7jq_ZtDHZ0Sg506cQlOdAMbTI,69427
167
+ manim/utils/caching.py,sha256=Fshs1us2FsErVnv_4z9cnMcAqVxcW7-QZ8XBCMfk8Ik,3084
168
+ manim/utils/commands.py,sha256=TrxwPCKJeTbnrvNp22RN6CeN8a_xZ5NLnpASYsVOlLo,2035
169
+ manim/utils/config_ops.py,sha256=IwpNHUrkx4krhV3HTNR63kiiewIkCn8foonfeM0Blpw,2893
170
+ manim/utils/debug.py,sha256=4frD1GvDfzJS2CTmjcHvRCSCDJV-aSREqyoLD12AxC4,2359
171
+ manim/utils/deprecation.py,sha256=h1-vedfammPr2eyfhpFk6yiR0siIfSKS6rPNhSAc0IY,15987
172
+ manim/utils/exceptions.py,sha256=LDOIE6Vcai4Np6y83UuMWdiSITZ43Ac5BE_jPXKFr00,308
173
+ manim/utils/family.py,sha256=W1AFiPHQrFyB6TrulYnrhHSqGiA0Etg1oDL5SuTNgoE,1256
174
+ manim/utils/family_ops.py,sha256=IBMsGlWDag89Iv9kk-zLgD3Dc_TnRGWMI1XBiUJM-PE,1765
175
+ manim/utils/file_ops.py,sha256=A9EKl_aY65qLvZer-lsIHOZ1tsdRt0wtPyaIchUgGW0,8019
176
+ manim/utils/hashing.py,sha256=iaFQHQy-J66VMHRLWBQ7BjuKZfZb8o6iHWDOfAMBuOg,14249
177
+ manim/utils/images.py,sha256=5iODzMvpv2RECBpZsaqJRtmOdMSvL8nxfcTljVj7qZ4,1929
178
+ manim/utils/ipython_magic.py,sha256=Zzr4GIuLATL_Lrcj9criyydrfReXrr79zDOs8dLH6Sk,7969
179
+ manim/utils/iterables.py,sha256=5XSL63T5h2odxLQkWoKWTqoedaQ08IJ5b7FisUvsXyY,13215
180
+ manim/utils/module_ops.py,sha256=1WDpAmVULMExWVFh2o_2oA_1g0NXIQCM0H3QxsXPDF0,5815
181
+ manim/utils/opengl.py,sha256=bB0-d8rnaU9_YmP7M8a7v2F3hgoH3iCl5-CF7C2PZlE,4676
182
+ manim/utils/parameter_parsing.py,sha256=rcCPBtzfIDqJsEs-xSIbLJl3waOMpDGEz2RfnCaC1ds,787
183
+ manim/utils/paths.py,sha256=GIQsLFpFgK-JdoBYBWptkyZjqhExKiyKKLYRao2olkE,11308
184
+ manim/utils/polylabel.py,sha256=08-L_ulRv9p3X9kFKcX5BR28bpjYJ16nXYsJIfriXck,7201
185
+ manim/utils/qhull.py,sha256=UFGPh9YeM59k6bsnbYU_cvZ0d255bd7G5fJk6SJZlN8,7797
186
+ manim/utils/rate_functions.py,sha256=oJasQWx6ZqCyD8aQ0s52yWz7ulgWCXKQMKDB385PBNs,13618
187
+ manim/utils/simple_functions.py,sha256=jCMUqrXCFZxfq77nY47TUFhq7nhyCzbxGPY_pDv9CJE,3649
188
+ manim/utils/sounds.py,sha256=cc56Se02nrLgW9gT3SuVhFbWe4p1Mc7jllQ5BCs-rZA,611
189
+ manim/utils/space_ops.py,sha256=sGciOxB_GogejbG2CQZbXSPnIwin9uMoa4CC5BycIL0,23827
190
+ manim/utils/tex.py,sha256=IOXqaXNG3uImeYJsoTUpMyG2Q1zgg_VyuhVa06FVEc8,6801
191
+ manim/utils/tex_file_writing.py,sha256=Cs_woBmXZcio1o3i1wonI1tXgALeF5jkX7y3RbGMGnQ,11470
192
+ manim/utils/tex_templates.py,sha256=4UHeVS9ZyYVsSzZUC4FZFqW8o02IMZSF4KmgqHeZ7l4,28533
193
+ manim/utils/unit.py,sha256=-Xqt9cHeYNX2Tvzu8uXUTUMVlreBX7ygMJRt95Stddc,1053
194
+ manim/utils/color/AS2700.py,sha256=n9yHPR3hU0QAO6Rmb4wpkpfBRDKCjn4c3WEUBXlovSI,8743
195
+ manim/utils/color/BS381.py,sha256=F5k21QS9Jo9LBICaLM_-fmmnROOwvWBwlYH74Kmyzrw,11050
196
+ manim/utils/color/DVIPSNAMES.py,sha256=KrK8MUAW9rS-JaOeU_TSsr86LyCTSxHDj0OgTEyYqXM,2974
197
+ manim/utils/color/SVGNAMES.py,sha256=TVzp-yCbq4u9En8A9-coDZNY86N2dofL499rYbpTQOA,5852
198
+ manim/utils/color/X11.py,sha256=6BtAZW1xwqzM2L94W_wklC6JjsEDoXqRKm0DxAgbllI,17702
199
+ manim/utils/color/XKCD.py,sha256=klGcWTU9jAKINU9Pt4GDlNZ_HmfoAhyqe_1WKMvYZus,32650
200
+ manim/utils/color/__init__.py,sha256=-d2McqwdkBR5oT46Ec7weaKeONTrszgmErNJplm_YXE,1326
201
+ manim/utils/color/core.py,sha256=NfSNWXtz498QAQVf32X9limhWfPbnYh87H1va4-PrqM,52381
202
+ manim/utils/color/manim_colors.py,sha256=NQvfPcyicNLfAehhW-ZQiHfFLOhbcnsGwmDJ58UjtgY,6805
203
+ manim/utils/docbuild/__init__.py,sha256=QPyVFDiH3EB9j2xLO1DB2ju5JB3cCY6R9ISQzrZFFJA,437
204
+ manim/utils/docbuild/autoaliasattr_directive.py,sha256=5sKVZ62pnmmrrnr3x_5IfjxvltXRViXihFNQdbCVvWc,9351
205
+ manim/utils/docbuild/autocolor_directive.py,sha256=j8OCN0q9FCZgwcbG8lwC3qwtlbYURyNAJEwmKst0HGc,3418
206
+ manim/utils/docbuild/manim_directive.py,sha256=5IoXNV5o4Aod3v4vhJneahGA3-FgY21RwHeE5JMKG08,14802
207
+ manim/utils/docbuild/module_parsing.py,sha256=dfk7KpjQdz7Vn-BNefczKNQVdKvpE3wQfBJPlzCbsRE,10006
208
+ manim/utils/testing/__init__.py,sha256=VGuOYWP08ZEot6AQeY9ZVcZF3G5SUO51WdD5mvG9wW4,418
209
+ manim/utils/testing/_frames_testers.py,sha256=CrC6E91Xd5r0dm2Zrwrs02SyZaeFFvZ6ePbLXdzCSnM,4038
210
+ manim/utils/testing/_show_diff.py,sha256=z1QkoAyP-esRrKOWIKK_EyNMjSYl8ZN_q8jK86dMCl0,1768
211
+ manim/utils/testing/_test_class_makers.py,sha256=Nk_lvjhhiNVjH5czslBH_57_R-Nnm_su4bEbVKsfdbM,2854
212
+ manim/utils/testing/config_graphical_tests_monoframe.cfg,sha256=FCf168PQDrTiwv-WurqRDyL4ndwtfBvTS9Bl23MEAyE,161
213
+ manim/utils/testing/config_graphical_tests_multiframes.cfg,sha256=bzzl4TpReJ7E4JR0OazZnXp1JFvje9rbYP5p3sDF0ys,158
214
+ manim/utils/testing/frames_comparison.py,sha256=xcrNQAzZKUD5IaOhzDZAt9zLOO0DN9angY23KkrGeh0,10610
215
+ manim-0.19.1.dist-info/METADATA,sha256=M2WrvQMqW7Ge26oWG8XvH0-U55yhEyZd8KKX-30qkuQ,11124
216
+ manim-0.19.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
217
+ manim-0.19.1.dist-info/entry_points.txt,sha256=Z6WSM9GgO5bFmO3ffPf55fA6lh5cOVUhj38ORHP3cWc,76
218
+ manim-0.19.1.dist-info/licenses/LICENSE,sha256=xqki_Bz67XrA-Hqh3Hfr9aPI0czFqwHaMxU_DQE78Bk,1072
219
+ manim-0.19.1.dist-info/licenses/LICENSE.community,sha256=eOh7tki98IyCfdOYoR4py990wyA5adNzjbo-sJ1cICI,1088
220
+ manim-0.19.1.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.3.2
2
+ Generator: hatchling 1.28.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ manim = manim.__main__:main
3
+ manimce = manim.__main__:main
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2021, the Manim Community Developers
3
+ Copyright (c) 2024, the Manim Community Developers
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
manim/cli/new/group.py DELETED
@@ -1,189 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import configparser
4
- from pathlib import Path
5
-
6
- import click
7
- import cloup
8
-
9
- from ... import console
10
- from ...constants import CONTEXT_SETTINGS, EPILOG, QUALITIES
11
- from ...utils.file_ops import (
12
- add_import_statement,
13
- copy_template_files,
14
- get_template_names,
15
- get_template_path,
16
- )
17
-
18
- CFG_DEFAULTS = {
19
- "frame_rate": 30,
20
- "background_color": "BLACK",
21
- "background_opacity": 1,
22
- "scene_names": "Default",
23
- "resolution": (854, 480),
24
- }
25
-
26
-
27
- def select_resolution():
28
- """Prompts input of type click.Choice from user. Presents options from QUALITIES constant.
29
-
30
- Returns
31
- -------
32
- :class:`tuple`
33
- Tuple containing height and width.
34
- """
35
- resolution_options = []
36
- for quality in QUALITIES.items():
37
- resolution_options.append(
38
- (quality[1]["pixel_height"], quality[1]["pixel_width"]),
39
- )
40
- resolution_options.pop()
41
- choice = click.prompt(
42
- "\nSelect resolution:\n",
43
- type=click.Choice([f"{i[0]}p" for i in resolution_options]),
44
- show_default=False,
45
- default="480p",
46
- )
47
- return [res for res in resolution_options if f"{res[0]}p" == choice][0]
48
-
49
-
50
- def update_cfg(cfg_dict: dict, project_cfg_path: Path):
51
- """Updates the manim.cfg file after reading it from the project_cfg_path.
52
-
53
- Parameters
54
- ----------
55
- cfg_dict
56
- values used to update manim.cfg found project_cfg_path.
57
- project_cfg_path
58
- Path of manim.cfg file.
59
- """
60
- config = configparser.ConfigParser()
61
- config.read(project_cfg_path)
62
- cli_config = config["CLI"]
63
- for key, value in cfg_dict.items():
64
- if key == "resolution":
65
- cli_config["pixel_height"] = str(value[0])
66
- cli_config["pixel_width"] = str(value[1])
67
- else:
68
- cli_config[key] = str(value)
69
-
70
- with project_cfg_path.open("w") as conf:
71
- config.write(conf)
72
-
73
-
74
- @cloup.command(
75
- context_settings=CONTEXT_SETTINGS,
76
- epilog=EPILOG,
77
- )
78
- @cloup.argument("project_name", type=Path, required=False)
79
- @cloup.option(
80
- "-d",
81
- "--default",
82
- "default_settings",
83
- is_flag=True,
84
- help="Default settings for project creation.",
85
- nargs=1,
86
- )
87
- def project(default_settings, **args):
88
- """Creates a new project.
89
-
90
- PROJECT_NAME is the name of the folder in which the new project will be initialized.
91
- """
92
- if args["project_name"]:
93
- project_name = args["project_name"]
94
- else:
95
- project_name = click.prompt("Project Name", type=Path)
96
-
97
- # in the future when implementing a full template system. Choices are going to be saved in some sort of config file for templates
98
- template_name = click.prompt(
99
- "Template",
100
- type=click.Choice(get_template_names(), False),
101
- default="Default",
102
- )
103
-
104
- if project_name.is_dir():
105
- console.print(
106
- f"\nFolder [red]{project_name}[/red] exists. Please type another name\n",
107
- )
108
- else:
109
- project_name.mkdir()
110
- new_cfg = {}
111
- new_cfg_path = Path.resolve(project_name / "manim.cfg")
112
-
113
- if not default_settings:
114
- for key, value in CFG_DEFAULTS.items():
115
- if key == "scene_names":
116
- new_cfg[key] = template_name + "Template"
117
- elif key == "resolution":
118
- new_cfg[key] = select_resolution()
119
- else:
120
- new_cfg[key] = click.prompt(f"\n{key}", default=value)
121
-
122
- console.print("\n", new_cfg)
123
- if click.confirm("Do you want to continue?", default=True, abort=True):
124
- copy_template_files(project_name, template_name)
125
- update_cfg(new_cfg, new_cfg_path)
126
- else:
127
- copy_template_files(project_name, template_name)
128
- update_cfg(CFG_DEFAULTS, new_cfg_path)
129
-
130
-
131
- @cloup.command(
132
- context_settings=CONTEXT_SETTINGS,
133
- no_args_is_help=True,
134
- epilog=EPILOG,
135
- )
136
- @cloup.argument("scene_name", type=str, required=True)
137
- @cloup.argument("file_name", type=str, required=False)
138
- def scene(**args):
139
- """Inserts a SCENE to an existing FILE or creates a new FILE.
140
-
141
- SCENE is the name of the scene that will be inserted.
142
-
143
- FILE is the name of file in which the SCENE will be inserted.
144
- """
145
- if not Path("main.py").exists():
146
- raise FileNotFoundError(f"{Path('main.py')} : Not a valid project directory.")
147
-
148
- template_name = click.prompt(
149
- "template",
150
- type=click.Choice(get_template_names(), False),
151
- default="Default",
152
- )
153
- scene = (get_template_path() / f"{template_name}.mtp").resolve().read_text()
154
- scene = scene.replace(template_name + "Template", args["scene_name"], 1)
155
-
156
- if args["file_name"]:
157
- file_name = Path(args["file_name"] + ".py")
158
-
159
- if file_name.is_file():
160
- # file exists so we are going to append new scene to that file
161
- with file_name.open("a") as f:
162
- f.write("\n\n\n" + scene)
163
- else:
164
- # file does not exist so we create a new file, append the scene and prepend the import statement
165
- file_name.write_text("\n\n\n" + scene)
166
-
167
- add_import_statement(file_name)
168
- else:
169
- # file name is not provided so we assume it is main.py
170
- # if main.py does not exist we do not continue
171
- with Path("main.py").open("a") as f:
172
- f.write("\n\n\n" + scene)
173
-
174
-
175
- @cloup.group(
176
- context_settings=CONTEXT_SETTINGS,
177
- invoke_without_command=True,
178
- no_args_is_help=True,
179
- epilog=EPILOG,
180
- help="Create a new project or insert a new scene.",
181
- deprecated=True,
182
- )
183
- @cloup.pass_context
184
- def new(ctx):
185
- pass
186
-
187
-
188
- new.add_command(project)
189
- new.add_command(scene)
manim/communitycolors.py DELETED
@@ -1,9 +0,0 @@
1
- """The colormap of manim community"""
2
-
3
- from __future__ import annotations
4
-
5
- LOGO_WHITE = "#ece6e2"
6
- LOGO_GREEN = "#87c2a5"
7
- LOGO_BLUE = "#525893"
8
- LOGO_RED = "#e07a5f"
9
- LOGO_BLACK = "#343434"
manim/gui/__init__.py DELETED
File without changes
manim/gui/gui.py DELETED
@@ -1,82 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from pathlib import Path
4
-
5
- try:
6
- import dearpygui.dearpygui as dpg
7
-
8
- dearpygui_imported = True
9
- except ImportError:
10
- dearpygui_imported = False
11
-
12
-
13
- from .. import __version__, config
14
- from ..utils.module_ops import scene_classes_from_file
15
-
16
- if dearpygui_imported:
17
- dpg.create_context()
18
- window = dpg.generate_uuid()
19
-
20
-
21
- def configure_pygui(renderer, widgets, update=True):
22
- if not dearpygui_imported:
23
- raise RuntimeError("Attempted to use DearPyGUI when it isn't imported.")
24
- if update:
25
- dpg.delete_item(window)
26
- else:
27
- dpg.create_viewport()
28
- dpg.setup_dearpygui()
29
- dpg.show_viewport()
30
-
31
- dpg.set_viewport_title(title=f"Manim Community v{__version__}")
32
- dpg.set_viewport_width(1015)
33
- dpg.set_viewport_height(540)
34
-
35
- def rerun_callback(sender, data):
36
- renderer.scene.queue.put(("rerun_gui", [], {}))
37
-
38
- def continue_callback(sender, data):
39
- renderer.scene.queue.put(("exit_gui", [], {}))
40
-
41
- def scene_selection_callback(sender, data):
42
- config["scene_names"] = (dpg.get_value(sender),)
43
- renderer.scene.queue.put(("rerun_gui", [], {}))
44
-
45
- scene_classes = scene_classes_from_file(Path(config["input_file"]), full_list=True)
46
- scene_names = [scene_class.__name__ for scene_class in scene_classes]
47
-
48
- with dpg.window(
49
- id=window,
50
- label="Manim GUI",
51
- pos=[config["gui_location"][0], config["gui_location"][1]],
52
- width=1000,
53
- height=500,
54
- ):
55
- dpg.set_global_font_scale(2)
56
- dpg.add_button(label="Rerun", callback=rerun_callback)
57
- dpg.add_button(label="Continue", callback=continue_callback)
58
- dpg.add_combo(
59
- label="Selected scene",
60
- items=scene_names,
61
- callback=scene_selection_callback,
62
- default_value=config["scene_names"][0],
63
- )
64
- dpg.add_separator()
65
- if len(widgets) != 0:
66
- with dpg.collapsing_header(
67
- label=f"{config['scene_names'][0]} widgets",
68
- default_open=True,
69
- ):
70
- for widget_config in widgets:
71
- widget_config_copy = widget_config.copy()
72
- name = widget_config_copy["name"]
73
- widget = widget_config_copy["widget"]
74
- if widget != "separator":
75
- del widget_config_copy["name"]
76
- del widget_config_copy["widget"]
77
- getattr(dpg, f"add_{widget}")(label=name, **widget_config_copy)
78
- else:
79
- dpg.add_separator()
80
-
81
- if not update:
82
- dpg.start_dearpygui()
@@ -1,43 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import types
4
-
5
- import pkg_resources
6
-
7
- from .. import config, logger
8
-
9
- __all__ = []
10
-
11
-
12
- plugins_requested: list = config["plugins"]
13
- if "" in plugins_requested:
14
- plugins_requested.remove("")
15
- for plugin in pkg_resources.iter_entry_points("manim.plugins"):
16
- if plugin.name not in plugins_requested:
17
- continue
18
- loaded_plugin = plugin.load()
19
- if isinstance(loaded_plugin, types.ModuleType):
20
- # it is a module so it can't be called
21
- # see if __all__ is defined
22
- # if it is defined use that to load all the modules necessary
23
- # essentially this would be similar to `from plugin import *``
24
- # if not just import the module with the plugin name
25
- if hasattr(loaded_plugin, "__all__"):
26
- for thing in loaded_plugin.__all__: # type: ignore
27
- exec(f"{thing}=loaded_plugin.{thing}")
28
- __all__.append(thing)
29
- else:
30
- exec(f"{plugin.name}=loaded_plugin")
31
- __all__.append(plugin.name)
32
- elif isinstance(loaded_plugin, types.FunctionType):
33
- # call the function first
34
- # it will return a list of modules to add globally
35
- # finally add it
36
- lists = loaded_plugin()
37
- for lst in lists:
38
- exec(f"{lst.__name__}=lst")
39
- __all__.append(lst.__name__)
40
- plugins_requested.remove(plugin.name)
41
-
42
- if plugins_requested != []:
43
- logger.warning("Missing Plugins: %s", plugins_requested)