diplotocus 0.3.2__tar.gz → 0.3.5__tar.gz

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 (245) hide show
  1. {diplotocus-0.3.2 → diplotocus-0.3.5}/.gitignore +2 -3
  2. {diplotocus-0.3.2 → diplotocus-0.3.5}/PKG-INFO +3 -3
  3. {diplotocus-0.3.2 → diplotocus-0.3.5}/docs/source/api/core.rst +1 -1
  4. {diplotocus-0.3.2 → diplotocus-0.3.5}/docs/source/index.rst +1 -0
  5. {diplotocus-0.3.2 → diplotocus-0.3.5}/docs/source/notebooks/animations.ipynb +16 -9
  6. {diplotocus-0.3.2 → diplotocus-0.3.5}/docs/source/notebooks/installation.ipynb +1 -1
  7. diplotocus-0.3.5/logo.png +0 -0
  8. {diplotocus-0.3.2 → diplotocus-0.3.5}/readme.md +2 -2
  9. diplotocus-0.3.5/src/diplotocus/_version.py +1 -0
  10. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus/animations.py +45 -56
  11. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus/core.py +59 -21
  12. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus.egg-info/PKG-INFO +3 -3
  13. diplotocus-0.3.5/src/diplotocus.egg-info/SOURCES.txt +114 -0
  14. diplotocus-0.3.2/docs/build/doctrees/api/core.doctree +0 -0
  15. diplotocus-0.3.2/docs/build/doctrees/api/index.doctree +0 -0
  16. diplotocus-0.3.2/docs/build/doctrees/environment.pickle +0 -0
  17. diplotocus-0.3.2/docs/build/doctrees/index.doctree +0 -0
  18. diplotocus-0.3.2/docs/build/doctrees/notebooks/GUI.doctree +0 -0
  19. diplotocus-0.3.2/docs/build/doctrees/notebooks/animations.doctree +0 -0
  20. diplotocus-0.3.2/docs/build/doctrees/notebooks/easings.doctree +0 -0
  21. diplotocus-0.3.2/docs/build/doctrees/notebooks/installation.doctree +0 -0
  22. diplotocus-0.3.2/docs/build/doctrees/notebooks/plot_objects.doctree +0 -0
  23. diplotocus-0.3.2/docs/build/doctrees/notebooks/quick-start.doctree +0 -0
  24. diplotocus-0.3.2/docs/build/doctrees/notebooks/timeline.doctree +0 -0
  25. diplotocus-0.3.2/docs/build/html/.buildinfo +0 -4
  26. diplotocus-0.3.2/docs/build/html/_sources/api/core.rst.txt +0 -119
  27. diplotocus-0.3.2/docs/build/html/_sources/api/index.rst.txt +0 -9
  28. diplotocus-0.3.2/docs/build/html/_sources/index.rst.txt +0 -87
  29. diplotocus-0.3.2/docs/build/html/_sources/notebooks/GUI.ipynb.txt +0 -91
  30. diplotocus-0.3.2/docs/build/html/_sources/notebooks/animations.ipynb.txt +0 -1071
  31. diplotocus-0.3.2/docs/build/html/_sources/notebooks/easings.ipynb.txt +0 -1614
  32. diplotocus-0.3.2/docs/build/html/_sources/notebooks/installation.ipynb.txt +0 -56
  33. diplotocus-0.3.2/docs/build/html/_sources/notebooks/plot_objects.ipynb.txt +0 -47
  34. diplotocus-0.3.2/docs/build/html/_sources/notebooks/quick-start.ipynb.txt +0 -231
  35. diplotocus-0.3.2/docs/build/html/_sources/notebooks/timeline.ipynb.txt +0 -72
  36. diplotocus-0.3.2/docs/build/html/_static/Web_GUI.png +0 -0
  37. diplotocus-0.3.2/docs/build/html/_static/basic.css +0 -925
  38. diplotocus-0.3.2/docs/build/html/_static/check-solid.svg +0 -4
  39. diplotocus-0.3.2/docs/build/html/_static/clipboard.min.js +0 -7
  40. diplotocus-0.3.2/docs/build/html/_static/copy-button.svg +0 -5
  41. diplotocus-0.3.2/docs/build/html/_static/copybutton.css +0 -94
  42. diplotocus-0.3.2/docs/build/html/_static/copybutton.js +0 -248
  43. diplotocus-0.3.2/docs/build/html/_static/copybutton_funcs.js +0 -73
  44. diplotocus-0.3.2/docs/build/html/_static/debug.css +0 -69
  45. diplotocus-0.3.2/docs/build/html/_static/doctools.js +0 -156
  46. diplotocus-0.3.2/docs/build/html/_static/documentation_options.js +0 -13
  47. diplotocus-0.3.2/docs/build/html/_static/file.png +0 -0
  48. diplotocus-0.3.2/docs/build/html/_static/language_data.js +0 -199
  49. diplotocus-0.3.2/docs/build/html/_static/minus.png +0 -0
  50. diplotocus-0.3.2/docs/build/html/_static/mystnb.8ecb98da25f57f5357bf6f572d296f466b2cfe2517ffebfabe82451661e28f02.css +0 -2474
  51. diplotocus-0.3.2/docs/build/html/_static/plus.png +0 -0
  52. diplotocus-0.3.2/docs/build/html/_static/pygments.css +0 -249
  53. diplotocus-0.3.2/docs/build/html/_static/scripts/furo-extensions.js +0 -0
  54. diplotocus-0.3.2/docs/build/html/_static/scripts/furo.js +0 -3
  55. diplotocus-0.3.2/docs/build/html/_static/scripts/furo.js.LICENSE.txt +0 -7
  56. diplotocus-0.3.2/docs/build/html/_static/scripts/furo.js.map +0 -1
  57. diplotocus-0.3.2/docs/build/html/_static/searchtools.js +0 -620
  58. diplotocus-0.3.2/docs/build/html/_static/skeleton.css +0 -296
  59. diplotocus-0.3.2/docs/build/html/_static/sphinx_highlight.js +0 -154
  60. diplotocus-0.3.2/docs/build/html/_static/styles/furo-extensions.css +0 -2
  61. diplotocus-0.3.2/docs/build/html/_static/styles/furo-extensions.css.map +0 -1
  62. diplotocus-0.3.2/docs/build/html/_static/styles/furo.css +0 -2
  63. diplotocus-0.3.2/docs/build/html/_static/styles/furo.css.map +0 -1
  64. diplotocus-0.3.2/docs/build/html/api/core.html +0 -3573
  65. diplotocus-0.3.2/docs/build/html/api/index.html +0 -333
  66. diplotocus-0.3.2/docs/build/html/genindex.html +0 -742
  67. diplotocus-0.3.2/docs/build/html/index.html +0 -471
  68. diplotocus-0.3.2/docs/build/html/notebooks/GUI.html +0 -394
  69. diplotocus-0.3.2/docs/build/html/notebooks/animations.html +0 -1049
  70. diplotocus-0.3.2/docs/build/html/notebooks/easings.html +0 -992
  71. diplotocus-0.3.2/docs/build/html/notebooks/installation.html +0 -338
  72. diplotocus-0.3.2/docs/build/html/notebooks/plot_objects.html +0 -375
  73. diplotocus-0.3.2/docs/build/html/notebooks/quick-start.html +0 -422
  74. diplotocus-0.3.2/docs/build/html/notebooks/timeline.html +0 -391
  75. diplotocus-0.3.2/docs/build/html/objects.inv +0 -0
  76. diplotocus-0.3.2/docs/build/html/py-modindex.html +0 -315
  77. diplotocus-0.3.2/docs/build/html/search.html +0 -305
  78. diplotocus-0.3.2/docs/build/html/searchindex.js +0 -1
  79. diplotocus-0.3.2/docs/build/jupyter_execute/notebooks/GUI.ipynb +0 -91
  80. diplotocus-0.3.2/docs/build/jupyter_execute/notebooks/animations.ipynb +0 -1071
  81. diplotocus-0.3.2/docs/build/jupyter_execute/notebooks/easings.ipynb +0 -1614
  82. diplotocus-0.3.2/docs/build/jupyter_execute/notebooks/installation.ipynb +0 -56
  83. diplotocus-0.3.2/docs/build/jupyter_execute/notebooks/plot_objects.ipynb +0 -47
  84. diplotocus-0.3.2/docs/build/jupyter_execute/notebooks/quick-start.ipynb +0 -231
  85. diplotocus-0.3.2/docs/build/jupyter_execute/notebooks/timeline.ipynb +0 -72
  86. diplotocus-0.3.2/docs/source/_static/Web_GUI.png +0 -0
  87. diplotocus-0.3.2/docs/source/_static/anim_draw.mp4 +0 -0
  88. diplotocus-0.3.2/docs/source/_static/anim_morph.mp4 +0 -0
  89. diplotocus-0.3.2/docs/source/_static/anim_rotate.mp4 +0 -0
  90. diplotocus-0.3.2/docs/source/_static/anim_scale.mp4 +0 -0
  91. diplotocus-0.3.2/docs/source/_static/anim_sequence.mp4 +0 -0
  92. diplotocus-0.3.2/docs/source/_static/anim_translate.mp4 +0 -0
  93. diplotocus-0.3.2/docs/source/_static/anim_tween.mp4 +0 -0
  94. diplotocus-0.3.2/docs/source/_static/axis_alpha.mp4 +0 -0
  95. diplotocus-0.3.2/docs/source/_static/axis_limits.mp4 +0 -0
  96. diplotocus-0.3.2/docs/source/_static/axis_move.mp4 +0 -0
  97. diplotocus-0.3.2/docs/source/_static/axis_zoom.mp4 +0 -0
  98. diplotocus-0.3.2/docs/source/_static/button.svg +0 -174
  99. diplotocus-0.3.2/docs/source/_static/cubicBezier.mp4 +0 -0
  100. diplotocus-0.3.2/docs/source/_static/customEase.mp4 +0 -0
  101. diplotocus-0.3.2/docs/source/_static/demo.mp4 +0 -0
  102. diplotocus-0.3.2/docs/source/_static/easeInBack.mp4 +0 -0
  103. diplotocus-0.3.2/docs/source/_static/easeInBounce.mp4 +0 -0
  104. diplotocus-0.3.2/docs/source/_static/easeInCirc.mp4 +0 -0
  105. diplotocus-0.3.2/docs/source/_static/easeInCubic.mp4 +0 -0
  106. diplotocus-0.3.2/docs/source/_static/easeInElastic.mp4 +0 -0
  107. diplotocus-0.3.2/docs/source/_static/easeInExpo.mp4 +0 -0
  108. diplotocus-0.3.2/docs/source/_static/easeInOutBack.mp4 +0 -0
  109. diplotocus-0.3.2/docs/source/_static/easeInOutBounce.mp4 +0 -0
  110. diplotocus-0.3.2/docs/source/_static/easeInOutCirc.mp4 +0 -0
  111. diplotocus-0.3.2/docs/source/_static/easeInOutCubic.mp4 +0 -0
  112. diplotocus-0.3.2/docs/source/_static/easeInOutElastic.mp4 +0 -0
  113. diplotocus-0.3.2/docs/source/_static/easeInOutExpo.mp4 +0 -0
  114. diplotocus-0.3.2/docs/source/_static/easeInOutQuad.mp4 +0 -0
  115. diplotocus-0.3.2/docs/source/_static/easeInOutQuart.mp4 +0 -0
  116. diplotocus-0.3.2/docs/source/_static/easeInOutQuint.mp4 +0 -0
  117. diplotocus-0.3.2/docs/source/_static/easeInOutSine.mp4 +0 -0
  118. diplotocus-0.3.2/docs/source/_static/easeInQuad.mp4 +0 -0
  119. diplotocus-0.3.2/docs/source/_static/easeInQuart.mp4 +0 -0
  120. diplotocus-0.3.2/docs/source/_static/easeInQuint.mp4 +0 -0
  121. diplotocus-0.3.2/docs/source/_static/easeInSine.mp4 +0 -0
  122. diplotocus-0.3.2/docs/source/_static/easeLinear.mp4 +0 -0
  123. diplotocus-0.3.2/docs/source/_static/easeOutBack.mp4 +0 -0
  124. diplotocus-0.3.2/docs/source/_static/easeOutBounce.mp4 +0 -0
  125. diplotocus-0.3.2/docs/source/_static/easeOutCirc.mp4 +0 -0
  126. diplotocus-0.3.2/docs/source/_static/easeOutCubic.mp4 +0 -0
  127. diplotocus-0.3.2/docs/source/_static/easeOutElastic.mp4 +0 -0
  128. diplotocus-0.3.2/docs/source/_static/easeOutExpo.mp4 +0 -0
  129. diplotocus-0.3.2/docs/source/_static/easeOutQuad.mp4 +0 -0
  130. diplotocus-0.3.2/docs/source/_static/easeOutQuart.mp4 +0 -0
  131. diplotocus-0.3.2/docs/source/_static/easeOutQuint.mp4 +0 -0
  132. diplotocus-0.3.2/docs/source/_static/easeOutSine.mp4 +0 -0
  133. diplotocus-0.3.2/docs/source/_static/fig_height_ratio.mp4 +0 -0
  134. diplotocus-0.3.2/docs/source/_static/fig_width_ratio.mp4 +0 -0
  135. diplotocus-0.3.2/docs/source/_static/force-light.css +0 -25
  136. diplotocus-0.3.2/docs/source/_static/force-light.js +0 -36
  137. diplotocus-0.3.2/docs/source/_static/logo.mp4 +0 -0
  138. diplotocus-0.3.2/docs/source/_static/logo.svg +0 -276
  139. diplotocus-0.3.2/logo.png +0 -0
  140. diplotocus-0.3.2/src/diplotocus/GUI/src/favicon.ico +0 -0
  141. diplotocus-0.3.2/src/diplotocus/_version.py +0 -1
  142. diplotocus-0.3.2/src/diplotocus.egg-info/SOURCES.txt +0 -240
  143. {diplotocus-0.3.2 → diplotocus-0.3.5}/.gitattributes +0 -0
  144. {diplotocus-0.3.2 → diplotocus-0.3.5}/.readthedocs.yaml +0 -0
  145. {diplotocus-0.3.2 → diplotocus-0.3.5}/LICENSE +0 -0
  146. {diplotocus-0.3.2 → diplotocus-0.3.5}/docs/Makefile +0 -0
  147. {diplotocus-0.3.2 → diplotocus-0.3.5}/docs/_static/force-light.css +0 -0
  148. {diplotocus-0.3.2 → diplotocus-0.3.5}/docs/_static/force-light.js +0 -0
  149. {diplotocus-0.3.2 → diplotocus-0.3.5}/docs/make.bat +0 -0
  150. {diplotocus-0.3.2 → diplotocus-0.3.5}/docs/requirements.txt +0 -0
  151. {diplotocus-0.3.2/docs/build/html/_images → diplotocus-0.3.5/docs/source/_static}/Web_GUI.png +0 -0
  152. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/anim_draw.mp4 +0 -0
  153. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/anim_morph.mp4 +0 -0
  154. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/anim_rotate.mp4 +0 -0
  155. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/anim_scale.mp4 +0 -0
  156. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/anim_sequence.mp4 +0 -0
  157. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/anim_translate.mp4 +0 -0
  158. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/anim_tween.mp4 +0 -0
  159. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/axis_alpha.mp4 +0 -0
  160. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/axis_limits.mp4 +0 -0
  161. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/axis_move.mp4 +0 -0
  162. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/axis_zoom.mp4 +0 -0
  163. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/button.svg +0 -0
  164. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/cubicBezier.mp4 +0 -0
  165. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/customEase.mp4 +0 -0
  166. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/demo.mp4 +0 -0
  167. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeInBack.mp4 +0 -0
  168. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeInBounce.mp4 +0 -0
  169. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeInCirc.mp4 +0 -0
  170. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeInCubic.mp4 +0 -0
  171. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeInElastic.mp4 +0 -0
  172. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeInExpo.mp4 +0 -0
  173. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeInOutBack.mp4 +0 -0
  174. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeInOutBounce.mp4 +0 -0
  175. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeInOutCirc.mp4 +0 -0
  176. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeInOutCubic.mp4 +0 -0
  177. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeInOutElastic.mp4 +0 -0
  178. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeInOutExpo.mp4 +0 -0
  179. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeInOutQuad.mp4 +0 -0
  180. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeInOutQuart.mp4 +0 -0
  181. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeInOutQuint.mp4 +0 -0
  182. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeInOutSine.mp4 +0 -0
  183. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeInQuad.mp4 +0 -0
  184. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeInQuart.mp4 +0 -0
  185. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeInQuint.mp4 +0 -0
  186. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeInSine.mp4 +0 -0
  187. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeLinear.mp4 +0 -0
  188. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeOutBack.mp4 +0 -0
  189. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeOutBounce.mp4 +0 -0
  190. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeOutCirc.mp4 +0 -0
  191. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeOutCubic.mp4 +0 -0
  192. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeOutElastic.mp4 +0 -0
  193. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeOutExpo.mp4 +0 -0
  194. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeOutQuad.mp4 +0 -0
  195. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeOutQuart.mp4 +0 -0
  196. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeOutQuint.mp4 +0 -0
  197. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/easeOutSine.mp4 +0 -0
  198. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/favicon.ico +0 -0
  199. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/fig_height_ratio.mp4 +0 -0
  200. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/fig_width_ratio.mp4 +0 -0
  201. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/force-light.css +0 -0
  202. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/force-light.js +0 -0
  203. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/logo.mp4 +0 -0
  204. {diplotocus-0.3.2/docs/build/html → diplotocus-0.3.5/docs/source}/_static/logo.svg +0 -0
  205. {diplotocus-0.3.2 → diplotocus-0.3.5}/docs/source/api/index.rst +0 -0
  206. {diplotocus-0.3.2 → diplotocus-0.3.5}/docs/source/conf.py +0 -0
  207. {diplotocus-0.3.2 → diplotocus-0.3.5}/docs/source/notebooks/GUI.ipynb +0 -0
  208. {diplotocus-0.3.2 → diplotocus-0.3.5}/docs/source/notebooks/easings.ipynb +0 -0
  209. {diplotocus-0.3.2 → diplotocus-0.3.5}/docs/source/notebooks/index.ipynb +0 -0
  210. {diplotocus-0.3.2 → diplotocus-0.3.5}/docs/source/notebooks/logo.ipynb +0 -0
  211. {diplotocus-0.3.2 → diplotocus-0.3.5}/docs/source/notebooks/plot_objects.ipynb +0 -0
  212. {diplotocus-0.3.2 → diplotocus-0.3.5}/docs/source/notebooks/quick-start.ipynb +0 -0
  213. {diplotocus-0.3.2 → diplotocus-0.3.5}/docs/source/notebooks/timeline.ipynb +0 -0
  214. {diplotocus-0.3.2 → diplotocus-0.3.5}/pyproject.toml +0 -0
  215. {diplotocus-0.3.2 → diplotocus-0.3.5}/setup.cfg +0 -0
  216. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus/GUI/GUI.html +0 -0
  217. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus/GUI/__init__.py +0 -0
  218. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus/GUI/app.js +0 -0
  219. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus/GUI/server.py +0 -0
  220. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus/GUI/src/bg.png +0 -0
  221. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus/GUI/src/btn/btn_bg_Draw.png +0 -0
  222. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus/GUI/src/btn/btn_bg_Morph.png +0 -0
  223. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus/GUI/src/btn/btn_bg_Rotate.png +0 -0
  224. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus/GUI/src/btn/btn_bg_Scale.png +0 -0
  225. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus/GUI/src/btn/btn_bg_Sequence.png +0 -0
  226. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus/GUI/src/btn/btn_bg_Translate.png +0 -0
  227. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus/GUI/src/btn/btn_bg_Tween.png +0 -0
  228. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus/GUI/src/btn/btn_bg_default.png +0 -0
  229. {diplotocus-0.3.2/docs/source/_static → diplotocus-0.3.5/src/diplotocus/GUI/src}/favicon.ico +0 -0
  230. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus/GUI/src/logo_bg.png +0 -0
  231. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus/GUI/style.css +0 -0
  232. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus/__init__.py +0 -0
  233. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus/easings.py +0 -0
  234. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus.egg-info/dependency_links.txt +0 -0
  235. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus.egg-info/requires.txt +0 -0
  236. {diplotocus-0.3.2 → diplotocus-0.3.5}/src/diplotocus.egg-info/top_level.txt +0 -0
  237. {diplotocus-0.3.2 → diplotocus-0.3.5}/tests/test.py +0 -0
  238. {diplotocus-0.3.2 → diplotocus-0.3.5}/tests/test10.py +0 -0
  239. {diplotocus-0.3.2 → diplotocus-0.3.5}/tests/test2.py +0 -0
  240. {diplotocus-0.3.2 → diplotocus-0.3.5}/tests/test3.py +0 -0
  241. {diplotocus-0.3.2 → diplotocus-0.3.5}/tests/test4.py +0 -0
  242. {diplotocus-0.3.2 → diplotocus-0.3.5}/tests/test5.py +0 -0
  243. {diplotocus-0.3.2 → diplotocus-0.3.5}/tests/test6.py +0 -0
  244. {diplotocus-0.3.2 → diplotocus-0.3.5}/tests/test7.py +0 -0
  245. {diplotocus-0.3.2 → diplotocus-0.3.5}/tests/test8.py +0 -0
@@ -3,8 +3,6 @@ __pycache__/
3
3
  *.ai
4
4
  GUI_web/.DS_Store
5
5
  .DS_Store
6
- diplotocus-docs/.DS_Store
7
- diplotocus-docs/Unnamed/
8
6
  tests
9
7
  .vscode
10
8
  Unnamed
@@ -13,4 +11,5 @@ diplotocus.egg-info
13
11
  generate_doc_api.py
14
12
  dist
15
13
  src/diplotocus/INFO
16
- INFO
14
+ INFO
15
+ docs/build
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diplotocus
3
- Version: 0.3.2
3
+ Version: 0.3.5
4
4
  Summary: A python package to generate animations of matplotlib objects.
5
5
  Author-email: Tristan Boin <tristan.boin@obspm.fr>
6
6
  License-Expression: MIT
@@ -16,10 +16,10 @@ Requires-Dist: svgpath2mpl
16
16
  Dynamic: license-file
17
17
 
18
18
  <p align="center">
19
- <img src="https://github.com/titanbin/Diplotocus/blob/main/logo.png?raw=true" />
19
+ <img width="300" src="https://github.com/titanbin/Diplotocus/blob/main/logo.png?raw=true" />
20
20
  </p>
21
21
 
22
- [![Documentation](https://img.shields.io/badge/docs-passing-success)](https://diplotocus.readthedocs.io) [![License](https://img.shields.io/badge/license-MIT-green)](https://github.com/titanbin/Diplotocus/blob/main/LICENSEE) [![License](https://img.shields.io/pypi/v/diplotocus?color=blue)](https://pypi.org/project/diplotocus/)
22
+ [![Documentation](https://img.shields.io/badge/docs-passing-success)](https://diplotocus.readthedocs.io) [![License](https://img.shields.io/badge/license-MIT-green)](https://github.com/titanbin/Diplotocus/blob/main/LICENSE) [![License](https://img.shields.io/pypi/v/diplotocus?color=blue)](https://pypi.org/project/diplotocus/)
23
23
 
24
24
  **Diplotocus** is a python package designed to render animations of matplotlib objects, in a *timeline* style.
25
25
 
@@ -15,7 +15,7 @@ Animations
15
15
  Base
16
16
  ~~~~
17
17
 
18
- .. autoclass:: diplotocus.animations.Animation
18
+ .. autoclass:: diplotocus.animations.plotObject
19
19
  :members:
20
20
  :undoc-members:
21
21
  :show-inheritance:
@@ -78,6 +78,7 @@ Get started by :doc:`Installing Diplotocus <notebooks/installation>`, and follow
78
78
  notebooks/plot_objects
79
79
  notebooks/animations
80
80
  notebooks/easings
81
+ notebooks/projects
81
82
  notebooks/GUI
82
83
 
83
84
  .. toctree::
@@ -14,7 +14,14 @@
14
14
  "\n",
15
15
  "Once animations have been set on plot objects, they have to be rendered via `Timeline.animate(plot_objs)` ([See Timeline](timeline)).\n",
16
16
  "\n",
17
- "## Animations of plot objects"
17
+ "## Animations of plot objects\n",
18
+ "\n",
19
+ "### Plot\n",
20
+ "\n",
21
+ "```{eval-rst}\n",
22
+ ".. automethod:: diplotocus.animations.plotObject.plot\n",
23
+ " :noindex:\n",
24
+ "```"
18
25
  ]
19
26
  },
20
27
  {
@@ -25,7 +32,7 @@
25
32
  "### Translate\n",
26
33
  "\n",
27
34
  "```{eval-rst}\n",
28
- ".. automethod:: diplotocus.animations.Animation.translate\n",
35
+ ".. automethod:: diplotocus.animations.plotObject.translate\n",
29
36
  " :noindex:\n",
30
37
  "```"
31
38
  ]
@@ -102,7 +109,7 @@
102
109
  "### Rotate\n",
103
110
  "\n",
104
111
  "```{eval-rst}\n",
105
- ".. automethod:: diplotocus.animations.Animation.rotate\n",
112
+ ".. automethod:: diplotocus.animations.plotObject.rotate\n",
106
113
  " :noindex:\n",
107
114
  "```"
108
115
  ]
@@ -179,7 +186,7 @@
179
186
  "### Scale\n",
180
187
  "\n",
181
188
  "```{eval-rst}\n",
182
- ".. automethod:: diplotocus.animations.Animation.scale\n",
189
+ ".. automethod:: diplotocus.animations.plotObject.scale\n",
183
190
  " :noindex:\n",
184
191
  "```"
185
192
  ]
@@ -256,12 +263,12 @@
256
263
  "### Tween\n",
257
264
  "\n",
258
265
  "```{eval-rst}\n",
259
- ".. automethod:: diplotocus.animations.Animation.tween\n",
266
+ ".. automethod:: diplotocus.animations.plotObject.tween\n",
260
267
  " :noindex:\n",
261
268
  "```\n",
262
269
  "\n",
263
270
  "```{eval-rst}\n",
264
- ".. automethod:: diplotocus.animations.Animation.tweens\n",
271
+ ".. automethod:: diplotocus.animations.plotObject.tweens\n",
265
272
  " :noindex:\n",
266
273
  "```\n",
267
274
  "\n",
@@ -345,7 +352,7 @@
345
352
  "### Morph\n",
346
353
  "\n",
347
354
  "```{eval-rst}\n",
348
- ".. automethod:: diplotocus.animations.Animation.morph\n",
355
+ ".. automethod:: diplotocus.animations.plotObject.morph\n",
349
356
  " :noindex:\n",
350
357
  "```"
351
358
  ]
@@ -426,7 +433,7 @@
426
433
  "### Draw\n",
427
434
  "\n",
428
435
  "```{eval-rst}\n",
429
- ".. automethod:: diplotocus.animations.Animation.draw\n",
436
+ ".. automethod:: diplotocus.animations.plotObject.draw\n",
430
437
  " :noindex:\n",
431
438
  "```"
432
439
  ]
@@ -504,7 +511,7 @@
504
511
  "### Sequence\n",
505
512
  "\n",
506
513
  "```{eval-rst}\n",
507
- ".. automethod:: diplotocus.animations.Animation.sequence\n",
514
+ ".. automethod:: diplotocus.animations.plotObject.sequence\n",
508
515
  " :noindex:\n",
509
516
  "```"
510
517
  ]
@@ -8,7 +8,7 @@
8
8
  "# Installation\n",
9
9
  "You can install this package by downloading the source code on Github :\n",
10
10
  "\n",
11
- "<a href=\"https://github.com/star-age/diplotocus\" target=\"_blank\">\n",
11
+ "<a href=\"https://github.com/titanbin/diplotocus\" target=\"_blank\">\n",
12
12
  "<img src=\"../_static/button.svg\" width=\"200\">\n",
13
13
  "</a>\n",
14
14
  "\n",
Binary file
@@ -1,8 +1,8 @@
1
1
  <p align="center">
2
- <img src="https://github.com/titanbin/Diplotocus/blob/main/logo.png?raw=true" />
2
+ <img width="300" src="https://github.com/titanbin/Diplotocus/blob/main/logo.png?raw=true" />
3
3
  </p>
4
4
 
5
- [![Documentation](https://img.shields.io/badge/docs-passing-success)](https://diplotocus.readthedocs.io) [![License](https://img.shields.io/badge/license-MIT-green)](https://github.com/titanbin/Diplotocus/blob/main/LICENSEE) [![License](https://img.shields.io/pypi/v/diplotocus?color=blue)](https://pypi.org/project/diplotocus/)
5
+ [![Documentation](https://img.shields.io/badge/docs-passing-success)](https://diplotocus.readthedocs.io) [![License](https://img.shields.io/badge/license-MIT-green)](https://github.com/titanbin/Diplotocus/blob/main/LICENSE) [![License](https://img.shields.io/pypi/v/diplotocus?color=blue)](https://pypi.org/project/diplotocus/)
6
6
 
7
7
  **Diplotocus** is a python package designed to render animations of matplotlib objects, in a *timeline* style.
8
8
 
@@ -0,0 +1 @@
1
+ __version__ = "0.3.5"
@@ -32,16 +32,12 @@ def to_np_array(obj):
32
32
  obj = np.ravel(obj)
33
33
  return obj
34
34
 
35
- class Animation:
35
+ class plotObject:
36
36
  """
37
- A parent Animation object for all plotting objects.
37
+ A parent plotObject object for all plotting objects.
38
38
 
39
39
  Parameters
40
40
  ----------
41
- duration : float
42
- Duration of the animation
43
- delay : float, default=0
44
- Delay before starting
45
41
  easing : callable, optional
46
42
  Easing function
47
43
  axis : matplotlib.axes.Axes, optional
@@ -332,6 +328,29 @@ class Animation:
332
328
  ends[i] = list(mpl.colors.to_rgba_array(ends[i])[0])
333
329
  return properties,starts,ends
334
330
 
331
+ def plot(self,duration,delay=0,easing=None,persistent=True):
332
+ """Plot the plot object as-is without animation.
333
+
334
+ Parameters
335
+ ----------
336
+ duration : float
337
+ the number of frames the animation runs from.
338
+ delay : float, default=0
339
+ the number of frames after what the animation starts playing.
340
+ easing : callable, optional
341
+ the easing used for this animation. If None, a linear easing is applied.
342
+ """
343
+ self.anims.append({
344
+ 'name':'plot',
345
+ 'duration':duration,
346
+ 'delay':delay,
347
+ 'easing':easing,
348
+ 'persistent':persistent,
349
+ 'played':False
350
+ })
351
+ self.compute_timings()
352
+ return self
353
+
335
354
  def tween(self,property,start,end,duration,delay=0,easing=None,persistent=True):
336
355
  """Animate a change in a property of the plot object.
337
356
 
@@ -839,7 +858,7 @@ class Animation:
839
858
  cy = 0.5 * (bbox.y0 + bbox.y1)
840
859
  return (cx,cy)
841
860
 
842
- class axis_zoom(Animation):
861
+ class axis_zoom(plotObject):
843
862
  """
844
863
  Zooms into the axis given a zoom value.
845
864
 
@@ -855,11 +874,6 @@ class axis_zoom(Animation):
855
874
  Easing function
856
875
  axis : matplotlib.axes.Axes, optional
857
876
  Axis to plot on
858
-
859
- Example
860
- --------
861
- Zoom 2 times in 100 frames:
862
- >>> axis_zoom(zoom=2,duration=100)
863
877
  """
864
878
  def __init__(self,zoom,duration,delay=0,easing=None,axis=None,*args,**kwargs):
865
879
  super().__init__(axis=axis,*args, **kwargs)
@@ -896,7 +910,7 @@ class axis_zoom(Animation):
896
910
  self.axis.set_xlim(x_range[0],x_range[1])
897
911
  self.axis.set_ylim(y_range[0],y_range[1])
898
912
 
899
- class axis_limits(Animation):
913
+ class axis_limits(plotObject):
900
914
  """
901
915
  Reframe axis to the given limits (on the x-axis, y-axis or both depending on passed arguments)
902
916
 
@@ -914,11 +928,6 @@ class axis_limits(Animation):
914
928
  Easing function
915
929
  axis : matplotlib.axes.Axes, optional
916
930
  Axis to plot on
917
-
918
- Example
919
- --------
920
- Reframe x-axis to limits [0-2] in 100 frames:
921
- >>> axis_limits(xlim=(0,2),duration=100)
922
931
  """
923
932
  def __init__(self,duration,xlim=None,ylim=None,delay=0,easing=None,axis=None,*args,**kwargs):
924
933
  if xlim is None and ylim is None:
@@ -957,7 +966,7 @@ class axis_limits(Animation):
957
966
  ylim_top = anim['start_ylim'][1] + (anim['ylim'][1] - anim['start_ylim'][1])*t
958
967
  self.axis.set_ylim(ylim_bottom,ylim_top)
959
968
 
960
- class axis_move(Animation):
969
+ class axis_move(plotObject):
961
970
  """
962
971
  Move the center of the axis to a given position.
963
972
 
@@ -973,11 +982,6 @@ class axis_move(Animation):
973
982
  Easing function
974
983
  axis : matplotlib.axes.Axes, optional
975
984
  Axis to plot on
976
-
977
- Example
978
- --------
979
- Recenter the axis to (-1,-1) in 100 frames:
980
- >>> axis_move(pos=(-1,-1),duration=100)
981
985
  """
982
986
  def __init__(self,end_pos,duration,start_pos=None,delay=0,easing=None,axis=None,*args,**kwargs):
983
987
  super().__init__(axis=axis,*args, **kwargs)
@@ -1013,7 +1017,7 @@ class axis_move(Animation):
1013
1017
  self.axis.set_xlim(pos_x-width/2,pos_x+width/2)
1014
1018
  self.axis.set_ylim(pos_y-height/2,pos_y+height/2)
1015
1019
 
1016
- class axis_alpha(Animation):
1020
+ class axis_alpha(plotObject):
1017
1021
  """
1018
1022
  Change the opacity of the axis.
1019
1023
 
@@ -1031,11 +1035,6 @@ class axis_alpha(Animation):
1031
1035
  Easing function
1032
1036
  axis : matplotlib.axes.Axes, optional
1033
1037
  Axis to plot on
1034
-
1035
- Example
1036
- --------
1037
- Make the axis appear in 100 frames
1038
- >>> axis_alpha(start_alpha=0,end_alpha=1,duration=100)
1039
1038
  """
1040
1039
  def __init__(self,start_alpha,end_alpha,duration,delay=0,alpha_objs=True,easing=None,axis=None,*args,**kwargs):
1041
1040
  super().__init__(axis=axis,*args, **kwargs)
@@ -1099,7 +1098,7 @@ class axis_alpha(Animation):
1099
1098
  for txt in leg.get_texts():
1100
1099
  txt.set_alpha(alpha)
1101
1100
 
1102
- class fig_width_ratio(Animation):
1101
+ class fig_width_ratio(plotObject):
1103
1102
  """
1104
1103
  Resize subplots' widths.
1105
1104
 
@@ -1117,11 +1116,6 @@ class fig_width_ratio(Animation):
1117
1116
  Easing function
1118
1117
  axis : matplotlib.axes.Axes, optional
1119
1118
  Axis to plot on
1120
-
1121
- Example
1122
- --------
1123
- Resize 2 subplots from equal widths to a ratio of 2:1 in 100 frames:
1124
- >>> fig_width_ratio(start_widths=(1,1),end_widths=(1,2),duration=100)
1125
1119
  """
1126
1120
  def __init__(self,start_widths,end_widths,duration,delay=0,easing=None,axis=None,*args,**kwargs):
1127
1121
  super().__init__(axis=axis,*args, **kwargs)
@@ -1175,7 +1169,7 @@ class fig_width_ratio(Animation):
1175
1169
  if row[i].axison == False:
1176
1170
  row[i].set_axis_on()
1177
1171
 
1178
- class fig_height_ratio(Animation):
1172
+ class fig_height_ratio(plotObject):
1179
1173
  """
1180
1174
  Resize subplots' heights.
1181
1175
 
@@ -1193,11 +1187,6 @@ class fig_height_ratio(Animation):
1193
1187
  Easing function
1194
1188
  axis : matplotlib.axes.Axes, optional
1195
1189
  Axis to plot on
1196
-
1197
- Example
1198
- --------
1199
- Resize 2 subplots from equal heights to a ratio of 2:1 in 100 frames:
1200
- >>> fig_width_ratio(start_heights=(1,1),end_heights=(1,2),duration=100)
1201
1190
  """
1202
1191
  def __init__(self,start_heights,end_heights,duration,delay=0,easing=None,axis=None,*args,**kwargs):
1203
1192
  super().__init__(axis=axis,*args, **kwargs)
@@ -1251,7 +1240,7 @@ class fig_height_ratio(Animation):
1251
1240
  if column[i].axison == False:
1252
1241
  column[i].set_axis_on()
1253
1242
 
1254
- class scatter(Animation):
1243
+ class scatter(plotObject):
1255
1244
  """
1256
1245
  A scatter plot of *y* vs. *x* with varying marker size and/or color.
1257
1246
 
@@ -1481,7 +1470,7 @@ class scatter(Animation):
1481
1470
  kwargs['c'] = c.reshape(1,-1)
1482
1471
  self.obj = self.axis.scatter(data_x,data_y,**kwargs)
1483
1472
 
1484
- class plot(Animation):
1473
+ class plot(plotObject):
1485
1474
  """
1486
1475
  Plot y versus x as lines and/or markers.
1487
1476
 
@@ -1797,7 +1786,7 @@ class plot(Animation):
1797
1786
  kwargs['alpha'] = kwargs['alpha'][0]
1798
1787
  self.obj = self.axis.plot(data_x,data_y,**kwargs)
1799
1788
 
1800
- class step(Animation):
1789
+ class step(plotObject):
1801
1790
  """
1802
1791
  Make a step plot.
1803
1792
 
@@ -1877,7 +1866,7 @@ class step(Animation):
1877
1866
 
1878
1867
  self.obj = self.axis.step(data_x,data_y,**kwargs)
1879
1868
 
1880
- class fill_between(Animation):
1869
+ class fill_between(plotObject):
1881
1870
  """
1882
1871
  Fill the area between two horizontal curves.
1883
1872
 
@@ -2045,7 +2034,7 @@ class fill_between(Animation):
2045
2034
  def function(self,data_x,data_y,x,kwargs):
2046
2035
  self.obj = self.axis.fill_between(x=data_x,**kwargs)
2047
2036
 
2048
- class fill_betweenx(Animation):
2037
+ class fill_betweenx(plotObject):
2049
2038
  """
2050
2039
  Fill the area between two vertical curves.
2051
2040
 
@@ -2213,7 +2202,7 @@ class fill_betweenx(Animation):
2213
2202
  def function(self,data_x,data_y,x,kwargs):
2214
2203
  self.obj = self.axis.fill_betweenx(y=data_x,**kwargs)
2215
2204
 
2216
- class axvline(Animation):
2205
+ class axvline(plotObject):
2217
2206
  """
2218
2207
  Add a vertical line spanning the whole or fraction of the Axes.
2219
2208
 
@@ -2352,7 +2341,7 @@ class axvline(Animation):
2352
2341
  if len(data_x) > 0:
2353
2342
  self.obj = [self.axis.axvline(data_x,**kwargs)]
2354
2343
 
2355
- class axhline(Animation):
2344
+ class axhline(plotObject):
2356
2345
  """
2357
2346
  Add a horizontal line spanning the whole or fraction of the Axes.
2358
2347
 
@@ -2430,7 +2419,7 @@ class axhline(Animation):
2430
2419
  if len(data_x) > 0:
2431
2420
  self.obj = [self.axis.axhline(data_x,**kwargs)]
2432
2421
 
2433
- class errorbar(Animation):
2422
+ class errorbar(plotObject):
2434
2423
  """
2435
2424
  Plot y versus x as lines and/or markers with attached errorbars.
2436
2425
 
@@ -2667,7 +2656,7 @@ class errorbar(Animation):
2667
2656
  obj = [obj.lines[0]] + list(obj.lines[1]) + list(obj.lines[2])
2668
2657
  self.obj = obj
2669
2658
 
2670
- class hist(Animation):
2659
+ class hist(plotObject):
2671
2660
  """
2672
2661
  Compute and plot a histogram.
2673
2662
 
@@ -2922,7 +2911,7 @@ class hist(Animation):
2922
2911
 
2923
2912
  h,edges,self.obj = self.axis.hist(data_x,**kwargs)
2924
2913
 
2925
- class hist2d(Animation):
2914
+ class hist2d(plotObject):
2926
2915
  """
2927
2916
  Make a 2D histogram plot.
2928
2917
 
@@ -3079,7 +3068,7 @@ class hist2d(Animation):
3079
3068
  self.axis.set_xlim(old_xlim)
3080
3069
  self.axis.set_ylim(old_ylim)
3081
3070
 
3082
- class contourf(Animation):
3071
+ class contourf(plotObject):
3083
3072
  """
3084
3073
  Plot filled contours.
3085
3074
 
@@ -3428,14 +3417,14 @@ class contourf(Animation):
3428
3417
  self.axis.set_xlim(old_xlim)
3429
3418
  self.axis.set_ylim(old_ylim)
3430
3419
 
3431
- class text(Animation):
3420
+ class text(plotObject):
3432
3421
  """
3433
3422
  Add text to the Axes.
3434
3423
 
3435
3424
  Add the text *s* to the Axes at location *x*, *y* in data coordinates,
3436
3425
  with a default ``horizontalalignment`` on the ``left`` and
3437
3426
  ``verticalalignment`` at the ``baseline``.
3438
-
3427
+
3439
3428
  Parameters
3440
3429
  ----------
3441
3430
  x, y : float
@@ -3607,7 +3596,7 @@ class text(Animation):
3607
3596
  self.path = patch.get_path()
3608
3597
  self.obj = patch
3609
3598
 
3610
- class svg(Animation):
3599
+ class svg(plotObject):
3611
3600
  """A vector SVG object.
3612
3601
 
3613
3602
  Parameters
@@ -59,11 +59,22 @@ def status_message(start_msg, end_msg):
59
59
  #----------------------------------------------
60
60
 
61
61
  def load_project(path):
62
+ """Load a project.
63
+
64
+ Parameters
65
+ ----------
66
+ path : str
67
+ the path to the project file.
68
+
69
+ Returns
70
+ ----------
71
+ (Timeline,list of plot objects)
72
+ """
62
73
  tl = pickle.load(open(path, 'rb'))
63
- animations = tl.animations
74
+ plot_objects = tl.plot_objects
64
75
  tl.x = 0
65
76
  tl.clean_all()
66
- return tl,animations
77
+ return tl,plot_objects
67
78
 
68
79
  class Timeline:
69
80
  """Create and manage an animation timeline.
@@ -117,11 +128,11 @@ class Timeline:
117
128
  self.ax = np.array(self.ax)
118
129
  if isinstance(self.ax,np.ndarray):
119
130
  if isinstance(self.ax[0],np.ndarray):
120
- self.main_axis = self.ax[0,0]
131
+ self.set_main_axis(self.ax[0,0])
121
132
  else:
122
- self.main_axis = self.ax[0]
133
+ self.set_main_axis(self.ax[0])
123
134
  else:
124
- self.main_axis = self.ax
135
+ self.set_main_axis(self.ax)
125
136
  if xlim is not None:
126
137
  self.main_axis.set_xlim(*xlim)
127
138
  if ylim is not None:
@@ -133,7 +144,7 @@ class Timeline:
133
144
  self.x = 0
134
145
  self.timeline_str = ''
135
146
  self.transparent = transparent
136
- self.animations = []
147
+ self.plot_objects = []
137
148
  if in_notebook() == False:
138
149
  namespace = sys._getframe(1).f_globals['__file__']
139
150
  self.full_path = '/'.join(namespace.split('/')[:-1])
@@ -142,7 +153,24 @@ class Timeline:
142
153
  if noaxis:
143
154
  self.main_axis.set_axis_off()
144
155
 
156
+ def set_main_axis(self,ax):
157
+ """Set the default axis to plot objects on
158
+
159
+ Parameters
160
+ ----------
161
+ ax : matplotlib.axes.Axes, optional
162
+ Axis to set as default
163
+ """
164
+ self.main_axis = ax
165
+
145
166
  def set_axis_color(self,color):
167
+ """Set the color of axes
168
+
169
+ Parameters
170
+ ----------
171
+ color : color or array-like, optional
172
+ The color to set the axes
173
+ """
146
174
  if isinstance(self.ax,np.ndarray) == False:
147
175
  axes = (self.ax,)
148
176
  else:
@@ -175,24 +203,24 @@ class Timeline:
175
203
  if p.get_animated():
176
204
  p.remove()
177
205
 
178
- def plot(self,animations,x=0,easing=None,debug=False):
179
- if isinstance(animations,Animation):
180
- animations = (animations,)
206
+ def plot(self,plot_objects,x=0,easing=None,debug=False):
207
+ if isinstance(plot_objects,plotObject):
208
+ plot_objects = (plot_objects,)
181
209
 
182
- for animation in animations:
183
- if animation.obj is not None and ((animation.x_min <= x < animation.x_max) or (x >= animation.x_max and animation.persistent == False)):
184
- objects = np.ravel(animation.obj)
210
+ for plot_object in plot_objects:
211
+ if plot_object.obj is not None and ((plot_object.x_min <= x < plot_object.x_max) or (x >= plot_object.x_max and plot_object.persistent == False)):
212
+ objects = np.ravel(plot_object.obj)
185
213
  for obj in objects:
186
214
  try:
187
215
  obj.remove()
188
216
  except:
189
217
  pass
190
218
 
191
- animation.initialize(self)
219
+ plot_object.initialize(self)
192
220
  #only plot if within an anim or if last one is persistent
193
221
  last_anim = None
194
222
  closest_dist = np.inf
195
- for anim in animation.anims:
223
+ for anim in plot_object.anims:
196
224
  anim_x_max = anim['duration']+anim['delay']
197
225
  if anim_x_max > x:
198
226
  continue
@@ -204,19 +232,19 @@ class Timeline:
204
232
  if last_anim is not None:
205
233
  is_within_anim = last_anim['persistent'] == True
206
234
  if is_within_anim == False:
207
- for anim in animation.anims:
235
+ for anim in plot_object.anims:
208
236
  anim_x_min = anim['delay']
209
237
  anim_x_max = anim['duration']+anim['delay']
210
238
  if anim_x_min <= x < anim_x_max:
211
239
  is_within_anim = True
212
240
  break
213
241
  if is_within_anim:
214
- animation.apply(x,easing)
242
+ plot_object.apply(x,easing)
215
243
  prev_x = self.x
216
244
  self.x = x
217
245
  self.save_plot(debug)
218
- for animation in animations:
219
- animation.clean(x,clear_anims=False)
246
+ for plot_object in plot_objects:
247
+ plot_object.clean(x,clear_anims=False)
220
248
  self.x = prev_x
221
249
 
222
250
  def animate(self,plot_objects,easing=None,debug=False):
@@ -224,14 +252,14 @@ class Timeline:
224
252
 
225
253
  Parameters
226
254
  ----------
227
- plot_objects : Animation or sequence of Animation
255
+ plot_objects : plotObject or sequence of plotObject
228
256
  a single plot object (e.g. `scatter`, `plot`, `hist`...) or a list of plot objects.
229
257
  easing : easing
230
258
  an easing override used while rendering.
231
259
  debug : bool
232
260
  if True, skip writing frame images to disk.
233
261
  """
234
- if isinstance(plot_objects,Animation):
262
+ if isinstance(plot_objects,plotObject):
235
263
  plot_objects = (plot_objects,)
236
264
  self.animations = deepcopy(np.array(plot_objects))
237
265
 
@@ -250,11 +278,14 @@ class Timeline:
250
278
  loop = tqdm(loop)
251
279
 
252
280
  for x in loop:
253
- self.plot(animations=plot_objects,x=x,easing=easing,debug=debug)
281
+ self.plot(plot_objects=plot_objects,x=x,easing=easing,debug=debug)
254
282
  for animation in plot_objects:
255
283
  for anim in animation.anims:
256
284
  anim['played'] = True
257
285
  self.x = x_max
286
+ for animation in plot_objects:
287
+ if self.x >= animation.x_max and animation.persistent == False:
288
+ animation.clean(animation.x_max - 2, clear_anims=False)
258
289
 
259
290
  def wait(self,duration):
260
291
  """Pause the animation for a number of frames.
@@ -354,5 +385,12 @@ class Timeline:
354
385
  """.format(video_fn,rand_id)))
355
386
 
356
387
  def save_project(self,path):
388
+ """Save the current Timeline and associated plot objects to a project file.
389
+
390
+ Parameters
391
+ ----------
392
+ path : str
393
+ The path to save the project file to.
394
+ """
357
395
  with open(path, 'wb') as f:
358
396
  pickle.dump(self, f)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diplotocus
3
- Version: 0.3.2
3
+ Version: 0.3.5
4
4
  Summary: A python package to generate animations of matplotlib objects.
5
5
  Author-email: Tristan Boin <tristan.boin@obspm.fr>
6
6
  License-Expression: MIT
@@ -16,10 +16,10 @@ Requires-Dist: svgpath2mpl
16
16
  Dynamic: license-file
17
17
 
18
18
  <p align="center">
19
- <img src="https://github.com/titanbin/Diplotocus/blob/main/logo.png?raw=true" />
19
+ <img width="300" src="https://github.com/titanbin/Diplotocus/blob/main/logo.png?raw=true" />
20
20
  </p>
21
21
 
22
- [![Documentation](https://img.shields.io/badge/docs-passing-success)](https://diplotocus.readthedocs.io) [![License](https://img.shields.io/badge/license-MIT-green)](https://github.com/titanbin/Diplotocus/blob/main/LICENSEE) [![License](https://img.shields.io/pypi/v/diplotocus?color=blue)](https://pypi.org/project/diplotocus/)
22
+ [![Documentation](https://img.shields.io/badge/docs-passing-success)](https://diplotocus.readthedocs.io) [![License](https://img.shields.io/badge/license-MIT-green)](https://github.com/titanbin/Diplotocus/blob/main/LICENSE) [![License](https://img.shields.io/pypi/v/diplotocus?color=blue)](https://pypi.org/project/diplotocus/)
23
23
 
24
24
  **Diplotocus** is a python package designed to render animations of matplotlib objects, in a *timeline* style.
25
25